diff options
Diffstat (limited to 'source/a/bash/bash-5.2-patches/bash52-024')
-rw-r--r-- | source/a/bash/bash-5.2-patches/bash52-024 | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/source/a/bash/bash-5.2-patches/bash52-024 b/source/a/bash/bash-5.2-patches/bash52-024 new file mode 100644 index 000000000..8cc49e878 --- /dev/null +++ b/source/a/bash/bash-5.2-patches/bash52-024 @@ -0,0 +1,88 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.2 +Patch-ID: bash52-024 + +Bug-Reported-by: Marco <maroloccio@gmail.com> +Bug-Reference-ID: <eaf9af76-c4ed-8b61-c517-22ed980529d3@gmail.com> +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2023-02/msg00044.html + +Bug-Description: + +Fix bug where associative array compound assignment would not expand tildes +in values. + +Patch (apply with `patch -p0'): + +*** ../bash-20230105/arrayfunc.c Thu Jan 5 14:23:28 2023 +--- arrayfunc.c Wed Feb 8 16:27:48 2023 +*************** +*** 651,655 **** + } + +! aval = expand_subscript_string (v, 0); + if (aval == 0) + { +--- 651,655 ---- + } + +! aval = expand_assignment_string_to_string (v, 0); + if (aval == 0) + { +*************** +*** 843,847 **** + if (assoc_p (var)) + { +! val = expand_subscript_string (val, 0); + if (val == 0) + { +--- 843,847 ---- + if (assoc_p (var)) + { +! val = expand_assignment_string_to_string (val, 0); + if (val == 0) + { +*************** +*** 1031,1035 **** + nword[i++] = w[ind++]; + +! t = expand_subscript_string (w+ind, 0); + s = (t && strchr (t, CTLESC)) ? quote_escapes (t) : t; + value = sh_single_quote (s ? s : ""); +--- 1031,1035 ---- + nword[i++] = w[ind++]; + +! t = expand_assignment_string_to_string (w+ind, 0); + s = (t && strchr (t, CTLESC)) ? quote_escapes (t) : t; + value = sh_single_quote (s ? s : ""); +*** ../bash-20230201/subst.c Mon Jan 30 16:19:46 2023 +--- subst.c Mon Feb 6 16:25:22 2023 +*************** +*** 10803,10807 **** +--- 10803,10811 ---- + ret = (char *)NULL; + ++ #if 0 + td.flags = W_NOPROCSUB|W_NOTILDE|W_NOSPLIT2; /* XXX - W_NOCOMSUB? */ ++ #else ++ td.flags = W_NOPROCSUB|W_NOSPLIT2; /* XXX - W_NOCOMSUB? */ ++ #endif + td.word = savestring (string); /* in case it's freed on error */ + + +*** ../bash-5.2/patchlevel.h 2020-06-22 14:51:03.000000000 -0400 +--- patchlevel.h 2020-10-01 11:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 23 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 24 + + #endif /* _PATCHLEVEL_H_ */ |