Module Name:    src
Committed By:   rillig
Date:           Sat Aug 26 14:50:53 UTC 2023

Modified Files:
        src/usr.bin/error: Makefile error.h input.c main.c pi.c subr.c touch.c

Log Message:
error: enable lint's strict bool mode

This cleans up the inconsistencies between 'int', 'boolean' and 'bool'.


To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/usr.bin/error/Makefile
cvs rdiff -u -r1.19 -r1.20 src/usr.bin/error/error.h \
    src/usr.bin/error/input.c
cvs rdiff -u -r1.24 -r1.25 src/usr.bin/error/main.c
cvs rdiff -u -r1.21 -r1.22 src/usr.bin/error/pi.c
cvs rdiff -u -r1.22 -r1.23 src/usr.bin/error/subr.c
cvs rdiff -u -r1.30 -r1.31 src/usr.bin/error/touch.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/error/Makefile
diff -u src/usr.bin/error/Makefile:1.10 src/usr.bin/error/Makefile:1.11
--- src/usr.bin/error/Makefile:1.10	Sat Aug 26 11:38:14 2023
+++ src/usr.bin/error/Makefile	Sat Aug 26 14:50:53 2023
@@ -1,5 +1,5 @@
 #	@(#)Makefile	8.1 (Berkeley) 6/6/93
-#	$NetBSD: Makefile,v 1.10 2023/08/26 11:38:14 rillig Exp $
+#	$NetBSD: Makefile,v 1.11 2023/08/26 14:50:53 rillig Exp $
 
 PROG=	error
 SRCS=	main.c input.c pi.c subr.c filter.c touch.c
@@ -8,5 +8,6 @@ DPADD+=	${LIBUTIL}
 LDADD+=	-lutil
 
 LINTFLAGS+=	-w		# treat warnings as errors
+LINTFLAGS+=	-T		# strict bool mode
 
 .include <bsd.prog.mk>

Index: src/usr.bin/error/error.h
diff -u src/usr.bin/error/error.h:1.19 src/usr.bin/error/error.h:1.20
--- src/usr.bin/error/error.h:1.19	Wed Feb 29 23:37:07 2012
+++ src/usr.bin/error/error.h	Sat Aug 26 14:50:53 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: error.h,v 1.19 2012/02/29 23:37:07 joerg Exp $	*/
+/*	$NetBSD: error.h,v 1.20 2023/08/26 14:50:53 rillig Exp $	*/
 
 /*
  * Copyright (c) 1980, 1993
@@ -33,8 +33,6 @@
 
 #include <stdbool.h>
 
-typedef int boolean;
-
 /*
  * Descriptors for the various languages we know about.
  * If you touch these, also touch lang_table
@@ -112,8 +110,8 @@ extern char *scriptname;
 
 extern const char *suffixlist;
 
-extern boolean query;
-extern boolean terse;
+extern bool query;
+extern bool terse;
 int inquire(const char *, ...) __printflike(1, 2);	/* inquire for yes/no */
 
 /*
@@ -195,7 +193,7 @@ extern char **cur_wordv;
  */
 extern int nfiles;
 extern Eptr **files;			/* array of pointers into errors */
-extern boolean *touchedfiles;		/* which files we touched */
+extern bool *touchedfiles;		/* which files we touched */
 
 /*
  * The language the compilation is in, as intuited from
Index: src/usr.bin/error/input.c
diff -u src/usr.bin/error/input.c:1.19 src/usr.bin/error/input.c:1.20
--- src/usr.bin/error/input.c:1.19	Sat Aug 26 12:43:28 2023
+++ src/usr.bin/error/input.c	Sat Aug 26 14:50:53 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: input.c,v 1.19 2023/08/26 12:43:28 rillig Exp $	*/
+/*	$NetBSD: input.c,v 1.20 2023/08/26 14:50:53 rillig Exp $	*/
 
 /*
  * Copyright (c) 1980, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)input.c	8.1 (Berkeley) 6/6/93";
 #endif
-__RCSID("$NetBSD: input.c,v 1.19 2023/08/26 12:43:28 rillig Exp $");
+__RCSID("$NetBSD: input.c,v 1.20 2023/08/26 14:50:53 rillig Exp $");
 #endif /* not lint */
 
 #include <stdio.h>
@@ -104,7 +104,7 @@ eaterrors(int *r_errorc, Eptr **r_errorv
 	) ;
 	else
 		errorclass = catchall();
