117-upstream-bash43-017.patch 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. BASH PATCH REPORT
  2. =================
  3. Bash-Release: 4.3
  4. Patch-ID: bash43-017
  5. Bug-Reported-by: Dan Douglas <ormaaj@gmail.com>
  6. Bug-Reference-ID: <7781746.RhfoTROLxF@smorgbox>
  7. Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-05/msg00026.html
  8. Bug-Description:
  9. The code that creates local variables should not clear the `invisible'
  10. attribute when returning an existing local variable. Let the code that
  11. actually assigns a value clear it.
  12. Patch (apply with `patch -p0'):
  13. --- a/variables.c
  14. +++ b/variables.c
  15. @@ -2197,10 +2197,7 @@ make_local_variable (name)
  16. /* local foo; local foo; is a no-op. */
  17. old_var = find_variable (name);
  18. if (old_var && local_p (old_var) && old_var->context == variable_context)
  19. - {
  20. - VUNSETATTR (old_var, att_invisible); /* XXX */
  21. - return (old_var);
  22. - }
  23. + return (old_var);
  24. was_tmpvar = old_var && tempvar_p (old_var);
  25. /* If we're making a local variable in a shell function, the temporary env
  26. --- a/patchlevel.h
  27. +++ b/patchlevel.h
  28. @@ -25,6 +25,6 @@
  29. regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh
  30. looks for to find the patch level (for the sccs version string). */
  31. -#define PATCHLEVEL 16
  32. +#define PATCHLEVEL 17
  33. #endif /* _PATCHLEVEL_H_ */