diff options
-rw-r--r-- | src/lib9/errstr.c | 25 |
1 files changed, 6 insertions, 19 deletions
diff --git a/src/lib9/errstr.c b/src/lib9/errstr.c index 578f4895..af989f47 100644 --- a/src/lib9/errstr.c +++ b/src/lib9/errstr.c @@ -36,13 +36,10 @@ errstr(char *err, uint n) char tmp[ERRMAX]; char *syserr; + strecpy(tmp, tmp+ERRMAX, err); + rerrstr(err, n); syserr = getsyserr(); - if(errno != EPLAN9) - strcpy(syserr, strerror(errno)); - - strecpy(tmp, tmp+ERRMAX, syserr); - strecpy(syserr, syserr+ERRMAX, err); - strecpy(err, err+n, tmp); + strecpy(syserr, syserr+ERRMAX, tmp); errno = EPLAN9; return 0; } @@ -53,7 +50,9 @@ rerrstr(char *err, uint n) char *syserr; syserr = getsyserr(); - if(errno != EPLAN9) + if(errno == EINTR) + strcpy(syserr, "interrupted"); + else if(errno != EPLAN9) strcpy(syserr, strerror(errno)); strecpy(err, err+n, syserr); } @@ -80,15 +79,3 @@ werrstr(char *fmt, ...) errstr(buf, ERRMAX); } -char* -gerrstr(void) -{ - char *s; - - s = getsyserr(); - if(errno != EPLAN9) - strcpy(s, strerror(errno)); - return s; -} - - |