1 /* 2 * Replace %m by system error message. 3 * 4 * Author: Wietse Venema, Eindhoven University of Technology, The Netherlands. 5 */ 6 7#ifndef lint 8static char sccsid[] = "@(#) percent_m.c 1.1 94/12/28 17:42:37"; 9#endif 10 11#include <stdio.h> 12#include <errno.h> 13#include <string.h> 14 15#ifndef SYS_ERRLIST_DEFINED 16extern char *sys_errlist[]; 17extern int sys_nerr; 18#endif 19 20#include "mystdarg.h" 21 22char *percent_m(char *obuf, char *ibuf) 23{ 24 char *bp = obuf; 25 char *cp = ibuf; 26 27 while (*bp = *cp) 28 if (*cp == '%' && cp[1] == 'm') { 29 if (errno < sys_nerr && errno > 0) { 30 strcpy(bp, sys_errlist[errno]); 31 } else { 32 sprintf(bp, "Unknown error %d", errno); 33 } 34 bp += strlen(bp); 35 cp += 2; 36 } else { 37 bp++, cp++; 38 } 39 return (obuf); 40} 41