aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--FICS/ficsmain.c24
1 files changed, 23 insertions, 1 deletions
diff --git a/FICS/ficsmain.c b/FICS/ficsmain.c
index 3de515d..06e1771 100644
--- a/FICS/ficsmain.c
+++ b/FICS/ficsmain.c
@@ -88,7 +88,29 @@ PRIVATE __dead void usage(char *);
PRIVATE void
BrokenPipe(int sig)
{
- (void) fprintf(stderr, "FICS: Got Broken Pipe (%d)\n", sig);
+ char buf[1024] = { '\0' };
+
+ // NOLINTBEGIN
+ switch (sig) {
+ case SIGPIPE:
+ (void) snprintf(buf, sizeof buf, "FICS: Got signal %d "
+ "(SIGPIPE): ", sig);
+ break;
+ default:
+ (void) snprintf(buf, sizeof buf, "FICS: Got signal %d "
+ "(Unknown): ", sig);
+ break;
+ }
+
+ const char *desc = strsignal(sig);
+
+ (void) strlcat(buf, (desc ? desc : "n/a"), sizeof buf);
+
+ if (strlcat(buf, "\n", sizeof buf) >= sizeof buf)
+ /* null */;
+ else
+ (void) fputs(buf, stderr);
+ // NOLINTEND
}
PRIVATE void