diff options
author | 2019-07-14 18:16:13 +0000 | |
---|---|---|
committer | 2019-07-14 18:16:13 +0000 | |
commit | 67dcc2e5b969bc3dc00fcdd852cb6fd4ed9a2107 (patch) | |
tree | f0bd1ee5ae849c293f106884fd0c8d4d7237da63 | |
parent | 3438a5cfefb69c7f5343ce1e20296f7b635cabce (diff) | |
download | mandoc-67dcc2e5b969bc3dc00fcdd852cb6fd4ed9a2107.tar.gz mandoc-67dcc2e5b969bc3dc00fcdd852cb6fd4ed9a2107.tar.zst mandoc-67dcc2e5b969bc3dc00fcdd852cb6fd4ed9a2107.zip |
If messages are shown and output is printed without a pager, display
a heads-up on stderr at the end because otherwise, users may easily
miss the messages: because messages typically occur while parsing,
they typically preceed the output. This is most useful with flag
combinations like "-c -W all" but may also help in some unusual
error scenarios.
Inconvenient ordering of output originally pointed out by espie@
for the example situation that /tmp/ is not writeable.
-rw-r--r-- | main.c | 6 | ||||
-rw-r--r-- | mandoc.h | 3 | ||||
-rw-r--r-- | mandoc_msg.c | 11 |
3 files changed, 16 insertions, 4 deletions
@@ -1,4 +1,4 @@ -/* $Id: main.c,v 1.329 2019/07/10 19:39:01 schwarze Exp $ */ +/* $Id: main.c,v 1.330 2019/07/14 18:16:13 schwarze Exp $ */ /* * Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv> * Copyright (c) 2010-2012, 2014-2019 Ingo Schwarze <schwarze@openbsd.org> @@ -727,7 +727,9 @@ out: signum = WSTOPSIG(status); } tag_unlink(); - } + } else if (curp.outtype != OUTT_LINT) + mandoc_msg_summary(); + return (int)mandoc_msg_getrc(); } @@ -1,4 +1,4 @@ -/* $Id: mandoc.h,v 1.263 2019/07/10 19:39:01 schwarze Exp $ */ +/* $Id: mandoc.h,v 1.264 2019/07/14 18:16:13 schwarze Exp $ */ /* * Copyright (c) 2010, 2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv> * Copyright (c) 2012-2019 Ingo Schwarze <schwarze@openbsd.org> @@ -309,6 +309,7 @@ enum mandoclevel mandoc_msg_getrc(void); void mandoc_msg_setrc(enum mandoclevel); void mandoc_msg(enum mandocerr, int, int, const char *, ...) __attribute__((__format__ (__printf__, 4, 5))); +void mandoc_msg_summary(void); void mchars_alloc(void); void mchars_free(void); int mchars_num2char(const char *, size_t); diff --git a/mandoc_msg.c b/mandoc_msg.c index f3377640..e73dcfd8 100644 --- a/mandoc_msg.c +++ b/mandoc_msg.c @@ -1,4 +1,4 @@ -/* $Id: mandoc_msg.c,v 1.7 2019/07/10 19:39:01 schwarze Exp $ */ +/* $Id: mandoc_msg.c,v 1.8 2019/07/14 18:16:13 schwarze Exp $ */ /* * Copyright (c) 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> * Copyright (c) 2014-2019 Ingo Schwarze <schwarze@openbsd.org> @@ -355,3 +355,12 @@ mandoc_msg(enum mandocerr t, int line, int col, const char *fmt, ...) } fputc('\n', fileptr); } + +void +mandoc_msg_summary(void) +{ + if (fileptr != NULL && rc != MANDOCLEVEL_OK) + fprintf(fileptr, + "%s: see above the output for %s messages\n", + getprogname(), level_name[rc]); +} |