From: ceriel Date: Fri, 28 Oct 1988 10:11:49 +0000 (+0000) Subject: some small fixes X-Git-Tag: release-5-5~2772 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=78237f3ef87739a4517a61cba0fd93e8a541e949;p=ack.git some small fixes --- diff --git a/lang/cem/libcc/stdio/system.c b/lang/cem/libcc/stdio/system.c index b006c3cab..351734f94 100644 --- a/lang/cem/libcc/stdio/system.c +++ b/lang/cem/libcc/stdio/system.c @@ -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; } diff --git a/lang/cem/libcc/stdio/termcap.c b/lang/cem/libcc/stdio/termcap.c index 3b5ae5db2..0ff3727b9 100644 --- a/lang/cem/libcc/stdio/termcap.c +++ b/lang/cem/libcc/stdio/termcap.c @@ -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) {