some small fixes
This commit is contained in:
parent
01252cb592
commit
78237f3ef8
|
@ -5,15 +5,22 @@ system(str)
|
|||
char *str;
|
||||
{
|
||||
int pid, exitstatus, waitval;
|
||||
int (*sigint)(), (*sigquit)();
|
||||
int i;
|
||||
|
||||
if ((pid = fork()) < 0) return -1;
|
||||
if ((pid = fork()) < 0) return -1; /* How do we distinguish this
|
||||
from exit status -1?
|
||||
*/
|
||||
if (pid == 0) {
|
||||
for (i = 3; i <= 20; i++) close(i);
|
||||
execl("/bin/sh", "sh", "-c", str, (char *) 0);
|
||||
/* get here if execl fails ... */
|
||||
_exit(127); /* see manual page */
|
||||
}
|
||||
|
||||
sigint = signal( SIGINT, SIG_IGN );
|
||||
sigquit = signal( SIGQUIT, SIG_IGN );
|
||||
|
||||
while ((waitval = wait(&exitstatus)) != pid) {
|
||||
if (waitval == -1) break;
|
||||
}
|
||||
|
@ -21,5 +28,9 @@ system(str)
|
|||
/* no child ??? or maybe interrupted ??? */
|
||||
exitstatus = -1;
|
||||
}
|
||||
|
||||
signal( SIGINT, sigint );
|
||||
signal( SIGQUIT, sigquit );
|
||||
|
||||
return exitstatus;
|
||||
}
|
||||
|
|
|
@ -145,7 +145,8 @@ char *id;
|
|||
return(-1);
|
||||
while (*++cp != ':')
|
||||
;
|
||||
for (++cp ; *cp ; cp++) {
|
||||
while (*cp) {
|
||||
cp++;
|
||||
while (ISSPACE(*cp))
|
||||
cp++;
|
||||
if (strncmp(cp, id, CAPABLEN) == 0) {
|
||||
|
@ -178,7 +179,8 @@ char *id;
|
|||
return(-1);
|
||||
while (*++cp != ':')
|
||||
;
|
||||
for (++cp ; *cp ; cp++) {
|
||||
while (*cp) {
|
||||
cp++;
|
||||
while (ISSPACE(*cp))
|
||||
cp++;
|
||||
if (strncmp(cp, id, CAPABLEN) == 0)
|
||||
|
@ -207,7 +209,8 @@ char **area;
|
|||
return(NULL);
|
||||
while (*++cp != ':')
|
||||
;
|
||||
for (++cp ; *cp ; cp++) {
|
||||
while (*cp) {
|
||||
cp++;
|
||||
while (ISSPACE(*cp))
|
||||
cp++;
|
||||
if (strncmp(cp, id, CAPABLEN) == 0) {
|
||||
|
|
Loading…
Reference in a new issue