]>
Commit | Line | Data |
---|---|---|
9c6e89a2 ER |
1 | BASH PATCH REPORT |
2 | ================= | |
3 | ||
4 | Bash-Release: 3.1 | |
5 | Patch-ID: bash31-005 | |
6 | ||
7 | Bug-Reported-by: | |
8 | Bug-Reference-ID: | |
9 | Bug-Reference-URL: | |
10 | ||
11 | Bug-Description: | |
12 | ||
13 | When tilde expansion fails, POSIX leaves it unspecified whether or not the | |
14 | word undergoes the additional word expansions. Bash-3.1 as distributed | |
15 | skipped the rest of the expansions; this patch restores the bash-3.0 behavior. | |
16 | ||
17 | This means that something like | |
18 | USER=ratbert | |
19 | echo ~$USER | |
20 | ||
21 | will echo `~ratbert' rather than `~$USER'. | |
22 | ||
23 | Patch: | |
24 | ||
25 | *** ../bash-3.1/subst.c Mon Oct 24 09:51:13 2005 | |
26 | --- subst.c Fri Dec 30 12:11:53 2005 | |
27 | *************** | |
28 | *** 6796,6799 **** | |
29 | --- 6823,6832 ---- | |
30 | { | |
31 | temp1 = bash_tilde_expand (temp, tflag); | |
32 | + if (temp1 && *temp1 == '~' && STREQ (temp, temp1)) | |
33 | + { | |
34 | + FREE (temp); | |
35 | + FREE (temp1); | |
36 | + goto add_character; /* tilde expansion failed */ | |
37 | + } | |
38 | free (temp); | |
39 | temp = temp1; | |
40 | *** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 | |
41 | --- patchlevel.h Wed Dec 7 13:48:42 2005 | |
42 | *************** | |
43 | *** 26,30 **** | |
44 | looks for to find the patch level (for the sccs version string). */ | |
45 | ||
46 | ! #define PATCHLEVEL 4 | |
47 | ||
48 | #endif /* _PATCHLEVEL_H_ */ | |
49 | --- 26,30 ---- | |
50 | looks for to find the patch level (for the sccs version string). */ | |
51 | ||
52 | ! #define PATCHLEVEL 5 | |
53 | ||
54 | #endif /* _PATCHLEVEL_H_ */ |