|
|
1.1 root 1: /*
2: * $Locker: $
3: */
4: static char *rcsid = "$Header: showsnf.c,v 1.3 87/07/24 14:54:26 toddb Exp $";
5: #include <stdio.h>
6: #include <sys/types.h>
7: #include <sys/file.h>
8: #include <sys/stat.h>
9: #include <errno.h>
10: /* #include <malloc.h> */ extern char *malloc(), *realloc();
11:
12: #include "misc.h"
13: #include "Xmd.h"
14: #include "X.h"
15: #include "Xproto.h"
16: #include "fontstruct.h"
17: #include "font.h"
18:
19: #include "fc.h" /* used by converters only */
20: char *program;
21:
22: int glyphPad = DEFAULTGLPAD;
23: int bitorder = DEFAULTBITORDER;
24:
25: main(argc, argv)
26: int argc;
27: char **argv;
28: {
29: int verbose = 0,
30: fontcnt = 0;
31:
32: program = *argv;
33: for (argc--, argv++; argc; argc--, argv++) {
34: if (argv[0][0] == '-')
35: switch(argv[0][1]) {
36: case 'v': verbose++; break;
37: case 'm': bitorder = MSBFirst; break;
38: case 'l': bitorder = LSBFirst; break;
39: default: usage(); break;
40: }
41: else {
42: showfont(argv[0], verbose);
43: fontcnt++;
44: }
45: }
46: if (!fontcnt)
47: usage();
48: exit(0);
49: }
50:
51: usage()
52: {
53: fprintf(stderr, "Usage: %s [-v] fontfile ...\n", program);
54: exit(1);
55: }
56:
57: showfont(file, verbose)
58: char *file;
59: int verbose;
60: {
61: char *buf;
62: struct stat st;
63: TempFont tf;
64: FontInfoRec f;
65: int fd, i, strings;
66:
67: if (stat(file, &st) < 0) {
68: fprintf(stderr, "can't stat %s\n", file);
69: exit(1);
70: }
71:
72: fd = open(file, O_RDONLY);
73: if (fd < 0) {
74: fprintf(stderr, "can't open %s\n", file);
75: exit(1);
76: }
77: buf = malloc(st.st_size);
78: read(fd, buf, st.st_size);
79: close(fd);
80:
81: tf.pFI = (FontInfoPtr)buf;
82: tf.pCI = (CharInfoPtr)(buf + BYTESOFFONTINFO(tf.pFI));
83: tf.pGlyphs = ((unsigned char *)tf.pCI) + BYTESOFCHARINFO(tf.pFI);
84: tf.pFP = (FontPropPtr)(tf.pGlyphs + BYTESOFGLYPHINFO(tf.pFI));
85: strings = (int)tf.pFP + BYTESOFPROPINFO(tf.pFI);
86:
87: for (i=0; i<tf.pFI->nProps; i++) {
88: tf.pFP[i].name += strings;
89: if (tf.pFP[i].indirect)
90: tf.pFP[i].value += strings;
91: }
92: printf("\n\n------------- %s ---------------\n\n", file);
93: DumpFont(&tf, verbose);
94: free(buf);
95: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.