diff options
Diffstat (limited to 'bdftopcf/bdftopcf.c')
-rw-r--r-- | bdftopcf/bdftopcf.c | 276 |
1 files changed, 139 insertions, 137 deletions
diff --git a/bdftopcf/bdftopcf.c b/bdftopcf/bdftopcf.c index 10e5b1279..da8393812 100644 --- a/bdftopcf/bdftopcf.c +++ b/bdftopcf/bdftopcf.c @@ -26,6 +26,10 @@ from The Open Group. */ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + #include <X11/X.h> #include <X11/Xproto.h> #include <X11/fonts/fontmisc.h> @@ -38,155 +42,153 @@ from The Open Group. #include <X11/Xos.h> int -main (int argc, char *argv[]) +main(int argc, char *argv[]) { - FontRec font; - FontFilePtr input, output; - char *input_name = NULL, *output_name = NULL; - char *program_name; - int bit, byte, glyph, scan; + FontRec font = { 0 }; + + FontFilePtr input, output; + + char *input_name = NULL, *output_name = NULL; - bzero(&font, sizeof(FontRec)); + char *program_name; - FontDefaultFormat (&bit, &byte, &glyph, &scan); + int bit, byte, glyph, scan; + + FontDefaultFormat(&bit, &byte, &glyph, &scan); program_name = argv[0]; argc--, argv++; while (argc-- > 0) { - if (argv[0][0] == '-') { - switch (argv[0][1]) { - case 'p': - switch (argv[0][2]) { - case '1': - case '2': - case '4': - case '8': - if (argv[0][3] != '\0') - goto usage; - glyph = argv[0][2] - '0'; - break; - default: - goto usage; - } - break; - - case 'u': - switch (argv[0][2]) { - case '1': - case '2': - case '4': - if (argv[0][3] != '\0') - goto usage; - scan = argv[0][2] - '0'; - break; - default: - goto usage; - } - break; - - case 'm': - if (argv[0][2] != '\0') - goto usage; - bit = MSBFirst; - break; - - case 'l': - if (argv[0][2] != '\0') - goto usage; - bit = LSBFirst; - break; - - case 'M': - if (argv[0][2] != '\0') - goto usage; - byte = MSBFirst; - break; - - case 'L': - if (argv[0][2] != '\0') - goto usage; - byte = LSBFirst; - break; - - case 't': /* attempt to make terminal fonts if possible */ - if (argv[0][2] != '\0') - goto usage; - break; - - case 'i': /* inhibit ink metric computation */ - if (argv[0][2] != '\0') - goto usage; - break; - case 'o': - if (argv[0][2]) - output_name = argv[0] + 2; - else - { - if (!argv[1]) - goto usage; - argv++; - argc--; - output_name = argv[0]; - } - break; - default: - goto usage; - } - } else { - if (input_name) - { - usage: - fprintf(stderr, - "usage: %s [-p#] [-u#] [-m] [-l] [-M] [-L] [-t] [-i] [-o pcf file] [bdf file]\n", - program_name); - fprintf(stderr, - " where # for -p is 1, 2, 4, or 8\n"); - fprintf(stderr, - " and # for -s is 1, 2, or 4\n"); - exit(1); - } - input_name = argv[0]; - } - argv++; + if (argv[0][0] == '-') { + switch (argv[0][1]) { + case 'p': + switch (argv[0][2]) { + case '1': + case '2': + case '4': + case '8': + if (argv[0][3] != '\0') + goto usage; + glyph = argv[0][2] - '0'; + break; + default: + goto usage; + } + break; + + case 'u': + switch (argv[0][2]) { + case '1': + case '2': + case '4': + if (argv[0][3] != '\0') + goto usage; + scan = argv[0][2] - '0'; + break; + default: + goto usage; + } + break; + + case 'm': + if (argv[0][2] != '\0') + goto usage; + bit = MSBFirst; + break; + + case 'l': + if (argv[0][2] != '\0') + goto usage; + bit = LSBFirst; + break; + + case 'M': + if (argv[0][2] != '\0') + goto usage; + byte = MSBFirst; + break; + + case 'L': + if (argv[0][2] != '\0') + goto usage; + byte = LSBFirst; + break; + + case 't': /* attempt to make terminal fonts if possible */ + if (argv[0][2] != '\0') + goto usage; + break; + + case 'i': /* inhibit ink metric computation */ + if (argv[0][2] != '\0') + goto usage; + break; + case 'o': + if (argv[0][2]) + output_name = argv[0] + 2; + else { + if (!argv[1]) + goto usage; + argv++; + argc--; + output_name = argv[0]; + } + break; + + case 'v': + printf("%s\n", PACKAGE_STRING); + exit(0); + + default: + goto usage; + } + } + else { + if (input_name) { + usage: + fprintf(stderr, + "usage: %s [-p#] [-u#] [-m] [-l] [-M] [-L] [-t] [-i] [-o pcf file] [bdf file]\n" + " where # for -p is 1, 2, 4, or 8\n" + " and # for -s is 1, 2, or 4\n", + program_name); + exit(1); + } + input_name = argv[0]; + } + argv++; } - if (input_name) - { - input = FontFileOpen (input_name); - if (!input) - { - fprintf (stderr, "%s: can't open bdf source file %s\n", - program_name, input_name); - exit (1); - } + if (input_name) { + input = FontFileOpen(input_name); + if (!input) { + fprintf(stderr, "%s: can't open bdf source file %s\n", + program_name, input_name); + exit(1); + } } else - input = FontFileOpenFd (0); - if (bdfReadFont (&font, input, bit, byte, glyph, scan) != Successful) - { - fprintf (stderr, "%s: bdf input, %s, corrupt\n", - program_name, input_name ? input_name : "<stdin>"); - exit (1); + input = FontFileOpenFd(STDIN_FILENO); + if (bdfReadFont(&font, input, bit, byte, glyph, scan) != Successful) { + fprintf(stderr, "%s: bdf input, %s, corrupt\n", + program_name, input_name ? input_name : "<stdin>"); + exit(1); + } + if (output_name) { + output = FontFileOpenWrite(output_name); + if (!output) { + fprintf(stderr, "%s: can't open pcf sink file %s\n", + program_name, output_name); + exit(1); + } } - if (output_name) - { - output = FontFileOpenWrite (output_name); - if (!output) - { - fprintf (stderr, "%s: can't open pcf sink file %s\n", - program_name, output_name); - exit (1); - } - } else - output = FontFileOpenWriteFd (1); - if (pcfWriteFont (&font, output) != Successful) - { - fprintf (stderr, "%s: can't write pcf file %s\n", - program_name, output_name ? output_name : "<stdout>"); - if (output_name) - unlink (output_name); - exit (1); + output = FontFileOpenWriteFd(STDOUT_FILENO); + if (pcfWriteFont(&font, output) != Successful) { + fprintf(stderr, "%s: can't write pcf file %s\n", + program_name, output_name ? output_name : "<stdout>"); + if (output_name) + remove(output_name); + exit(1); } else - FontFileClose (output); + FontFileClose(output); return (0); } |