From 3109b047ccc50cd218c1c80afb3ff5ee3de21ccf Mon Sep 17 00:00:00 2001 From: Oliver Lehmann Date: Thu, 27 Aug 2009 08:53:03 +0000 Subject: [PATCH] more work --- WEGA/src/lib/libc/gen/TODO | 2 -- WEGA/src/lib/libc/gen/perror.c | 24 +++++++++++++++++++----- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/WEGA/src/lib/libc/gen/TODO b/WEGA/src/lib/libc/gen/TODO index 72ea18a..b59015b 100644 --- a/WEGA/src/lib/libc/gen/TODO +++ b/WEGA/src/lib/libc/gen/TODO @@ -3,7 +3,5 @@ execvp.o /z/src/libc/orig_obj/execvp.o differ: char 6, line 1 getgrent.o /z/src/libc/orig_obj/getgrent.o differ: char 132, line 1 malloc.o /z/src/libc/orig_obj/malloc.o differ: char 5, line 1 nlist.o /z/src/libc/orig_obj/nlist.o differ: char 5, line 1 -perror.o /z/src/libc/orig_obj/perror.o differ: char 6, line 1 qsort.o /z/src/libc/orig_obj/qsort.o differ: char 5, line 1 ttyname.o /z/src/libc/orig_obj/ttyname.o differ: char 5, line 1 - diff --git a/WEGA/src/lib/libc/gen/perror.c b/WEGA/src/lib/libc/gen/perror.c index 523155e..3924ef8 100644 --- a/WEGA/src/lib/libc/gen/perror.c +++ b/WEGA/src/lib/libc/gen/perror.c @@ -6,9 +6,11 @@ */ int errno; -extern int sys_nerr; -extern char *sys_errlist[]; - +int sys_nerr; +char *sys_errlist[]; +int deverr; +int dev_nerr; +char *dev_errlist[]; perror(s) char *s; { @@ -16,8 +18,20 @@ char *s; register n; c = "Unknown error"; - if(errno < sys_nerr) - c = sys_errlist[errno]; + + if(errno == 5) + goto deve; + else if (errno != 6) + goto syse; +deve: + if(deverr) { + if(deverr < dev_nerr) + c = dev_errlist[deverr]; + } else { +syse: + if(errno < sys_nerr) + c = sys_errlist[errno]; + } n = strlen(s); if(n) { write(2, s, n);