Imported Upstream version 2.5.0
[debian/amanda] / common-src / strerror.c
index 96bb4d7d13e814338ec707da70973799ae5b2b31..b33db7adc90badc113f0dbd3a2ebfd7f457931b5 100644 (file)
  * 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);
 }