diff --git a/server-fn.c b/server-fn.c index 2247f1c5..815d25e2 100644 --- a/server-fn.c +++ b/server-fn.c @@ -335,8 +335,8 @@ server_destroy_pane(struct window_pane *wp, int notify) tim); } else if (WIFSIGNALED(wp->status)) { screen_write_nputs(&ctx, -1, &gc, - "Pane is dead (signal %d, %s)", - WTERMSIG(wp->status), + "Pane is dead (signal %s, %s)", + sig2name(WTERMSIG(wp->status)), tim); } diff --git a/tmux.c b/tmux.c index ee9b8037..f5cd4343 100644 --- a/tmux.c +++ b/tmux.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -164,6 +165,17 @@ setblocking(int fd, int state) } } +const char * +sig2name(int signo) +{ + static char s[11]; + + if (signo > 0 && signo < NSIG) + return (sys_signame[signo]); + xsnprintf(s, sizeof s, "%d", signo); + return (s); +} + const char * find_cwd(void) { diff --git a/tmux.h b/tmux.h index dc93928c..4baa4916 100644 --- a/tmux.h +++ b/tmux.h @@ -1727,6 +1727,7 @@ extern int ptm_fd; extern const char *shell_command; int checkshell(const char *); void setblocking(int, int); +const char *sig2name(int); const char *find_cwd(void); const char *find_home(void); const char *getversion(void);