From 67dcc2e5b969bc3dc00fcdd852cb6fd4ed9a2107 Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Sun, 14 Jul 2019 18:16:13 +0000 Subject: 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. --- main.c | 6 ++++-- mandoc.h | 3 ++- mandoc_msg.c | 11 ++++++++++- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/main.c b/main.c index 09fe8939..93c08205 100644 --- a/main.c +++ b/main.c @@ -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 * Copyright (c) 2010-2012, 2014-2019 Ingo Schwarze @@ -727,7 +727,9 @@ out: signum = WSTOPSIG(status); } tag_unlink(); - } + } else if (curp.outtype != OUTT_LINT) + mandoc_msg_summary(); + return (int)mandoc_msg_getrc(); } diff --git a/mandoc.h b/mandoc.h index ac518431..4a7e7aa7 100644 --- a/mandoc.h +++ b/mandoc.h @@ -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 * Copyright (c) 2012-2019 Ingo Schwarze @@ -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 * Copyright (c) 2014-2019 Ingo Schwarze @@ -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]); +} -- cgit v1.2.3