BASH PATCH REPORT ================= Bash-Release: 3.1 Patch-ID: bash31-005 Bug-Reported-by: Bug-Reference-ID: Bug-Reference-URL: Bug-Description: When tilde expansion fails, POSIX leaves it unspecified whether or not the word undergoes the additional word expansions. Bash-3.1 as distributed skipped the rest of the expansions; this patch restores the bash-3.0 behavior. This means that something like USER=ratbert echo ~$USER will echo `~ratbert' rather than `~$USER'. Patch: *** ../bash-3.1/subst.c Mon Oct 24 09:51:13 2005 --- subst.c Fri Dec 30 12:11:53 2005 *************** *** 6796,6799 **** --- 6823,6832 ---- { temp1 = bash_tilde_expand (temp, tflag); + if (temp1 && *temp1 == '~' && STREQ (temp, temp1)) + { + FREE (temp); + FREE (temp1); + goto add_character; /* tilde expansion failed */ + } free (temp); temp = temp1; *** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 --- patchlevel.h Wed Dec 7 13:48:42 2005 *************** *** 26,30 **** looks for to find the patch level (for the sccs version string). */ ! #define PATCHLEVEL 4 #endif /* _PATCHLEVEL_H_ */ --- 26,30 ---- looks for to find the patch level (for the sccs version string). */ ! #define PATCHLEVEL 5 #endif /* _PATCHLEVEL_H_ */