Module Name:    xsrc
Committed By:   christos
Date:           Tue Sep 27 18:29:08 UTC 2022

Modified Files:
        xsrc/local/programs/bdfload: bdfload.c

Log Message:
- cast to unsigned char for ctype macros
- some warn/err improvements


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 xsrc/local/programs/bdfload/bdfload.c

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

Modified files:

Index: xsrc/local/programs/bdfload/bdfload.c
diff -u xsrc/local/programs/bdfload/bdfload.c:1.15 xsrc/local/programs/bdfload/bdfload.c:1.16
--- xsrc/local/programs/bdfload/bdfload.c:1.15	Tue Sep 27 06:57:23 2022
+++ xsrc/local/programs/bdfload/bdfload.c	Tue Sep 27 14:29:08 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: bdfload.c,v 1.15 2022/09/27 10:57:23 macallan Exp $	*/
+/*	$NetBSD: bdfload.c,v 1.16 2022/09/27 18:29:08 christos Exp $	*/
 
 /*
  * Copyright (c) 2018 Michael Lorenz
@@ -171,11 +171,11 @@ write_header(const char *filename, struc
 	snprintf(name, sizeof(name), "%s_%dx%d", f->name, 
 	    f->fontwidth, f->fontheight);
 	for (i = 0; i < strlen(name); i++) {
-		if (isblank((int)name[i]))
-			name[i]='_';
+		if (isblank((unsigned char)name[i]))
+			name[i] = '_';
 	}
 	if ((output = fopen(filename, "w")) == NULL) {
-		fprintf(stderr, "Can't open output file %s\n", filename);
+		warn("Can't open output file `%s'", filename);
 		return -1;
 	}
 	if (commentptr > 0) {
@@ -234,7 +234,7 @@ interpret(FILE *foo)
 {
 	char line[128], *arg, name[64] = "foo", *buffer;
 	int buflen = -1;
-	int len, in_char = 0, current = -1, stride = 0, charsize = 0;
+	int in_char = 0, current = -1, stride = 0, charsize = 0;
 	int width, height, x, y, num;
 	int first = 255, last = 0;
 	int left, top, lines;
@@ -243,28 +243,26 @@ interpret(FILE *foo)
 	int status;
 
 	while (fgets(line, sizeof(line), foo) != NULL) {
-		int i = 0;
+		size_t i = 0, len;
 		/* separate keyword from parameters */
 		len = strlen(line);
-		while (!isspace(line[i]) && (i < len)) i++;
+		while (!isspace((unsigned char)line[i]) && i < len) i++;
 		line[i] = 0;
 		arg = &line[i + 1];
 		i = 0;
 		len = strlen(arg);
 		/* get rid of garbage */
-		while ((!iscntrl(arg[i])) && (arg[i] != 0)) {
+		while ((!iscntrl((unsigned char)arg[i])) && (arg[i] != 0)) {
 			i++;
 		}
 		arg[i] = 0;
 		if (strcmp(line, "FAMILY_NAME") == 0) {
 			/* cut off quotation marks */
-			strncpy(name, arg + 1, 64);
-			name[strlen(name) - 1] = 0;
+			strlcpy(name, arg + 1, 64);
 			if (verbose) printf("name: %s\n", name);
 		} else if (strcmp(line, "COMMENT") == 0) {
 			commentptr += snprintf(&commentbuf[commentptr],
-					      2048 - commentptr,
-					      "%s\n", arg);
+			    sizeof(commentbuf) - commentptr, "%s\n", arg);
 		} else if (strcmp(line, "SPACING") == 0) {
 			char spc[16];
 			int res;
@@ -272,9 +270,11 @@ interpret(FILE *foo)
 			if (res > 0) {
 				if (verbose) printf("spacing %s\n", spc);
 				if ((spc[1] == 'P') && (force == 0)) {
-					fprintf(stderr, "This is a proportional font, results are probably not suitable for console use.\n");
-					fprintf(stderr, "Use -f to override if you want to try it anyway.\n");
-					exit(1);
+					warnx("This is a proportional font, "
+					   "results are probably not suitable "
+					   "for console use.");
+					errx(EXIT_FAILURE, "Use -f to override "
+					    "if you want to try it anyway.");
 				}
 			}
 		} else if (strcmp(line, "FONTBOUNDINGBOX") == 0) {
@@ -284,7 +284,7 @@ interpret(FILE *foo)
 			stride = (width + 7) >> 3;
 			if (verbose) printf("box %d x %d\n", width, height);
 			if (stride > 2) {
-				err(EXIT_FAILURE,
+				errx(EXIT_FAILURE,
 				    "no fonts wider than 16 work for now\n");
 			}
 			charsize = height * stride;
@@ -323,7 +323,8 @@ interpret(FILE *foo)
 				if (top < bt) bt = top;
 				if ((left + cwi) > br) br = left + cwi;
 				if ((top + che) > bb) bb = top + che;
-				if(dump && verbose) printf("top %d left %d\n", top, left);
+				if (dump && verbose)
+					printf("top %d left %d\n", top, left);
 			}
 		} else if (strcmp(line, "BITMAP") == 0) {
 			int i, j, k, l;
@@ -388,9 +389,9 @@ interpret(FILE *foo)
 		close(fdev);
 	}
 	else {
-		if (header == 0) {
+		if (header == 0)
 			write_wsf(ofile, &f, buffer, buflen);
-		} else
+		else
 			write_header(ofile, &f, buffer, buflen);
 	}
 }
@@ -398,7 +399,8 @@ interpret(FILE *foo)
 __dead void
 usage()
 {
-	fprintf(stderr, "usage: bdfload [-vdhf] [-e encoding] [-N name] [-o ofile.wsf] font.bdf\n");
+	fprintf(stderr, "Usage: %s [-vdhf] [-e encoding] [-N name] "
+	    "[-o ofile.wsf] font.bdf\n", getprogname());
 	exit(EXIT_FAILURE);
 }
 

Reply via email to