Written by Fred Fish. fnf@cygnus.com
This file is in the public domain. --Per Bothner. */
-#include "ansidecl.h"
-#include "libiberty.h"
-
#include "config.h"
#ifdef HAVE_SYS_ERRLIST
#define sys_errlist sys_errlist__
#endif
+#include "ansidecl.h"
+#include "libiberty.h"
+
#include <stdio.h>
#include <errno.h>
# define MAX(a,b) ((a) > (b) ? (a) : (b))
#endif
-static void init_error_tables PARAMS ((void));
+static void init_error_tables (void);
/* Translation table for errno values. See intro(2) in most UNIX systems
Programmers Reference Manuals.
struct error_info
{
- int value; /* The numeric value from <errno.h> */
- const char *name; /* The equivalent symbolic value */
+ const int value; /* The numeric value from <errno.h> */
+ const char *const name; /* The equivalent symbolic value */
#ifndef HAVE_SYS_ERRLIST
- const char *msg; /* Short message about this value */
+ const char *const msg; /* Short message about this value */
#endif
};
ENTRY(EREMCHG, "EREMCHG", "Remote address changed"),
#endif
#if defined (ELIBACC)
- ENTRY(ELIBACC, "ELIBACC", "Can not access a needed shared library"),
+ ENTRY(ELIBACC, "ELIBACC", "Cannot access a needed shared library"),
#endif
#if defined (ELIBBAD)
ENTRY(ELIBBAD, "ELIBBAD", "Accessing a corrupted shared library"),
#ifndef HAVE_SYS_ERRLIST
+#define sys_nerr sys_nerr__
+#define sys_errlist sys_errlist__
static int sys_nerr;
static const char **sys_errlist;
#else
+
+#ifndef sys_nerr
extern int sys_nerr;
+#endif
+#ifndef sys_errlist
extern char *sys_errlist[];
-
#endif
+#endif
/*
*/
static void
-init_error_tables ()
+init_error_tables (void)
{
const struct error_info *eip;
int nbytes;
/*
-@deftypefn Replacement int errno_max (void)
+@deftypefn Extension int errno_max (void)
Returns the maximum @code{errno} value for which a corresponding
symbolic name or message is available. Note that in the case where we
should check the size of the table (@code{sys_nerr}) before indexing
it, since new error codes may be added to the system before they are
added to the table. Thus @code{sys_nerr} might be smaller than value
-implied by the largest @code{errno} value defined in @file{errno.h}.
+implied by the largest @code{errno} value defined in @code{<errno.h>}.
We return the maximum value that can be used to obtain a meaningful
symbolic name or message.
*/
int
-errno_max ()
+errno_max (void)
{
int maxsize;
/*
-@deftypefn Replacement char* strerror (int @var{errnoval})
+@deftypefn Supplemental char* strerror (int @var{errnoval})
Maps an @code{errno} number to an error message string, the contents
of which are implementation defined. On systems which have the
If the supplied error number is within the valid range of indices for
the @code{sys_errlist}, but no message is available for the particular
-error number, then returns the string @samp{"Error NUM"}, where NUM is
-the error number.
+error number, then returns the string @samp{Error @var{num}}, where
+@var{num} is the error number.
If the supplied error number is not a valid index into
-@code{sys_errlist}, returns NULL.
+@code{sys_errlist}, returns @code{NULL}.
The returned string is only guaranteed to be valid only until the
next call to @code{strerror}.
*/
char *
-strerror (errnoval)
- int errnoval;
+strerror (int errnoval)
{
- char *msg;
+ const char *msg;
static char buf[32];
#ifndef HAVE_SYS_ERRLIST
/*
-@deftypefn Replacement const char* strerrno (int @var{errnum})
+@deftypefn Replacement {const char*} strerrno (int @var{errnum})
Given an error number returned from a system call (typically returned
in @code{errno}), returns a pointer to a string containing the
-symbolic name of that error number, as found in @file{errno.h}.
+symbolic name of that error number, as found in @code{<errno.h>}.
If the supplied error number is within the valid range of indices for
symbolic names, but no name is available for the particular error
-number, then returns the string @samp{"Error NUM"}, where NUM is the
-error number.
+number, then returns the string @samp{Error @var{num}}, where @var{num}
+is the error number.
If the supplied error number is not within the range of valid
-indices, then returns NULL.
+indices, then returns @code{NULL}.
The contents of the location pointed to are only guaranteed to be
-valid until the next call to strerrno.
+valid until the next call to @code{strerrno}.
@end deftypefn
*/
const char *
-strerrno (errnoval)
- int errnoval;
+strerrno (int errnoval)
{
const char *name;
static char buf[32];
/*
-@deftypefn Replacement int strtoerrno (const char *@var{name})
+@deftypefn Extension int strtoerrno (const char *@var{name})
-Given the symbolic name of a error number (e.g., @code{EACCESS}), map it
+Given the symbolic name of a error number (e.g., @code{EACCES}), map it
to an errno value. If no translation is found, returns 0.
@end deftypefn
*/
int
-strtoerrno (name)
- const char *name;
+strtoerrno (const char *name)
{
int errnoval = 0;
#include <stdio.h>
int
-main ()
+main (void)
{
int errn;
int errnmax;
const char *name;
- char *msg;
+ const char *msg;
char *strerror ();
errnmax = errno_max ();