diff options
-rw-r--r-- | misc.c | 33 |
1 files changed, 19 insertions, 14 deletions
@@ -267,19 +267,30 @@ makefile_fatal (file, lineno, s1, s2, s3, s4, s5, s6) die (1); } +#ifndef HAVE_STRERROR +char * +strerror (errnum) + int errnum; +{ + extern int errno, sys_nerr; + extern char *sys_errlist[]; + static char buf[] = "Unknown error 12345678901234567890"; + + if (errno < sys_nerr) + return sys_errlist[errnum]; + + sprintf ("Unknown error %d", buf, errnum); + return buf; +} +#endif + /* Print an error message from errno. */ void perror_with_name (str, name) char *str, *name; { - extern int errno, sys_nerr; - extern char *sys_errlist[]; - - if (errno < sys_nerr) - error ("%s%s: %s", str, name, sys_errlist[errno]); - else - error ("%s%s: Unknown error %d", str, name, errno); + error ("%s%s: %s", str, name, strerror (errno)); } /* Print an error message from errno and exit. */ @@ -288,13 +299,7 @@ void pfatal_with_name (name) char *name; { - extern int errno, sys_nerr; - extern char *sys_errlist[]; - - if (errno < sys_nerr) - fatal ("%s: %s", name, sys_errlist[errno]); - else - fatal ("%s: Unknown error %d", name, errno); + fatal ("%s: %s", name, strerror (errno)); /* NOTREACHED */ } |