-	if (cur_wordc)
+	if (cur_wordc > 0)
 		erroradd(cur_wordc, cur_wordv+1, errorclass, C_UNKNOWN);
     }
 #ifdef FULLDEBUG
@@ -125,7 +125,8 @@ erroradd(int errorlength, char **errorv,
 
 	if (errorclass == C_TRUE) {
 		/* check canonicalization of the second argument*/
-		for (cp = errorv[1]; *cp && isdigit((unsigned char)*cp); cp++)
+		for (cp = errorv[1];
+		    *cp != '\0' && isdigit((unsigned char)*cp); cp++)
 			continue;
 		errorclass = (*cp == '\0') ? C_TRUE : C_NONSPEC;
 #ifdef FULLDEBUG
@@ -431,14 +432,10 @@ lint1(void)
 			return C_TRUE;
 		}
 	}
-	if (file2)
-		free(file2);
-	if (file1)
-		free(file1);
-	if (line2)
-		free(line2);
-	if (line1)
-		free(line1);
+	free(file2);
+	free(file1);
+	free(line2);
+	free(line1);
 	return C_UNKNOWN;
 } /* end of lint 1*/
 

Index: src/usr.bin/error/main.c
diff -u src/usr.bin/error/main.c:1.24 src/usr.bin/error/main.c:1.25
--- src/usr.bin/error/main.c:1.24	Sat Aug 26 13:52:10 2023
+++ src/usr.bin/error/main.c	Sat Aug 26 14:50:53 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: main.c,v 1.24 2023/08/26 13:52:10 rillig Exp $	*/
+/*	$NetBSD: main.c,v 1.25 2023/08/26 14:50:53 rillig Exp $	*/
 
 /*
  * Copyright (c) 1980, 1993
@@ -39,7 +39,7 @@ __COPYRIGHT("@(#) Copyright (c) 1980, 19
 #if 0
 static char sccsid[] = "@(#)main.c	8.1 (Berkeley) 6/6/93";
 #endif
-__RCSID("$NetBSD: main.c,v 1.24 2023/08/26 13:52:10 rillig Exp $");
+__RCSID("$NetBSD: main.c,v 1.25 2023/08/26 14:50:53 rillig Exp $");
 #endif /* not lint */
 
 #include <signal.h>
@@ -65,17 +65,17 @@ static Eptr *errors;
 
 int nfiles = 0;
 Eptr **files;		/* array of pointers into errors*/
-boolean *touchedfiles;  /* which files we touched */
+bool *touchedfiles;	/* which files we touched */
 int language = INCC;
 
 char default_currentfilename[] = "????";
 char *currentfilename = default_currentfilename;
 
-boolean query = false;	/* query the operator if touch files */
-boolean terse = false;	/* Terse output */
+bool query = false;	/* query the operator if touch files */
+bool terse = false;	/* Terse output */
 
 static char im_on[] = _PATH_TTY;	/* my tty name */
-static boolean notouch = false;		/* don't touch ANY files */
+static bool notouch = false;		/* don't touch ANY files */
 
 const char *suffixlist = ".*";	/* initially, can touch any file */
 
@@ -91,10 +91,10 @@ main(int argc, char **argv)
 	char *ignorename = 0;
 	int ed_argc;
 	char **ed_argv;		/* return from touchfiles */
-	boolean show_errors = false;
-	boolean Show_Errors = false;
-	boolean pr_summary = false;
-	boolean edit_files = false;
+	bool show_errors = false;
+	bool Show_Errors = false;
+	bool pr_summary = false;
+	bool edit_files = false;
 
 	setprogname(argv[0]);
 
@@ -168,27 +168,27 @@ main(int argc, char **argv)
 	findfiles(nerrors, errors, &nfiles, &files);
 #define P(msg, arg) fprintf(stdout, msg, arg)
 	if (pr_summary) {
-		if (nunknown)
+		if (nunknown > 0)
 			P("%d Errors are unclassifiable.\n", nunknown);
-		if (nignore)
+		if (nignore > 0)
 			P("%d Errors are classifiable, but totally "
 			    "discarded.\n", nignore);
-		if (nsyncerrors)
+		if (nsyncerrors > 0)
 			P("%d Errors are synchronization errors.\n",
 			    nsyncerrors);
-		if (nignore)
+		if (nignore > 0)
 			P("%d Errors are discarded because they refer to "
 			    "sacrosinct files.\n", ndiscard);
-		if (nnulled)
+		if (nnulled > 0)
 			P("%d Errors are nulled because they refer to specific "
 			    "functions.\n", nnulled);
-		if (nnonspec)
+		if (nnonspec > 0)
 			P("%d Errors are not specific to any file.\n",
 			    nnonspec);
-		if (nthisfile)
+		if (nthisfile > 0)
 			P("%d Errors are specific to a given file, but not "
 			    "to a line.\n", nthisfile);
-		if (ntrue)
+		if (ntrue > 0)
 			P("%d Errors are true errors, and can be inserted "
 			    "into the files.\n", ntrue);
 	}

