X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/halibut/blobdiff_plain/f336fa9a110d8da793932b803ed0b5ad7fe72826..fafe28e8306978f5b4110e106db923accc08bc0f:/main.c diff --git a/main.c b/main.c index 4304c7c..60ad74f 100644 --- a/main.c +++ b/main.c @@ -43,6 +43,7 @@ int main(int argc, char **argv) { int nogo; int errs; int reportcols; + int list_fonts; int input_charset; int debug; int backendbits, prebackbits; @@ -50,7 +51,16 @@ int main(int argc, char **argv) { paragraph *cfg, *cfg_tail; void *pre_backend_data[16]; + /* + * Use the specified locale everywhere. It'll be used for + * output of error messages, and as the default character set + * for input files if one is not explicitly specified. + * + * However, we need to use standard numeric formatting for + * output of things like PDF. + */ setlocale(LC_ALL, ""); + setlocale(LC_NUMERIC, "C"); /* * Set up initial (default) parameters. @@ -59,6 +69,7 @@ int main(int argc, char **argv) { nfiles = 0; nogo = errs = FALSE; reportcols = 0; + list_fonts = 0; input_charset = CS_ASCII; debug = 0; backendbits = 0; @@ -139,6 +150,8 @@ int main(int argc, char **argv) { } 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 { @@ -263,7 +276,7 @@ int main(int argc, char **argv) { /* * Do the work. */ - if (nfiles == 0) { + if (nfiles == 0 && !list_fonts) { error(err_noinput); usage(); exit(EXIT_FAILURE); @@ -288,6 +301,10 @@ int main(int argc, char **argv) { idx = make_index(); sourceform = read_input(&in, idx); + if (list_fonts) { + listfonts(); + exit(EXIT_SUCCESS); + } if (!sourceform) exit(EXIT_FAILURE); @@ -450,6 +467,8 @@ static void dbg_prtwordlist(int level, word *w) { printf("\""); } else printf("(no text)"); + if (w->breaks) + printf(" [breaks]"); if (w->alt) { printf(" alt = {\n"); dbg_prtwordlist(level+1, w->alt);