00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include <stdio.h>
00021
00022 #include "config.h"
00023 #include "libiberty.h"
00024
00025 #ifdef VMS
00026 #include <errno.h>
00027 #if !defined (__STRICT_ANSI__) && !defined (__HIDE_FORBIDDEN_NAMES)
00028 extern char *strerror PARAMS ((int,...));
00029 #define DONT_DECLARE_STRERROR
00030 #endif
00031 #endif
00032
00033 #ifndef DONT_DECLARE_STRERROR
00034 extern char *strerror PARAMS ((int));
00035 #endif
00036
00037
00038
00039 #define ERRSTR_FMT "undocumented error #%d"
00040 static char xstrerror_buf[sizeof ERRSTR_FMT + 20];
00041
00042
00043
00044 char *
00045 xstrerror (errnum)
00046 int errnum;
00047 {
00048 char *errstr;
00049 #ifdef VMS
00050 char *(*vmslib_strerror) PARAMS ((int,...));
00051
00052
00053 vmslib_strerror = (char *(*) PARAMS ((int,...))) strerror;
00054
00055
00056
00057
00058
00059 errstr = (*vmslib_strerror) (errnum, vaxc$errno);
00060 #else
00061 errstr = strerror (errnum);
00062 #endif
00063
00064
00065 if (!errstr)
00066 {
00067 sprintf (xstrerror_buf, ERRSTR_FMT, errnum);
00068 errstr = xstrerror_buf;
00069 }
00070 return errstr;
00071 }