[gnu.bash.bug] bash 1.04 for Apollo/SR10.1

jnp@mjolner.tele.nokia.fi (J|rgen N|rgaard) (01/11/90)

Patches for Apollo / SR10.1 / BSD4.3

*** Makefile.old	Thu Jan 11 11:15:43 1990
--- Makefile	Thu Jan 11 12:33:53 1990
***************
*** 37,63 ****
  
  # Destination installation directory.  The shell is copied here if
  # you do a `make install'.  The directory name does NOT end in a slash.
  DESTDIR = /usr/gnu/bin
  
  # The name of the target hardware.  It makes a difference.  If your
  # machine doesn't seem to be represented by one of the machines here,
  # try one and see how well you do.
  # Use i386 for PC type 386 boxes. (Compaq, etc.)
  # SUN3, SUN4, SUN386i, VAX, SONY, CONVEX, HP, HP9KS300, i386, NeXT, AIX,
! # ATT3B, ATT386
! TARGET = SUN3
  
  # The name of the target operating system.  There isn't such a big
  # difference between SUNOS3 and Bsd.  But there might be in the future.
  # SUNOS3, SUNOS4, SYSV, Bsd, HPUX, UNIXPC
! OS = SUNOS4
  
  # You only need this if you are hacking the shell in a location
  # that doesn't do enough backups, or does a poor job.  In that
  # case, BACKUP_DIR should be the name of a directory on another
  # device (i.e. different than the one you are building the shell
  # on), and you should do `make backup' at least once a day.
  #BACKUP_DIR = /home/gogol/bash
  
  #
  ####################################################################
--- 37,63 ----
  
  # Destination installation directory.  The shell is copied here if
  # you do a `make install'.  The directory name does NOT end in a slash.
  DESTDIR = /usr/gnu/bin
  
  # The name of the target hardware.  It makes a difference.  If your
  # machine doesn't seem to be represented by one of the machines here,
  # try one and see how well you do.
  # Use i386 for PC type 386 boxes. (Compaq, etc.)
  # SUN3, SUN4, SUN386i, VAX, SONY, CONVEX, HP, HP9KS300, i386, NeXT, AIX,
! # ATT3B, ATT386, APOLLO
! TARGET = APOLLO
  
  # The name of the target operating system.  There isn't such a big
  # difference between SUNOS3 and Bsd.  But there might be in the future.
  # SUNOS3, SUNOS4, SYSV, Bsd, HPUX, UNIXPC
! OS = Bsd
  
  # You only need this if you are hacking the shell in a location
  # that doesn't do enough backups, or does a poor job.  In that
  # case, BACKUP_DIR should be the name of a directory on another
  # device (i.e. different than the one you are building the shell
  # on), and you should do `make backup' at least once a day.
  #BACKUP_DIR = /home/gogol/bash
  
  #
  ####################################################################
***************
*** 68,99 ****
  # PROFILE_FLAGS is either -pg, to generate profiling info for use
  # with gprof, or nothing (the default).
  PROFILE_FLAGS=
  
  # HP-UX compilation requires the BSD library.
  #LOCAL_LIBS = -lBSD
  
  # Xenix requires -ldir -lx.  It is also required in the readline Makefile.
  #LOCAL_LIBS = -ldir -lx
  
! GCC_SUNOS4_FLAG = -Bstatic
  DEBUG_FLAGS = $(PROFILE_FLAGS) -g $(GCC_SUNOS4_FLAG)
  LDFLAGS	= $(DEBUG_FLAGS)
  CFLAGS	= $(DEBUG_FLAGS) -D${TARGET} -DTARGET=${TARGET} -D${OS}
  CPPFLAGS= -I$(LIBSRC)
  
  # If you don't have Bison use "yacc".  Otherwise use "bison -y".
  #BISON = yacc
  BISON = bison -y
  
  # If you don't have Gcc use cc.
! CC = gcc -traditional
  
  ####################################################################
  
  # These are required for sending bug reports.
  SYSTEM_NAME = '"$(TARGET)"'
  OS_NAME = '"$(OS)"'
  
  # The name of this program.
  PROGRAM = bash
  
--- 68,101 ----
  # PROFILE_FLAGS is either -pg, to generate profiling info for use
  # with gprof, or nothing (the default).
  PROFILE_FLAGS=
  
  # HP-UX compilation requires the BSD library.
  #LOCAL_LIBS = -lBSD
  
  # Xenix requires -ldir -lx.  It is also required in the readline Makefile.
  #LOCAL_LIBS = -ldir -lx
  
