summaryrefslogtreecommitdiff
path: root/gnu/usr.bin/groff/pfbtops/pfbtops.c
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/usr.bin/groff/pfbtops/pfbtops.c')
-rw-r--r--gnu/usr.bin/groff/pfbtops/pfbtops.c113
1 files changed, 0 insertions, 113 deletions
diff --git a/gnu/usr.bin/groff/pfbtops/pfbtops.c b/gnu/usr.bin/groff/pfbtops/pfbtops.c
deleted file mode 100644
index 54923abee43..00000000000
--- a/gnu/usr.bin/groff/pfbtops/pfbtops.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* This translates ps fonts in .pfb format to ASCII ps files. */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-/* Binary bytes per output line. */
-#define BYTES_PER_LINE (64/2)
-#define HEX_DIGITS "0123456789abcdef"
-
-static char *program_name;
-
-static void error(s)
- char *s;
-{
- fprintf(stderr, "%s: %s\n", program_name, s);
- exit(2);
-}
-
-static void usage()
-{
- fprintf(stderr, "usage: %s [-v] [pfb_file]\n", program_name);
- exit(1);
-}
-
-int main(argc, argv)
- int argc;
- char **argv;
-{
- int opt;
- extern int optind;
-
- program_name = argv[0];
-
- while ((opt = getopt(argc, argv, "v")) != EOF) {
- switch (opt) {
- case 'v':
- {
- extern char *version_string;
- fprintf(stderr, "pfbtops groff version %s\n", version_string);
- fflush(stderr);
- break;
- }
- case '?':
- usage();
- }
- }
-
- if (argc - optind > 1)
- usage();
- if (argc > optind && !freopen(argv[optind], "r", stdin))
- {
- perror(argv[optind]);
- exit(1);
- }
- for (;;)
- {
- int type, c, i;
- long n;
-
- c = getchar();
- if (c != 0x80)
- error("first byte of packet not 0x80");
- type = getchar();
- if (type == 3)
- break;
- if (type != 1 && type != 2)
- error("bad packet type");
- n = 0;
- for (i = 0; i < 4; i++)
- {
- c = getchar();
- if (c == EOF)
- error("end of file in packet header");
- n |= (long)c << (i << 3);
- }
- if (n < 0)
- error("negative packet length");
- if (type == 1)
- {
- while (--n >= 0)
- {
- c = getchar();
- if (c == EOF)
- error("end of file in text packet");
- if (c == '\r')
- c = '\n';
- putchar(c);
- }
- if (c != '\n')
- putchar('\n');
- }
- else
- {
- int count = 0;
- while (--n >= 0)
- {
- c = getchar();
- if (c == EOF)
- error("end of file in binary packet");
- if (count >= BYTES_PER_LINE)
- {
- putchar('\n');
- count = 0;
- }
- count++;
- putchar(HEX_DIGITS[(c >> 4) & 0xf]);
- putchar(HEX_DIGITS[c & 0xf]);
- }
- putchar('\n');
- }
- }
- exit(0);
-}