diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | Doc/Zsh/params.yo | 3 | ||||
-rw-r--r-- | Src/subst.c | 7 | ||||
-rw-r--r-- | Src/utils.c | 2 |
4 files changed, 17 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog index 3ae50b04f..f30f025fb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ +2009-05-20 Peter Stephenson <pws@csr.com> + + * users/14143 plus extra fix in padding code: Doc/Zsh/params.yo, + Src/subst.c, Src/utils.c: use default IFS if IFS is unset. + 2009-05-19 Peter Stephenson <pws@csr.com> + * 26973: Doc/Zsh/contrib.yo, Functions/Misc/zmathfuncdef: make + zmathfuncdef replace functions and list existing functions. + * Config/version.mk: 4.3.9-dev-5 (4.3.9-dev-4 not recorded). * Greg Klanderman: 26972: Src/utils.c: fix problem ni 26964. @@ -11730,5 +11738,5 @@ ***************************************************** * This is used by the shell to define $ZSH_PATCHLEVEL -* $Revision: 1.4690 $ +* $Revision: 1.4691 $ ***************************************************** diff --git a/Doc/Zsh/params.yo b/Doc/Zsh/params.yo index f77d36db4..18c146802 100644 --- a/Doc/Zsh/params.yo +++ b/Doc/Zsh/params.yo @@ -893,6 +893,9 @@ character together with any adjacent IFS white space character delimit a field. If an IFS white space character appears twice consecutively in the IFS, this character is treated as if it were not an IFS white space character. + +If the parameter is unset, the default is used. Note this has +a different effect from setting the parameter to an empty string. ) vindex(KEYTIMEOUT) item(tt(KEYTIMEOUT))( diff --git a/Src/subst.c b/Src/subst.c index 8a695cee9..5d14c458a 100644 --- a/Src/subst.c +++ b/Src/subst.c @@ -714,9 +714,10 @@ dopadding(char *str, int prenum, int postnum, char *preone, char *postone, convchar_t cchar; MB_METACHARINIT(); - if (*ifs) - def = dupstrpfx(ifs, MB_METACHARLEN(ifs)); - else + if (!ifs || *ifs) { + char *tmpifs = ifs ? ifs : DEFAULT_IFS; + def = dupstrpfx(tmpifs, MB_METACHARLEN(tmpifs)); + } else def = ""; if (preone && !*preone) preone = def; diff --git a/Src/utils.c b/Src/utils.c index e7a4595b8..00d51a320 100644 --- a/Src/utils.c +++ b/Src/utils.c @@ -3162,7 +3162,7 @@ inittyptab(void) } #ifdef MULTIBYTE_SUPPORT set_widearray(wordchars, &wordchars_wide); - set_widearray(ifs, &ifs_wide); + set_widearray(ifs ? ifs : DEFAULT_IFS, &ifs_wide); #endif for (s = SPECCHARS; *s; s++) typtab[STOUC(*s)] |= ISPECIAL; |