From b7b56f24dd304cb4dfd288e46f98b1edb7eb3a9c Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Sat, 7 Feb 2015 06:28:08 +0000 Subject: be more careful about argc == 0 --- demandoc.c | 9 +++++---- main.c | 17 ++++++++++------- 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 * @@ -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, "", 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 * Copyright (c) 2010-2012, 2014, 2015 Ingo Schwarze @@ -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, "", &rc); } - while (argc) { + while (argc > 0) { rctmp = mparse_open(curp.mp, &fd, resp != NULL ? resp->file : *argv); if (rc < rctmp) -- cgit v1.2.3