Initialized local "in" to suppress gcc warning about possible uninitialized use.
[mmh] / uip / msh.c
index c2d4e1a..43530db 100644 (file)
--- a/uip/msh.c
+++ b/uip/msh.c
 #include <h/mts.h>
 #include <h/utils.h>
 
-#ifdef HAVE_TERMIOS_H
-# include <termios.h>
-#else
-# ifdef HAVE_TERMIO_H
-#  include <termio.h>
-# else
-#  include <sgtty.h>
-# endif
-#endif
+#include <termios.h>
 
 #include <pwd.h>
-#include <setjmp.h>
+#include <h/m_setjmp.h>
 #include <signal.h>
 #include <h/msh.h>
 #include <h/vmhsbr.h>
@@ -158,11 +150,6 @@ int interrupted;           /* SIGINT detected  */
 int broken_pipe;               /* SIGPIPE detected */
 int told_to_quit;              /* SIGQUIT detected */
 
-#ifdef BSD42
-int should_intr;               /* signal handler should interrupt call */
-jmp_buf sigenv;                        /* the environment pointer              */
-#endif
-
 /*
  * prototypes
  */
@@ -203,10 +190,10 @@ static int initaux_io (struct Cmd *);
 static void fin_io (struct Cmd *, int);
 static void finaux_io (struct Cmd *);
 static void m_init (void);
-static RETSIGTYPE intrser (int);
-static RETSIGTYPE pipeser (int);
-static RETSIGTYPE quitser (int);
-static RETSIGTYPE alrmser (int);
+static void intrser (int);
+static void pipeser (int);
+static void quitser (int);
+static void alrmser (int);
 static int pINI (void);
 static int pQRY (char *, int);
 static int pQRY1 (int);
@@ -344,9 +331,6 @@ main (int argc, char **argv)
        ioctl (pfd, FIOCLEX, NULL);
 #endif /* FIOCLEX */
 
-#ifdef BSD42
-    should_intr = 0;
-#endif /* BSD42 */
     istat = SIGNAL2 (SIGINT, intrser);
     qstat = SIGNAL2 (SIGQUIT, quitser);
 
@@ -821,6 +805,7 @@ m_gMsgs (int n)
 FILE *
 msh_ready (int msgnum, int full)
 {
+    NMH_UNUSED (full);
     register int msgp;
     int fd;
     char *cp;
@@ -1062,11 +1047,9 @@ display_info (int scansw)
     if (sp == NULL) {
        if ((sd = dup (fileno (stdout))) == NOTOK)
            padios ("standard output", "unable to dup");
-#ifndef BSD42                  /* XXX */
 #ifdef FIOCLEX
        ioctl (sd, FIOCLEX, NULL);
 #endif /* FIOCLEX */
-#endif /* not BSD42 */
        if ((sp = fdopen (sd, "w")) == NULL)
            padios ("standard output", "unable to fdopen");
     }
@@ -1224,33 +1207,11 @@ getargs (char *prompt, struct swit *sw, struct Cmd *cmdp)
     told_to_quit = 0;
     for (;;) {
        interrupted = 0;
-#ifdef BSD42
-       switch (setjmp (sigenv)) {
-           case OK:
-               should_intr = 1;
-               break;
-
-           default:
-               should_intr = 0;
-               if (interrupted && !told_to_quit) {
-                   putchar ('\n');
-                   continue;
-               }
-               if (ppid > 0)
-#ifdef SIGEMT
-                   kill (ppid, SIGEMT);
-#else
-                   kill (ppid, SIGTERM);
-#endif
-               return EOF;
-       }
-#endif /* BSD42 */
        if (interactive) {
            printf ("%s", prompt);
            fflush (stdout);
        }
        for (cp = buffer; (i = getchar ()) != '\n';) {
-#ifndef BSD42
            if (interrupted && !told_to_quit) {
                buffer[0] = '\0';
                putchar ('\n');
@@ -1265,10 +1226,6 @@ getargs (char *prompt, struct swit *sw, struct Cmd *cmdp)
 #endif
                return EOF;
            }
-#else /* BSD42 */
-           if (i == EOF)
-               longjmp (sigenv, DONE);
-#endif /* BSD42 */
            if (cp < &buffer[sizeof buffer - 2])
                *cp++ = i;
        }
@@ -1296,9 +1253,6 @@ getargs (char *prompt, struct swit *sw, struct Cmd *cmdp)
                        cmdp->args[0]);
                continue;
            default: 
-#ifdef BSD42
-               should_intr = 0;
-#endif /* BSD42 */
                return i;
        }
     }
@@ -1626,62 +1580,39 @@ seq_setcur (struct msgs *mp, int msgnum)
 
 
 
-static RETSIGTYPE
+static void
 intrser (int i)
 {
-#ifndef RELIABLE_SIGNALS
-    SIGNAL (SIGINT, intrser);
-#endif
-
+    NMH_UNUSED (i);
     discard (stdout);
     interrupted++;
-
-#ifdef BSD42
-    if (should_intr)
-       longjmp (sigenv, NOTOK);
-#endif
 }
 
 
-static RETSIGTYPE
+static void
 pipeser (int i)
 {
-#ifndef RELIABLE_SIGNALS
-    SIGNAL (SIGPIPE, pipeser);
-#endif
-
+    NMH_UNUSED (i);
     if (broken_pipe++ == 0)
        fprintf (stderr, "broken pipe\n");
     told_to_quit++;
     interrupted++;
-
-#ifdef BSD42
-    if (should_intr)
-       longjmp (sigenv, NOTOK);
-#endif
 }
 
 
-static RETSIGTYPE
+static void
 quitser (int i)
 {
-#ifndef RELIABLE_SIGNALS
-    SIGNAL (SIGQUIT, quitser);
-#endif
-
+    NMH_UNUSED (i);
     told_to_quit++;
     interrupted++;
-
-#ifdef BSD42
-    if (should_intr)
-       longjmp (sigenv, NOTOK);
-#endif
 }
 
 
-static RETSIGTYPE
+static void
 alrmser (int i)
 {
+    NMH_UNUSED (i);
     longjmp (peerenv, DONE);
 }
 
@@ -1746,6 +1677,7 @@ pINI (void)
 static int
 pQRY (char *str, int scansw)
 {
+    NMH_UNUSED (str);
     if (pQRY1 (scansw) == NOTOK || pQRY2 () == NOTOK)
        return NOTOK;
 
@@ -1987,7 +1919,7 @@ pFIN (void)
 {
     int status;
 
-    switch (setjmp (peerenv)) {
+    switch (m_setjmp (peerenv)) {
        case OK: 
            SIGNAL (SIGALRM, alrmser);
            alarm (ALARM);