4 * Copyright (C) 2012-2014 Ali Gholami Rudi <ali at rudi dot ir>
6 * This program is released under the Modified BSD license.
14 void errmsg(char *fmt
, ...)
18 vfprintf(stderr
, fmt
, ap
);
22 void errdie(char *msg
)
28 void *xmalloc(long len
)
30 void *m
= malloc(len
);
32 errdie("neatroff: malloc() failed\n");
36 static int xopens(char *path
)
38 FILE *filp
= fopen(path
, "r");
45 "Usage: neatroff [options] input\n\n"
47 " -mx \tinclude macro x\n"
48 " -C \tenable compatibility mode\n"
49 " -Tdev \tset output device\n"
50 " -Fdir \tset font directory (" TROFFFDIR
")\n"
51 " -Mdir \tset macro directory (" TROFFMDIR
")\n";
53 int main(int argc
, char **argv
)
55 char fontdir
[PATHLEN
] = TROFFFDIR
;
56 char macrodir
[PATHLEN
] = TROFFMDIR
;
57 char dev
[PATHLEN
] = "utf";
61 for (i
= 1; i
< argc
; i
++) {
62 if (argv
[i
][0] != '-' || !argv
[i
][1])
69 sprintf(path
, "%s/%s.tmac", macrodir
, argv
[i
] + 2);
71 sprintf(path
, "%s/tmac.%s", macrodir
, argv
[i
] + 2);
73 sprintf(path
, "%s/%s", macrodir
, argv
[i
] + 2);
77 strcpy(fontdir
, argv
[i
][2] ? argv
[i
] + 2 : argv
[++i
]);
80 strcpy(macrodir
, argv
[i
][2] ? argv
[i
] + 2 : argv
[++i
]);
83 strcpy(dev
, argv
[i
][2] ? argv
[i
] + 2 : argv
[++i
]);
90 if (dev_open(fontdir
, dev
)) {
91 fprintf(stderr
, "neatroff: cannot open device %s\n", dev
);
98 in_queue(NULL
); /* reading from standard input */
100 in_queue(!strcmp("-", argv
[i
]) ? NULL
: argv
[i
]);