summaryrefslogtreecommitdiffstats
path: root/source/a/bash/bash-5.2-patches/bash52-024
blob: 8cc49e8781642e468324bca1adea7ed64d8af761 (about) (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
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_ */