avoid duplicated code.

guarantee that EINTR is "interrupted".
This commit is contained in:
rsc 2005-01-04 22:18:54 +00:00
parent f84eebeb81
commit 66c10f02c3

View file

@ -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;
}