X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/de4636bb664106d9932ae7acb517e471b848f1f3..2e9ce3236ae4bdbb7d41d297faf063c564d39f6c:/uip/rcvtty.c diff --git a/uip/rcvtty.c b/uip/rcvtty.c index 9cd77dd6..e91c74c2 100644 --- a/uip/rcvtty.c +++ b/uip/rcvtty.c @@ -19,7 +19,6 @@ #include #include #include -#include #include #ifdef HAVE_GETUTXENT @@ -168,7 +167,6 @@ main (int argc, char **argv) #endif /* HAVE_GETUTXENT */ exit (RCV_MOK); - return 0; /* dead code to satisfy the compiler */ } @@ -185,14 +183,16 @@ static int message_fd (char **vec) { pid_t child_id; - int bytes, fd, seconds; + int bytes, seconds; + /* volatile to prevent "might be clobbered" warning from gcc: */ + volatile int fd; char tmpfil[BUFSIZ]; struct stat st; fd = mkstemp (strncpy (tmpfil, "/tmp/rcvttyXXXXX", sizeof(tmpfil))); unlink (tmpfil); - if ((child_id = vfork()) == NOTOK) { + if ((child_id = fork()) == NOTOK) { /* fork error */ close (fd); return header_fd (); @@ -237,7 +237,6 @@ message_fd (char **vec) setpgid ((pid_t) 0, getpid ()); /* put in own process group */ execvp (vec[0], vec); _exit (-1); - return 1; /* dead code to satisfy compiler */ } @@ -257,6 +256,7 @@ header_fd (void) /* get new format string */ nfs = new_fs (form, format, SCANFMT); scan (stdin, 0, 0, nfs, width, 0, 0, NULL, 0L, 0); + scan_finished (); if (newline) write (fd, "\n\r", 2); write (fd, scanl, strlen (scanl));