105-upstream-bash43-005.patch 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. BASH PATCH REPORT
  2. =================
  3. Bash-Release: 4.3
  4. Patch-ID: bash43-005
  5. Bug-Reported-by: David Sines <dave.gma@googlemail.com>
  6. Bug-Reference-ID: <CAO3BAa_CK_Rgkhdfzs+NJ4KFYdB9qW3pvXQK0xLCi6GMmDU8bw@mail.gmail.com>
  7. Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00037.html
  8. Bug-Description:
  9. When in Posix mode, bash did not correctly interpret the ANSI-C-style
  10. $'...' quoting mechanism when performing pattern substitution word
  11. expansions within double quotes.
  12. Patch (apply with `patch -p0'):
  13. --- a/parse.y
  14. +++ b/parse.y
  15. @@ -3398,7 +3398,7 @@ parse_matched_pair (qc, open, close, len
  16. within a double-quoted ${...} construct "an even number of
  17. unescaped double-quotes or single-quotes, if any, shall occur." */
  18. /* This was changed in Austin Group Interp 221 */
  19. - if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'')
  20. + if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && dolbrace_state != DOLBRACE_QUOTE2 && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'')
  21. continue;
  22. /* Could also check open == '`' if we want to parse grouping constructs
  23. --- a/y.tab.c
  24. +++ b/y.tab.c
  25. @@ -5710,7 +5710,7 @@ parse_matched_pair (qc, open, close, len
  26. within a double-quoted ${...} construct "an even number of
  27. unescaped double-quotes or single-quotes, if any, shall occur." */
  28. /* This was changed in Austin Group Interp 221 */
  29. - if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'')
  30. + if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && dolbrace_state != DOLBRACE_QUOTE2 && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'')
  31. continue;
  32. /* Could also check open == '`' if we want to parse grouping constructs
  33. --- a/patchlevel.h
  34. +++ b/patchlevel.h
  35. @@ -25,6 +25,6 @@
  36. regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh
  37. looks for to find the patch level (for the sccs version string). */
  38. -#define PATCHLEVEL 4
  39. +#define PATCHLEVEL 5
  40. #endif /* _PATCHLEVEL_H_ */