summaryrefslogtreecommitdiffstats
path: root/main.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2015-02-07 06:28:08 +0000
committerIngo Schwarze <schwarze@openbsd.org>2015-02-07 06:28:08 +0000
commitf94c59bbe7eb707afda950ba464d3d0c2b94be7d (patch)
tree1635b53c0fd4bb792aa61cf289cd9efaf4e95e13 /main.c
parent1e390373a2e27a0047fae8db8c21d17e044c8376 (diff)
downloadmandoc-f94c59bbe7eb707afda950ba464d3d0c2b94be7d.tar.gz
be more careful about argc == 0
Diffstat (limited to 'main.c')
-rw-r--r--main.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/main.c b/main.c
index 06ce3cff..28ef4420 100644
--- a/main.c
+++ b/main.c
@@ -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)