]> git.pld-linux.org Git - packages/at.git/commitdiff
- patch adopted from latest Debian source.
authorkloczek <kloczek@pld-linux.org>
Sun, 28 Mar 1999 18:30:54 +0000 (18:30 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    at.patch -> 1.1

at.patch [new file with mode: 0644]

diff --git a/at.patch b/at.patch
new file mode 100644 (file)
index 0000000..e40d830
--- /dev/null
+++ b/at.patch
@@ -0,0 +1,2235 @@
+diff -Nru at-3.1.8/at.1.in at-3.1.8.new/at.1.in
+--- at-3.1.8/at.1.in   Sun Mar 28 19:48:00 1999
++++ at-3.1.8.new/at.1.in       Sun Mar 28 19:46:41 1999
+@@ -248,7 +248,11 @@
+ .br
+ .I @ETCDIR@/at.deny
+ .SH SEE ALSO
+-cron(1), nice(1), sh(1), umask(2), atd(8)
++.BR cron (1),
++.BR nice (1),
++.BR sh (1),
++.BR umask (2),
++.BR atd (8).
+ .SH BUGS
+ The correct operation of
+ .B batch
+diff -Nru at-3.1.8/at.c at-3.1.8.new/at.c
+--- at-3.1.8/at.c      Sun Mar 28 19:48:00 1999
++++ at-3.1.8.new/at.c  Sun Mar 28 19:46:41 1999
+@@ -235,6 +235,7 @@
+ /* Install the signal handler for SIGINT; terminate after removing the
+  * spool file if necessary
+  */
++    memset(&act, 0, sizeof act);
+     act.sa_handler = sigc;
+     sigemptyset(&(act.sa_mask));
+     act.sa_flags = 0;
+@@ -274,8 +275,8 @@
+       if ((jobno = nextjob()) == EOF)
+           perr("Cannot generate job number");
+-      sprintf(ppos, "%c%5lx%8lx", queue,
+-              jobno, (unsigned long) (runtimer / 60));
++      (void)snprintf(ppos, sizeof(atfile) - (ppos - atfile),
++                     "%c%5lx%8lx", queue, jobno, (unsigned long) (runtimer / 60));
+       for (ap = ppos; *ap != '\0'; ap++)
+           if (*ap == ' ')
+@@ -291,7 +292,7 @@
+        * bit.  Yes, this is a kluge.
+        */
+       cmask = umask(S_IRUSR | S_IWUSR | S_IXUSR);
+-      if ((fd = creat(atfile, O_WRONLY)) == -1)
++      if ((fd = open(atfile, O_CREAT | O_TRUNC | O_WRONLY, S_IRUSR)) == -1)
+           perr("Cannot create atjob file %.500s", atfile);
+       if ((fd2 = dup(fd)) < 0)
+@@ -461,14 +462,6 @@
+     close(fd2);
+-    /* POSIX.2 allows the shell specified by the user's SHELL environment
+-       variable, the login shell from the user's password database entry,
+-       or /bin/sh to be the command interpreter that processes the at-job.
+-       It also alows a warning diagnostic to be printed.  Because of the
+-       possible variance, we always output the diagnostic. */
+-
+-    fprintf(stderr, "warning: commands will be executed using /bin/sh\n");
+-
+     runtime = localtime(&runtimer);
+     /* We only use the sick POSIX time format if POSIXLY_CORRECT
+@@ -546,6 +539,7 @@
+     long jobno;
+     time_t runtimer;
+     char timestr[TIMESIZE];
++    struct passwd *pwd;
+     PRIV_START
+@@ -581,7 +575,10 @@
+       } else {
+           strftime(timestr, TIMESIZE, TIMEFORMAT_ISO, runtime);
+       }
+-      printf("%ld\t%s %c\n", jobno, timestr, queue);
++      if ((pwd = getpwuid(buf.st_uid)))
++        printf("%ld\t%s %c %s\n", jobno, timestr, queue, pwd->pw_name);
++      else
++        printf("%ld\t%s %c\n", jobno, timestr, queue);
+     }
+     PRIV_END
+ }
+@@ -695,7 +692,7 @@
+     char *pgm;
+     int program = AT;         /* our default program */
+-    char *options = "q:f:mvldVc";     /* default options for at */
++    char *options = "q:f:mvldhVc";    /* default options for at */
+     int disp_version = 0;
+     time_t timer;
+     struct passwd *pwe;
+@@ -726,16 +723,20 @@
+      */
+     if (strcmp(pgm, "atq") == 0) {
+       program = ATQ;
+-      options = "q:V";
++      options = "hq:V";
+     } else if (strcmp(pgm, "atrm") == 0) {
+       program = ATRM;
+-      options = "V";
++      options = "hV";
+     }
+     /* process whatever options we can process
+      */
+     opterr = 1;
+     while ((c = getopt(argc, argv, options)) != EOF)
+       switch (c) {
++      case 'h':
++          usage();
++          exit (0);
++
+       case 'v':               /* verify time settings */
+           atverify = 1;
+           break;
+@@ -753,7 +754,7 @@
+               usage();
+           atqueue = queue = *optarg;
+-          if (!(islower(queue) || isupper(queue)))
++          if (!(islower(queue) || isupper(queue)) & (queue != '='))
+               usage();
+           queue_set = 1;
+@@ -842,6 +843,15 @@
+           struct tm *tm = localtime(&timer);
+           fprintf(stderr, "%s\n", asctime(tm));
+       }
++
++      /* POSIX.2 allows the shell specified by the user's SHELL environment
++         variable, the login shell from the user's password database entry,
++         or /bin/sh to be the command interpreter that processes the at-job.
++         It also alows a warning diagnostic to be printed.  Because of the
++         possible variance, we always output the diagnostic. */
++
++      fprintf(stderr, "warning: commands will be executed using /bin/sh\n");
++
+       writefile(timer, queue);
+       break;
+diff -Nru at-3.1.8/at.deny at-3.1.8.new/at.deny
+--- at-3.1.8/at.deny   Sun Feb 23 21:24:34 1997
++++ at-3.1.8.new/at.deny       Sun Mar 28 19:46:41 1999
+@@ -1,13 +1,24 @@
+-nobody
++alias
++backup
+ bin
+ daemon
+-sys
++ftp
++games
++gnats
++guest
++irc
+ lp
+-sync
+ mail
+-news
+-uucp
+-games
+ man
+-guest
+-ftp
++nobody
++operator
++proxy
++qmaild
++qmaill
++qmailp
++qmailq
++qmailr
++qmails
++sync
++sys
++www-data
+diff -Nru at-3.1.8/at_allow.5 at-3.1.8.new/at_allow.5
+--- at-3.1.8/at_allow.5        Sun Mar 28 19:48:00 1999
++++ at-3.1.8.new/at_allow.5    Sun Mar 28 19:46:41 1999
+@@ -29,4 +29,8 @@
+ .I /etc/at/at.deny
+ is checked.
+ .SH "SEE ALSO"
+-at(1), atrun(1), cron(1), crontab(1), atd(8)
++.BR at (1),
++.BR atrun (1),
++.BR cron (8),
++.BR crontab (1),
++.BR atd (8).
+diff -Nru at-3.1.8/atd.8.in at-3.1.8.new/atd.8.in
+--- at-3.1.8/atd.8.in  Sun Mar 28 19:48:00 1999
++++ at-3.1.8.new/atd.8.in      Sun Mar 28 19:46:41 1999
+@@ -46,6 +46,11 @@
+ is installed as
+ .B /usr/sbin/atrun
+ for backward compatibility.
++.SH WARNING
++.B atd
++won't work if its spool directory is mounted via NFS even if
++.I no_root_squash
++is set.
+ .SH FILES
+ .I @ATJBD@
+ The directory for storing jobs; this should be mode 700, owner
+@@ -61,9 +66,15 @@
+ .B at
+ system.
+ .SH "SEE ALSO"
+-at(1), atrun(1), cron(1), crontab(1), syslog(3), at_deny(5), at_allow(5)
++.BR at (1),
++.BR atrun (1),
++.BR cron (8),
++.BR crontab (1),
++.BR syslog (3),
++.BR at.deny (5),
++.BR at.allow(5).
+ .SH BUGS
+ The functionality of 
+ .B atd
+ should be merged into
+-.BR cron(1) .
++.BR cron (8) .
+diff -Nru at-3.1.8/atd.c at-3.1.8.new/atd.c
+--- at-3.1.8/atd.c     Sun Sep 28 22:00:37 1997
++++ at-3.1.8.new/atd.c Sun Mar 28 19:46:41 1999
+@@ -255,6 +255,13 @@
+     fcntl(fd_in, F_SETFD, fflags & ~FD_CLOEXEC);
++    /*
++     * If the spool directory is mounted via NFS `atd' isn't able to
++     * read from the job file and will bump out here.  The file is
++     * opened as "root" but it is read as "daemon" which fails over
++     * NFS and works with local file systems.  It's not clear where
++     * the bug is located.  -Joey
++     */
+     if (fscanf(stream, "#!/bin/sh\n# atrun uid=%d gid=%d\n# mail %8s %d",
+              &nuid, &ngid, mailbuf, &send_mail) != 4)
+       pabort("File %.500s is in wrong format - aborting",
+diff -Nru at-3.1.8/batch at-3.1.8.new/batch
+--- at-3.1.8/batch     Thu Jan  1 01:00:00 1970
++++ at-3.1.8.new/batch Sun Mar 28 19:46:41 1999
+@@ -0,0 +1,4 @@
++#! /bin/sh
++prefix=/usr
++exec_prefix=${prefix}
++exec ${exec_prefix}/bin/at -qb now "$@"
+diff -Nru at-3.1.8/config.guess at-3.1.8.new/config.guess
+--- at-3.1.8/config.guess      Sun Feb 23 21:24:34 1997
++++ at-3.1.8.new/config.guess  Sun Mar 28 19:46:41 1999
+@@ -1,6 +1,6 @@
+ #! /bin/sh
+ # Attempt to guess a canonical system name.
+-#   Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
++#   Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
+ #
+ # This file is free software; you can redistribute it and/or modify it
+ # under the terms of the GNU General Public License as published by
+@@ -51,35 +51,110 @@
+ # Note: order is significant - the case branches are not exclusive.
+ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+-    alpha:OSF1:V*:*)
+-      # After 1.2, OSF1 uses "V1.3" for uname -r.
+-      echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^V//'`
+-      exit 0 ;;
+     alpha:OSF1:*:*)
++      if test $UNAME_RELEASE = "V4.0"; then
++              UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
++      fi
++      # A Vn.n version is a released version.
++      # A Tn.n version is a released field test version.
++      # A Xn.n version is an unreleased experimental baselevel.
+       # 1.2 uses "1.2" for uname -r.
+-      echo alpha-dec-osf${UNAME_RELEASE}
+-        exit 0 ;;
++      cat <<EOF >dummy.s
++      .globl main
++      .ent main
++main:
++      .frame \$30,0,\$26,0
++      .prologue 0
++      .long 0x47e03d80 # implver $0
++      lda \$2,259
++      .long 0x47e20c21 # amask $2,$1
++      srl \$1,8,\$2
++      sll \$2,2,\$2
++      sll \$0,3,\$0
++      addl \$1,\$0,\$0
++      addl \$2,\$0,\$0
++      ret \$31,(\$26),1
++      .end main
++EOF
++      ${CC-cc} dummy.s -o dummy 2>/dev/null
++      if test "$?" = 0 ; then
++              ./dummy
++              case "$?" in
++                      7)
++                              UNAME_MACHINE="alpha"
++                              ;;
++                      15)
++                              UNAME_MACHINE="alphaev5"
++                              ;;
++                      14)
++                              UNAME_MACHINE="alphaev56"
++                              ;;
++                      10)
++                              UNAME_MACHINE="alphapca56"
++                              ;;
++                      16)
++                              UNAME_MACHINE="alphaev6"
++                              ;;
++              esac
++      fi
++      rm -f dummy.s dummy
++      echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]`
++      exit 0 ;;
+     21064:Windows_NT:50:3)
+       echo alpha-dec-winnt3.5
+       exit 0 ;;
++    Amiga*:UNIX_System_V:4.0:*)
++      echo m68k-cbm-sysv4
++      exit 0;;
+     amiga:NetBSD:*:*)
+       echo m68k-cbm-netbsd${UNAME_RELEASE}
+       exit 0 ;;
++    amiga:OpenBSD:*:*)
++      echo m68k-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
++    arc64:OpenBSD:*:*)
++      echo mips64el-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
++    arc:OpenBSD:*:*)
++      echo mipsel-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
++    hkmips:OpenBSD:*:*)
++      echo mips-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
++    pmax:OpenBSD:*:*)
++      echo mipsel-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
++    sgi:OpenBSD:*:*)
++      echo mips-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
++    wgrisc:OpenBSD:*:*)
++      echo mipsel-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
+     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+       echo arm-acorn-riscix${UNAME_RELEASE}
+       exit 0;;
+-    Pyramid*:OSx*:*:*)
++    arm32:NetBSD:*:*)
++      echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
++      exit 0 ;;
++    SR2?01:HI-UX/MPP:*:*)
++      echo hppa1.1-hitachi-hiuxmpp
++      exit 0;;
++    Pyramid*:OSx*:*:*|MIS*:OSx*:*:*)
++      # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+       if test "`(/bin/universe) 2>/dev/null`" = att ; then
+               echo pyramid-pyramid-sysv3
+       else
+               echo pyramid-pyramid-bsd
+       fi
+       exit 0 ;;
+-    sun4*:SunOS:5.*:*)
++    NILE:*:*:dcosx)
++      echo pyramid-pyramid-svr4
++      exit 0 ;;
++    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+       echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit 0 ;;
+     i86pc:SunOS:5.*:*)
+-      echo i386-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++      echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit 0 ;;
+     sun4*:SunOS:6*:*)
+       # According to config.sub, this is the proper way to canonicalize
+@@ -99,24 +174,86 @@
+     sun3*:SunOS:*:*)
+       echo m68k-sun-sunos${UNAME_RELEASE}
+       exit 0 ;;
++    sun*:*:4.2BSD:*)
++      UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
++      test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
++      case "`/bin/arch`" in
++          sun3)
++              echo m68k-sun-sunos${UNAME_RELEASE}
++              ;;
++          sun4)
++              echo sparc-sun-sunos${UNAME_RELEASE}
++              ;;
++      esac
++      exit 0 ;;
++    aushp:SunOS:*:*)
++      echo sparc-auspex-sunos${UNAME_RELEASE}
++      exit 0 ;;
+     atari*:NetBSD:*:*)
+       echo m68k-atari-netbsd${UNAME_RELEASE}
+       exit 0 ;;
++    atari*:OpenBSD:*:*)
++      echo m68k-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
+     sun3*:NetBSD:*:*)
+       echo m68k-sun-netbsd${UNAME_RELEASE}
+       exit 0 ;;
++    sun3*:OpenBSD:*:*)
++      echo m68k-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
+     mac68k:NetBSD:*:*)
+       echo m68k-apple-netbsd${UNAME_RELEASE}
+       exit 0 ;;
++    mac68k:OpenBSD:*:*)
++      echo m68k-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
++    mvme68k:OpenBSD:*:*)
++      echo m68k-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
++    mvme88k:OpenBSD:*:*)
++      echo m88k-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
++    powerpc:machten:*:*)
++      echo powerpc-apple-machten${UNAME_RELEASE}
++      exit 0 ;;
++    RISC*:Mach:*:*)
++      echo mips-dec-mach_bsd4.3
++      exit 0 ;;
+     RISC*:ULTRIX:*:*)
+       echo mips-dec-ultrix${UNAME_RELEASE}
+       exit 0 ;;
+     VAX*:ULTRIX*:*:*)
+       echo vax-dec-ultrix${UNAME_RELEASE}
+       exit 0 ;;
+-    mips:*:5*:RISCos)
++    2020:CLIX:*:*)
++      echo clipper-intergraph-clix${UNAME_RELEASE}
++      exit 0 ;;
++    mips:*:*:UMIPS | mips:*:*:RISCos)
++      sed 's/^        //' << EOF >dummy.c
++      int main (argc, argv) int argc; char **argv; {
++      #if defined (host_mips) && defined (MIPSEB)
++      #if defined (SYSTYPE_SYSV)
++        printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
++      #endif
++      #if defined (SYSTYPE_SVR4)
++        printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
++      #endif
++      #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
++        printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
++      #endif
++      #endif
++        exit (-1);
++      }
++EOF
++      ${CC-cc} dummy.c -o dummy \
++        && ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
++        && rm dummy.c dummy && exit 0
++      rm -f dummy.c dummy
+       echo mips-mips-riscos${UNAME_RELEASE}
+       exit 0 ;;
++    Night_Hawk:Power_UNIX:*:*)
++      echo powerpc-harris-powerunix
++      exit 0 ;;
+     m88k:CX/UX:7*:*)
+       echo m88k-harris-cxux7
+       exit 0 ;;
+@@ -127,12 +264,17 @@
+       echo m88k-motorola-sysv3
+       exit 0 ;;
+     AViiON:dgux:*:*)
++        # DG/UX returns AViiON for all architectures
++        UNAME_PROCESSOR=`/usr/bin/uname -p`
++        if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then
+       if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \
+            -o ${TARGET_BINARY_INTERFACE}x = x ] ; then
+               echo m88k-dg-dgux${UNAME_RELEASE}
+       else
+               echo m88k-dg-dguxbcs${UNAME_RELEASE}
+       fi
++        else echo i586-dg-dgux${UNAME_RELEASE}
++        fi
+       exit 0 ;;
+     M88*:DolphinOS:*:*)       # DolphinOS (SVR3)
+       echo m88k-dolphin-sysv3
+@@ -150,10 +292,10 @@
+     *:IRIX*:*:*)
+       echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+       exit 0 ;;
+-   ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
++    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+       echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
+       exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
+-    i[34]86:AIX:*:*)
++    i?86:AIX:*:*)
+       echo i386-ibm-aix
+       exit 0 ;;
+     *:AIX:2:3)
+@@ -198,7 +340,7 @@
+       echo romp-ibm-bsd4.4
+       exit 0 ;;
+     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC NetBSD and
+-      echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to 
++      echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+       exit 0 ;;                           # report: romp-ibm BSD 4.3
+     *:BOSX:*:*)
+       echo rs6000-bull-bosx
+@@ -216,7 +358,7 @@
+       case "${UNAME_MACHINE}" in
+           9000/31? )            HP_ARCH=m68000 ;;
+           9000/[34]?? )         HP_ARCH=m68k ;;
+-          9000/7?? | 9000/8?[79] ) HP_ARCH=hppa1.1 ;;
++          9000/7?? | 9000/8?[1679] ) HP_ARCH=hppa1.1 ;;
+           9000/8?? )            HP_ARCH=hppa1.0 ;;
+       esac
+       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+@@ -264,6 +406,13 @@
+     hp8??:OSF1:*:*)
+       echo hppa1.0-hp-osf
+       exit 0 ;;
++    i?86:OSF1:*:*)
++      if [ -x /usr/sbin/sysversion ] ; then
++          echo ${UNAME_MACHINE}-unknown-osf1mk
++      else
++          echo ${UNAME_MACHINE}-unknown-osf1
++      fi
++      exit 0 ;;
+     parisc*:Lites*:*:*)
+       echo hppa1.1-hp-lites
+       exit 0 ;;
+@@ -291,17 +440,33 @@
+     CRAY*Y-MP:*:*:*)
+       echo ymp-cray-unicos${UNAME_RELEASE}
+       exit 0 ;;
+-    CRAY*C90:*:*:*)
+-      echo c90-cray-unicos${UNAME_RELEASE}
++    CRAY*[A-Z]90:*:*:*)
++      echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
++      | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
++            -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
++      exit 0 ;;
++    CRAY*TS:*:*:*)
++      echo t90-cray-unicos${UNAME_RELEASE}
+       exit 0 ;;
+     CRAY-2:*:*:*)
+       echo cray2-cray-unicos
+         exit 0 ;;
++    F300:UNIX_System_V:*:*)
++        FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'`
++        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
++        echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
++        exit 0 ;;
++    F301:UNIX_System_V:*:*)
++       echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'`
++       exit 0 ;;
+     hp3[0-9][05]:NetBSD:*:*)
+       echo m68k-hp-netbsd${UNAME_RELEASE}
+       exit 0 ;;
+-    i[34]86:BSD/386:*:* | *:BSD/OS:*:*)
+-      echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
++    hp300:OpenBSD:*:*)
++      echo m68k-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
++    i?86:BSD/386:*:* | *:BSD/OS:*:*)
++      echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+       exit 0 ;;
+     *:FreeBSD:*:*)
+       echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+@@ -309,36 +474,150 @@
+     *:NetBSD:*:*)
+       echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+       exit 0 ;;
++    *:OpenBSD:*:*)
++      echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
++      exit 0 ;;
++    i*:CYGWIN*:*)
++      echo ${UNAME_MACHINE}-pc-cygwin32
++      exit 0 ;;
++    i*:MINGW*:*)
++      echo ${UNAME_MACHINE}-pc-mingw32
++      exit 0 ;;
++    p*:CYGWIN*:*)
++      echo powerpcle-unknown-cygwin32
++      exit 0 ;;
++    prep*:SunOS:5.*:*)
++      echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++      exit 0 ;;
+     *:GNU:*:*)
+-      echo `echo ${UNAME_MACHINE}|sed -e 's,/.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
++      echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+       exit 0 ;;
+     *:Linux:*:*)
++      # uname on the ARM produces all sorts of strangeness, and we need to
++      # filter it out.
++      case "$UNAME_MACHINE" in
++        arm* | sa110*)              UNAME_MACHINE="arm" ;;
++      esac
++
+       # The BFD linker knows what the default object file format is, so
+       # first see if it will tell us.
+       ld_help_string=`ld --help 2>&1`
+-      if echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: elf_i[345]86"; then
+-        echo "${UNAME_MACHINE}-unknown-linux" ; exit 0
+-      elif echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: i[345]86linux"; then
+-        echo "${UNAME_MACHINE}-unknown-linuxaout" ; exit 0
+-      elif echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: i[345]86coff"; then
+-        echo "${UNAME_MACHINE}-unknown-linuxcoff" ; exit 0
+-      elif test "${UNAME_MACHINE}" = "alpha" ; then
+-        echo alpha-unknown-linux ; exit 0
+-      else
+-        # Either a pre-BFD a.out linker (linuxoldld) or one that does not give us
+-        # useful --help.  Gcc wants to distinguish between linuxoldld and linuxaout.
+-        test ! -d /usr/lib/ldscripts/. \
+-          && echo "${UNAME_MACHINE}-unknown-linuxoldld" && exit 0
++      ld_supported_emulations=`echo $ld_help_string \
++                       | sed -ne '/supported emulations:/!d
++                                  s/[         ][      ]*/ /g
++                                  s/.*supported emulations: *//
++                                  s/ .*//
++                                  p'`
++        case "$ld_supported_emulations" in
++        i?86linux)  echo "${UNAME_MACHINE}-pc-linux-gnuaout"      ; exit 0 ;;
++        i?86coff)   echo "${UNAME_MACHINE}-pc-linux-gnucoff"      ; exit 0 ;;
++        sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
++        armlinux)   echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
++        m68klinux)  echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
++        elf32ppc)   echo "powerpc-unknown-linux-gnu"              ; exit 0 ;;
++      esac
++
++      if test "${UNAME_MACHINE}" = "alpha" ; then
++              sed 's/^        //'  <<EOF >dummy.s
++              .globl main
++              .ent main
++      main:
++              .frame \$30,0,\$26,0
++              .prologue 0
++              .long 0x47e03d80 # implver $0
++              lda \$2,259
++              .long 0x47e20c21 # amask $2,$1
++              srl \$1,8,\$2
++              sll \$2,2,\$2
++              sll \$0,3,\$0
++              addl \$1,\$0,\$0
++              addl \$2,\$0,\$0
++              ret \$31,(\$26),1
++              .end main
++EOF
++              LIBC=""
++              ${CC-cc} dummy.s -o dummy 2>/dev/null
++              if test "$?" = 0 ; then
++                      ./dummy
++                      case "$?" in
++                      7)
++                              UNAME_MACHINE="alpha"
++                              ;;
++                      15)
++                              UNAME_MACHINE="alphaev5"
++                              ;;
++                      14)
++                              UNAME_MACHINE="alphaev56"
++                              ;;
++                      10)
++                              UNAME_MACHINE="alphapca56"
++                              ;;
++                      16)
++                              UNAME_MACHINE="alphaev6"
++                              ;;
++                      esac    
++
++                      objdump --private-headers dummy | \
++                        grep ld.so.1 > /dev/null
++                      if test "$?" = 0 ; then
++                              LIBC="libc1"
++                      fi
++              fi      
++              rm -f dummy.s dummy
++              echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0
++      elif test "${UNAME_MACHINE}" = "mips" ; then
++        cat >dummy.c <<EOF
++main(argc, argv)
++     int argc;
++     char *argv[];
++{
++#ifdef __MIPSEB__
++  printf ("%s-unknown-linux-gnu\n", argv[1]);
++#endif
++#ifdef __MIPSEL__
++  printf ("%sel-unknown-linux-gnu\n", argv[1]);
++#endif
++  return 0;
++}
++EOF
++        ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
++        rm -f dummy.c dummy
++      else
++        # Either a pre-BFD a.out linker (linux-gnuoldld)
++        # or one that does not give us useful --help.
++        # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
++        # If ld does not provide *any* "supported emulations:"
++        # that means it is gnuoldld.
++        echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:"
++        test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
++
++        case "${UNAME_MACHINE}" in
++        i?86)
++          VENDOR=pc;
++          ;;
++        *)
++          VENDOR=unknown;
++          ;;
++        esac
+         # Determine whether the default compiler is a.out or elf
+         cat >dummy.c <<EOF
++#include <features.h>
+ main(argc, argv)
+-int argc;
+-char *argv[];
++     int argc;
++     char *argv[];
+ {
+ #ifdef __ELF__
+-  printf ("%s-unknown-linux\n", argv[1]);
++# ifdef __GLIBC__
++#  if __GLIBC__ >= 2
++    printf ("%s-${VENDOR}-linux-gnu\n", argv[1]);
++#  else
++    printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
++#  endif
++# else
++   printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
++# endif
+ #else
+-  printf ("%s-unknown-linuxaout\n", argv[1]);
++  printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]);
+ #endif
+   return 0;
+ }
+@@ -348,30 +627,45 @@
+       fi ;;
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.  earlier versions
+ # are messed up and put the nodename in both sysname and nodename.
+-    i[34]86:DYNIX/ptx:4*:*)
++    i?86:DYNIX/ptx:4*:*)
+       echo i386-sequent-sysv4
+       exit 0 ;;
+-    i[34]86:*:4.*:* | i[34]86:SYSTEM_V:4.*:*)
++    i?86:UNIX_SV:4.2MP:2.*)
++        # Unixware is an offshoot of SVR4, but it has its own version
++        # number series starting with 2...
++        # I am not positive that other SVR4 systems won't match this,
++      # I just have to hope.  -- rms.
++        # Use sysv4.2uw... so that sysv4* matches it.
++      echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
++      exit 0 ;;
++    i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
+       if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+               echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
+       else
+-              echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}
++              echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
+       fi
+       exit 0 ;;
+-    i[34]86:*:3.2:*)
++    i?86:*:3.2:*)
+       if test -f /usr/options/cb.name; then
+               UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+-              echo ${UNAME_MACHINE}-unknown-isc$UNAME_REL
++              echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+       elif /bin/uname -X 2>/dev/null >/dev/null ; then
+               UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
+               (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
+-              echo ${UNAME_MACHINE}-unknown-sco$UNAME_REL
++              (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
++                      && UNAME_MACHINE=i586
++              echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+       else
+-              echo ${UNAME_MACHINE}-unknown-sysv32
++              echo ${UNAME_MACHINE}-pc-sysv32
+       fi
+       exit 0 ;;
++    pc:*:*:*)
++        # uname -m prints for DJGPP always 'pc', but it prints nothing about
++        # the processor, so we play safe by assuming i386.
++      echo i386-pc-msdosdjgpp
++        exit 0 ;;
+     Intel:Mach:3*:*)
+-      echo i386-unknown-mach3
++      echo i386-pc-mach3
+       exit 0 ;;
+     paragon:*:*:*)
+       echo i860-intel-osf1
+@@ -387,30 +681,36 @@
+       # "miniframe"
+       echo m68010-convergent-sysv
+       exit 0 ;;
+-    M680[234]0:*:R3V[567]*:*)
++    M68*:*:R3V[567]*:*)
+       test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
+     3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
+-        uname -p 2>/dev/null | grep 86 >/dev/null \
+-          && echo i486-ncr-sysv4.3 && exit 0
+-        uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+-          && echo i586-ncr-sysv4.3 && exit 0 ;;
++      OS_REL=''
++      test -r /etc/.relid \
++      && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
++      /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
++        && echo i486-ncr-sysv4.3${OS_REL} && exit 0
++      /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
++        && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
+     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+-        uname -p 2>/dev/null | grep 86 >/dev/null \
++        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+           && echo i486-ncr-sysv4 && exit 0 ;;
+-    m680[234]0:LynxOS:2.[23]*:*)
+-      echo m68k-lynx-lynxos${UNAME_RELEASE}
++    m68*:LynxOS:2.*:*)
++      echo m68k-unknown-lynxos${UNAME_RELEASE}
+       exit 0 ;;
+     mc68030:UNIX_System_V:4.*:*)
+       echo m68k-atari-sysv4
+       exit 0 ;;
+-    i[34]86:LynxOS:2.[23]*:*)
+-      echo i386-lynx-lynxos${UNAME_RELEASE}
++    i?86:LynxOS:2.*:*)
++      echo i386-unknown-lynxos${UNAME_RELEASE}
+       exit 0 ;;
+-    TSUNAMI:LynxOS:2.[23]*:*)
+-      echo sparc-lynx-lynxos${UNAME_RELEASE}
++    TSUNAMI:LynxOS:2.*:*)
++      echo sparc-unknown-lynxos${UNAME_RELEASE}
+       exit 0 ;;
+-    rs6000:LynxOS:2.[23]*:*)
+-      echo rs6000-lynx-lynxos${UNAME_RELEASE}
++    rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*)
++      echo rs6000-unknown-lynxos${UNAME_RELEASE}
++      exit 0 ;;
++    SM[BE]S:UNIX_SV:*:*)
++      echo mips-dde-sysv${UNAME_RELEASE}
+       exit 0 ;;
+     RM*:SINIX-*:*:*)
+       echo mips-sni-sysv4
+@@ -423,6 +723,32 @@
+               echo ns32k-sni-sysv
+       fi
+       exit 0 ;;
++    PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
++                           # says <Richard.M.Bartel@ccMail.Census.GOV>
++        echo i586-unisys-sysv4
++        exit 0 ;;
++    *:UNIX_System_V:4*:FTX*)
++      # From Gerald Hewes <hewes@openmarket.com>.
++      # How about differentiating between stratus architectures? -djm
++      echo hppa1.1-stratus-sysv4
++      exit 0 ;;
++    *:*:*:FTX*)
++      # From seanf@swdc.stratus.com.
++      echo i860-stratus-sysv4
++      exit 0 ;;
++    mc68*:A/UX:*:*)
++      echo m68k-apple-aux${UNAME_RELEASE}
++      exit 0 ;;
++    news*:NEWS-OS:*:6*)
++      echo mips-sony-newsos6
++      exit 0 ;;
++    R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*)
++      if [ -d /usr/nec ]; then
++              echo mips-nec-sysv${UNAME_RELEASE}
++      else
++              echo mips-unknown-sysv${UNAME_RELEASE}
++      fi
++        exit 0 ;;
+ esac
+ #echo '(No uname command or uname output not recognized.)' 1>&2
+@@ -452,15 +778,6 @@
+ #endif
+ #endif
+-#if defined (host_mips) && defined (MIPSEB)
+-#if defined (SYSTYPE_BSD43)
+-  printf ("mips-mips-riscos4bsd\n"); exit (0);
+-#endif
+-#if defined (SYSTYPE_SYSV)
+-  printf ("mips-mips-riscos4sysv\n"); exit (0);
+-#endif
+-#endif
+-
+ #if defined (__arm) && defined (__acorn) && defined (__unix)
+   printf ("arm-acorn-riscix"); exit (0);
+ #endif
+@@ -475,7 +792,7 @@
+ #endif
+   int version;
+   version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+-  printf ("%s-next-nextstep%s\n", __ARCHITECTURE__,  version==2 ? "2" : "3");
++  printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+   exit (0);
+ #endif
+@@ -492,7 +809,7 @@
+ #endif
+ #if defined (__386BSD__)
+-  printf ("i386-unknown-bsd\n"); exit (0);
++  printf ("i386-pc-bsd\n"); exit (0);
+ #endif
+ #if defined (sequent)
+diff -Nru at-3.1.8/config.sub at-3.1.8.new/config.sub
+--- at-3.1.8/config.sub        Sun Feb 23 21:24:35 1997
++++ at-3.1.8.new/config.sub    Sun Mar 28 19:46:41 1999
+@@ -1,9 +1,9 @@
+ #! /bin/sh
+ # Configuration validation subroutine script, version 1.1.
+-#   Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
++#   Copyright (C) 1991, 92-97, 1998 Free Software Foundation, Inc.
+ # This file is (in principle) common to ALL GNU software.
+ # The presence of a machine in this file suggests that SOME GNU software
+-# can handle that machine.  It does not imply ALL GNU software can. 
++# can handle that machine.  It does not imply ALL GNU software can.
+ #
+ # This file is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+@@ -41,6 +41,8 @@
+ # The goal of this file is to map all the various variations of a given
+ # machine specification into a single specification in the form:
+ #     CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
++# or in some cases, the newer four-part form:
++#     CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+ # It is wrong to echo any other type of specification.
+ if [ x$1 = x ]
+@@ -62,11 +64,21 @@
+       ;;
+ esac
+-# Separate what the user gave into CPU-COMPANY and OS (if any).
+-basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+-if [ $basic_machine != $1 ]
+-then os=`echo $1 | sed 's/.*-/-/'`
+-else os=; fi
++# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
++# Here we must recognize all the valid KERNEL-OS combinations.
++maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
++case $maybe_os in
++  linux-gnu*)
++    os=-$maybe_os
++    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
++    ;;
++  *)
++    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
++    if [ $basic_machine != $1 ]
++    then os=`echo $1 | sed 's/.*-/-/'`
++    else os=; fi
++    ;;
++esac
+ ### Let's recognize common machines as not being operating systems so
+ ### that things like config.sub decstation-3100 work.  We also
+@@ -81,38 +93,43 @@
+       -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+       -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+       -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+-      -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp )
++      -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
++      -apple)
+               os=
+               basic_machine=$1
+               ;;
+       -hiux*)
+               os=-hiuxwe2
+               ;;
++      -sco5)
++              os=sco3.2v5
++              basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++              ;;
+       -sco4)
+               os=-sco3.2v4
+-              basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
++              basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco3.2.[4-9]*)
+               os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+-              basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
++              basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco3.2v[4-9]*)
+               # Don't forget version if it is 3.2v4 or newer.
+-              basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
++              basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -sco*)
+               os=-sco3.2v2
+-              basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
++              basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -isc)
+               os=-isc2.2
+-              basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
++              basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -clix*)
+               basic_machine=clipper-intergraph
+               ;;
+       -isc*)
+-              basic_machine=`echo $1 | sed -e 's/86-.*/86-unknown/'`
++              basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+               ;;
+       -lynx*)
+               os=-lynxos
+@@ -123,35 +140,49 @@
+       -windowsnt*)
+               os=`echo $os | sed -e 's/windowsnt/winnt/'`
+               ;;
++      -psos*)
++              os=-psos
++              ;;
+ esac
+ # Decode aliases for certain CPU-COMPANY combinations.
+ case $basic_machine in
+       # Recognize the basic CPU types without company name.
+       # Some are omitted here because they have special meanings below.
+-      tahoe | i[345]86 | i860 | m68k | m68000 | m88k | ns32k | arm \
+-              | arme[lb] | pyramid \
+-              | tron | a29k | 580 | i960 | h8300 | hppa1.0 | hppa1.1 \
+-              | alpha | we32k | ns16k | clipper | sparclite | i370 | sh \
+-              | powerpc | powerpcle | sparc64 | 1750a | dsp16xx | mips64 | mipsel \
+-              | pdp11 | mips64el | mips64orion | mips64orionel \
+-              | sparc)
++      tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
++              | arme[lb] | pyramid | mn10200 | mn10300 \
++              | tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \
++              | alpha | alphaev5 | alphaev56 | we32k | ns16k | clipper \
++              | i370 | sh | powerpc | powerpcle | 1750a | dsp16xx | pdp11 \
++              | mips64 | mipsel | mips64el | mips64orion | mips64orionel \
++              | mipstx39 | mipstx39el \
++              | sparc | sparclet | sparclite | sparc64 | v850)
+               basic_machine=$basic_machine-unknown
+               ;;
++      # We use `pc' rather than `unknown'
++      # because (1) that's what they normally are, and
++      # (2) the word "unknown" tends to confuse beginning users.
++      i[34567]86)
++        basic_machine=$basic_machine-pc
++        ;;
+       # Object if more than one company name word.
+       *-*-*)
+               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+               exit 1
+               ;;
+       # Recognize the basic CPU types with company name.
+-      vax-* | tahoe-* | i[345]86-* | i860-* | m68k-* | m68000-* | m88k-* \
+-            | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \
+-            | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \
+-            | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \
+-            | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \
+-            | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \
+-            | pdp11-* | sh-* | powerpc-* | powerpcle-* | sparc64-* | mips64-* | mipsel-* \
+-            | mips64el-* | mips64orion-* | mips64orionel-*)
++      vax-* | tahoe-* | i[34567]86-* | i860-* | m32r-* | m68k-* | m68000-* \
++            | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
++            | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
++            | power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \
++            | xmp-* | ymp-* | hppa-* | hppa1.0-* | hppa1.1-* \
++            | alpha-* | alphaev5-* | alphaev56-* | we32k-* | cydra-* \
++            | ns16k-* | pn-* | np1-* | xps100-* | clipper-* | orion-* \
++            | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
++            | sparc64-* | mips64-* | mipsel-* \
++            | mips64el-* | mips64orion-* | mips64orionel-*  \
++            | mipstx39-* | mipstx39el-* \
++            | f301-*)
+               ;;
+       # Recognize the various machine names and aliases which stand
+       # for a CPU type and a company and sometimes even an OS.
+@@ -178,9 +209,9 @@
+       amiga | amiga-*)
+               basic_machine=m68k-cbm
+               ;;
+-      amigados)
++      amigaos | amigados)
+               basic_machine=m68k-cbm
+-              os=-amigados
++              os=-amigaos
+               ;;
+       amigaunix | amix)
+               basic_machine=m68k-cbm
+@@ -190,6 +221,10 @@
+               basic_machine=m68k-apollo
+               os=-sysv
+               ;;
++      aux)
++              basic_machine=m68k-apple
++              os=-aux
++              ;;
+       balance)
+               basic_machine=ns32k-sequent
+               os=-dynix
+@@ -222,6 +257,10 @@
+               basic_machine=cray2-cray
+               os=-unicos
+               ;;
++      [ctj]90-cray)
++              basic_machine=c90-cray
++              os=-unicos
++              ;;
+       crds | unos)
+               basic_machine=m68k-crds
+               ;;
+@@ -303,25 +342,28 @@
+       hp9k8[0-9][0-9] | hp8[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               ;;
++      hppa-next)
++              os=-nextstep3
++              ;;
+       i370-ibm* | ibm*)
+               basic_machine=i370-ibm
+               os=-mvs
+               ;;
+ # I'm not sure what "Sysv32" means.  Should this be sysv3.2?
+-      i[345]86v32)
+-              basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
++      i[34567]86v32)
++              basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-sysv32
+               ;;
+-      i[345]86v4*)
+-              basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
++      i[34567]86v4*)
++              basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-sysv4
+               ;;
+-      i[345]86v)
+-              basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
++      i[34567]86v)
++              basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-sysv
+               ;;
+-      i[345]86sol2)
+-              basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'`
++      i[34567]86sol2)
++              basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+               os=-solaris2
+               ;;
+       iris | iris4d)
+@@ -352,6 +394,14 @@
+       miniframe)
+               basic_machine=m68000-convergent
+               ;;
++      mipsel*-linux*)
++              basic_machine=mipsel-unknown
++              os=-linux-gnu
++              ;;
++      mips*-linux*)
++              basic_machine=mips-unknown
++              os=-linux-gnu
++              ;;
+       mips3*-*)
+               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+               ;;
+@@ -419,21 +469,23 @@
+         pc532 | pc532-*)
+               basic_machine=ns32k-pc532
+               ;;
+-      pentium | p5 | p6)
+-              # We don't have specific support for the Intel Pentium (p6) followon yet, so just call it a Pentium
+-              basic_machine=i586-intel
++      pentium | p5 | k5 | nexen)
++              basic_machine=i586-pc
++              ;;
++      pentiumpro | p6 | k6 | 6x86)
++              basic_machine=i686-pc
++              ;;
++      pentiumii | pentium2)
++              basic_machine=i786-pc
+               ;;
+-      pentium-* | p5-* | p6-*)
+-              # We don't have specific support for the Intel Pentium (p6) followon yet, so just call it a Pentium
++      pentium-* | p5-* | k5-* | nexen-*)
+               basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+-      k5)
+-              # We don't have specific support for AMD's K5 yet, so just call it a Pentium
+-              basic_machine=i586-amd
+-              ;;
+-      nexen)
+-              # We don't have specific support for Nexgen yet, so just call it a Pentium
+-              basic_machine=i586-nexgen
++      pentiumpro-* | p6-* | k6-* | 6x86-*)
++              basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
++              ;;
++      pentiumii-* | pentium2-*)
++              basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pn)
+               basic_machine=pn-gould
+@@ -517,6 +569,12 @@
+               basic_machine=i386-sequent
+               os=-dynix
+               ;;
++      tx39)
++              basic_machine=mipstx39-unknown
++              ;;
++      tx39el)
++              basic_machine=mipstx39el-unknown
++              ;;
+       tower | tower-32)
+               basic_machine=m68k-ncr
+               ;;
+@@ -536,6 +594,9 @@
+               basic_machine=vax-dec
+               os=-vms
+               ;;
++      vpp*|vx|vx-*)
++               basic_machine=f301-fujitsu
++               ;;
+       vxworks960)
+               basic_machine=i960-wrs
+               os=-vxworks
+@@ -563,7 +624,11 @@
+ # Here we handle the default manufacturer of certain CPU types.  It is in
+ # some cases the only manufacturer, in others, it is the most popular.
+       mips)
+-              basic_machine=mips-mips
++              if [ x$os = x-linux-gnu ]; then
++                      basic_machine=mips-unknown
++              else
++                      basic_machine=mips-mips
++              fi
+               ;;
+       romp)
+               basic_machine=romp-ibm
+@@ -615,6 +680,8 @@
+ if [ x"$os" != x"" ]
+ then
+ case $os in
++        # First match some system type aliases
++        # that might get confused with valid system types.
+       # -solaris* is a basic system type, with this one exception.
+       -solaris1 | -solaris1.*)
+               os=`echo $os | sed -e 's|solaris1|sunos4|'`
+@@ -622,28 +689,37 @@
+       -solaris)
+               os=-solaris2
+               ;;
+-      -unixware* | svr4*)
++      -svr4*)
+               os=-sysv4
+               ;;
++      -unixware*)
++              os=-sysv4.2uw
++              ;;
+       -gnu/linux*)
+-              os=`echo $os | sed -e 's|gnu/linux|linux|'`
++              os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+               ;;
+       # First accept the basic system types.
+       # The portable systems comes first.
+       # Each alternative MUST END IN A *, to match a version number.
+       # -sysv* is not here because it comes later, after sysvr4.
+       -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+-            | -vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[345]* \
++            | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+             | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+-            | -amigados* | -msdos* | -newsos* | -unicos* | -aos* \
+-            | -nindy* | -vxworks* | -ebmon* | -hms* | -mvs* | -clix* \
+-            | -riscos* | -linux* | -uniplus* | -iris* | -rtu* | -xenix* \
+-            | -hiux* | -386bsd* | -netbsd* | -freebsd* | -riscix* \
++            | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
++            | -aos* \
++            | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
++            | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
++            | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
+             | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \
+             | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+-            | -udi* | -eabi* | -lites* )
++            | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
++            | -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
++            | -mingw32* | -linux-gnu* | -uxpv*)
+       # Remember, each alternative MUST END IN *, to match a version number.
+               ;;
++      -linux*)
++              os=`echo $os | sed -e 's|linux|linux-gnu|'`
++              ;;
+       -sunos5*)
+               os=`echo $os | sed -e 's|sunos5|solaris2|'`
+               ;;
+@@ -668,6 +744,9 @@
+       -ctix* | -uts*)
+               os=-sysv
+               ;;
++      -ns2 )
++              os=-nextstep2
++              ;;
+       # Preserve the version number of sinix5.
+       -sinix5.*)
+               os=`echo $os | sed -e 's|sinix|sysv|'`
+@@ -761,7 +840,7 @@
+               os=-sysv
+               ;;
+       *-cbm)
+-              os=-amigados
++              os=-amigaos
+               ;;
+       *-dg)
+               os=-dgux
+@@ -775,6 +854,9 @@
+       m88k-omron*)
+               os=-luna
+               ;;
++      *-next )
++              os=-nextstep
++              ;;
+       *-sequent)
+               os=-ptx
+               ;;
+@@ -808,6 +890,9 @@
+       *-masscomp)
+               os=-rtu
+               ;;
++      f301-fujitsu)
++              os=-uxpv
++              ;;
+       *)
+               os=-none
+               ;;
+@@ -826,9 +911,6 @@
+                       -sunos*)
+                               vendor=sun
+                               ;;
+-                      -lynxos*)
+-                              vendor=lynx
+-                              ;;
+                       -aix*)
+                               vendor=ibm
+                               ;;
+@@ -856,8 +938,11 @@
+                       -ptx*)
+                               vendor=sequent
+                               ;;
+-                      -vxworks*)
++                      -vxsim* | -vxworks*)
+                               vendor=wrs
++                              ;;
++                      -aux*)
++                              vendor=apple
+                               ;;
+               esac
+               basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+diff -Nru at-3.1.8/daemon.c at-3.1.8.new/daemon.c
+--- at-3.1.8/daemon.c  Wed Mar 12 20:34:41 1997
++++ at-3.1.8.new/daemon.c      Sun Mar 28 19:46:41 1999
+@@ -72,7 +72,7 @@
+     va_list args;
+     va_start(args, fmt);
+-    vsprintf(buf, fmt, args);
++    vsnprintf(buf, sizeof(buf), fmt, args);
+     va_end(args);
+     if (daemon_debug) {
+@@ -90,7 +90,7 @@
+     va_list args;
+     va_start(args, fmt);
+-    vsprintf(buf, fmt, args);
++    vsnprintf(buf, sizeof(buf), fmt, args);
+     va_end(args);
+     if (daemon_debug) {
+@@ -127,6 +127,7 @@
+       }
+     }
+     old_umask = umask(S_IWGRP | S_IWOTH);
++    (void) setsid();
+     PRIV_START
+diff -Nru at-3.1.8/lex.yy.c at-3.1.8.new/lex.yy.c
+--- at-3.1.8/lex.yy.c  Sun Sep 28 22:00:37 1997
++++ at-3.1.8.new/lex.yy.c      Sun Mar 28 19:46:41 1999
+@@ -1,7 +1,7 @@
+ /* A lexical scanner generated by flex */
+ /* Scanner skeleton version:
+- * $Header$
++ * $Header$
+  */
+ #define FLEX_SCANNER
+@@ -126,6 +126,7 @@
+               { \
+               /* Undo effects of setting up yytext. */ \
+               *yy_cp = yy_hold_char; \
++              YY_RESTORE_YY_MORE_OFFSET \
+               yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
+               YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+               } \
+@@ -235,7 +236,7 @@
+ #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
+ YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
+-YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *str ));
++YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
+ YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
+ static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
+@@ -456,6 +457,7 @@
+ #define REJECT reject_used_but_not_detected
+ #define yymore() yymore_used_but_not_detected
+ #define YY_MORE_ADJ 0
++#define YY_RESTORE_YY_MORE_OFFSET
+ char *yytext;
+ #line 1 "parsetime.l"
+ #define INITIAL 0
+@@ -491,7 +493,7 @@
+       result = 1; \
+       } \
+     } while(0)
+-#line 495 "lex.yy.c"
++#line 497 "lex.yy.c"
+ /* Macros after this point can all be overridden by user definitions in
+  * section 1.
+@@ -513,6 +515,10 @@
+ static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
+ #endif
++#ifdef YY_NEED_STRLEN
++static int yy_flex_strlen YY_PROTO(( yyconst char * ));
++#endif
++
+ #ifndef YY_NO_INPUT
+ #ifdef __cplusplus
+ static int yyinput YY_PROTO(( void ));
+@@ -641,7 +647,7 @@
+ #line 36 "parsetime.l"
+-#line 645 "lex.yy.c"
++#line 651 "lex.yy.c"
+       if ( yy_init )
+               {
+@@ -919,7 +925,7 @@
+ #line 77 "parsetime.l"
+ ECHO;
+       YY_BREAK
+-#line 923 "lex.yy.c"
++#line 929 "lex.yy.c"
+ case YY_STATE_EOF(INITIAL):
+       yyterminate();
+@@ -930,6 +936,7 @@
+               /* Undo the effects of YY_DO_BEFORE_ACTION. */
+               *yy_cp = yy_hold_char;
++              YY_RESTORE_YY_MORE_OFFSET
+               if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
+                       {
+@@ -1075,7 +1082,7 @@
+               { /* Don't try to fill the buffer, so this is an EOF. */
+               if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
+                       {
+-                      /* We matched a singled characater, the EOB, so
++                      /* We matched a single character, the EOB, so
+                        * treat this as a final EOF.
+                        */
+                       return EOB_ACT_END_OF_FILE;
+@@ -1102,7 +1109,7 @@
+               /* don't do the read, it's not guaranteed to return an EOF,
+                * just force an EOF
+                */
+-              yy_n_chars = 0;
++              yy_current_buffer->yy_n_chars = yy_n_chars = 0;
+       else
+               {
+@@ -1157,6 +1164,8 @@
+               /* Read in more data. */
+               YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
+                       yy_n_chars, num_to_read );
++
++              yy_current_buffer->yy_n_chars = yy_n_chars;
+               }
+       if ( yy_n_chars == 0 )
+@@ -1281,7 +1290,8 @@
+               yy_cp += (int) (dest - source);
+               yy_bp += (int) (dest - source);
+-              yy_n_chars = yy_current_buffer->yy_buf_size;
++              yy_current_buffer->yy_n_chars =
++                      yy_n_chars = yy_current_buffer->yy_buf_size;
+               if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
+                       YY_FATAL_ERROR( "flex scanner push-back overflow" );
+@@ -1319,19 +1329,31 @@
+               else
+                       { /* need more input */
+-                      yytext_ptr = yy_c_buf_p;
++                      int offset = yy_c_buf_p - yytext_ptr;
+                       ++yy_c_buf_p;
+                       switch ( yy_get_next_buffer() )
+                               {
++                              case EOB_ACT_LAST_MATCH:
++                                      /* This happens because yy_g_n_b()
++                                       * sees that we've accumulated a
++                                       * token and flags that we need to
++                                       * try matching the token before
++                                       * proceeding.  But for input(),
++                                       * there's no matching to consider.
++                                       * So convert the EOB_ACT_LAST_MATCH
++                                       * to EOB_ACT_END_OF_FILE.
++                                       */
++
++                                      /* Reset buffer status. */
++                                      yyrestart( yyin );
++
++                                      /* fall through */
++
+                               case EOB_ACT_END_OF_FILE:
+                                       {
+                                       if ( yywrap() )
+-                                              {
+-                                              yy_c_buf_p =
+-                                              yytext_ptr + YY_MORE_ADJ;
+                                               return EOF;
+-                                              }
+                                       if ( ! yy_did_buffer_switch_on_eof )
+                                               YY_NEW_FILE;
+@@ -1343,17 +1365,8 @@
+                                       }
+                               case EOB_ACT_CONTINUE_SCAN:
+-                                      yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
++                                      yy_c_buf_p = yytext_ptr + offset;
+                                       break;
+-
+-                              case EOB_ACT_LAST_MATCH:
+-#ifdef __cplusplus
+-                                      YY_FATAL_ERROR(
+-                                      "unexpected last match in yyinput()" );
+-#else
+-                                      YY_FATAL_ERROR(
+-                                      "unexpected last match in input()" );
+-#endif
+                               }
+                       }
+               }
+@@ -1517,6 +1530,9 @@
+ #endif
+       {
++      if ( ! b )
++              return;
++
+       b->yy_n_chars = 0;
+       /* We always need two end-of-buffer characters.  The first causes
+@@ -1576,17 +1592,17 @@
+ #ifndef YY_NO_SCAN_STRING
+ #ifdef YY_USE_PROTOS
+-YY_BUFFER_STATE yy_scan_string( yyconst char *str )
++YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
+ #else
+-YY_BUFFER_STATE yy_scan_string( str )
+-yyconst char *str;
++YY_BUFFER_STATE yy_scan_string( yy_str )
++yyconst char *yy_str;
+ #endif
+       {
+       int len;
+-      for ( len = 0; str[len]; ++len )
++      for ( len = 0; yy_str[len]; ++len )
+               ;
+-      return yy_scan_bytes( str, len );
++      return yy_scan_bytes( yy_str, len );
+       }
+ #endif
+@@ -1707,7 +1723,7 @@
+               { \
+               /* Undo effects of setting up yytext. */ \
+               yytext[yyleng] = yy_hold_char; \
+-              yy_c_buf_p = yytext + n - YY_MORE_ADJ; \
++              yy_c_buf_p = yytext + n; \
+               yy_hold_char = *yy_c_buf_p; \
+               *yy_c_buf_p = '\0'; \
+               yyleng = n; \
+@@ -1730,6 +1746,22 @@
+       register int i;
+       for ( i = 0; i < n; ++i )
+               s1[i] = s2[i];
++      }
++#endif
++
++#ifdef YY_NEED_STRLEN
++#ifdef YY_USE_PROTOS
++static int yy_flex_strlen( yyconst char *s )
++#else
++static int yy_flex_strlen( s )
++yyconst char *s;
++#endif
++      {
++      register int n;
++      for ( n = 0; s[n]; ++n )
++              ;
++
++      return n;
+       }
+ #endif
+diff -Nru at-3.1.8/panic.c at-3.1.8.new/panic.c
+--- at-3.1.8/panic.c   Sun Sep 28 22:00:37 1997
++++ at-3.1.8.new/panic.c       Sun Mar 28 19:46:41 1999
+@@ -41,6 +41,7 @@
+ /* Local headers */
+ #include "panic.h"
++#include "privs.h"
+ #include "at.h"
+ /* File scope variables */
+@@ -72,12 +73,15 @@
+     va_list args;
+     va_start(args, fmt);
+-    vsprintf(buf, fmt, args);
++    vsnprintf(buf, sizeof(buf), fmt, args);
+     va_end(args);
+     perror(buf);
+-    if (fcreated)
++    if (fcreated) {
++        PRIV_START
+       unlink(atfile);
++        PRIV_END
++    }
+     exit(EXIT_FAILURE);
+ }
+@@ -88,7 +92,7 @@
+ /* Print usage and exit.
+  */
+     fprintf(stderr, "Usage: at [-V] [-q x] [-f file] [-m] time\n"
+-          "       atq [-V] [-q x] [-v]\n"
++          "       atq [-V] [-q x]\n"
+           "       atrm [-V] [-q x] job ...\n"
+           "       batch [-V] [-f file] [-m]\n");
+     exit(EXIT_FAILURE);
+diff -Nru at-3.1.8/parsetime.y at-3.1.8.new/parsetime.y
+--- at-3.1.8/parsetime.y       Sun Sep 28 20:21:29 1997
++++ at-3.1.8.new/parsetime.y   Sun Mar 28 19:46:41 1999
+@@ -11,6 +11,9 @@
+ static int isgmt;
+ static int time_only;
++extern int yyerror(char *s);
++extern int yylex();
++
+ int add_date(int number, int period);
+ %}
+@@ -181,6 +184,15 @@
+               ;
+ am_pm         : AM
++                  {
++                      if (exectm.tm_hour > 12) {
++                          yyerror("Hour too large for AM");
++                          YYERROR;
++                      }
++                      else if (exectm.tm_hour == 12) {
++                          exectm.tm_hour = 0;
++                      }
++                  }
+               | PM
+                   {
+                       if (exectm.tm_hour > 12) {
+@@ -258,13 +270,13 @@
+               ;
+-day_of_week   : SUN { $$ = 0; }
+-              | MON { $$ = 1; }
+-              | TUE { $$ = 2; }
+-              | WED { $$ = 3; }
+-              | THU { $$ = 4; }
+-              | FRI { $$ = 5; }
+-              | SAT { $$ = 6; }
++day_of_week   : MON { $$ = 0; }
++              | TUE { $$ = 1; }
++              | WED { $$ = 2; }
++              | THU { $$ = 3; }
++              | FRI { $$ = 4; }
++              | SAT { $$ = 5; }
++                | SUN { $$ = 6; }
+               ;
+ inc_number    : INT
+diff -Nru at-3.1.8/y.tab.c at-3.1.8.new/y.tab.c
+--- at-3.1.8/y.tab.c   Sun Sep 28 20:21:31 1997
++++ at-3.1.8.new/y.tab.c       Sun Mar 28 19:46:41 1999
+@@ -1,5 +1,6 @@
+-/*  A Bison parser, made from parsetime.y with Bison version GNU Bison version 1.22
++/*  A Bison parser, made from parsetime.y
++ by  GNU Bison version 1.25
+   */
+ #define YYBISON 1  /* Identify Bison output.  */
+@@ -55,30 +56,16 @@
+ static int isgmt;
+ static int time_only;
++extern int yyerror(char *s);
++extern int yylex();
++
+ int add_date(int number, int period);
+-#line 17 "parsetime.y"
++#line 20 "parsetime.y"
+ typedef union {
+       char *          charval;
+       int             intval;
+ } YYSTYPE;
+-
+-#ifndef YYLTYPE
+-typedef
+-  struct yyltype
+-    {
+-      int timestamp;
+-      int first_line;
+-      int first_column;
+-      int last_line;
+-      int last_column;
+-      char *text;
+-   }
+-  yyltype;
+-
+-#define YYLTYPE yyltype
+-#endif
+-
+ #include <stdio.h>
+ #ifndef __cplusplus
+@@ -158,9 +145,9 @@
+      0,    55,     0,     3,     0,     5,     0,     6,     0,    26,
+      0,    27,     0,    28,     0,    29,     0,    30,     0,    31,
+      0,    32,     0,    33,     0,    34,     0,    35,     0,    36,
+-     0,    37,     0,     3,     0,     3,     0,     3,     0,    10,
+-     0,    11,     0,    12,     0,    13,     0,    14,     0,    15,
+-     0,    16,     0,     3,     0,    44,     0,    45,     0,    41,
++     0,    37,     0,     3,     0,     3,     0,     3,     0,    11,
++     0,    12,     0,    13,     0,    14,     0,    15,     0,    16,
++     0,    10,     0,     3,     0,    44,     0,    45,     0,    41,
+      0,    46,     0,    39,     0
+ };
+@@ -168,24 +155,28 @@
+ #if YYDEBUG != 0
+ static const short yyrline[] = { 0,
+-    39,    43,    44,    45,    46,    47,    48,    51,    52,    53,
+-    56,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+-    72,    78,    85,    86,    87,    91,    92,    96,    97,    98,
+-    99,   100,   101,   104,   108,   112,   118,   124,   125,   126,
+-   127,   128,   129,   132,   157,   170,   173,   183,   184,   197,
+-   198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
+-   208,   211,   225,   238,   261,   262,   263,   264,   265,   266,
+-   267,   270,   280,   281,   282,   283,   284
++    42,    46,    47,    48,    49,    50,    51,    54,    55,    56,
++    59,    62,    63,    64,    65,    66,    67,    68,    69,    70,
++    75,    81,    88,    89,    90,    94,    95,    99,   100,   101,
++   102,   103,   104,   107,   111,   115,   121,   127,   128,   129,
++   130,   131,   132,   135,   160,   173,   176,   186,   187,   200,
++   201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
++   211,   214,   228,   241,   264,   265,   266,   267,   268,   269,
++   270,   273,   283,   284,   285,   286,   287
+ };
++#endif
+-static const char * const yytname[] = {   "$","error","$illegal.","INT","NOW",
++
++#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
++
++static const char * const yytname[] = {   "$","error","$undefined.","INT","NOW",
+ "AM","PM","NOON","MIDNIGHT","TEATIME","SUN","MON","TUE","WED","THU","FRI","SAT",
+ "TODAY","TOMORROW","NEXT","MINUTE","HOUR","DAY","WEEK","MONTH","YEAR","JAN",
+ "FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC","WORD","','",
+-"'-'","'.'","'/'","'+'","':'","'\\''","'h'","timespec","nowspec","now","time",
++"'-'","'.'","'/'","'+'","':'","'''","'h'","timespec","nowspec","now","time",
+ "date","increment","decrement","inc_period","hr24clock_hr_min","timezone_name",
+ "hr24clock_hour","minute","am_pm","month_name","month_number","day_number","year_number",
+-"day_of_week","inc_number","time_sep",""
++"day_of_week","inc_number","time_sep", NULL
+ };
+ #endif
+@@ -213,8 +204,8 @@
+ static const short yydefact[] = {     0,
+     44,    11,    20,    21,    22,     7,     8,     1,    12,     0,
+-     0,     0,     0,     9,    10,    63,    65,    66,    67,    68,
+-    69,    70,    71,    26,    27,    50,    51,    52,    53,    54,
++     0,     0,     0,     9,    10,    63,    71,    65,    66,    67,
++    68,    69,    70,    26,    27,    50,    51,    52,    53,    54,
+     55,    56,    57,    58,    59,    60,    61,     2,     3,     5,
+      0,     0,     0,     0,    25,    45,    13,    48,    49,    77,
+     75,    73,    74,    76,    16,     0,    38,    39,    40,    41,
+@@ -283,14 +274,14 @@
+     -1,    41
+ };
+ /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
+-#line 3 "/usr/lib/bison.simple"
++#line 3 "/usr/share/misc/bison.simple"
+ /* Skeleton output parser for bison,
+-   Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
++   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 1, or (at your option)
++   the Free Software Foundation; either version 2, or (at your option)
+    any later version.
+    This program is distributed in the hope that it will be useful,
+@@ -300,8 +291,12 @@
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+-   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
++   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
++/* As a special exception, when this file is copied by Bison into a
++   Bison output file, you may use that output file without restriction.
++   This special exception was added by the Free Software Foundation
++   in version 1.24 of Bison.  */
+ #ifndef alloca
+ #ifdef __GNUC__
+@@ -375,10 +370,18 @@
+ #ifdef YYPURE
+ #ifdef YYLSP_NEEDED
++#ifdef YYLEX_PARAM
++#define YYLEX         yylex(&yylval, &yylloc, YYLEX_PARAM)
++#else
+ #define YYLEX         yylex(&yylval, &yylloc)
++#endif
++#else /* not YYLSP_NEEDED */
++#ifdef YYLEX_PARAM
++#define YYLEX         yylex(&yylval, YYLEX_PARAM)
+ #else
+ #define YYLEX         yylex(&yylval)
+ #endif
++#endif /* not YYLSP_NEEDED */
+ #endif
+ /* If nonreentrant, generate the variables here */
+@@ -426,16 +429,16 @@
+ #endif
\f
+ #if __GNUC__ > 1              /* GNU C and GNU C++ define this.  */
+-#define __yy_bcopy(FROM,TO,COUNT)     __builtin_memcpy(TO,FROM,COUNT)
++#define __yy_memcpy(TO,FROM,COUNT)    __builtin_memcpy(TO,FROM,COUNT)
+ #else                         /* not GNU C or C++ */
+ #ifndef __cplusplus
+ /* This is the most reliable way to avoid incompatibilities
+    in available built-in functions on various systems.  */
+ static void
+-__yy_bcopy (from, to, count)
+-     char *from;
++__yy_memcpy (to, from, count)
+      char *to;
++     char *from;
+      int count;
+ {
+   register char *f = from;
+@@ -451,7 +454,7 @@
+ /* This is the most reliable way to avoid incompatibilities
+    in available built-in functions on various systems.  */
+ static void
+-__yy_bcopy (char *from, char *to, int count)
++__yy_memcpy (char *to, char *from, int count)
+ {
+   register char *f = from;
+   register char *t = to;
+@@ -464,9 +467,30 @@
+ #endif
+ #endif
\f
+-#line 184 "/usr/lib/bison.simple"
++#line 196 "/usr/share/misc/bison.simple"
++
++/* The user can define YYPARSE_PARAM as the name of an argument to be passed
++   into yyparse.  The argument should have type void *.
++   It should actually point to an object.
++   Grammar actions can access the variable by casting it
++   to the proper pointer type.  */
++
++#ifdef YYPARSE_PARAM
++#ifdef __cplusplus
++#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
++#define YYPARSE_PARAM_DECL
++#else /* not __cplusplus */
++#define YYPARSE_PARAM_ARG YYPARSE_PARAM
++#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
++#endif /* not __cplusplus */
++#else /* not YYPARSE_PARAM */
++#define YYPARSE_PARAM_ARG
++#define YYPARSE_PARAM_DECL
++#endif /* not YYPARSE_PARAM */
++
+ int
+-yyparse()
++yyparse(YYPARSE_PARAM_ARG)
++     YYPARSE_PARAM_DECL
+ {
+   register int yystate;
+   register int yyn;
+@@ -582,12 +606,12 @@
+       if (yystacksize > YYMAXDEPTH)
+       yystacksize = YYMAXDEPTH;
+       yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
+-      __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
++      __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
+       yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
+-      __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
++      __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
+ #ifdef YYLSP_NEEDED
+       yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
+-      __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
++      __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
+ #endif
+ #endif /* no yyoverflow */
+@@ -748,20 +772,20 @@
+   switch (yyn) {
+ case 1:
+-#line 40 "parsetime.y"
++#line 43 "parsetime.y"
+ {
+                       time_only = 1;
+                   ;
+     break;}
+ case 20:
+-#line 68 "parsetime.y"
++#line 71 "parsetime.y"
+ {
+                       exectm.tm_hour = 12;
+                       exectm.tm_min = 0;
+                   ;
+     break;}
+ case 21:
+-#line 73 "parsetime.y"
++#line 76 "parsetime.y"
+ {
+                       exectm.tm_hour = 0;
+                       exectm.tm_min = 0;
+@@ -769,74 +793,74 @@
+                   ;
+     break;}
+ case 22:
+-#line 79 "parsetime.y"
++#line 82 "parsetime.y"
+ {
+                       exectm.tm_hour = 16;
+                       exectm.tm_min = 0;
+                   ;
+     break;}
+ case 25:
+-#line 88 "parsetime.y"
++#line 91 "parsetime.y"
+ {
+                      add_date ((7 + yyvsp[0].intval - exectm.tm_wday) %7 + 1, DAY);
+                  ;
+     break;}
+ case 27:
+-#line 93 "parsetime.y"
++#line 96 "parsetime.y"
+ {
+                       add_date(1, DAY);
+                  ;
+     break;}
+ case 34:
+-#line 105 "parsetime.y"
++#line 108 "parsetime.y"
+ {
+                       add_date(yyvsp[-1].intval, yyvsp[0].intval);
+                   ;
+     break;}
+ case 35:
+-#line 109 "parsetime.y"
++#line 112 "parsetime.y"
+ {
+                       add_date(1, yyvsp[0].intval);
+                   ;
+     break;}
+ case 36:
+-#line 113 "parsetime.y"
++#line 116 "parsetime.y"
+ {
+                       add_date ((6 + yyvsp[0].intval - exectm.tm_wday) %7 +1, DAY);
+                   ;
+     break;}
+ case 37:
+-#line 119 "parsetime.y"
++#line 122 "parsetime.y"
+ {
+                       add_date(-yyvsp[-1].intval, yyvsp[0].intval);
+                   ;
+     break;}
+ case 38:
+-#line 124 "parsetime.y"
++#line 127 "parsetime.y"
+ { yyval.intval = MINUTE ; ;
+     break;}
+ case 39:
+-#line 125 "parsetime.y"
++#line 128 "parsetime.y"
+ { yyval.intval = HOUR ; ;
+     break;}
+ case 40:
+-#line 126 "parsetime.y"
++#line 129 "parsetime.y"
+ { yyval.intval = DAY ; ;
+     break;}
+ case 41:
+-#line 127 "parsetime.y"
++#line 130 "parsetime.y"
+ { yyval.intval = WEEK ; ;
+     break;}
+ case 42:
+-#line 128 "parsetime.y"
++#line 131 "parsetime.y"
+ { yyval.intval = MONTH ; ;
+     break;}
+ case 43:
+-#line 129 "parsetime.y"
++#line 132 "parsetime.y"
+ { yyval.intval = YEAR ; ;
+     break;}
+ case 44:
+-#line 133 "parsetime.y"
++#line 136 "parsetime.y"
+ {
+                       exectm.tm_min = -1;
+                       exectm.tm_hour = -1;
+@@ -861,7 +885,7 @@
+                   ;
+     break;}
+ case 45:
+-#line 158 "parsetime.y"
++#line 161 "parsetime.y"
+ {
+                       if (strcasecmp(yyvsp[0].charval,"utc") == 0) {
+                           isgmt = 1;
+@@ -874,7 +898,7 @@
+                   ;
+     break;}
+ case 47:
+-#line 174 "parsetime.y"
++#line 177 "parsetime.y"
+ {
+                       if (sscanf(yyvsp[0].charval, "%d", &exectm.tm_min) != 1) {
+                           yyerror("Error in minute");
+@@ -884,7 +908,7 @@
+                   ;
+     break;}
+ case 49:
+-#line 185 "parsetime.y"
++#line 188 "parsetime.y"
+ {
+                       if (exectm.tm_hour > 12) {
+                           yyerror("Hour too large for PM");
+@@ -896,55 +920,55 @@
+                   ;
+     break;}
+ case 50:
+-#line 197 "parsetime.y"
++#line 200 "parsetime.y"
+ { exectm.tm_mon = 0; ;
+     break;}
+ case 51:
+-#line 198 "parsetime.y"
++#line 201 "parsetime.y"
+ { exectm.tm_mon = 1; ;
+     break;}
+ case 52:
+-#line 199 "parsetime.y"
++#line 202 "parsetime.y"
+ { exectm.tm_mon = 2; ;
+     break;}
+ case 53:
+-#line 200 "parsetime.y"
++#line 203 "parsetime.y"
+ { exectm.tm_mon = 3; ;
+     break;}
+ case 54:
+-#line 201 "parsetime.y"
++#line 204 "parsetime.y"
+ { exectm.tm_mon = 4; ;
+     break;}
+ case 55:
+-#line 202 "parsetime.y"
++#line 205 "parsetime.y"
+ { exectm.tm_mon = 5; ;
+     break;}
+ case 56:
+-#line 203 "parsetime.y"
++#line 206 "parsetime.y"
+ { exectm.tm_mon = 6; ;
+     break;}
+ case 57:
+-#line 204 "parsetime.y"
++#line 207 "parsetime.y"
+ { exectm.tm_mon = 7; ;
+     break;}
+ case 58:
+-#line 205 "parsetime.y"
++#line 208 "parsetime.y"
+ { exectm.tm_mon = 8; ;
+     break;}
+ case 59:
+-#line 206 "parsetime.y"
++#line 209 "parsetime.y"
+ { exectm.tm_mon = 9; ;
+     break;}
+ case 60:
+-#line 207 "parsetime.y"
++#line 210 "parsetime.y"
+ { exectm.tm_mon =10; ;
+     break;}
+ case 61:
+-#line 208 "parsetime.y"
++#line 211 "parsetime.y"
+ { exectm.tm_mon =11; ;
+     break;}
+ case 62:
+-#line 212 "parsetime.y"
++#line 215 "parsetime.y"
+ {
+                       {
+                           int mnum = -1;
+@@ -960,7 +984,7 @@
+                   ;
+     break;}
+ case 63:
+-#line 226 "parsetime.y"
++#line 229 "parsetime.y"
+ {
+                       exectm.tm_mday = -1;
+                       sscanf(yyvsp[0].charval, "%d", &exectm.tm_mday);
+@@ -973,7 +997,7 @@
+                    ;
+     break;}
+ case 64:
+-#line 239 "parsetime.y"
++#line 242 "parsetime.y"
+ { 
+                       {
+                           int ynum;
+@@ -995,35 +1019,35 @@
+                   ;
+     break;}
+ case 65:
+-#line 261 "parsetime.y"
++#line 264 "parsetime.y"
+ { yyval.intval = 0; ;
+     break;}
+ case 66:
+-#line 262 "parsetime.y"
++#line 265 "parsetime.y"
+ { yyval.intval = 1; ;
+     break;}
+ case 67:
+-#line 263 "parsetime.y"
++#line 266 "parsetime.y"
+ { yyval.intval = 2; ;
+     break;}
+ case 68:
+-#line 264 "parsetime.y"
++#line 267 "parsetime.y"
+ { yyval.intval = 3; ;
+     break;}
+ case 69:
+-#line 265 "parsetime.y"
++#line 268 "parsetime.y"
+ { yyval.intval = 4; ;
+     break;}
+ case 70:
+-#line 266 "parsetime.y"
++#line 269 "parsetime.y"
+ { yyval.intval = 5; ;
+     break;}
+ case 71:
+-#line 267 "parsetime.y"
++#line 270 "parsetime.y"
+ { yyval.intval = 6; ;
+     break;}
+ case 72:
+-#line 271 "parsetime.y"
++#line 274 "parsetime.y"
+ {
+                       if (sscanf(yyvsp[0].charval, "%d", &yyval.intval) != 1) {
+                           yyerror("Unknown increment");
+@@ -1034,7 +1058,7 @@
+     break;}
+ }
+    /* the action file gets copied in in place of this dollarsign */
+-#line 465 "/usr/lib/bison.simple"
++#line 498 "/usr/share/misc/bison.simple"
\f
+   yyvsp -= yylen;
+   yyssp -= yylen;
+@@ -1230,7 +1254,7 @@
+   yystate = yyn;
+   goto yynewstate;
+ }
+-#line 287 "parsetime.y"
++#line 290 "parsetime.y"
This page took 0.380728 seconds and 4 git commands to generate.