aboutsummaryrefslogtreecommitdiffstatshomepage
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
commitb7b56f24dd304cb4dfd288e46f98b1edb7eb3a9c (patch)
tree5deba0e20ba70fc71ccbb3ba20886c79a7bb35af
parentf5b94dbc5c8c520ba699b3625ee96b70beec3a75 (diff)
downloadmandoc-b7b56f24dd304cb4dfd288e46f98b1edb7eb3a9c.tar.gz
mandoc-b7b56f24dd304cb4dfd288e46f98b1edb7eb3a9c.tar.zst
mandoc-b7b56f24dd304cb4dfd288e46f98b1edb7eb3a9c.zip
be more careful about argc == 0
-rw-r--r--demandoc.c9
-rw-r--r--main.c17
2 files changed, 15 insertions, 11 deletions
diff --git a/demandoc.c b/demandoc.c
index 37043e30..d201be6c 100644
--- a/demandoc.c
+++ b/demandoc.c
@@ -1,4 +1,4 @@
-/* $Id: demandoc.c,v 1.13 2015/01/15 04:26:39 schwarze Exp $ */
+/* $Id: demandoc.c,v 1.14 2015/02/07 06:28:08 schwarze Exp $ */
/*
* Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
*
@@ -47,8 +47,9 @@ main(int argc, char *argv[])
int ch, fd, i, list;
extern int optind;
- progname = strrchr(argv[0], '/');
- if (progname == NULL)
+ if (argc < 1)
+ progname = "demandoc";
+ else if ((progname = strrchr(argv[0], '/')) == NULL)
progname = argv[0];
else
++progname;
@@ -81,7 +82,7 @@ main(int argc, char *argv[])
mp = mparse_alloc(MPARSE_SO, MANDOCLEVEL_BADARG, NULL, mchars, NULL);
assert(mp);
- if (0 == argc)
+ if (argc < 1)
pmandoc(mp, STDIN_FILENO, "<stdin>", list);
for (i = 0; i < argc; i++) {
diff --git a/main.c b/main.c
index ea1068d1..2bfa6254 100644
--- a/main.c
+++ b/main.c
@@ -1,4 +1,4 @@
-/* $Id: main.c,v 1.218 2015/02/03 21:16:02 schwarze Exp $ */
+/* $Id: main.c,v 1.219 2015/02/07 06:28:08 schwarze Exp $ */
/*
* Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010-2012, 2014, 2015 Ingo Schwarze <schwarze@openbsd.org>
@@ -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)