diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2015-02-07 06:28:08 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2015-02-07 06:28:08 +0000 |
commit | f94c59bbe7eb707afda950ba464d3d0c2b94be7d (patch) | |
tree | 1635b53c0fd4bb792aa61cf289cd9efaf4e95e13 /main.c | |
parent | 1e390373a2e27a0047fae8db8c21d17e044c8376 (diff) | |
download | mandoc-f94c59bbe7eb707afda950ba464d3d0c2b94be7d.tar.gz |
be more careful about argc == 0
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 15 |
1 files changed, 9 insertions, 6 deletions
@@ -134,8 +134,9 @@ main(int argc, char *argv[]) int options; int c; - progname = strrchr(argv[0], '/'); - if (progname == NULL) + if (argc < 1) + progname = "mandoc"; + else if ((progname = strrchr(argv[0], '/')) == NULL) progname = argv[0]; else ++progname; @@ -287,8 +288,10 @@ main(int argc, char *argv[]) /* Parse arguments. */ - argc -= optind; - argv += optind; + if (argc > 0) { + argc -= optind; + argv += optind; + } resp = NULL; /* @@ -414,13 +417,13 @@ main(int argc, char *argv[]) if (OUTT_MAN == curp.outtype) mparse_keep(curp.mp); - if (argc == 0) { + if (argc < 1) { if (use_pager && isatty(STDOUT_FILENO)) spawn_pager(); parse(&curp, STDIN_FILENO, "<stdin>", &rc); } - while (argc) { + while (argc > 0) { rctmp = mparse_open(curp.mp, &fd, resp != NULL ? resp->file : *argv); if (rc < rctmp) |