Module Name: xsrc
Committed By: macallan
Date: Tue Aug 16 21:28:53 UTC 2022
Modified Files:
xsrc/local/programs/bdfload: bdfload.c
Log Message:
add -d option to dump rendered characters to the console
To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 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.4 xsrc/local/programs/bdfload/bdfload.c:1.5
--- xsrc/local/programs/bdfload/bdfload.c:1.4 Tue Aug 16 20:27:33 2022
+++ xsrc/local/programs/bdfload/bdfload.c Tue Aug 16 21:28:53 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: bdfload.c,v 1.4 2022/08/16 20:27:33 macallan Exp $ */
+/* $NetBSD: bdfload.c,v 1.5 2022/08/16 21:28:53 macallan Exp $ */
/*
* Copyright (c) 2018 Michael Lorenz
@@ -98,8 +98,24 @@ const char * const encname[] = {
const char *ofile = NULL;
int encoding = -1;
int verbose = 0;
+int dump = 0;
+void
+dump_line(char *gptr, int stride)
+{
+ int i, j, msk, c;
+ for (i = 0; i < stride; i++) {
+ c = gptr[i];
+ msk = 0x80;
+ for (j = 0; j < 8; j++) {
+ putchar((c & msk) != 0 ? '#' : ' ');
+ msk = msk >> 1;
+ }
+ printf("\n");
+ }
+}
+
void
interpret(FILE *foo)
{
@@ -164,6 +180,7 @@ interpret(FILE *foo)
if (current >= 0 && current < 256) {
if (current < first) first = current;
if (current > last) last = current;
+ if (dump) printf("glyph %d\n", current);
}
}
} else if (strcmp(line, "BBX") == 0) {
@@ -177,6 +194,7 @@ 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);
}
} else if (strcmp(line, "BITMAP") == 0) {
int i, j, k, l;
@@ -202,6 +220,13 @@ interpret(FILE *foo)
bptr16++;
}
}
+ if (dump) {
+ gptr = &buffer[charsize * current];
+ for (i = 0; i < height; i++) {
+ dump_line(gptr, stride);
+ gptr += stride;
+ }
+ }
}
}
if (verbose) {
@@ -270,7 +295,7 @@ interpret(FILE *foo)
__dead void
usage()
{
- fprintf(stderr, "usage: bdfload [-v] [-e encoding] [-o ofile.wsf] font.bdf\n");
+ fprintf(stderr, "usage: bdfload [-vd] [-e encoding] [-o ofile.wsf] font.bdf\n");
exit(EXIT_FAILURE);
}
@@ -281,7 +306,7 @@ main(int argc, char *argv[])
const char *encname = NULL;
int c;
- while ((c = getopt(argc, argv, "e:o:v")) != -1) {
+ while ((c = getopt(argc, argv, "e:o:vd")) != -1) {
switch (c) {
/* font encoding */
@@ -302,6 +327,10 @@ main(int argc, char *argv[])
verbose = 1;
break;
+ case 'd':
+ dump = 1;
+ break;
+
case '?': /* FALLTHROUGH */
default:
usage();