BASH PATCH REPORT ================= Bash-Release: 4.3 Patch-ID: bash43-017 Bug-Reported-by: Dan Douglas Bug-Reference-ID: <7781746.RhfoTROLxF@smorgbox> Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-05/msg00026.html Bug-Description: The code that creates local variables should not clear the `invisible' attribute when returning an existing local variable. Let the code that actually assigns a value clear it. Patch (apply with `patch -p0'): *** ../bash-4.3-patched/variables.c 2014-02-14 11:55:12.000000000 -0500 --- variables.c 2014-05-07 10:53:57.000000000 -0400 *************** *** 2198,2205 **** old_var = find_variable (name); if (old_var && local_p (old_var) && old_var->context == variable_context) ! { ! VUNSETATTR (old_var, att_invisible); /* XXX */ ! return (old_var); ! } was_tmpvar = old_var && tempvar_p (old_var); --- 2260,2264 ---- old_var = find_variable (name); if (old_var && local_p (old_var) && old_var->context == variable_context) ! return (old_var); was_tmpvar = old_var && tempvar_p (old_var); *** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 --- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 *************** *** 26,30 **** looks for to find the patch level (for the sccs version string). */ ! #define PATCHLEVEL 16 #endif /* _PATCHLEVEL_H_ */ --- 26,30 ---- looks for to find the patch level (for the sccs version string). */ ! #define PATCHLEVEL 17 #endif /* _PATCHLEVEL_H_ */