bash30-007 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. BASH PATCH REPORT
  2. =================
  3. Bash-Release: 3.0
  4. Patch-ID: bash30-007
  5. Bug-Reported-by: Oliver Kiddle <okiddle@yahoo.co.uk>
  6. Tim Waugh <twaugh@redhat.com>
  7. Bug-Reference-ID: <10454.1091313247@athlon>
  8. <20040804100140.GX8175@redhat.com>
  9. Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2004-07/msg00313.html
  10. http://lists.gnu.org/archive/html/bug-bash/2004-08/msg00056.html
  11. Bug-Description:
  12. Two bugs:
  13. How does it decide what characters are allowed. The following really
  14. looks like a bug to me:
  15. $ echo {<C4>..D}
  16. That's accepted and produces output that seems to wrap round to ^A and
  17. then goes up to D. Note that I'm using an ISO-8859-1 locale. If that
  18. works at all, it should surely descend.
  19. This short script:
  20. var=baz
  21. echo foo{bar,${var}.}
  22. echo foo{bar,${var}}
  23. gives the following output with bash-3.0:
  24. ./test: line 2: foo${var.}: bad substitution
  25. foobar} foobaz
  26. Patch:
  27. *** ../bash-3.0/braces.c Thu Dec 4 11:09:52 2003
  28. --- braces.c Wed Aug 4 14:34:33 2004
  29. ***************
  30. *** 341,346 ****
  31. if (lhs_t == ST_CHAR)
  32. {
  33. ! lhs_v = lhs[0];
  34. ! rhs_v = rhs[0];
  35. }
  36. else
  37. --- 341,346 ----
  38. if (lhs_t == ST_CHAR)
  39. {
  40. ! lhs_v = (unsigned char)lhs[0];
  41. ! rhs_v = (unsigned char)rhs[0];
  42. }
  43. else
  44. ***************
  45. *** 403,406 ****
  46. --- 403,407 ----
  47. pass_next = 1;
  48. i++;
  49. + level++;
  50. continue;
  51. }
  52. *** ../bash-3.0/patchlevel.h Wed Aug 22 08:05:39 2001
  53. --- patchlevel.h Thu Sep 2 15:04:32 2004
  54. ***************
  55. *** 26,30 ****
  56. looks for to find the patch level (for the sccs version string). */
  57. ! #define PATCHLEVEL 6
  58. #endif /* _PATCHLEVEL_H_ */
  59. --- 26,30 ----
  60. looks for to find the patch level (for the sccs version string). */
  61. ! #define PATCHLEVEL 7
  62. #endif /* _PATCHLEVEL_H_ */