aboutsummaryrefslogtreecommitdiff
path: root/src/emess.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emess.c')
-rw-r--r--src/emess.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/emess.c b/src/emess.c
index 0c7f6c9e..7b6ebf75 100644
--- a/src/emess.c
+++ b/src/emess.c
@@ -37,13 +37,18 @@ emess(int code, char *fmt, ...) {
putc('\n', stderr);
/* if |code|==2, print errno code data */
if (code == 2 || code == -2)
- (void)fprintf(stderr, "Sys errno: %d: %s\n",
- errno,
+ {
+ int my_errno = errno;
#ifdef HAVE_STRERROR
- strerror(errno));
-#else
- "<system mess. texts unavail.>");
+ const char* my_strerror = strerror(my_errno);
+#endif
+#ifndef HAVE_STRERROR
+ const char* my_strerror = "<system mess. texts unavail.>";
#endif
+ (void)fprintf(stderr, "Sys errno: %d: %s\n",
+ my_errno, my_strerror);
+ }
+
/* post remainder of call data */
(void)vfprintf(stderr,fmt,args);
va_end(args);