From: Ken Hornstein Date: Mon, 9 Jan 2012 20:51:57 +0000 (-0500) Subject: Remove OS-specific defines. As part of it, remove scary longjmp() inside X-Git-Url: http://git.marmaro.de/?a=commitdiff_plain;h=c2191f6961409263271aaeb0f9685e10492389a8;p=mmh Remove OS-specific defines. As part of it, remove scary longjmp() inside signal handlers that was part of the code under #ifdef BSD42. --- diff --git a/configure.ac b/configure.ac index 0df49ba..43a1029 100644 --- a/configure.ac +++ b/configure.ac @@ -767,59 +767,6 @@ SIGNAL_H=$nmh_cv_path_signal_h AC_SUBST(SIGNAL_H)dnl dnl ---------------- -dnl OS SPECIFIC DEFINES -dnl ---------------- -AH_TEMPLATE(SYS5, [Defined for Solaris 2.x, Irix, OSF/1, HP-UX, AIX, SCO5; only used in vmh.c which is not built.]) -AH_TEMPLATE(SVR4, [Defined for Solaris 2.x, Irix, OSF/1, HP-UX, AIX; only used in vmh.c which is not built.]) -AH_TEMPLATE(BSD44, [Defined for SunOS 4, FreeBSD, NetBSD, OpenBSD, BSD/OS, Mac OS X/Rhapsody; only used in vmh.c which is not built.]) -AH_TEMPLATE(BSD42, [Defined for SunOS 4, FreeBSD, NetBSD, OpenBSD, BSD/OS, Mac OS X/Rhapsody -- does PicoBSD have uname?]) -AH_TEMPLATE(SCO_5_STDIO, [Defined for SCO5.]) - -case "$target_os" in - - solaris2*) - AC_DEFINE(SYS5) - AC_DEFINE(SVR4) - ;; - irix*) - AC_DEFINE(SYS5) - AC_DEFINE(SVR4) - ;; - osf*) - AC_DEFINE(SYS5) - AC_DEFINE(SVR4) - ;; - aix*) - AC_DEFINE(SYS5) - AC_DEFINE(SVR4) - ;; - sunos4*) - AC_DEFINE(BSD42) - ;; - freebsd*) - AC_DEFINE(BSD42) - AC_DEFINE(BSD44) - ;; - netbsd*) - AC_DEFINE(BSD42) - AC_DEFINE(BSD44) - ;; - openbsd*) - AC_DEFINE(BSD42) - AC_DEFINE(BSD44) - ;; - bsd/os*) - AC_DEFINE(BSD42) - AC_DEFINE(BSD44) - ;; - sco5*) - AC_DEFINE(SYS5) - AC_DEFINE(SCO_5_STDIO) - ;; -esac - - -dnl ---------------- dnl OUTPUT MAKEFILES dnl ---------------- AC_CONFIG_FILES(Makefile config/Makefile h/Makefile sbr/Makefile uip/Makefile \ diff --git a/h/msh.h b/h/msh.h index 201c7ec..fb80f23 100644 --- a/h/msh.h +++ b/h/msh.h @@ -75,11 +75,6 @@ extern int interrupted; /* SIGINT detected */ extern int broken_pipe; /* SIGPIPE detected */ extern int told_to_quit; /* SIGQUIT detected */ -#ifdef BSD42 -extern int should_intr; /* signal handler should interrupt call */ -extern jmp_buf sigenv; /* the environment pointer */ -#endif - /* * prototypes */ diff --git a/sbr/discard.c b/sbr/discard.c index dbe309d..a1efa48 100644 --- a/sbr/discard.c +++ b/sbr/discard.c @@ -11,13 +11,6 @@ #include -#ifdef SCO_5_STDIO -# define _ptr __ptr -# define _cnt __cnt -# define _base __base -# define _filbuf(fp) ((fp)->__cnt = 0, __filbuf(fp)) -#endif - void discard (FILE *io) diff --git a/sbr/m_getfld.c b/sbr/m_getfld.c index f31b9c4..585df64 100644 --- a/sbr/m_getfld.c +++ b/sbr/m_getfld.c @@ -190,14 +190,6 @@ static int (*eom_action)(int) = NULL; # define DEFINED__FILBUF_TO_SOMETHING_SPECIFIC #endif -#ifdef SCO_5_STDIO -# define _ptr __ptr -# define _cnt __cnt -# define _base __base -# define _filbuf(fp) ((fp)->__cnt = 0, __filbuf(fp)) -# define DEFINED__FILBUF_TO_SOMETHING_SPECIFIC -#endif - #ifndef DEFINED__FILBUF_TO_SOMETHING_SPECIFIC extern int _filbuf(FILE*); #endif diff --git a/sbr/mts.c b/sbr/mts.c index 37f6e23..71836e4 100644 --- a/sbr/mts.c +++ b/sbr/mts.c @@ -370,7 +370,6 @@ getuserinfo (void) field, like phone number. Also, if mmailid masquerading is turned on due to "mmailid" appearing on the "masquerade:" line of mts.conf, stop if we hit a '<' (which should precede any ','s). */ -#ifndef BSD42 if (mmailid_masquerading) /* Stop at ',' or '<'. */ for (cp = fullname; *np != '\0' && *np != ',' && *np != '<'; @@ -385,46 +384,6 @@ getuserinfo (void) for (cp = fullname; *np != '\0' && *np != ','; *cp++ = *np++) continue; -#else /* BSD42 */ - /* On BSD(-derived) systems, the system utilities that deal with the GECOS - field (finger, mail, sendmail, etc.) translate any '&' character in it to - the login name, with the first letter capitalized. So, for instance, - fingering a user "bob" with the GECOS field "& Jones" would reveal him to - be "In real life: Bob Jones". Surprisingly, though, the OS doesn't do - the translation for you, so we have to do it manually here. */ - if (mmailid_masquerading) - /* Stop at ',' or '<'. */ - for (cp = fullname; - *np != '\0' && *np != ',' && *np != '<';) { - if (*np == '&') { /* blech! */ - strcpy (cp, pw->pw_name); - *cp = toupper(*cp); - while (*cp) - cp++; - np++; - } else { - *cp++ = *np++; - } - } - else - /* Allow '<' as a legal character of the user's name. This code is - basically a duplicate of the code above the "else" -- we don't - collapse it down to one copy and put the mmailid_masquerading check - inside the loop with "(x ? y : z)" because that's inefficient and the - value'll never change while it's in there. */ - for (cp = fullname; - *np != '\0' && *np != ',';) { - if (*np == '&') { /* blech! */ - strcpy (cp, pw->pw_name); - *cp = toupper(*cp); - while (*cp) - cp++; - np++; - } else { - *cp++ = *np++; - } - } -#endif /* BSD42 */ *cp = '\0'; if (mmailid_masquerading) { diff --git a/uip/mhcachesbr.c b/uip/mhcachesbr.c index 79d6bda..807cf60 100644 --- a/uip/mhcachesbr.c +++ b/uip/mhcachesbr.c @@ -312,11 +312,7 @@ find_cache_aux (int writing, char *directory, char *id, static int partno, pid; static time_t clock = 0; -#ifdef BSD42 - usemap = strchr (id, '/') ? 1 : 0; -#else usemap = 1; -#endif if (debugsw) fprintf (stderr, "find_cache_aux %s usemap=%d\n", directory, usemap); diff --git a/uip/msh.c b/uip/msh.c index 07110fd..3a5cc97 100644 --- a/uip/msh.c +++ b/uip/msh.c @@ -150,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 */ @@ -336,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); @@ -1054,11 +1046,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"); } @@ -1216,33 +1206,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'); @@ -1257,10 +1225,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; } @@ -1288,9 +1252,6 @@ getargs (char *prompt, struct swit *sw, struct Cmd *cmdp) cmdp->args[0]); continue; default: -#ifdef BSD42 - should_intr = 0; -#endif /* BSD42 */ return i; } } @@ -1623,11 +1584,6 @@ intrser (int i) { discard (stdout); interrupted++; - -#ifdef BSD42 - if (should_intr) - longjmp (sigenv, NOTOK); -#endif } @@ -1638,11 +1594,6 @@ pipeser (int i) fprintf (stderr, "broken pipe\n"); told_to_quit++; interrupted++; - -#ifdef BSD42 - if (should_intr) - longjmp (sigenv, NOTOK); -#endif } @@ -1651,11 +1602,6 @@ quitser (int i) { told_to_quit++; interrupted++; - -#ifdef BSD42 - if (should_intr) - longjmp (sigenv, NOTOK); -#endif } diff --git a/uip/mshcmds.c b/uip/mshcmds.c index 3bd4db3..64957e8 100644 --- a/uip/mshcmds.c +++ b/uip/mshcmds.c @@ -2406,19 +2406,7 @@ ask (int msgnum) fflush (stdout); buf[0] = 0; -#ifndef BSD42 read (fileno (stdout), buf, sizeof buf); -#else /* BSD42 */ - switch (setjmp (sigenv)) { - case OK: - should_intr = 1; - read (fileno (stdout), buf, sizeof buf);/* fall... */ - - default: - should_intr = 0; - break; - } -#endif /* BSD42 */ if (strchr(buf, '\n') == NULL) putchar ('\n'); diff --git a/uip/scansbr.c b/uip/scansbr.c index 0d12c34..ae347e8 100644 --- a/uip/scansbr.c +++ b/uip/scansbr.c @@ -19,13 +19,6 @@ # define _cnt _w /* Wretch */ #endif -#ifdef SCO_5_STDIO -# define _ptr __ptr -# define _cnt __cnt -# define _base __base -# define _filbuf(fp) ((fp)->__cnt = 0, __filbuf(fp)) -#endif - #define MAXSCANL 256 /* longest possible scan line */ /*