~mdw
/
sgt
/
halibut
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Bug in utoi(), which made it ignore a leading minus sign when
[sgt/halibut]
/
main.c
diff --git
a/main.c
b/main.c
index
eb95fc3
..
dae6581
100644
(file)
--- a/
main.c
+++ b/
main.c
@@
-43,6
+43,7
@@
int main(int argc, char **argv) {
int nogo;
int errs;
int reportcols;
int nogo;
int errs;
int reportcols;
+ int list_fonts;
int input_charset;
int debug;
int backendbits, prebackbits;
int input_charset;
int debug;
int backendbits, prebackbits;
@@
-68,6
+69,7
@@
int main(int argc, char **argv) {
nfiles = 0;
nogo = errs = FALSE;
reportcols = 0;
nfiles = 0;
nogo = errs = FALSE;
reportcols = 0;
+ list_fonts = 0;
input_charset = CS_ASCII;
debug = 0;
backendbits = 0;
input_charset = CS_ASCII;
debug = 0;
backendbits = 0;
@@
-83,7
+85,7
@@
int main(int argc, char **argv) {
*/
while (--argc) {
char *p = *++argv;
*/
while (--argc) {
char *p = *++argv;
- if (*p == '-') {
+ if (*p == '-'
&& p[1]
) {
/*
* An option.
*/
/*
* An option.
*/
@@
-148,6
+150,8
@@
int main(int argc, char **argv) {
} else if (!strcmp(opt, "-list-charsets")) {
listcharsets();
nogo = TRUE;
} 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 {
} else if (!strcmp(opt, "-precise")) {
reportcols = 1;
} else {
@@
-260,7
+264,10
@@
int main(int argc, char **argv) {
/*
* A non-option argument.
*/
/*
* A non-option argument.
*/
- infiles[nfiles++] = p;
+ if (!strcmp(p, "-"))
+ infiles[nfiles++] = NULL; /* special case: read stdin */
+ else
+ infiles[nfiles++] = p;
}
}
}
}
@@
-272,7
+279,7
@@
int main(int argc, char **argv) {
/*
* Do the work.
*/
/*
* Do the work.
*/
- if (nfiles == 0) {
+ if (nfiles == 0
&& !list_fonts
) {
error(err_noinput);
usage();
exit(EXIT_FAILURE);
error(err_noinput);
usage();
exit(EXIT_FAILURE);
@@
-297,6
+304,10
@@
int main(int argc, char **argv) {
idx = make_index();
sourceform = read_input(&in, idx);
idx = make_index();
sourceform = read_input(&in, idx);
+ if (list_fonts) {
+ listfonts();
+ exit(EXIT_SUCCESS);
+ }
if (!sourceform)
exit(EXIT_FAILURE);
if (!sourceform)
exit(EXIT_FAILURE);
@@
-459,6
+470,8
@@
static void dbg_prtwordlist(int level, word *w) {
printf("\"");
} else
printf("(no text)");
printf("\"");
} else
printf("(no text)");
+ if (w->breaks)
+ printf(" [breaks]");
if (w->alt) {
printf(" alt = {\n");
dbg_prtwordlist(level+1, w->alt);
if (w->alt) {
printf(" alt = {\n");
dbg_prtwordlist(level+1, w->alt);