summaryrefslogtreecommitdiffstats
path: root/usr.bin/error
diff options
context:
space:
mode:
authorcharnier <charnier@FreeBSD.org>1997-11-03 07:44:25 +0000
committercharnier <charnier@FreeBSD.org>1997-11-03 07:44:25 +0000
commit38a31a41aca3365b10c7c0ad2344083ecb6b14c0 (patch)
tree895b20d9c1a6efacd03825c9fb5cb88908a03028 /usr.bin/error
parentc22960aa652ac383beb46fac64febd2aae671fdc (diff)
downloadFreeBSD-src-38a31a41aca3365b10c7c0ad2344083ecb6b14c0.zip
FreeBSD-src-38a31a41aca3365b10c7c0ad2344083ecb6b14c0.tar.gz
Use err(3). Silent -Wall.
Diffstat (limited to 'usr.bin/error')
-rw-r--r--usr.bin/error/error.124
-rw-r--r--usr.bin/error/error.h19
-rw-r--r--usr.bin/error/filter.c18
-rw-r--r--usr.bin/error/input.c12
-rw-r--r--usr.bin/error/main.c51
-rw-r--r--usr.bin/error/pi.c6
-rw-r--r--usr.bin/error/subr.c75
-rw-r--r--usr.bin/error/touch.c69
8 files changed, 164 insertions, 110 deletions
diff --git a/usr.bin/error/error.1 b/usr.bin/error/error.1
index 69f182b..cbd1ff2 100644
--- a/usr.bin/error/error.1
+++ b/usr.bin/error/error.1
@@ -55,8 +55,8 @@ traditional methods of scribbling abbreviations of errors on paper, and
permits error messages and source code to be viewed simultaneously
without machinations of multiple windows in a screen editor.
.Pp
-Options are:
-.Bl -tag -width Ds
+The following options are available:
+.Bl -tag -width indent
.It Fl n
Do
.Em not
@@ -94,7 +94,7 @@ Thus the suffix list:
.Dl ".c.y.foo*.h"
.Pp
allows
-.Nm error
+.Nm
to touch files ending with ``.c'', ``.y'', ``.foo*'' and ``.h''.
.It Fl s
Print out
@@ -128,7 +128,7 @@ connected via a pipe to the error message source.
Some language processors put error messages on their standard error file;
others put their messages on the standard output.
Hence, both error sources should be piped together into
-.Nm error .
+.Nm Ns .
For example, when using the
.Xr csh 1
syntax,
@@ -163,7 +163,7 @@ For all languages except
error messages are restricted to be on one line.
Some error messages refer to more than one line in more than
one files;
-.Nm error
+.Nm
will duplicate the error message and insert it at
all of the places referenced.
.Pp
@@ -177,7 +177,7 @@ which file it is processing.
uses these to determine the file name for languages that
don't include the file name in each error message.
These synchronization messages are consumed entirely by
-.Nm error .
+.Nm Ns .
.It Em discard
Error messages from
.Xr lint 1
@@ -190,7 +190,7 @@ and
are discarded,
to prevent accidently touching these libraries.
Again, these error messages are consumed entirely by
-.Nm error .
+.Nm Ns .
.It Em nullify
Error messages from
.Xr lint 1
@@ -226,7 +226,7 @@ insertion into the file to which they refer.
Only true error messages are candidates for inserting into
the file they refer to.
Other error messages are consumed entirely by
-.Nm error
+.Nm
or are written to the standard output.
.Nm Error
inserts the error messages into the source file on the line
@@ -267,12 +267,12 @@ user's teletype
.El
.Sh HISTORY
The
-.Nm error
+.Nm
command
appeared in
.Bx 4.0 .
.Sh AUTHOR
-Robert Henry
+.An Robert Henry
.Sh BUGS
.Pp
Opens the teletype directly to do user querying.
@@ -282,7 +282,7 @@ only one link to it.
.Pp
Changing a language processor's format of error messages
may cause
-.Nm error
+.Nm
to not understand the error message.
.Pp
.Nm Error ,
@@ -294,7 +294,7 @@ Humans are still much better at discarding these related errors.
Pascal error messages belong after the lines affected
(error puts them before). The alignment of the `\\' marking
the point of error is also disturbed by
-.Nm error .
+.Nm Ns .
.Pp
.Nm Error
was designed for work on
diff --git a/usr.bin/error/error.h b/usr.bin/error/error.h
index d72e5bf..df5e09b 100644
--- a/usr.bin/error/error.h
+++ b/usr.bin/error/error.h
@@ -113,7 +113,6 @@ FILE *errorfile; /* where error file comes from */
FILE *queryfile; /* where the query responses from the user come from*/
extern char *currentfilename;
-extern char *processname;
extern char *scriptname;
extern boolean query;
@@ -222,3 +221,21 @@ boolean persperdexplode();
* Printing hacks
*/
char *plural(), *verbform();
+
+void arrayify __P((int *, Eptr **, Eptr));
+void clob_last __P((char *, char));
+Errorclass discardit __P((Eptr));
+void eaterrors __P((int *, Eptr **));
+void erroradd __P((int, char **, Errorclass, Errorclass));
+void filenames __P((int, Eptr **));
+void findfiles __P((int, Eptr *, int *, Eptr ***));
+void getignored __P((char *));
+void onintr __P((void));
+int position __P((char *, char));
+void printerrors __P((boolean, int, Eptr []));
+char *substitute __P((char *, char, char));
+boolean touchfiles __P((int, Eptr **, int *, char ***));
+void wordvbuild __P((char *, int *, char ***));
+void wordvprint __P((FILE *, int, char *[]));
+
+
diff --git a/usr.bin/error/filter.c b/usr.bin/error/filter.c
index 40cf00d..bbcd5b6 100644
--- a/usr.bin/error/filter.c
+++ b/usr.bin/error/filter.c
@@ -32,16 +32,20 @@
*/
#ifndef lint
+#if 0
static char sccsid[] = "@(#)filter.c 8.1 (Berkeley) 6/6/93";
+#endif
+static const char rcsid[] =
+ "$Id$";
#endif /* not lint */
#include <sys/types.h>
+#include <ctype.h>
#include <pwd.h>
-#include <unistd.h>
#include <stdio.h>
-#include <ctype.h>
#include <stdlib.h>
#include <string.h>
+#include <unistd.h>
#include "error.h"
#include "pathnames.h"
@@ -52,12 +56,14 @@ char *lint_libs[] = {
IG_FILE4,
0
};
-extern char* processname;
+
int lexsort();
+
/*
* Read the file ERRORNAME of the names of functions in lint
* to ignore complaints about.
*/
+void
getignored(auxname)
char *auxname;
{
@@ -91,8 +97,7 @@ getignored(auxname)
#endif
if ( (fyle = fopen(filename, "r")) == NULL){
#ifdef FULLDEBUG
- fprintf(stderr, "%s: Can't open file \"%s\"\n",
- processname, filename);
+ warnx("can't open file \"%s\"", filename);
#endif
return;
}
@@ -105,8 +110,7 @@ getignored(auxname)
fclose(fyle);
if (freopen(filename, "r", fyle) == NULL){
#ifdef FULLDEBUG
- fprintf(stderr, "%s: Failure to open \"%s\" for second read.\n",
- processname, filename);
+ warnx("failure to open \"%s\" for second read", filename);
#endif
nignored = 0;
return;
diff --git a/usr.bin/error/input.c b/usr.bin/error/input.c
index 6edd5f7..97b9667 100644
--- a/usr.bin/error/input.c
+++ b/usr.bin/error/input.c
@@ -32,11 +32,15 @@
*/
#ifndef lint
+#if 0
static char sccsid[] = "@(#)input.c 8.1 (Berkeley) 6/6/93";
+#endif
+static const char rcsid[] =
+ "$Id$";
#endif /* not lint */
-#include <stdio.h>
#include <ctype.h>
+#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "error.h"
@@ -61,17 +65,18 @@ Errorclass pi();
Errorclass ri();
Errorclass troff();
Errorclass mod2();
+Errorclass catchall __P((void));
/*
* Eat all of the lines in the input file, attempting to categorize
* them by their various flavors
*/
static char inbuffer[BUFSIZ];
+void
eaterrors(r_errorc, r_errorv)
int *r_errorc;
Eptr **r_errorv;
{
- extern boolean piflag;
Errorclass errorclass = C_SYNC;
for (;;){
@@ -113,6 +118,7 @@ eaterrors(r_errorc, r_errorv)
/*
* create a new error entry, given a zero based array and count
*/
+void
erroradd(errorlength, errorv, errorclass, errorsubclass)
int errorlength;
char **errorv;
@@ -404,6 +410,8 @@ char *F77_fatal[3] = {"Compiler", "error", "line"};
char *F77_error[3] = {"Error", "on", "line"};
char *F77_warning[3] = {"Warning", "on", "line"};
char *F77_no_ass[3] = {"Error.","No","assembly."};
+
+Errorclass
f77()
{
char **nwordv;
diff --git a/usr.bin/error/main.c b/usr.bin/error/main.c
index 0ba1be6..7c6ad1d 100644
--- a/usr.bin/error/main.c
+++ b/usr.bin/error/main.c
@@ -32,21 +32,26 @@
*/
#ifndef lint
-static char copyright[] =
+static const char copyright[] =
"@(#) Copyright (c) 1980, 1993\n\
The Regents of the University of California. All rights reserved.\n";
#endif /* not lint */
#ifndef lint
+#if 0
static char sccsid[] = "@(#)main.c 8.1 (Berkeley) 6/6/93";
+#endif
+static const char rcsid[] =
+ "$Id$";
#endif /* not lint */
+#include <ctype.h>
+#include <err.h>
#include <signal.h>
-#include <unistd.h>
#include <stdio.h>
-#include <ctype.h>
#include <stdlib.h>
#include <string.h>
+#include <unistd.h>
#include "error.h"
#include "pathnames.h"
@@ -59,7 +64,6 @@ Eptr **files; /* array of pointers into errors*/
int language = INCC;
char *currentfilename = "????";
-char *processname;
char im_on[] = _PATH_TTY; /* my tty name */
boolean query = FALSE; /* query the operator if touch files */
@@ -69,8 +73,10 @@ boolean terse = FALSE; /* Terse output */
char *suffixlist = ".*"; /* initially, can touch any file */
-int errorsort();
-void onintr();
+int errorsort __P((Eptr *, Eptr *));
+void forkvi __P((int, char **));
+void try __P((char *, int, char **));
+
/*
* error [-I ignorename] [-n] [-q] [-t suffixlist] [-s] [-v] [infile]
*
@@ -114,6 +120,7 @@ void onintr();
* infile: The error messages come from this file.
* Default: stdin
*/
+int
main(argc, argv)
int argc;
char *argv[];
@@ -127,14 +134,11 @@ main(argc, argv)
boolean pr_summary = FALSE;
boolean edit_files = FALSE;
- processname = argv[0];
-
errorfile = stdin;
if (argc > 1) for(; (argc > 1) && (argv[1][0] == '-'); argc--, argv++){
for (cp = argv[1] + 1; *cp; cp++) switch(*cp){
default:
- fprintf(stderr, "%s: -%c: Unknown flag\n",
- processname, *cp);
+ warnx("-%c: unknown flag", *cp);
break;
case 'n': notouch = TRUE; break;
@@ -159,24 +163,16 @@ main(argc, argv)
if (notouch)
suffixlist = 0;
if (argc > 1){
- if (argc > 3){
- fprintf(stderr, "%s: Only takes 0 or 1 arguments\n",
- processname);
- exit(3);
- }
- if ( (errorfile = fopen(argv[1], "r")) == NULL){
- fprintf(stderr, "%s: %s: No such file or directory for reading errors.\n",
- processname, argv[1]);
- exit(4);
- }
+ if (argc > 3)
+ errx(3, "only takes 0 or 1 argument");
+ if ( (errorfile = fopen(argv[1], "r")) == NULL)
+ errx(4,
+ "%s: no such file or directory for reading errors",
+ argv[1]);
}
if ( (queryfile = fopen(im_on, "r")) == NULL){
- if (query){
- fprintf(stderr,
- "%s: Can't open \"%s\" to query the user.\n",
- processname, im_on);
- exit(9);
- }
+ if (query)
+ errx(9, "can't open \"%s\" to query the user", im_on);
}
if (signal(SIGINT, onintr) == SIG_IGN)
signal(SIGINT, SIG_IGN);
@@ -213,8 +209,10 @@ main(argc, argv)
fflush(stdout);
if (touchfiles(nfiles, files, &ed_argc, &ed_argv) && edit_files)
forkvi(ed_argc, ed_argv);
+ return(0);
}
+void
forkvi(argc, argv)
int argc;
char **argv;
@@ -241,6 +239,7 @@ forkvi(argc, argv)
fprintf(stdout, "Can't find any editors.\n");
}
+void
try(name, argc, argv)
char *name;
int argc;
diff --git a/usr.bin/error/pi.c b/usr.bin/error/pi.c
index 4fd70f9..5984bca 100644
--- a/usr.bin/error/pi.c
+++ b/usr.bin/error/pi.c
@@ -32,11 +32,15 @@
*/
#ifndef lint
+#if 0
static char sccsid[] = "@(#)pi.c 8.1 (Berkeley) 6/6/93";
+#endif
+static const char rcsid[] =
+ "$Id$";
#endif /* not lint */
-#include <stdio.h>
#include <ctype.h>
+#include <stdio.h>
#include <string.h>
#include "error.h"
diff --git a/usr.bin/error/subr.c b/usr.bin/error/subr.c
index 29b416a..9a44019 100644
--- a/usr.bin/error/subr.c
+++ b/usr.bin/error/subr.c
@@ -32,17 +32,23 @@
*/
#ifndef lint
+#if 0
static char sccsid[] = "@(#)subr.c 8.1 (Berkeley) 6/6/93";
+#endif
+static const char rcsid[] =
+ "$Id$";
#endif /* not lint */
-#include <stdio.h>
#include <ctype.h>
+#include <err.h>
+#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "error.h"
/*
* Arrayify a list of rules
*/
+void
arrayify(e_length, e_array, header)
int *e_length;
Eptr **e_array;
@@ -68,27 +74,14 @@ arrayify(e_length, e_array, header)
*e_array = array;
}
-/*VARARGS1*/
-error(msg, a1, a2, a3)
- char *msg;
-{
- fprintf(stderr, "Error: ");
- fprintf(stderr, msg, a1, a2, a3);
- fprintf(stderr, "\n");
- fflush(stdout);
- fflush(stderr);
- exit(6);
-}
/*ARGSUSED*/
char *Calloc(nelements, size)
int nelements;
int size;
{
char *back;
- if ( (back = (char *)calloc(nelements, size)) == (char *)NULL){
- error("Ran out of memory.\n");
- exit(1);
- }
+ if ( (back = (char *)calloc(nelements, size)) == (char *)NULL)
+ errx(6, "ran out of memory");
return(back);
}
@@ -169,6 +162,7 @@ char next_lastchar(string)
return('\0');
}
+void
clob_last(string, newstuff)
char *string, newstuff;
{
@@ -258,29 +252,30 @@ static char mod2incomment[] = MOD2INCOMMENT;
static char mod2outcomment[] = MOD2OUTCOMMENT;
struct lang_desc lang_table[] = {
- /*INUNKNOWN 0*/ "unknown", cincomment, coutcomment,
- /*INCPP 1*/ "cpp", cincomment, coutcomment,
- /*INCC 2*/ "cc", cincomment, coutcomment,
- /*INAS 3*/ "as", ASINCOMMENT, newline,
- /*INLD 4*/ "ld", cincomment, coutcomment,
- /*INLINT 5*/ "lint", cincomment, coutcomment,
- /*INF77 6*/ "f77", fincomment, foutcomment,
- /*INPI 7*/ "pi", piincomment, pioutcomment,
- /*INPC 8*/ "pc", piincomment, pioutcomment,
- /*INFRANZ 9*/ "franz",lispincomment, newline,
- /*INLISP 10*/ "lisp", lispincomment, newline,
- /*INVAXIMA 11*/ "vaxima",lispincomment,newline,
- /*INRATFOR 12*/ "ratfor",fincomment, foutcomment,
- /*INLEX 13*/ "lex", cincomment, coutcomment,
- /*INYACC 14*/ "yacc", cincomment, coutcomment,
- /*INAPL 15*/ "apl", ".lm", newline,
- /*INMAKE 16*/ "make", ASINCOMMENT, newline,
- /*INRI 17*/ "ri", riincomment, rioutcomment,
- /*INTROFF 18*/ "troff",troffincomment,troffoutcomment,
- /*INMOD2 19*/ "mod2", mod2incomment, mod2outcomment,
- 0, 0, 0
+ /*INUNKNOWN 0*/ {"unknown", cincomment, coutcomment},
+ /*INCPP 1*/ {"cpp", cincomment, coutcomment},
+ /*INCC 2*/ {"cc", cincomment, coutcomment},
+ /*INAS 3*/ {"as", ASINCOMMENT, newline},
+ /*INLD 4*/ {"ld", cincomment, coutcomment},
+ /*INLINT 5*/ {"lint", cincomment, coutcomment},
+ /*INF77 6*/ {"f77", fincomment, foutcomment},
+ /*INPI 7*/ {"pi", piincomment, pioutcomment},
+ /*INPC 8*/ {"pc", piincomment, pioutcomment},
+ /*INFRANZ 9*/ {"franz",lispincomment, newline},
+ /*INLISP 10*/ {"lisp", lispincomment, newline},
+ /*INVAXIMA 11*/ {"vaxima",lispincomment,newline},
+ /*INRATFOR 12*/ {"ratfor",fincomment, foutcomment},
+ /*INLEX 13*/ {"lex", cincomment, coutcomment},
+ /*INYACC 14*/ {"yacc", cincomment, coutcomment},
+ /*INAPL 15*/ {"apl", ".lm", newline},
+ /*INMAKE 16*/ {"make", ASINCOMMENT, newline},
+ /*INRI 17*/ {"ri", riincomment, rioutcomment},
+ /*INTROFF 18*/ {"troff",troffincomment,troffoutcomment},
+ /*INMOD2 19*/ {"mod2", mod2incomment, mod2outcomment},
+ {0, 0, 0}
};
+void
printerrors(look_at_subclass, errorc, errorv)
boolean look_at_subclass;
int errorc;
@@ -303,6 +298,7 @@ printerrors(look_at_subclass, errorc, errorv)
}
}
+void
wordvprint(fyle, wordc, wordv)
FILE *fyle;
int wordc;
@@ -322,6 +318,7 @@ wordvprint(fyle, wordc, wordv)
* Given a string, parse it into a number of words, and build
* a wordc wordv combination pointing into it.
*/
+void
wordvbuild(string, r_wordc, r_wordv)
char *string;
int *r_wordc;
@@ -354,7 +351,7 @@ wordvbuild(string, r_wordc, r_wordv)
*cp++ = '\0';
}
if (wordcount != 0)
- error("Initial miscount of the number of words in a line\n");
+ errx(6, "initial miscount of the number of words in a line");
wordv[wordindex] = (char *)0;
#ifdef FULLDEBUG
for (wordcount = 0; wordcount < wordindex; wordcount++)
@@ -377,7 +374,7 @@ int wordvcmp(wordv1, wordc, wordv2)
for (i = 0; i < wordc; i++){
if (wordv1[i] == 0 || wordv2[i] == 0)
return(-1);
- if (back = strcmp(wordv1[i], wordv2[i])){
+ if ((back = strcmp(wordv1[i], wordv2[i]))){
return(back);
}
}
diff --git a/usr.bin/error/touch.c b/usr.bin/error/touch.c
index 755b313..132ea33 100644
--- a/usr.bin/error/touch.c
+++ b/usr.bin/error/touch.c
@@ -32,18 +32,23 @@
*/
#ifndef lint
+#if 0
static char sccsid[] = "@(#)touch.c 8.1 (Berkeley) 6/6/93";
+#endif
+static const char rcsid[] =
+ "$Id$";
#endif /* not lint */
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/param.h>
+#include <ctype.h>
+#include <err.h>
#include <signal.h>
-#include <unistd.h>
#include <stdio.h>
-#include <ctype.h>
#include <stdlib.h>
#include <string.h>
+#include <unistd.h>
#include "error.h"
#include "pathnames.h"
@@ -56,6 +61,23 @@ static char sccsid[] = "@(#)touch.c 8.1 (Berkeley) 6/6/93";
#define FILEITERATE(fi, lb) for (fi = lb; fi <= nfiles; fi++)
int touchstatus = Q_YES;
+int countfiles __P((Eptr *));
+boolean edit __P((char *));
+void errorprint __P((FILE *, Eptr, boolean));
+void execvarg __P((int, int *, char ***));
+void diverterrors __P((char *, int, Eptr **, int, boolean, int));
+void hackfile __P((char *, Eptr **, int, int));
+void insert __P((int));
+int mustoverwrite __P((FILE *, FILE *));
+int mustwrite __P((char *, int, FILE *));
+int nopertain __P((Eptr **));
+int oktotouch __P((char *));
+boolean preview __P((char *, int, Eptr **, int));
+int settotouch __P((char *));
+void text __P((Eptr, boolean));
+boolean writetouched __P((int));
+
+void
findfiles(nerrors, errors, r_nfiles, r_files)
int nerrors;
Eptr *errors;
@@ -143,6 +165,7 @@ char *class_table[] = {
int class_count[C_LAST - C_FIRST] = {0};
+void
filenames(nfiles, files)
int nfiles;
Eptr **files;
@@ -274,13 +297,14 @@ boolean touchfiles(nfiles, files, r_edargc, r_edargv)
}
}
+void
hackfile(name, files, ix, nerrors)
char *name;
Eptr **files;
int ix;
{
boolean previewed;
- int errordest; /* where errors go*/
+ int errordest; /* where errors go */
if (!oktotouch(name)) {
previewed = FALSE;
@@ -384,6 +408,7 @@ int settotouch(name)
return(dest);
}
+void
diverterrors(name, dest, files, ix, previewed, nterrors)
char *name;
int dest;
@@ -480,6 +505,7 @@ int oktotouch(filename)
* We fill in the initial search string.
* We fill in the arguments, and the null.
*/
+void
execvarg(n_pissed_on, r_argc, r_argv)
int n_pissed_on;
int *r_argc;
@@ -531,8 +557,7 @@ boolean edit(name)
o_name = name;
if ( (o_touchedfile = fopen(name, "r")) == NULL){
- fprintf(stderr, "%s: Can't open file \"%s\" to touch (read).\n",
- processname, name);
+ warnx("can't open file \"%s\" to touch (read)", name);
return(TRUE);
}
(void)strcpy(n_name, canon_name);
@@ -541,8 +566,7 @@ boolean edit(name)
if ( fd < 0 || (n_touchedfile = fdopen(fd, "w")) == NULL) {
if (fd >= 0)
close(fd);
- fprintf(stderr,"%s: Can't open file \"%s\" to touch (write).\n",
- processname, name);
+ warnx("can't open file \"%s\" to touch (write)", name);
return(TRUE);
}
tempfileopen = TRUE;
@@ -554,6 +578,8 @@ boolean edit(name)
* Position to the line (before, after) the line given by place
*/
char edbuf[BUFSIZ];
+
+void
insert(place)
int place;
{
@@ -565,6 +591,7 @@ insert(place)
}
}
+void
text(p, use_all)
reg Eptr p;
boolean use_all;
@@ -584,6 +611,7 @@ text(p, use_all)
* write the touched file to its temporary copy,
* then bring the temporary in over the local file
*/
+boolean
writetouched(overwrite)
int overwrite;
{
@@ -601,9 +629,8 @@ writetouched(overwrite)
* Catastrophe in temporary area: file system full?
*/
botch = 1;
- fprintf(stderr,
- "%s: write failure: No errors inserted in \"%s\"\n",
- processname, o_name);
+ warnx("write failure: no errors inserted in \"%s\"",
+ o_name);
}
}
fclose(n_touchedfile);
@@ -617,14 +644,11 @@ writetouched(overwrite)
localfile = NULL;
tmpfile = NULL;
if ((localfile = fopen(o_name, "w")) == NULL){
- fprintf(stderr,
- "%s: Can't open file \"%s\" to overwrite.\n",
- processname, o_name);
+ warnx("can't open file \"%s\" to overwrite", o_name);
botch++;
}
if ((tmpfile = fopen(n_name, "r")) == NULL){
- fprintf(stderr, "%s: Can't open file \"%s\" to read.\n",
- processname, n_name);
+ warnx("can't open file \"%s\" to read", n_name);
botch++;
}
if (!botch)
@@ -634,11 +658,9 @@ writetouched(overwrite)
if (tmpfile != NULL)
fclose(tmpfile);
}
- if (oktorm == 0){
- fprintf(stderr, "%s: Catastrophe: A copy of \"%s\": was saved in \"%s\"\n",
- processname, o_name, n_name);
- exit(1);
- }
+ if (oktorm == 0)
+ errx(1, "catastrophe: a copy of \"%s\" was saved in \"%s\"",
+ o_name, n_name);
/*
* Kiss the temp file good bye
*/
@@ -649,7 +671,8 @@ writetouched(overwrite)
/*
* return 1 if the tmpfile can be removed after writing it out
*/
-int mustoverwrite(preciousfile, tmpfile)
+int
+mustoverwrite(preciousfile, tmpfile)
FILE *preciousfile;
FILE *tmpfile;
{
@@ -664,6 +687,7 @@ int mustoverwrite(preciousfile, tmpfile)
/*
* return 0 on catastrophe
*/
+int
mustwrite(base, n, preciousfile)
char *base;
int n;
@@ -676,7 +700,7 @@ mustwrite(base, n, preciousfile)
nwrote = fwrite(base, 1, n, preciousfile);
if (nwrote == n)
return(1);
- perror(processname);
+ warn("fwrite");
switch(inquire(terse
? "Botch overwriting: retry? "
: "Botch overwriting the source file: retry? ")){
@@ -722,6 +746,7 @@ onintr()
/*NOTREACHED*/
}
+void
errorprint(place, errorp, print_all)
FILE *place;
Eptr errorp;
OpenPOWER on IntegriCloud