--- percent_m.c +++ percent_m.c @@ -13,7 +13,7 @@ #include extern int errno; -#ifndef SYS_ERRLIST_DEFINED +#if !defined(SYS_ERRLIST_DEFINED) && !defined(HAVE_STRERROR) extern char *sys_errlist[]; extern int sys_nerr; #endif @@ -29,11 +29,15 @@ while (*bp = *cp) if (*cp == '%' && cp[1] == 'm') { +#ifdef HAVE_STRERROR + strcpy(bp, strerror(errno)); +#else if (errno < sys_nerr && errno > 0) { strcpy(bp, sys_errlist[errno]); } else { sprintf(bp, "Unknown error %d", errno); } +#endif bp += strlen(bp); cp += 2; } else {