avoid duplicated code.
guarantee that EINTR is "interrupted".
This commit is contained in:
parent
f84eebeb81
commit
66c10f02c3
1 changed files with 6 additions and 19 deletions
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue