Module Name:    src
Committed By:   macallan
Date:           Fri Jun 23 18:40:03 UTC 2017

Modified Files:
        src/usr.sbin/wsfontload: wsfontload.c

Log Message:
- don't use embedded font name if -N is given
- assume mono bitmap font when reading from stdin


To generate a diff of this commit:
cvs rdiff -u -r1.20 -r1.21 src/usr.sbin/wsfontload/wsfontload.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.sbin/wsfontload/wsfontload.c
diff -u src/usr.sbin/wsfontload/wsfontload.c:1.20 src/usr.sbin/wsfontload/wsfontload.c:1.21
--- src/usr.sbin/wsfontload/wsfontload.c:1.20	Fri Jun 23 17:40:15 2017
+++ src/usr.sbin/wsfontload/wsfontload.c	Fri Jun 23 18:40:03 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: wsfontload.c,v 1.20 2017/06/23 17:40:15 macallan Exp $ */
+/* $NetBSD: wsfontload.c,v 1.21 2017/06/23 18:40:03 macallan Exp $ */
 
 /*
  * Copyright (c) 1999
@@ -138,6 +138,7 @@ main(int argc, char **argv)
 	struct stat st;
 	int c, res, wsfd, ffd, verbose = 0;
 	size_t len;
+	int use_embedded_name = 1;
 	void *buf;
 	char nbuf[65];
 
@@ -170,6 +171,7 @@ main(int argc, char **argv)
 			break;
 		case 'N':
 			f.name = optarg;
+			use_embedded_name = 0;
 			break;
 		case 'b':
 			f.bitorder = WSDISPLAY_FONTORDER_R2L;
@@ -208,7 +210,7 @@ main(int argc, char **argv)
 	if (!f.stride)
 		f.stride = (f.fontwidth + 7) / 8;
 	len = f.fontheight * f.numchars * f.stride;
-	if (fstat(ffd, &st) == 0) {
+	if ((ffd != 0) && (fstat(ffd, &st) == 0)) {
 		if ((off_t)len != st.st_size) {
 			uint32_t foo = 0;
 			char b[65];
@@ -218,9 +220,11 @@ main(int argc, char **argv)
 			if (strncmp(b, "WSFT", 4) != 0)
 				errx(1, "invalid wsf file ");
 			read(ffd, b, 64);
-			b[64] = 0;
-			strcpy(nbuf, b);
-			f.name = nbuf;
+			if (use_embedded_name) {
+				b[64] = 0;
+				strcpy(nbuf, b);
+				f.name = nbuf;
+			}
 			read(ffd, &foo, 4);
 			f.firstchar = le32toh(foo);
 			read(ffd, &foo, 4);

Reply via email to