aboutsummaryrefslogtreecommitdiff
path: root/bdftopcf/bdftopcf.c
diff options
context:
space:
mode:
Diffstat (limited to 'bdftopcf/bdftopcf.c')
-rw-r--r--bdftopcf/bdftopcf.c276
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);
}