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 tmp[ERRMAX];
|
||||||
char *syserr;
|
char *syserr;
|
||||||
|
|
||||||
|
strecpy(tmp, tmp+ERRMAX, err);
|
||||||
|
rerrstr(err, n);
|
||||||
syserr = getsyserr();
|
syserr = getsyserr();
|
||||||
if(errno != EPLAN9)
|
strecpy(syserr, syserr+ERRMAX, tmp);
|
||||||
strcpy(syserr, strerror(errno));
|
|
||||||
|
|
||||||
strecpy(tmp, tmp+ERRMAX, syserr);
|
|
||||||
strecpy(syserr, syserr+ERRMAX, err);
|
|
||||||
strecpy(err, err+n, tmp);
|
|
||||||
errno = EPLAN9;
|
errno = EPLAN9;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -53,7 +50,9 @@ rerrstr(char *err, uint n)
|
||||||
char *syserr;
|
char *syserr;
|
||||||
|
|
||||||
syserr = getsyserr();
|
syserr = getsyserr();
|
||||||
if(errno != EPLAN9)
|
if(errno == EINTR)
|
||||||
|
strcpy(syserr, "interrupted");
|
||||||
|
else if(errno != EPLAN9)
|
||||||
strcpy(syserr, strerror(errno));
|
strcpy(syserr, strerror(errno));
|
||||||
strecpy(err, err+n, syserr);
|
strecpy(err, err+n, syserr);
|
||||||
}
|
}
|
||||||
|
|
@ -80,15 +79,3 @@ werrstr(char *fmt, ...)
|
||||||
errstr(buf, ERRMAX);
|
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