> >                          BASH PATCH REPORT
> >                          =================
> >
> > Bash-Release: 3.2
> > Patch-ID: bash32-020
> >
> > Bug-Reported-by:    Ian A Watson <[EMAIL PROTECTED]>
> > Bug-Reference-ID:   
> > <OFEC551808.69D02C7F-ON8525729A.0045708D-8525729A.0046150
> >[EMAIL PROTECTED]> Bug-Reference-URL:
> >
> > Bug-Description:
> >
> > In some cases of error processing, a jump back to the top-level processing
> > loop from a builtin command  would leave the shell in an inconsistent
> > state.
> 
> this appears to break handling of read only variables in source statements

I offered to look at restoring a measure of backwards compatibility; try the
attached patch.

Chet

*** ../bash-20080724/subst.c    2008-08-01 22:20:31.000000000 -0400
--- subst.c     2008-08-17 20:15:52.000000000 -0400
***************
*** 135,139 ****
  extern int last_command_exit_value, last_command_exit_signal;
  extern int subshell_environment;
! extern int subshell_level;
  extern int eof_encountered;
  extern int return_catch_flag, return_catch_value;
--- 135,139 ----
  extern int last_command_exit_value, last_command_exit_signal;
  extern int subshell_environment;
! extern int subshell_level, parse_and_execute_level;
  extern int eof_encountered;
  extern int return_catch_flag, return_catch_value;
***************
*** 8092,8096 ****
    assigning_in_environment = 0;
  
!   top_level_cleanup ();                       /* from sig.c */
    jump_to_top_level (v);
  }
--- 8092,8098 ----
    assigning_in_environment = 0;
  
!   if (parse_and_execute_level == 0)
!     top_level_cleanup ();                     /* from sig.c */
! 
    jump_to_top_level (v);
  }

``The lyf so short, the craft so long to lerne.'' - Chaucer

Chet Ramey, ITS, CWRU    [EMAIL PROTECTED]    http://tiswww.tis.case.edu/~chet/

Reply via email to