! #GCC_SUNOS4_FLAG = -Bstatic
! GCC_SUNOS4_FLAG =
  DEBUG_FLAGS = $(PROFILE_FLAGS) -g $(GCC_SUNOS4_FLAG)
  LDFLAGS	= $(DEBUG_FLAGS)
  CFLAGS	= $(DEBUG_FLAGS) -D${TARGET} -DTARGET=${TARGET} -D${OS}
  CPPFLAGS= -I$(LIBSRC)
  
  # If you don't have Bison use "yacc".  Otherwise use "bison -y".
  #BISON = yacc
  BISON = bison -y
  
  # If you don't have Gcc use cc.
! #CC = gcc -traditional
! CC = cc -Anansi
  
  ####################################################################
  
  # These are required for sending bug reports.
  SYSTEM_NAME = '"$(TARGET)"'
  OS_NAME = '"$(OS)"'
  
  # The name of this program.
  PROGRAM = bash
  
*** shell.c.old	Thu Jan 11 12:16:22 1990
--- shell.c	Thu Jan 11 12:22:59 1990
***************
*** 787,831 ****
  #ifdef SIGLOST
    SIGLOST,
  #endif
  #ifdef SIGUSR1
    SIGUSR1, SIGUSR2
  #endif
      };
  
  #define TERMSIGS_LENGTH (sizeof (terminating_signals) / sizeof (int))
  
  /* Initialize signals that will terminate the shell to do some
     unwind protection. */
  initialize_terminating_signals ()
  {
    register int i;
    SigHandler termination_unwind_protect;
  
    for (i = 0; i < TERMSIGS_LENGTH; i++)
      signal (terminating_signals[i], termination_unwind_protect);
  
    /* And, some signals that are specifically ignored by the shell. */
    signal (SIGQUIT, SIG_IGN);
  
    if (login_shell)
      signal (SIGTERM, SIG_IGN);
- }
- 
- /* This function belongs here? */
- sighandler
- termination_unwind_protect (sig)
-      int sig;
- {
-   save_history ();
-   signal (sig, SIG_DFL);
-   kill (getpid (), sig);
  }
  
  /* What to do when we've been interrupted, and it is safe to handle it. */
  sighandler
  throw_to_top_level ()
  {
    extern int last_command_exit_value, loop_level, continuing, breaking;
    extern int return_catch_flag;
  
    if (interrupt_state)
--- 787,834 ----
  #ifdef SIGLOST
    SIGLOST,
  #endif
  #ifdef SIGUSR1
    SIGUSR1, SIGUSR2
  #endif
      };
  
  #define TERMSIGS_LENGTH (sizeof (terminating_signals) / sizeof (int))
  
+ /* This function belongs here? */
+ sighandler
+ termination_unwind_protect (sig)
+      int sig;
+ {
+   save_history ();
+   signal (sig, SIG_DFL);
+   kill (getpid (), sig);
+ }
+ 
  /* Initialize signals that will terminate the shell to do some
     unwind protection. */
  initialize_terminating_signals ()
  {
    register int i;
+ 
+ #ifndef APOLLO
    SigHandler termination_unwind_protect;
+ #endif /* APOLLO */
  
    for (i = 0; i < TERMSIGS_LENGTH; i++)
      signal (terminating_signals[i], termination_unwind_protect);
  
    /* And, some signals that are specifically ignored by the shell. */
    signal (SIGQUIT, SIG_IGN);
  
    if (login_shell)
      signal (SIGTERM, SIG_IGN);
  }
  
  /* What to do when we've been interrupted, and it is safe to handle it. */
  sighandler
  throw_to_top_level ()
  {
    extern int last_command_exit_value, loop_level, continuing, breaking;
    extern int return_catch_flag;
  
    if (interrupt_state)


--
------------------------ ORIGIN  '~jnp/stdDisclaimers' ------------------------
| Regards, J|rgen N|rgaard ('|' is '\o{}' in \LaTeX{})                        |
|    e-mail: jnp@tele.nokia.fi | telephone: <..>-358-0-511-5671               |
--    mail: Nokia Telecommunications, PL 33, SF-02601 Espoo, Suomi Finland   --