Merge branch 'master' of git.sv.nongnu.org:/srv/git/nmh
authorKen Hornstein <kenh@pobox.com>
Mon, 9 Jan 2012 20:52:34 +0000 (15:52 -0500)
committerKen Hornstein <kenh@pobox.com>
Mon, 9 Jan 2012 20:52:34 +0000 (15:52 -0500)
configure.ac
h/msh.h
sbr/discard.c
sbr/dtime.c
sbr/m_getfld.c
sbr/mts.c
uip/mhcachesbr.c
uip/msh.c
uip/mshcmds.c
uip/scansbr.c
uip/slocal.c

index 2a56e97..43a1029 100644 (file)
@@ -462,7 +462,6 @@ esac
 AC_SUBST(OURDEFS)
 
 AC_HEADER_STDC
-AC_HEADER_TIME
 AC_HEADER_TIOCGWINSZ
 AC_CHECK_HEADERS(errno.h fcntl.h crypt.h termcap.h \
                  langinfo.h wchar.h wctype.h iconv.h netdb.h \
@@ -487,29 +486,7 @@ AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1,
 dnl ---------------
 dnl CHECK FUNCTIONS
 dnl ---------------
-AC_CHECK_FUNCS(writev lstat tzset getutent nl_langinfo)
-
-dnl Look for the initgroups() declaration.  On AIX 4.[13], Solaris 4.1.3, and
-dnl ULTRIX 4.2A the function is defined in libc but there's no declaration in
-dnl any system header.  
-dnl
-dnl On Solaris 2.[456], the declaration is in <grp.h>.  On HP-UX 9-11 and
-dnl (reportedly) FreeBSD 3.[23], it's in <unistd.h>.  Any other locations we
-dnl need to check?
-AH_TEMPLATE(INITGROUPS_HEADER, [Define to the header containing the declaration of `initgroups'.])
-AC_EGREP_HEADER(initgroups, grp.h, AC_DEFINE(INITGROUPS_HEADER, <grp.h>),
-                AC_EGREP_HEADER(initgroups, unistd.h, 
-                                AC_DEFINE(INITGROUPS_HEADER, <unistd.h>)))
-
-dnl On AIX 4.1, snprintf() is defined in libc.a but there's no prototype in
-dnl <stdio.h> or elsewhere.  Apparently it's not officially supported (though it
-dnl seems to work perfectly and IBM apparently uses it in internal code).
-dnl Anyhow, if we omit our own snprintf() and vsnprintf() prototypes when we
-dnl HAVE_SNPRINTF, we get a billion warnings at compile time.  Use the C
-dnl preprocessor to preprocess stdio.h and make sure that there's actually a 
-dnl prototype. 
-AC_EGREP_HEADER(snprintf, stdio.h, AC_DEFINE(HAVE_SNPRINTF_PROTOTYPE,1,
-  [Define to 1 if <stdio.h> has a prototype for snprintf().]))
+AC_CHECK_FUNCS(writev lstat getutent nl_langinfo)
 
 dnl Check for multibyte character set support
 if test "x$ac_cv_header_wchar_h" = "xyes" -a "x$ac_cv_header_wctype_h" = "xyes" \
@@ -766,18 +743,7 @@ dnl ----------------
 dnl CHECK STRUCTURES
 dnl ----------------
 
-AC_CHECK_MEMBERS(struct tm.tm_gmtoff,,,
-  [#ifdef TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# ifdef TM_IN_SYS_TIME
-#  include <sys/time.h>
-# else
-#  include <time.h>
-# endif
-#endif])
-
+AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,[#include <time.h>])
 AC_CHECK_MEMBERS(struct utmp.ut_type,,,[#include <utmp.h>])
 
 AC_STRUCT_DIRENT_D_TYPE
@@ -801,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 (file)
--- 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
  */
index dbe309d..a1efa48 100644 (file)
 
 #include <termios.h>
 
-#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)
index 2e978d7..5d5375d 100644 (file)
 #include <h/mh.h>   /* for snprintf() */
 #include <h/nmh.h>
 #include <h/tws.h>
+#include <time.h>
 
-#if !defined(HAVE_STRUCT_TM_TM_GMTOFF) && !defined(HAVE_TZSET)
-# include <sys/timeb.h>
-#endif
-
-#ifdef TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# ifdef HAVE_SYS_TIME_H
-# include <sys/time.h>
-# else
-#  include <time.h>
-# endif
-#endif
-
-#if !defined(HAVE_STRUCT_TM_TM_GMTOFF) && defined(HAVE_TZSET)
+#if !defined(HAVE_STRUCT_TM_TM_GMTOFF)
 extern int daylight;
 extern long timezone;
 extern char *tzname[];
@@ -140,10 +126,6 @@ dlocaltime (time_t *clock)
     static struct tws tw;
     struct tm *tm;
 
-#if !defined(HAVE_STRUCT_TM_TM_GMTOFF) && !defined(HAVE_TZSET)
-    struct timeb tb;
-#endif
-
     if (!clock)
        return NULL;
 
@@ -172,13 +154,8 @@ dlocaltime (time_t *clock)
     if (tm->tm_isdst)                  /* if DST is in effect */
        tw.tw_zone -= 60;               /* reset to normal offset */
 #else
-# ifdef HAVE_TZSET
     tzset();
     tw.tw_zone = -(timezone / 60);
-# else
-    ftime (&tb);
-    tw.tw_zone = -tb.timezone;
-# endif
 #endif
 
     tw.tw_flags &= ~TW_SDAY;
@@ -368,14 +345,8 @@ dtimezone (int offset, int flags)
     }
 
     if (!(flags & TW_ZONE) && mins == 0) {
-#if defined(HAVE_TZSET) && defined(HAVE_TZNAME)
        tzset();
        return ((flags & TW_DST) ? tzname[1] : tzname[0]);
-#else
-       for (z = zones; z->std; z++)
-           if (z->shift == hours)
-               return (z->dst && (flags & TW_DST) ? z->dst : z->std);
-#endif
     }
 
 #ifdef ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST
index f31b9c4..585df64 100644 (file)
@@ -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
index 37f6e23..71836e4 100644 (file)
--- 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) {
index 79d6bda..807cf60 100644 (file)
@@ -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);
index 07110fd..3a5cc97 100644 (file)
--- 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
 }
 
 
index 3bd4db3..64957e8 100644 (file)
@@ -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');
index 0d12c34..ae347e8 100644 (file)
 # 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 */
 
 /*
index 54960f3..13d0511 100644 (file)
 #include <sys/ioctl.h>
 #include <fcntl.h>
 
-#ifdef INITGROUPS_HEADER
-#include INITGROUPS_HEADER
-#else
-/* On AIX 4.1, initgroups() is defined and even documented (giving the parameter
-   types as char* and int), but doesn't have a prototype in any of the system
-   header files.  AIX 4.3, SunOS 4.1.3, and ULTRIX 4.2A have the same
-   problem. */
-extern int  initgroups(char*, int);
-#endif
-
 /* This define is needed for Berkeley db v2 and above to
  * make the header file expose the 'historical' ndbm APIs.
  * We define it unconditionally because this is simple and