Index: src/usr.bin/error/pi.c
diff -u src/usr.bin/error/pi.c:1.21 src/usr.bin/error/pi.c:1.22
--- src/usr.bin/error/pi.c:1.21	Sat Aug 26 12:43:28 2023
+++ src/usr.bin/error/pi.c	Sat Aug 26 14:50:53 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: pi.c,v 1.21 2023/08/26 12:43:28 rillig Exp $	*/
+/*	$NetBSD: pi.c,v 1.22 2023/08/26 14:50:53 rillig Exp $	*/
 
 /*
  * Copyright (c) 1980, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)pi.c	8.1 (Berkeley) 6/6/93";
 #endif
-__RCSID("$NetBSD: pi.c,v 1.21 2023/08/26 12:43:28 rillig Exp $");
+__RCSID("$NetBSD: pi.c,v 1.22 2023/08/26 14:50:53 rillig Exp $");
 #endif /* not lint */
 
 #include <stdio.h>
@@ -52,10 +52,10 @@ DECL_STRINGS_3(static, unk_hdr, "In", "p
 static char *c_linenumber;
 static char **c_header = &unk_hdr[0];
 
-static boolean alldigits(const char *);
-static boolean isdateformat(int, char **);
-static boolean instringset(const char *, const char **);
-static boolean piptr(const char *);
+static bool alldigits(const char *);
+static bool isdateformat(int, char **);
+static bool instringset(const char *, const char **);
+static bool piptr(const char *);
 
 
 /*
@@ -154,7 +154,7 @@ static const char *Piroutines[] = {
 };
 
 
-static boolean structured, multiple;
+static bool structured, multiple;
 
 #if 0 /* not const-correct */
 static char *pi_Endmatched[] = {"End", "matched"};
@@ -184,25 +184,24 @@ DECL_STRINGS_4(static, pi_imp2, "imprope
 
 #endif
 
-static boolean
+static bool
 alldigits(const char *string)
 {
-	for (; *string && isdigit((unsigned char)*string); string++)
+	for (; *string != '\0' && isdigit((unsigned char)*string); string++)
 		continue;
 	return *string == '\0';
 }
 
-static boolean
+static bool
 instringset(const char *member, const char **set)
 {
-	for (; *set; set++) {
+	for (; *set != NULL; set++)
 		if (strcmp(*set, member) == 0)
 			return true;
-	}
 	return false;
 }
 
-static boolean
+static bool
 isdateformat(int wordc, char **wordv)
 {
 	return  wordc == 5
@@ -212,7 +211,7 @@ isdateformat(int wordc, char **wordv)
 	     && alldigits(wordv[4]);
 }
 
-static boolean
+static bool
 piptr(const char *string)
 {
 	if (*string != '-')
@@ -239,7 +238,7 @@ pi(void)
 	    && ( cur_wordv[1][0] == 'e' || cur_wordv[1][0] == 'E')
 	    && piptr(cur_wordv[2])
 	) {
-		boolean longpiptr = 0;
+		bool longpiptr = false;
 
 		/*
 		 *	We have recognized a first pass error of the form:
@@ -326,7 +325,7 @@ pi(void)
  		 *      %s undefined on line%s
  		 *      %s improperly used on line%s
 		 */
-		boolean undefined = 0;
+		bool undefined = false;
 		int wordindex;
 
 		language = INPI;
@@ -338,7 +337,7 @@ pi(void)
 			for (wordindex = undefined ? 5 : 6;
 			     wordindex <= cur_wordc;
 			     wordindex++) {
-				if (nwordv) {
+				if (nwordv != NULL) {
 					free(nwordv[0]);
 					free(nwordv);
 				}
@@ -363,7 +362,7 @@ pi(void)
 		cur_wordc += 1 + 3;
 		return C_THISFILE;
 	}
-	if (strcmp(cur_wordv[1], "...") == 0 && c_linenumber &&
+	if (strcmp(cur_wordv[1], "...") == 0 && c_linenumber != NULL &&
 	    currentfilename != default_currentfilename) {
 		/*
 		 * have a continuation error message
@@ -417,7 +416,7 @@ pi(void)
 	 * End matched %s on line %d
 	 * Inserted keyword end matching %s on line %d
 	 */
-	multiple = structured = 0;
+	multiple = structured = false;
 	if (
 	       (cur_wordc == 6 && wordvcmp(cur_wordv+1, 2, pi_Endmatched) == 0)
 	    || (cur_wordc == 8 && wordvcmp(cur_wordv+1, 4, pi_Inserted) == 0)

Index: src/usr.bin/error/subr.c
diff -u src/usr.bin/error/subr.c:1.22 src/usr.bin/error/subr.c:1.23
--- src/usr.bin/error/subr.c:1.22	Sat Aug 26 12:43:28 2023
+++ src/usr.bin/error/subr.c	Sat Aug 26 14:50:53 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: subr.c,v 1.22 2023/08/26 12:43:28 rillig Exp $	*/
+/*	$NetBSD: subr.c,v 1.23 2023/08/26 14:50:53 rillig Exp $	*/
 
 /*
  * Copyright (c) 1980, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)subr.c	8.1 (Berkeley) 6/6/93";
 #endif
-__RCSID("$NetBSD: subr.c,v 1.22 2023/08/26 12:43:28 rillig Exp $");
+__RCSID("$NetBSD: subr.c,v 1.23 2023/08/26 14:50:53 rillig Exp $");
 #endif /* not lint */
 
 #include <ctype.h>
@@ -56,7 +56,7 @@ arrayify(int *e_length, Eptr **e_array, 
 	int listindex;
 
 	for (errorp = header, listlength = 0;
-	     errorp; errorp = errorp->error_next, listlength++)
+	     errorp != NULL; errorp = errorp->error_next, listlength++)
 		continue;
 	array = Calloc(listlength+1, sizeof (Eptr));
 	for (listindex = 0, errorp = header;
@@ -100,13 +100,10 @@ Strdup(const char *s)
 int
 position(const char *string, char ch)
 {
-	int i;
-
-	if (string)
-		for (i=1; *string; string++, i++) {
+	if (string != NULL)
+		for (int i = 1; *string != '\0'; string++, i++)
 			if (*string == ch)
 				return i;
-		}
 	return -1;
 }
 
@@ -118,8 +115,8 @@ substitute(char *string, char chold, cha
 {
 	char *cp = string;
 
-	if (cp)
-		while (*cp) {
+	if (cp != NULL)
+		while (*cp != '\0') {
 			if (*cp == chold) {
 				*cp = chnew;
 				break;
@@ -146,7 +143,7 @@ lastchar(const char *string)
 char
 firstchar(const char *string)
 {
-	if (string)
+	if (string != NULL)
 		return string[0];
 	else
 		return '\0';
@@ -206,7 +203,7 @@ persperdexplode(char *string, char **r_p
  * parse a quoted string that is the result of a format \"%s\"(%d)
  * return TRUE if this is of the proper format
  */
-static boolean
+static bool
 qpersperdexplode(char *string, char **r_perd, char **r_pers)
 {
 	char *cp;
@@ -299,7 +296,7 @@ wordvprint(FILE *fyle, int wordc, char *
 	const char *sep = "";
 
 	for (i = 0; i < wordc; i++)
-		if (wordv[i]) {
+		if (wordv[i] != NULL) {
 			fprintf(fyle, "%s%s",sep,wordv[i]);
 			sep = " ";
 		}
@@ -317,22 +314,22 @@ wordvbuild(char *string, int *r_wordc, c
 	int wordcount;
 	int wordindex;
 
-	for (wordcount = 0, cp = string; *cp; wordcount++) {
-		while (*cp && isspace((unsigned char)*cp))
+	for (wordcount = 0, cp = string; *cp != '\0'; wordcount++) {
+		while (isspace((unsigned char)*cp))
 			cp++;
 		if (*cp == '\0')
 			break;
-		while (*cp && !isspace((unsigned char)*cp))
+		while (*cp != '\0' && !isspace((unsigned char)*cp))
 			cp++;
 	}
 	wordv = Calloc(wordcount + 1, sizeof (char *));
-	for (cp=string, wordindex=0; wordcount; wordindex++, --wordcount) {
-		while (*cp && isspace((unsigned char)*cp))
+	for (cp=string, wordindex=0; wordcount > 0; wordindex++, --wordcount) {
+		while (isspace((unsigned char)*cp))
 			cp++;
 		if (*cp == '\0')
 			break;
 		wordv[wordindex] = cp;
-		while (*cp && !isspace((unsigned char)*cp))
+		while (*cp != '\0' && !isspace((unsigned char)*cp))
 			cp++;
 		*cp++ = '\0';
 	}

Index: src/usr.bin/error/touch.c
diff -u src/usr.bin/error/touch.c:1.30 src/usr.bin/error/touch.c:1.31
--- src/usr.bin/error/touch.c:1.30	Sat Aug 26 12:43:28 2023
+++ src/usr.bin/error/touch.c	Sat Aug 26 14:50:53 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: touch.c,v 1.30 2023/08/26 12:43:28 rillig Exp $	*/
+/*	$NetBSD: touch.c,v 1.31 2023/08/26 14:50:53 rillig Exp $	*/
 
 /*
  * Copyright (c) 1980, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)touch.c	8.1 (Berkeley) 6/6/93";
 #endif
-__RCSID("$NetBSD: touch.c,v 1.30 2023/08/26 12:43:28 rillig Exp $");
+__RCSID("$NetBSD: touch.c,v 1.31 2023/08/26 14:50:53 rillig Exp $");
 #endif /* not lint */
 
 #include <sys/param.h>
@@ -72,20 +72,20 @@ static int touchstatus = Q_YES;
 #define F_TOUCHIT	4
 
 static int countfiles(Eptr *);
-static int nopertain(Eptr **);
+static bool nopertain(Eptr **);
 static void hackfile(const char *, Eptr **, int, int);
-static boolean preview(int, Eptr **, int);
+static bool preview(int, Eptr **, int);
 static int settotouch(const char *);
-static void diverterrors(const char *, int, Eptr **, int, boolean,  int);
-static int oktotouch(const char *);
+static void diverterrors(const char *, int, Eptr **, int, bool, int);
+static bool oktotouch(const char *);
 static void execvarg(int, int *, char ***);
-static boolean edit(const char *);
+static bool edit(const char *);
 static void insert(int);
-static void text(Eptr, boolean);
-static boolean writetouched(int);
-static int mustoverwrite(FILE *, FILE *);
-static int mustwrite(const char *, size_t, FILE *);
-static void errorprint(FILE *, Eptr, boolean);
+static void text(Eptr, bool);
+static bool writetouched(bool);
+static bool mustoverwrite(FILE *, FILE *);
+static bool mustwrite(const char *, size_t, FILE *);
+static void errorprint(FILE *, Eptr, bool);
 static int probethisfile(const char *);
 
 static const char *
@@ -120,7 +120,7 @@ findfiles(int my_nerrors, Eptr *my_error
 	my_nfiles = countfiles(my_errors);
 
 	my_files = Calloc(my_nfiles + 3, sizeof (Eptr*));
-	touchedfiles = Calloc(my_nfiles+3, sizeof(boolean));
+	touchedfiles = Calloc(my_nfiles+3, sizeof(touchedfiles[0]));
 	/*
 	 * Now, partition off the error messages
 	 * into those that are synchronization, discarded or
@@ -199,7 +199,7 @@ filenames(int my_nfiles, Eptr **my_files
 {
 	int fi;
 	const char *sep = " ";
-	int someerrors;
+	bool someerrors;
 
 	/*
 	 * first, simply dump out errors that
@@ -207,8 +207,8 @@ filenames(int my_nfiles, Eptr **my_files
 	 */
 	someerrors = nopertain(my_files);
 
-	if (my_nfiles) {
-		someerrors++;
+	if (my_nfiles > 0) {
+		someerrors = true;
 		if (terse)
 			fprintf(stdout, "%d file%s", my_nfiles, plural(my_nfiles));
 		else
@@ -233,21 +233,21 @@ filenames(int my_nfiles, Eptr **my_files
 /*
  * Dump out errors that don't pertain to any file
  */
-static int
+static bool
 nopertain(Eptr **my_files)
 {
 	int type;
-	int someerrors = 0;
+	bool someerrors = false;
 	Eptr *erpp;
 	Eptr errorp;
 
 	if (my_files[1] - my_files[0] <= 0)
-		return 0;
+		return false;
 	for (type = C_UNKNOWN; NOTSORTABLE(type); type++) {
 		if (class_count[type] <= 0)
 			continue;
 		if (type > C_SYNC)
-			someerrors++;
+			someerrors = true;
 		if (terse) {
 			fprintf(stdout, "\t%d %s errors NOT PRINTED\n",
 				class_count[type], class_table[type]);
@@ -274,7 +274,7 @@ touchfiles(int my_nfiles, Eptr **my_file
 	int fi;
 	Eptr *erpp;
 	int ntrueerrors;
-	boolean scribbled;
+	bool scribbled;
 	int n_pissed_on;	/* # of file touched*/
 	int spread;
 
@@ -326,7 +326,7 @@ touchfiles(int my_nfiles, Eptr **my_file
 static void
 hackfile(const char *name, Eptr **my_files, int ix, int my_nerrors)
 {
-	boolean previewed;
+	bool previewed;
 	int errordest;	/* where errors go */
 
 	if (!oktotouch(name)) {
@@ -349,14 +349,14 @@ hackfile(const char *name, Eptr **my_fil
 		/*
 		 * overwrite the original file
 		 */
-		writetouched(1);
+		writetouched(true);
 	}
 }
 
-static boolean
+static bool
 preview(int my_nerrors, Eptr **my_files, int ix)
 {
-	int back;
+	bool back;
 	Eptr *erpp;
 
 	if (my_nerrors <= 0)
@@ -433,7 +433,7 @@ settotouch(const char *name)
 
 static void
 diverterrors(const char *name, int dest, Eptr **my_files, int ix,
-	     boolean previewed, int nterrors)
+	     bool previewed, int nterrors)
 {
 	int my_nerrors;
 	Eptr *erpp;
@@ -471,7 +471,7 @@ diverterrors(const char *name, int dest,
 	}
 }
 
-static int
+static bool
 oktotouch(const char *filename)
 {
 	const char *src;
@@ -480,9 +480,9 @@ oktotouch(const char *filename)
 
 	pat = suffixlist;
 	if (pat == 0)
-		return 0;
+		return false;
 	if (*pat == '*')
-		return 1;
+		return true;
 	while (*pat++ != '.')
 		continue;
 	--pat;		/* point to the period */
@@ -491,26 +491,27 @@ oktotouch(const char *filename)
 	     src > filename && *src != '.'; --src)
 		continue;
 	if (*src != '.')
-		return 0;
+		return false;
 
-	for (src++, pat++, osrc = src; *src && *pat; src = osrc, pat++) {
-		for (;   *src			/* not at end of the source */
-		      && *pat			/* not off end of pattern */
+	for (src++, pat++, osrc = src;
+	    *src != '\0' && *pat != '\0'; src = osrc, pat++) {
+		for (;   *src != '\0'		/* not at end of the source */
+		      && *pat != '\0'		/* not off end of pattern */
 		      && *pat != '.'		/* not off end of sub pattern */
 		      && *pat != '*'		/* not wild card */
 		      && *src == *pat;		/* and equal... */
 		      src++, pat++)
 			continue;
 		if (*src == 0 && (*pat == 0 || *pat == '.' || *pat == '*'))
-			return 1;
+			return true;
 		if (*src != 0 && *pat == '*')
-			return 1;
-		while (*pat && *pat != '.')
+			return true;
+		while (*pat != '\0' && *pat != '.')
 			pat++;
-		if (!*pat)
-			return 0;
+		if (*pat == '\0')
+			return false;
 	}
-	return 0;
+	return false;
 }
 
 /*
@@ -561,13 +562,13 @@ static const char *o_name;
 static char n_name[MAXPATHLEN];
 static int o_lineno;
 static int n_lineno;
-static boolean tempfileopen = false;
+static bool tempfileopen = false;
 
 /*
  * open the file; guaranteed to be both readable and writable
  * Well, if it isn't, then return TRUE if something failed
  */
-static boolean
+static bool
 edit(const char *name)
 {
 	int fd;
@@ -612,7 +613,7 @@ insert(int place)
 }
 
 static void
-text(Eptr p, boolean use_all)
+text(Eptr p, bool use_all)
 {
 	int offset = use_all ? 0 : 2;
 
@@ -629,23 +630,23 @@ text(Eptr p, boolean use_all)
  * write the touched file to its temporary copy,
  * then bring the temporary in over the local file
  */
-static boolean
-writetouched(int overwrite)
+static bool
+writetouched(bool overwrite)
 {
 	size_t nread;
 	FILE *localfile;
 	FILE *temp;
-	int botch;
-	int oktorm;
+	bool botch;
+	bool oktorm;
 
-	botch = 0;
-	oktorm = 1;
+	botch = false;
+	oktorm = true;
 	while ((nread = fread(edbuf, 1, sizeof(edbuf), o_touchedfile)) != 0) {
 		if (nread != fwrite(edbuf, 1, nread, n_touchedfile)) {
 			/*
 			 * Catastrophe in temporary area: file system full?
 			 */
-			botch = 1;
+			botch = true;
 			warn("write failure: No errors inserted in `%s'",
 			    o_name);
 		}
@@ -657,17 +658,16 @@ writetouched(int overwrite)
 	 * Now, copy the temp file back over the original
 	 * file, thus preserving links, etc
 	 */
-	if (botch == 0 && overwrite) {
-		botch = 0;
+	if (!botch && overwrite) {
 		localfile = NULL;
 		temp = NULL;
 		if ((localfile = fopen(o_name, "w")) == NULL) {
 			warn("Can't open file `%s' to overwrite", o_name);
-			botch++;
+			botch = true;
 		}
 		if ((temp = fopen(n_name, "r")) == NULL) {
 			warn("Can't open file `%s' to read", n_name);
-			botch++;
+			botch = true;
 		}
 		if (!botch)
 			oktorm = mustoverwrite(localfile, temp);
@@ -676,7 +676,7 @@ writetouched(int overwrite)
 		if (temp != NULL)
 			fclose(temp);
 	}
-	if (oktorm == 0)
+	if (!oktorm)
 		errx(1, "Catastrophe: A copy of `%s': was saved in `%s'",
 		    o_name, n_name);
 	/*
@@ -688,33 +688,33 @@ writetouched(int overwrite)
 }
 
 /*
- * return 1 if the tmpfile can be removed after writing it out
+ * return whether the tmpfile can be removed after writing it out
  */
-static int
+static bool
 mustoverwrite(FILE *preciousfile, FILE *temp)
 {
 	size_t nread;
 
 	while ((nread = fread(edbuf, 1, sizeof(edbuf), temp)) != 0) {
-		if (mustwrite(edbuf, nread, preciousfile) == 0)
-			return 0;
+		if (!mustwrite(edbuf, nread, preciousfile))
+			return false;
 	}
-	return 1;
+	return true;
 }
 
 /*
- * return 0 on catastrophe
+ * return false on catastrophe
  */
-static int
+static bool
 mustwrite(const char *base, size_t n, FILE *preciousfile)
 {
 	size_t nwrote;
 
 	if (n == 0)
-		return 1;
+		return true;
 	nwrote = fwrite(base, 1, n, preciousfile);
 	if (nwrote == n)
-		return 1;
+		return true;
 	warn("write failed");
 	switch (inquire(terse
 	    ? "Botch overwriting: retry? "
@@ -722,25 +722,25 @@ mustwrite(const char *base, size_t n, FI
 	case Q_YES:
 	case Q_yes:
 		mustwrite(base + nwrote, n - nwrote, preciousfile);
-		return 1;
+		return true;
 	case Q_NO:
 	case Q_no:
 		switch (inquire("Are you sure? ")) {
 		case Q_error:
 		case Q_YES:
 		case Q_yes:
-			return 0;
+			return false;
 		case Q_NO:
 		case Q_no:
 			mustwrite(base + nwrote, n - nwrote, preciousfile);
-			return 1;
+			return true;
 		default:
 			abort();
 		}
 		/* FALLTHROUGH */
 	case Q_error:
 	default:
-		return 0;
+		return false;
 	}
 }
 
@@ -760,7 +760,7 @@ onintr(int sig)
 			/*
 			 * Don't overwrite the original file!
 			 */
-			writetouched(0);
+			writetouched(false);
 		}
 		(void)raise_default_signal(sig);
 		_exit(127);
@@ -769,7 +769,7 @@ onintr(int sig)
 }
 
 static void
-errorprint(FILE *place, Eptr errorp, boolean print_all)
+errorprint(FILE *place, Eptr errorp, bool print_all)
 {
 	int offset = print_all ? 0 : 2;
 

Reply via email to