> > 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/