Improve what pg_strsignal prints if we haven't got strsignal(3).

Turns out that returning "unrecognized signal" is confusing.
Make it explicit that the platform lacks any support for signal names.
(At least of the machines in the buildfarm, only HPUX lacks it.)

Back-patch to v12 where we invented this function.

Discussion: https://postgr.es/m/3067.1566870481@sss.pgh.pa.us
This commit is contained in:
Tom Lane 2019-08-27 17:24:13 -04:00
parent b8b3a276d4
commit c9bd7f4f2b
1 changed files with 8 additions and 8 deletions

View File

@ -32,6 +32,11 @@
*
* This version guarantees to return a non-NULL pointer, although
* some platforms' versions of strsignal() reputedly do not.
*
* Note that the fallback cases just return constant strings such as
* "unrecognized signal". Project style is for callers to print the
* numeric signal value along with the result of this function, so
* there's no need to work harder than that.
*/
const char *
pg_strsignal(int signum)
@ -43,8 +48,8 @@ pg_strsignal(int signum)
*/
#ifdef HAVE_STRSIGNAL
result = strsignal(signum);
if (result)
return result;
if (result == NULL)
result = "unrecognized signal";
#else
/*
@ -52,13 +57,8 @@ pg_strsignal(int signum)
* However, it seems that all platforms with sys_siglist[] have also had
* strsignal() for many years now, so that was just a waste of code.
*/
result = "(signal names not available on this platform)";
#endif
/*
* Fallback case: just return "unrecognized signal". Project style is for
* callers to print the numeric signal value along with the result of this
* function, so there's no need to work harder than this.
*/
result = "unrecognized signal";
return result;
}