int nogo;
int errs;
int reportcols;
+ int list_fonts;
int input_charset;
int debug;
int backendbits, prebackbits;
nfiles = 0;
nogo = errs = FALSE;
reportcols = 0;
+ list_fonts = 0;
input_charset = CS_ASCII;
debug = 0;
backendbits = 0;
*/
while (--argc) {
char *p = *++argv;
- if (*p == '-') {
+ if (*p == '-' && p[1]) {
/*
* An option.
*/
/* do nothing */;
} else if (!strcmp(opt, "-input-charset")) {
if (!val) {
- errs = TRUE, error(err_optnoarg, opt);
+ errs = TRUE, err_optnoarg(opt);
} else {
int charset = charset_from_localenc(val);
if (charset == CS_NONE) {
- errs = TRUE, error(err_cmdcharset, val);
+ errs = TRUE, err_cmdcharset(val);
} else {
input_charset = charset;
}
} else if (!strcmp(opt, "-list-charsets")) {
listcharsets();
nogo = TRUE;
+ } else if (!strcmp(opt, "-list-fonts")) {
+ list_fonts = TRUE;
} else if (!strcmp(opt, "-precise")) {
reportcols = 1;
} else {
- errs = TRUE, error(err_nosuchopt, opt);
+ errs = TRUE, err_nosuchopt(opt);
}
}
p = NULL;
char opt[2];
opt[0] = c;
opt[1] = '\0';
- errs = TRUE, error(err_optnoarg, opt);
+ errs = TRUE, err_optnoarg(opt);
}
/*
* Now c is the option and p is the parameter.
*r = '\0';
/* XXX ad-hoc diagnostic */
if (!strcmp(s, "input-charset"))
- error(err_futileopt, "Cinput-charset",
+ err_futileopt("Cinput-charset",
"; use --input-charset");
cmdline_cfg_add(para, s);
r = s;
char opt[2];
opt[0] = c;
opt[1] = '\0';
- errs = TRUE, error(err_nosuchopt, opt);
+ errs = TRUE, err_nosuchopt(opt);
}
}
}
/*
* A non-option argument.
*/
- infiles[nfiles++] = p;
+ if (!strcmp(p, "-"))
+ infiles[nfiles++] = NULL; /* special case: read stdin */
+ else
+ infiles[nfiles++] = p;
}
}
/*
* Do the work.
*/
- if (nfiles == 0) {
- error(err_noinput);
+ if (nfiles == 0 && !list_fonts) {
+ err_noinput();
usage();
exit(EXIT_FAILURE);
}
idx = make_index();
sourceform = read_input(&in, idx);
+ if (list_fonts) {
+ listfonts();
+ exit(EXIT_SUCCESS);
+ }
if (!sourceform)
exit(EXIT_FAILURE);
printf("\"");
} else
printf("(no text)");
+ if (w->breaks)
+ printf(" [breaks]");
if (w->alt) {
printf(" alt = {\n");
dbg_prtwordlist(level+1, w->alt);