From 4a0ddedf0af0bbd22530132df830b588b2b63220 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Mon, 8 Feb 2010 11:49:28 +0000 Subject: unposted: a couple of typeset -g's and a comment --- ChangeLog | 9 ++++++++- Completion/compinit | 2 +- Functions/Calendar/calendar_scandate | 5 +++-- Src/subst.c | 5 +++++ 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 36bec02fd..992bbcb71 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2010-02-08 Peter Stephenson + * unposte: Src/subst.c: comment about what colon in parameter + substitution might be doing. + + * unposted: Completion/compinit, + Functions/Calendar/calendar_scandate: add some "typeset -g"s + to avoid WARN_CREATE_GLOBAL warnings. + * 27665: Frank: Completion/Unix/Command/_tmux: update. * 27658: Completion/Unix/Command/_zip: work around globbing @@ -12700,5 +12707,5 @@ ***************************************************** * This is used by the shell to define $ZSH_PATCHLEVEL -* $Revision: 1.4886 $ +* $Revision: 1.4887 $ ***************************************************** diff --git a/Completion/compinit b/Completion/compinit index 1e4b7acef..d85ff072e 100644 --- a/Completion/compinit +++ b/Completion/compinit @@ -440,7 +440,7 @@ Ignore insecure $_i_q and continue [y] or abort compinit [n]? "; then (( $#_i_wdirs )) && _i_files=( "${(@)_i_files:#(${(j:|:)_i_wdirs%.zwc})/*}" ) fi fi - _comp_secure=yes + typeset -g _comp_secure=yes fi fi diff --git a/Functions/Calendar/calendar_scandate b/Functions/Calendar/calendar_scandate index fd8eb1133..4ae2ae606 100644 --- a/Functions/Calendar/calendar_scandate +++ b/Functions/Calendar/calendar_scandate @@ -720,8 +720,9 @@ if (( relative )); then fi # relative_start is zero if we're not using it (( reladd += (hour * 60 + minute) * 60 + second )) + typeset -g REPLY (( REPLY = relative_start + reladd )) - [[ -n $setvar ]] && REPLY2=$line + [[ -n $setvar ]] && typeset -g REPLY2="$line" return 0 fi return 1 @@ -747,6 +748,6 @@ fi strftime -s REPLY -r $fmt $nums -[[ -n $setvar ]] && REPLY2=$line +[[ -n $setvar ]] && typeset -g REPLY2="$line" return 0 diff --git a/Src/subst.c b/Src/subst.c index 0bb0b798f..462d0b3a0 100644 --- a/Src/subst.c +++ b/Src/subst.c @@ -2356,6 +2356,11 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int ssub) if (!(flags & (SUB_MATCH|SUB_REST|SUB_BIND|SUB_EIND|SUB_LEN))) flags |= SUB_REST; + /* + * With ":" treat a value as unset if the variable is set but + * - (array) contains no elements + * - (scalar) contains an empty string + */ if (colf && !vunset) vunset = (isarr) ? !*aval : !*val || (*val == Nularg && !val[1]); -- cgit 1.4.1