tavoid duplicated code. guarantee that EINTR is "interrupted". - plan9port - [fork] Plan 9 from user space
HTML git clone git://src.adamsgaard.dk/plan9port
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
DIR commit 66c10f02c3741400771f92bb98b9df22d3c1abdd
DIR parent f84eebeb8147a4527cea0ed4839c7c8becfaf8df
HTML Author: rsc <devnull@localhost>
Date: Tue, 4 Jan 2005 22:18:54 +0000
avoid duplicated code.
guarantee that EINTR is "interrupted".
Diffstat:
M src/lib9/errstr.c | 25 ++++++-------------------
1 file changed, 6 insertions(+), 19 deletions(-)
---
DIR diff --git a/src/lib9/errstr.c b/src/lib9/errstr.c
t@@ -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;
}
t@@ -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);
}
t@@ -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;
-}
-
-