--- projects/libukcprog/src/formf.c 2003/08/21 21:27:39 1.2 +++ projects/libukcprog/src/formf.c 2003/08/21 21:53:42 1.4 @@ -266,6 +266,7 @@ va_list args; if (*fmt == '\0') { buf[pos] = '\0'; + errno=saved_errno; return buf; /* end of format string */ } @@ -411,14 +412,14 @@ gencase: if (modifier == 'h') print_sign = FALSE; break; case 'm': - if (saved_errno < 0 || saved_errno > sys_nerr || - *sys_errlist[saved_errno] == '\0') { + errno = 0; + s = strerror(saved_errno); + if (errno == EINVAL) { sprintf(errno_buffer, "errno %d out of range", saved_errno); s = errno_buffer; - } else - s = sys_errlist[saved_errno]; + } print_sign = FALSE; break; #ifdef VMS