diff options
author | Gwenolé Beauchesne <gbeauchesne@mandriva.org> | 2003-02-18 16:48:11 +0000 |
---|---|---|
committer | Gwenolé Beauchesne <gbeauchesne@mandriva.org> | 2003-02-18 16:48:11 +0000 |
commit | 8182e7cfe7d9c60567e48b876282594395062530 (patch) | |
tree | bb743948c6e926539b030102b804b5708222e8d4 /mdk-stage1/dietlibc/lib/perror.c | |
parent | c93f95560d3fde9eaefcc62c454c67b8b5626fa7 (diff) | |
download | drakx-8182e7cfe7d9c60567e48b876282594395062530.tar drakx-8182e7cfe7d9c60567e48b876282594395062530.tar.gz drakx-8182e7cfe7d9c60567e48b876282594395062530.tar.bz2 drakx-8182e7cfe7d9c60567e48b876282594395062530.tar.xz drakx-8182e7cfe7d9c60567e48b876282594395062530.zip |
Merge in CVS dietlibc 0.21 for IA-64 and X86-64 support. However, drop the
following architectures we currently don't support: arm, mips, mipsel, parisc,
s390, sparc64.
Diffstat (limited to 'mdk-stage1/dietlibc/lib/perror.c')
-rw-r--r-- | mdk-stage1/dietlibc/lib/perror.c | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/mdk-stage1/dietlibc/lib/perror.c b/mdk-stage1/dietlibc/lib/perror.c index ecab7250b..0a45fb9d6 100644 --- a/mdk-stage1/dietlibc/lib/perror.c +++ b/mdk-stage1/dietlibc/lib/perror.c @@ -1,22 +1,24 @@ #include "dietfeatures.h" #include <unistd.h> #include <string.h> +#include <stdio.h> + +#define _BSD_SOURCE #include <errno.h> -extern char *sys_errlist[]; -extern int sys_nerr; -extern int errno; +extern const char __sys_err_unknown []; + +void perror ( const char* prepend ) +{ + register const char* message = __sys_err_unknown; + + if ( (unsigned int) errno < (unsigned int) __SYS_NERR ) + message = sys_errlist [errno]; -void perror(const char *s) { - register char *message="[unknown error]"; - write(2,s,strlen(s)); - write(2,": ",2); - if (errno>=0 && errno<sys_nerr) -#ifdef WANT_THREAD_SAFE - message=sys_errlist[*__errno_location()]; -#else - message=sys_errlist[errno]; -#endif - write(2,message,strlen(message)); - write(2,"\n",1); + if (prepend) { + write ( 2, prepend, strlen(prepend) ); + write ( 2, ": ", 2 ); + } + write ( 2, message, strlen(message) ); + write ( 2, "\n", 1 ); } |