Module Name:    xsrc
Committed By:   macallan
Date:           Mon Aug 29 14:54:04 UTC 2022

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

Log Message:
add -N option to override the font's name


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 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.11 xsrc/local/programs/bdfload/bdfload.c:1.12
--- xsrc/local/programs/bdfload/bdfload.c:1.11	Tue Aug 23 19:09:15 2022
+++ xsrc/local/programs/bdfload/bdfload.c	Mon Aug 29 14:54:04 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: bdfload.c,v 1.11 2022/08/23 19:09:15 macallan Exp $	*/
+/*	$NetBSD: bdfload.c,v 1.12 2022/08/29 14:54:04 macallan Exp $	*/
 
 /*
  * Copyright (c) 2018 Michael Lorenz
@@ -102,6 +102,7 @@ int dump = 0;
 int header = 0;
 char commentbuf[2048] = "";
 int commentptr = 0;
+char fontname[64] = "";
 
 void
 dump_line(char *gptr, int stride)
@@ -156,7 +157,7 @@ write_wsf(const char *oname, struct wsdi
 }
 
 int
-write_header(const char *filename, struct wsdisplay_font *f, char *name, 
+write_header(const char *filename, struct wsdisplay_font *f, 
              char *buffer, int buflen)
 {
 	FILE *output;
@@ -164,7 +165,7 @@ write_header(const char *filename, struc
 	char fontname[64], c, msk;
 	
 	/* now output as a header file */
-	snprintf(fontname, sizeof(fontname), "%s_%dx%d", name, 
+	snprintf(fontname, sizeof(fontname), "%s_%dx%d", f->name, 
 	    f->fontwidth, f->fontheight);
 	for (i = 0; i < strlen(fontname); i++) {
 		if (isblank((int)fontname[i]))
@@ -183,7 +184,7 @@ write_header(const char *filename, struc
 	fprintf(output, "static u_char %s_data[];\n", fontname);
 	fprintf(output, "\n");
 	fprintf(output, "static struct wsdisplay_font %s = {\n", fontname);
-	fprintf(output, "\t\"%s\",\t\t\t/* typeface name */\n", name);
+	fprintf(output, "\t\"%s\",\t\t\t/* typeface name */\n", f->name);
 	fprintf(output, "\t%d,\t\t\t\t/* firstchar */\n", f->firstchar);
 	fprintf(output, "\t%d,\t\t\t\t/* numchars */\n", f->numchars);
 	fprintf(output, "\t%d,\t\t\t\t/* encoding */\n", f->encoding);
@@ -228,7 +229,7 @@ write_header(const char *filename, struc
 void
 interpret(FILE *foo)
 {
-	char line[128], *arg, name[64] = "foop", *buffer;
+	char line[128], *arg, name[64] = "foo", *buffer;
 	int buflen = -1;
 	int len, in_char = 0, current = -1, stride = 0, charsize = 0;
 	int width, height, x, y, num;
@@ -355,7 +356,9 @@ interpret(FILE *foo)
 	f.numchars = last - first + 1;
 	f.stride = stride;
 	f.encoding = encoding;
-	f.name = name;
+	if (fontname[0] == 0) {
+		f.name = name;
+	} else f.name = fontname;
 	f.bitorder = WSDISPLAY_FONTORDER_L2R;
 	f.byteorder = WSDISPLAY_FONTORDER_L2R;
 	f.data = &buffer[first * charsize];
@@ -373,14 +376,14 @@ interpret(FILE *foo)
 		if (header == 0) {
 			write_wsf(ofile, &f, buffer, buflen);
 		} else
-			write_header(ofile, &f, name, buffer, buflen);
+			write_header(ofile, &f, buffer, buflen);
 	}
 }
 
 __dead void
 usage()
 {
-	fprintf(stderr, "usage: bdfload [-vdh] [-e encoding] [-o ofile.wsf] font.bdf\n");
+	fprintf(stderr, "usage: bdfload [-vdh] [-e encoding] [-N name] [-o ofile.wsf] font.bdf\n");
 	exit(EXIT_FAILURE);
 }
 
@@ -391,7 +394,7 @@ main(int argc, char *argv[])
 	const char *encname = NULL;
 
 	int c;
-	while ((c = getopt(argc, argv, "e:o:vdh")) != -1) {
+	while ((c = getopt(argc, argv, "e:o:N:vdh")) != -1) {
 		switch (c) {
 
 		/* font encoding */
@@ -419,7 +422,10 @@ main(int argc, char *argv[])
 		case 'h':
 			header = 1;
 			break;
-
+		case 'N':
+			strncpy(fontname, optarg, 64);
+			printf("given name: %s\n", fontname);
+			break;
 		case '?':	/* FALLTHROUGH */
 		default:
 			usage();

Reply via email to