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