bash52-024.patch 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. BASH PATCH REPORT
  2. =================
  3. Bash-Release: 5.2
  4. Patch-ID: bash52-024
  5. Bug-Reported-by: Marco <maroloccio@gmail.com>
  6. Bug-Reference-ID: <eaf9af76-c4ed-8b61-c517-22ed980529d3@gmail.com>
  7. Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2023-02/msg00044.html
  8. Bug-Description:
  9. Fix bug where associative array compound assignment would not expand tildes
  10. in values.
  11. Patch (apply with `patch -p0'):
  12. *** ../bash-20230105/arrayfunc.c Thu Jan 5 14:23:28 2023
  13. --- arrayfunc.c Wed Feb 8 16:27:48 2023
  14. ***************
  15. *** 651,655 ****
  16. }
  17. ! aval = expand_subscript_string (v, 0);
  18. if (aval == 0)
  19. {
  20. --- 651,655 ----
  21. }
  22. ! aval = expand_assignment_string_to_string (v, 0);
  23. if (aval == 0)
  24. {
  25. ***************
  26. *** 843,847 ****
  27. if (assoc_p (var))
  28. {
  29. ! val = expand_subscript_string (val, 0);
  30. if (val == 0)
  31. {
  32. --- 843,847 ----
  33. if (assoc_p (var))
  34. {
  35. ! val = expand_assignment_string_to_string (val, 0);
  36. if (val == 0)
  37. {
  38. ***************
  39. *** 1031,1035 ****
  40. nword[i++] = w[ind++];
  41. ! t = expand_subscript_string (w+ind, 0);
  42. s = (t && strchr (t, CTLESC)) ? quote_escapes (t) : t;
  43. value = sh_single_quote (s ? s : "");
  44. --- 1031,1035 ----
  45. nword[i++] = w[ind++];
  46. ! t = expand_assignment_string_to_string (w+ind, 0);
  47. s = (t && strchr (t, CTLESC)) ? quote_escapes (t) : t;
  48. value = sh_single_quote (s ? s : "");
  49. *** ../bash-20230201/subst.c Mon Jan 30 16:19:46 2023
  50. --- subst.c Mon Feb 6 16:25:22 2023
  51. ***************
  52. *** 10803,10807 ****
  53. --- 10803,10811 ----
  54. ret = (char *)NULL;
  55. + #if 0
  56. td.flags = W_NOPROCSUB|W_NOTILDE|W_NOSPLIT2; /* XXX - W_NOCOMSUB? */
  57. + #else
  58. + td.flags = W_NOPROCSUB|W_NOSPLIT2; /* XXX - W_NOCOMSUB? */
  59. + #endif
  60. td.word = savestring (string); /* in case it's freed on error */
  61. *** ../bash-5.2/patchlevel.h 2020-06-22 14:51:03.000000000 -0400
  62. --- patchlevel.h 2020-10-01 11:01:28.000000000 -0400
  63. ***************
  64. *** 26,30 ****
  65. looks for to find the patch level (for the sccs version string). */
  66. ! #define PATCHLEVEL 23
  67. #endif /* _PATCHLEVEL_H_ */
  68. --- 26,30 ----
  69. looks for to find the patch level (for the sccs version string). */
  70. ! #define PATCHLEVEL 24
  71. #endif /* _PATCHLEVEL_H_ */