X-Git-Url: https://git.gag.com/?p=debian%2Famanda;a=blobdiff_plain;f=common-src%2Fstrerror.c;h=b33db7adc90badc113f0dbd3a2ebfd7f457931b5;hp=96bb4d7d13e814338ec707da70973799ae5b2b31;hb=1194fb66aa28d9929c3f2bef3cc6c1c3f40a60a4;hpb=2df780bff19c457b0debb7adc29972a0bc2a5dc2 diff --git a/common-src/strerror.c b/common-src/strerror.c index 96bb4d7..b33db7a 100644 --- a/common-src/strerror.c +++ b/common-src/strerror.c @@ -15,25 +15,28 @@ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ -/* $Id: strerror.c,v 1.4 1997/12/30 05:24:24 jrj Exp $ */ +/* $Id: strerror.c,v 1.6 1999/05/18 20:38:53 kashmir Exp $ */ #include "amanda.h" +#define UPREFIX "Unknown error: %u" + /* * Return the error message corresponding to some error number. */ char * strerror(e) - int e; + int e; { - extern int sys_nerr; - extern char *sys_errlist[]; - char number[NUM_STR_SIZE]; - static char *unknown = NULL; + extern int sys_nerr; + extern char *sys_errlist[]; + unsigned int errnum; + static char buf[NUM_STR_SIZE + sizeof(UPREFIX) + 1]; + + errnum = e; /* convert to unsigned */ - if ((unsigned)e < sys_nerr) - return sys_errlist[e]; - ap_snprintf(number, sizeof(number), "%d", e); - unknown = newstralloc2(unknown, "Unknown error: ", number); - return unknown; + if (errnum < sys_nerr) + return (sys_errlist[errnum]); + snprintf(buf, sizeof(buf), UPREFIX, errnum); + return (buf); }