Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: PATCH: context names



Peter Stephenson wrote:

> ...
>
> In any case, I'm gradually coming round to the view that the defaults for
> styles should be hard-wired into the functions (i.e. should be set as
> values internally if style retrieval failed).  The big drawback is you
> can't see them with `zstyle'.  However, they are almost always the
> simplest, most basic behaviour, so I don't think that's a big problem (they
> should of course be documented anyway).  It's pretty normal for settings of
> any kind to have builtin defaults which you don't see.  The benefits are
> presumably obvious: everything the user enters takes precedence, nothing
> bogus (that will never be used) shows up with zstyle, nothing needs
> deleting.

If we all agree that this is the right way to go... the patch is below.

This also `fixes' what Bart said in 9725, i.e., since it makes
`_complete' the implicit default for the completer style in every
context, completion works in predict again (but one can still say
`zstyle ":completion:predict:*" completer ...' of course).

There are also some other hunks for the completion code mostly for
some small changes (like avoiding an `if' when we are only setting a
parameter). But this also removes the _*_tags arrays from
_main_complete and _tags. I added them thinking about a bindable
command that would allow us to switch from one set of completion to
another. If we ever come around to implementing this we could make it
use the same trick used in _complete_help, so there wasn't any real
use for those arrays.

The hunks in zutil.c add the -T option to zstyle. It's the same as -t
but returns zero if the style is not set -- drastically simplifying
the test for styles that default to `true'.

One last comment: note that this makes the verbose style still default 
to `true'. Probably not the `most basic' behaviour. But I'd like to
compare it to ALWAYS_LAST_PROMPT, i.e.: will users find out about it
if we make it default to `false'?

Bye
 Sven

diff -ru ../z.old/Completion/Base/_arguments Completion/Base/_arguments
--- ../z.old/Completion/Base/_arguments	Tue Feb 15 09:02:43 2000
+++ Completion/Base/_arguments	Tue Feb 15 09:41:17 2000
@@ -17,9 +17,8 @@
   fi
 
   name=${~words[1]}
-  if [[ "$name" != /* ]]; then
-    tmp="$PWD/$name"
-  fi
+  [[ "$name" != /* ]] && tmp="$PWD/$name"
+
   name="_args_cache_${name}"
   name="${name//[^a-zA-Z0-9_]/_}"
 
@@ -255,7 +254,7 @@
       fi
 
       if [[ -z "$matched" ]] && _requested options &&
-          { ! zstyle -t ":completion:${curcontext}:options" prefix-needed ||
+          { ! zstyle -T ":completion:${curcontext}:options" prefix-needed ||
           [[ "$origpre" = [-+]* ||
              ( -z "$aret$mesg" && nm -eq compstate[nmatches] ) ]] } ; then
 	local prevpre="$PREFIX" previpre="$IPREFIX"
diff -ru ../z.old/Completion/Base/_describe Completion/Base/_describe
--- ../z.old/Completion/Base/_describe	Tue Feb 15 09:02:44 2000
+++ Completion/Base/_describe	Tue Feb 15 09:40:37 2000
@@ -16,7 +16,7 @@
 
 _tags "$_type" || return 1
 
-zstyle -t ":completion:${curcontext}:$_type" verbose && _showd=yes
+zstyle -T ":completion:${curcontext}:$_type" verbose && _showd=yes
 
 _description "$_type" _expl "$1"
 shift
diff -ru ../z.old/Completion/Base/_jobs Completion/Base/_jobs
--- ../z.old/Completion/Base/_jobs	Tue Feb 15 09:02:44 2000
+++ Completion/Base/_jobs	Tue Feb 15 09:40:37 2000
@@ -5,12 +5,12 @@
 _tags jobs || return 1
 
 if [[ "$1" = -t ]]; then
-  zstyle -t ":completion:${curcontext}:jobs" prefix-needed &&
+  zstyle -T ":completion:${curcontext}:jobs" prefix-needed &&
       [[ "$PREFIX" != %* && compstate[nmatches] -ne 0 ]] && return 1
   shift
 fi
 zstyle -t ":completion:${curcontext}:jobs" prefix-hidden && pfx=''
-zstyle -t ":completion:${curcontext}:jobs" verbose       && desc=yes
+zstyle -T ":completion:${curcontext}:jobs" verbose       && desc=yes
 
 if [[ "$1" = -r ]]; then
   jids=( "${(@k)jobstates[(R)running*]}" )
diff -ru ../z.old/Completion/Base/_subscript Completion/Base/_subscript
--- ../z.old/Completion/Base/_subscript	Tue Feb 15 09:02:44 2000
+++ Completion/Base/_subscript	Tue Feb 15 09:40:38 2000
@@ -21,7 +21,7 @@
   while _tags; do
     if _requested -V indexes expl 'array index'; then
       ind=( {1..${#${(P)${compstate[parameter]}}}} )
-      if zstyle -t ":completion:${curcontext}:indexes" verbose; then
+      if zstyle -T ":completion:${curcontext}:indexes" verbose; then
         list=()
         for i in "$ind[@]"; do
           [[ "$i" = ${PREFIX}*${SUFFIX} ]] &&
diff -ru ../z.old/Completion/Base/_tilde Completion/Base/_tilde
--- ../z.old/Completion/Base/_tilde	Tue Feb 15 09:02:45 2000
+++ Completion/Base/_tilde	Tue Feb 15 09:40:38 2000
@@ -22,9 +22,9 @@
       compadd "$suf[@]" "$expl[@]" "$@" - "${(@k)nameddirs}"
 
   if _requested -V directory-stack expl 'directory stack' &&
-     { ! zstyle -t ":completion:${curcontext}:directory-stack" prefix-needed ||
+     { ! zstyle -T ":completion:${curcontext}:directory-stack" prefix-needed ||
        [[ "$PREFIX" = [-+]* || nm -eq compstate[nmatches] ]] }; then
-    if zstyle -t ":completion:${curcontext}:directory-stack" verbose; then
+    if zstyle -T ":completion:${curcontext}:directory-stack" verbose; then
       integer i
 
       lines=("${PWD}" "${dirstack[@]}")
diff -ru ../z.old/Completion/Builtins/_pids Completion/Builtins/_pids
--- ../z.old/Completion/Builtins/_pids	Tue Feb 15 09:02:47 2000
+++ Completion/Builtins/_pids	Tue Feb 15 09:40:38 2000
@@ -16,7 +16,7 @@
 
 out="$(command ps $args 2>/dev/null)"
 
-if zstyle -t ":completion:${curcontext}:processes" verbose; then
+if zstyle -T ":completion:${curcontext}:processes" verbose; then
   zstyle -a ":completion:${curcontext}:ps" list-arguments listargs
   (( $#listargs )) || listargs=( "$args[@]" )
   if [[ "$listargs" = "$args" ]]; then
diff -ru ../z.old/Completion/Builtins/_popd Completion/Builtins/_popd
--- ../z.old/Completion/Builtins/_popd	Tue Feb 15 09:02:47 2000
+++ Completion/Builtins/_popd	Tue Feb 15 09:40:38 2000
@@ -11,10 +11,10 @@
 
 _wanted -V directory-stack expl 'directory stack' || return 1
 
-! zstyle -t ":completion:${curcontext}:directory-stack" prefix-needed ||
+! zstyle -T ":completion:${curcontext}:directory-stack" prefix-needed ||
     [[ $PREFIX = [-+]* ]] || return 1
 
-if zstyle -t ":completion:${curcontext}:directory-stack" verbose; then
+if zstyle -T ":completion:${curcontext}:directory-stack" verbose; then
   # get the list of directories with their canonical number
   # and turn the lines into an array, removing the current directory
   lines=("${dirstack[@]}")
diff -ru ../z.old/Completion/Builtins/_sched Completion/Builtins/_sched
--- ../z.old/Completion/Builtins/_sched	Tue Feb 15 09:02:47 2000
+++ Completion/Builtins/_sched	Tue Feb 15 09:40:38 2000
@@ -7,7 +7,7 @@
     _wanted -C - jobs expl 'scheduled jobs' || return 1
 
     lines=(${(f)"$(sched)"})
-    if zstyle -t ":completion:${curcontext}:jobs" verbose; then
+    if zstyle -T ":completion:${curcontext}:jobs" verbose; then
       disp=( -ld lines )
     else
       disp=()
diff -ru ../z.old/Completion/Builtins/_signals Completion/Builtins/_signals
--- ../z.old/Completion/Builtins/_signals	Tue Feb 15 09:02:47 2000
+++ Completion/Builtins/_signals	Tue Feb 15 09:40:38 2000
@@ -22,7 +22,7 @@
 
 if _wanted signals expl signal &&
        { [[ -z "$minus" ]] ||
-         ! zstyle -t ":completion:${curcontext}:signals" prefix-needed ||
+         ! zstyle -T ":completion:${curcontext}:signals" prefix-needed ||
          [[ "$PREFIX" = -* ]] } ; then
   local disp tmp
 
diff -ru ../z.old/Completion/Builtins/_stat Completion/Builtins/_stat
--- ../z.old/Completion/Builtins/_stat	Tue Feb 15 09:02:48 2000
+++ Completion/Builtins/_stat	Tue Feb 15 09:40:39 2000
@@ -10,7 +10,7 @@
   while _tags; do
     _requested files && _files && ret=0
     _requested options expl 'inode element' &&
-        { ! zstyle -t ":completion:${curcontext}:options" prefix-needed ||
+        { ! zstyle -T ":completion:${curcontext}:options" prefix-needed ||
           [[ "$PREFIX[1]" = + || ret -eq 1 ]] } &&
         compadd "$expl[@]" - +device +inode +mode +nlink +uid +gid +rdev \
                              +size +atime +mtime +ctime +blksize +block +link
diff -ru ../z.old/Completion/Core/_approximate Completion/Core/_approximate
--- ../z.old/Completion/Core/_approximate	Tue Feb 15 09:02:51 2000
+++ Completion/Core/_approximate	Tue Feb 15 09:40:39 2000
@@ -17,7 +17,7 @@
 
 oldcontext="$curcontext"
 
-zstyle -s ":completion:${curcontext}:" max-errors cfgacc
+zstyle -s ":completion:${curcontext}:" max-errors cfgacc || cfgacc='2 numeric'
 
 # Get the number of errors to accept.
 
diff -ru ../z.old/Completion/Core/_files Completion/Core/_files
--- ../z.old/Completion/Core/_files	Tue Feb 15 09:02:52 2000
+++ Completion/Core/_files	Tue Feb 15 09:40:39 2000
@@ -16,17 +16,14 @@
 fi
 (( $opts[(I)-F] )) && hasign=yes
 
-if [[ "$group[2]" = files ]]; then
-  opts=("$opts[@]" "$group[@]")
-  group=()
-fi
+[[ "$group[2]" = files ]] && opts=("$opts[@]" "$group[@]") group=()
 
 ign=()
 
-if zstyle -s ":completion:${curcontext}:all-files" file-patterns tmp &&
-   [[ -n "$tmp" ]]; then
-  aopts=(-g "$tmp")
-fi
+zstyle -s ":completion:${curcontext}:all-files" file-patterns tmp &&
+    [[ -n "$tmp" ]] &&
+        aopts=(-g "$tmp")
+
 if zstyle -s ":completion:${curcontext}:directories" file-patterns tmp &&
    [[ -n "$tmp" ]]; then
   dopts=(-g "$tmp")
diff -ru ../z.old/Completion/Core/_main_complete Completion/Core/_main_complete
--- ../z.old/Completion/Core/_main_complete	Tue Feb 15 09:02:52 2000
+++ Completion/Core/_main_complete	Tue Feb 15 09:40:39 2000
@@ -19,7 +19,7 @@
 setopt localoptions nullglob rcexpandparam extendedglob
 unsetopt markdirs globsubst shwordsplit nounset ksharrays
 
-local comp post ret=1 _compskip _prio_num=1 format _comp_ignore \
+local comp post ret=1 _compskip format _comp_ignore \
       _completers _completers_left _comp_matcher \
       context state line opt_args val_args curcontext="$curcontext" \
       _last_nmatches=-1 _last_menu_style _def_menu_style _menu_style sel \
@@ -28,12 +28,6 @@
       _saved_list="${compstate[list]}" \
       _saved_insert="${compstate[insert]}"
 
-typeset -U _offered_tags _tried_tags _failed_tags _used_tags _unused_tags
-
-_offered_tags=()
-_tried_tags=()
-_failed_tags=()
-
 typeset -U _lastdescr
 
 [[ -z "$curcontext" ]] && curcontext=:::
@@ -50,17 +44,13 @@
 # Initial setup.
 
 _setup default
-_def_menu_style=( "$_last_menu_style[@]" )
+_def_menu_style=( "$_last_menu_style[@]"
+                  ${SELECTMIN+select${SELECTMIN:+\=$SELECTMIN}} )
 _last_menu_style=()
 
 # Get the names of the completers to use in the positional parameters.
 
-if (( ! $# )); then
-  local tmp
-
-  zstyle -a ":completion:${curcontext}:" completer tmp
-  set -- "$tmp[@]"
-fi
+(( $# )) || zstyle -a ":completion:${curcontext}:" completer argv || set _complete
 
 # And now just call the completer functions defined.
 
@@ -75,7 +65,7 @@
   shift 1 _completers_left
 done
 
-if (( $compstate[nmatches] )); then
+if [[ $compstate[nmatches] -gt 1 ]]; then
   [[ _last_nmatches -ge 0 && _last_nmatches -ne compstate[nmatches] ]] &&
       _menu_style=( "$_last_menu_style[@]" "$_menu_style[@]" )
 
@@ -128,7 +118,7 @@
       fi
     fi
   fi
-elif [[ $#_lastdescr -ne 0 ]] &&
+elif [[ $compstate[nmatches] -eq 0 && $#_lastdescr -ne 0 ]] &&
      zstyle -s ":completion:${curcontext}:warnings" format format; then
   local str
 
@@ -147,11 +137,6 @@
   compadd -UX "$format" -n ''
 fi
 
-# See which tags were or were not used.
-
-_used_tags=( "${(@)_tried_tags:#${(j:|:)~${(@)_failed_tags//\[/\\[}//\]/\\]}}" )
-_unused_tags=( "${(@)_offered_tags:#${(j:|:)~${(@)_used_tags//\[/\\[}//\]/\\]}}" )
-
 # Now call the post-functions.
 
 for post in "$comppostfuncs[@]"; do
@@ -167,10 +152,5 @@
 _lastcomp[isuffix]="$ISUFFIX"
 _lastcomp[qiprefix]="$QIPREFIX"
 _lastcomp[qisuffix]="$QISUFFIX"
-_lastcomp[offered_tags]="${(j.:.)_offered_tags}"
-_lastcomp[tried_tags]="${(j.:.)_tried_tags}"
-_lastcomp[failed_tags]="${(j.:.)_failed_tags}"
-_lastcomp[unused_tags]="${(j.:.)_unused_tags}"
-_lastcomp[used_tags]="${(j.:.)_used_tags}"
 
 return ret
diff -ru ../z.old/Completion/Core/_normal Completion/Core/_normal
--- ../z.old/Completion/Core/_normal	Tue Feb 15 09:02:53 2000
+++ Completion/Core/_normal	Tue Feb 15 09:40:39 2000
@@ -66,10 +66,7 @@
 name="$cmd1"
 comp="$_comps[$cmd1]"
 
-if [[ -z "$comp" ]]; then
-  name="$cmd2"
-  comp="$_comps[$cmd2]"
-fi
+[[ -z "$comp" ]] && name="$cmd2" comp="$_comps[$cmd2]"
 
 # And generate the matches, probably using default completion.
 
@@ -77,11 +74,9 @@
   _compskip=patterns
   "$comp" && ret=0
   [[ "$_compskip" = (all|*patterns*) ]] && return ret
-else
-  if [[ "$_compskip" != *default* ]]; then
-    name=-default-
-    comp="$_comps[-default-]"
-  fi
+elif [[ "$_compskip" != *default* ]]; then
+  name=-default-
+  comp="$_comps[-default-]"
 fi
 
 if [[ "$_compskip" != (all|*patterns*) ]]; then
diff -ru ../z.old/Completion/Core/_path_files Completion/Core/_path_files
--- ../z.old/Completion/Core/_path_files	Tue Feb 15 09:02:53 2000
+++ Completion/Core/_path_files	Tue Feb 15 09:40:40 2000
@@ -290,7 +290,7 @@
         tmp2=( "$tmp1[@]" )
         builtin compadd -D tmp1 -F _comp_ignore "$matcher[@]" - "${(@)tmp1:t}"
 
-        if [[ $#tmp1 -eq 0 && -n "$_comp_correct" ]]; then
+        if [[ $#tmp1 -eq 0 ]]; then
           tmp1=( "$tmp2[@]" )
 	  compadd -D tmp1 -F _comp_ignore "$matcher[@]" - "${(@)tmp2:t}"
         fi
@@ -334,7 +334,7 @@
 
       if [[ -z "$tpre$tsuf" && -n "$pre$suf" ]]; then
 	pfxsfx=(-S '' "$pfxsfx[@]")
-	break;
+	break
       elif [[ "$haspats" = no && -z "$tpre$tsuf" &&
 	"$pre" = */ && -z "$suf" ]]; then
 	PREFIX="${opre}"
@@ -352,8 +352,8 @@
       if [[ "$rem" = *parent* ]]; then
 	for i in ${(M)^tmp1:#*/*}(-/); do
 	  remt="${${i#$prepath$realpath$donepath}%/*}"
-	  while [[ "$remt" = */* ]]; do
-	    [[ "$prepath$realpath$donepath$remt" -ef "$i" ]] && break
+	  while [[ "$remt" = */* &&
+	           ! "$prepath$realpath$donepath$remt" -ef "$i" ]]; do
 	    remt="${remt%/*}"
 	  done
 	  [[ "$remt" = */* || "$remt" -ef "$i" ]] &&
@@ -406,9 +406,7 @@
 
     if [[ "$tmp3" = */* ]]; then
       tmp4=( "${(@M)tmp1:#${tmp3%%/*}/*}" )
-      if (( $#tmp4 )); then
-        tmp1=( "$tmp4[@]" )
-      fi
+      (( $#tmp4 )) && tmp1=( "$tmp4[@]" )
     fi
 
     # Next we see if this component is ambiguous.
diff -ru ../z.old/Completion/Core/_setup Completion/Core/_setup
--- ../z.old/Completion/Core/_setup	Tue Feb 15 09:02:53 2000
+++ Completion/Core/_setup	Tue Feb 15 09:40:40 2000
@@ -3,12 +3,15 @@
 local val nm="$compstate[nmatches]"
 
 if zstyle -a ":completion:${curcontext}:$1" list-colors val; then
-  zmodload -e zsh/complist || zmodload -i zsh/complist
+  zmodload -i zsh/complist
   if [[ "$1" = default ]]; then
     ZLS_COLORS="${(j.:.)${(@)val:gs/:/\\\:}}"
   else
     eval "ZLS_COLORS=\"(${1})\${(j.:(${1}).)\${(@)val:gs/:/\\\:}}:\${ZLS_COLORS}\""
   fi
+elif [[ "$1" = default && -n "$ZLS_COLORS$ZLS_COLOURS" ]]; then
+  zmodload -i zsh/complist
+  ZLS_COLORS="$ZLS_COLORS$ZLS_COLOURS"
 fi
 
 if zstyle -s ":completion:${curcontext}:$1" list-packed val; then
diff -ru ../z.old/Completion/Core/_tags Completion/Core/_tags
--- ../z.old/Completion/Core/_tags	Tue Feb 15 09:02:54 2000
+++ Completion/Core/_tags	Tue Feb 15 09:40:40 2000
@@ -35,9 +35,6 @@
 
   comptags -i "$curcontext" "$@"
 
-  _offered_tags=( "$_offered_tags[@]" "$@" )
-  _last_tags=()
-
   # Sort the tags.
 
   if [[ -n "$_sort_tags" ]]; then
@@ -55,6 +52,15 @@
 
     [[ -z "$nodef" ]] && comptry "$@"
   else
+
+    # The first ones give the default behaviour.
+
+    comptry arguments values
+    comptry options
+    comptry globbed-files
+    comptry directories
+    comptry all-files
+
     comptry "$@"
   fi
 
@@ -67,20 +73,4 @@
 
 # The other mode: switch to the next set of tags.
 
-local tags
-
-_failed_tags=( "$_failed_tags[@]" "$_last_tags[@]" )
-
-# Return failure if no sets remaining.
-
-comptags -N || return 1
-
-# Otherwise get the next tags.
-
-comptags -S _last_tags
-
-_tried_tags=( "$_tried_tags[@]" "$_last_tags[@]" )
-
-shift 1 "$prios"
-
-return 0
+comptags -N
diff -ru ../z.old/Completion/Core/compinit Completion/Core/compinit
--- ../z.old/Completion/Core/compinit	Tue Feb 15 09:02:54 2000
+++ Completion/Core/compinit	Tue Feb 15 09:40:40 2000
@@ -470,19 +470,6 @@
   return 0
 }
 
-# Default styles. This should be executed conditionally somehow.
-
-zstyle ':completion:*'                      verbose       'yes'
-zstyle ':completion:*'                      prefix-needed 'yes'
-zstyle ':completion:*'                      prefix-hidden 'no'
-zstyle ':completion:*:(correct|approximate):*' max-errors    '2' numeric
-zstyle ':completion:*:correct:*'               prompt        'correct to:'
-zstyle ':completion:*::::'                      completer     '_complete'
-zstyle ':completion:*::::default'               list-colors   "${(s.:.)ZLS_COLORS:-${ZLS_COLOURS:-no=0:fi=0:di=0:ln=0:pi=0:so=0:bd=0:cd=0:ex=0}}"
-(( $+SELECTMIN )) && zstyle ':completion:*::::default' menu "select=$SELECTMIN"
-zstyle ':completion:*' tag-order 'arguments values' options \
-                                 globbed-files directories all-files
-
 # Now we automatically make the definition files autoloaded.
 
 typeset -U _i_files
diff -ru ../z.old/Completion/Debian/_apt Completion/Debian/_apt
--- ../z.old/Completion/Debian/_apt	Tue Feb 15 09:02:55 2000
+++ Completion/Debian/_apt	Tue Feb 15 09:40:40 2000
@@ -106,7 +106,7 @@
 tmp3=("$tmp3[@]" $_ra_left${(M)^short_hasarg:#$~tmp1} $_ra_left${(M)^short_configfile:#$~tmp1} $_ra_left${(M)^short_arbitem:#$~tmp1})
 _describe -o option tmp2 -- tmp3 -S='
 
-  comp_opt='{ ! zstyle -t ":completion:${curcontext}:options" prefix-needed || [[ "$PREFIX" = -* ]] }'" && { $comp_short; $comp_long }"
+  comp_opt='{ ! zstyle -T ":completion:${curcontext}:options" prefix-needed || [[ "$PREFIX" = -* ]] }'" && { $comp_short; $comp_long }"
 
   regex_short=()
   regex_long=()
diff -ru ../z.old/Completion/User/_lp Completion/User/_lp
--- ../z.old/Completion/User/_lp	Tue Feb 15 09:02:58 2000
+++ Completion/User/_lp	Tue Feb 15 09:40:41 2000
@@ -37,7 +37,7 @@
 
 if compset -P -P || [[ "$words[CURRENT-1]" = -P ]]; then
   if _wanted printers expl printer; then
-    if zstyle -t ":completion:${curcontext}:printers" verbose; then
+    if zstyle -T ":completion:${curcontext}:printers" verbose; then
       zformat -a list ' -- ' "$_lp_cache[@]"
       disp=(-ld list)
     else
@@ -47,7 +47,7 @@
 
     (( $+_lp_alias_cache )) || return 1
 
-    if zstyle -t ":completion:${curcontext}:printers" verbose; then
+    if zstyle -T ":completion:${curcontext}:printers" verbose; then
       zformat -a list ' -- ' "$_lp_alias_cache[@]"
       disp=(-ld list)
     else
@@ -73,7 +73,7 @@
         if _requested users expl user; then
           strs=( "${(@)${(@)list##[^ 	]##[ 	]##[^ 	]##[ 	]##}%%[ 	]*}" )
           if [[ -z "$shown" ]] &&
-             zstyle -t ":completion:${curcontext}:users" verbose; then
+             zstyle -T ":completion:${curcontext}:users" verbose; then
             disp=(-ld list)
   	  shown=yes
           else
@@ -84,7 +84,7 @@
         if _requested jobs expl job; then
           strs=( "${(@)${(@)list##[^ 	]##[ 	]##[^ 	]##[ 	]##[^ 	]##[ 	]##}%%[ 	]*}" )
           if [[ -z "$shown" ]] &&
-             zstyle -t ":completion:${curcontext}:jobs" verbose; then
+             zstyle -T ":completion:${curcontext}:jobs" verbose; then
             disp=(-ld list)
   	  shown=yes
           else
diff -ru ../z.old/Completion/User/_socket Completion/User/_socket
--- ../z.old/Completion/User/_socket	Tue Feb 15 09:03:00 2000
+++ Completion/User/_socket	Tue Feb 15 09:40:41 2000
@@ -9,7 +9,7 @@
 typeset -A opt_args
 
 [[ $CURRENT -eq 2 ]] && _wanted options expl option &&
-    { ! zstyle -t ":completion:${curcontext}:options" prefix-needed ||
+    { ! zstyle -T ":completion:${curcontext}:options" prefix-needed ||
       [[ "$PREFIX" = -* ]] } &&
     compadd -M 'r:|[_-]=* r:|=*' "$expl[@]" - -version
 
diff -ru ../z.old/Doc/Zsh/compsys.yo Doc/Zsh/compsys.yo
--- ../z.old/Doc/Zsh/compsys.yo	Tue Feb 15 09:02:32 2000
+++ Doc/Zsh/compsys.yo	Tue Feb 15 09:40:41 2000
@@ -713,6 +713,9 @@
 example(zstyle ':completion:::::' completer _complete _correct _approximate
 zstyle ':completion:incremental::::' completer _complete _correct
 zstyle ':completion:predict::::' completer _complete)
+
+The default value for this style is tt(_complete), i.e. normally only
+completion will be done.
 )
 item(tt(completions))(
 This style is used by the tt(_expand) completer function.
@@ -1115,7 +1118,10 @@
 completions when given a numeric argument, so in this case the number given
 should be greater than zero.  For example, `tt(2 not-numeric)' specifies that
 correcting completion with two errors will usually be performed, but if a
-numeric argument is given, correcting completion will not be performed.
+numeric argument is given, correcting completion will not be
+performed.
+
+The default value for this style contains tt(2) and tt(numeric).
 )
 item(tt(menu))(
 This style is tested for the tt(default) tag and the tags used when
@@ -1219,6 +1225,8 @@
 This is used when matches with a common prefix are added (e.g. option
 names). If it is `true', this prefix will not be shown in the list of
 matches.
+
+The default value for this style is `false'.
 )
 item(tt(prefix-needed))(
 This, too, is used for matches with a common prefix. If it is set to
@@ -1226,6 +1234,8 @@
 matches. E.g. for options this means that the `tt(-)', `tt(+)', or
 `tt(-)tt(-)' has to be on the line to make option names be completed at
 all.
+
+The default style for this style is `true'.
 )
 item(tt(prompt))(
 The tt(incremental-complete-word) widget shows the value of this
@@ -1344,7 +1354,10 @@
 information. See the tt(_sort_tags) function below for a description
 of how such functions can be implemented.
 
-If no style has been defined for a context, all tags will be used.
+If no style has been defined for a context, the strings tt(arguments
+values), tt(options), tt(globbed-files), tt(directories) and
+tt(all-files) plus all tags offered by the completion function will be 
+used.
 )
 item(tt(users))(
 This may be set to a list of names that should be completed whenever 
@@ -1369,7 +1382,9 @@
 item(tt(verbose))(
 This is used in several contexts to decide if only a simple or a
 verbose list of matches should be generated. For example some commands 
-show descriptions for option names if this style is true.
+show descriptions for option names if this style is `true'.
+
+The default value for this style is `true'.
 )
 item(tt(word))(
 To find out if listing should be performed on its own, the tt(_list)
diff -ru ../z.old/Doc/Zsh/mod_zutil.yo Doc/Zsh/mod_zutil.yo
--- ../z.old/Doc/Zsh/mod_zutil.yo	Tue Feb 15 09:02:35 2000
+++ Doc/Zsh/mod_zutil.yo	Tue Feb 15 09:40:42 2000
@@ -15,6 +15,7 @@
 xitem(tt(zstyle -a) var(context) var(style) var(name))
 xitem(tt(zstyle -h) var(context) var(style) var(name))
 xitem(tt(zstyle -t) var(context) var(style) [ var(strings) ...])
+xitem(tt(zstyle -T) var(context) var(style) [ var(strings) ...])
 item(tt(zstyle -m) var(context) var(style) var(pattern))(
 This builtin command is used to define and lookup styles. Styles are
 pairs of names and values, where the values consist of any number of
@@ -63,13 +64,16 @@
 etc. string being used as the keys and the other strings being used as 
 the values).
 
-The tt(-t) option can be used to test the value of a style, i.e. it
+The tt(-t) options can be used to test the value of a style, i.e. it
 only sets the return value. Without any var(strings) arguments it is
 zero if the style is defined for at least one matching pattern, has
 only one string in its value and that is equal to one of tt(true),
 tt(yes), tt(on) or tt(1). If any var(strings) are given the return
 zero if and only if at least one of the var(strings) is equal to at
 least one of the strings in the value.
+
+The tt(-T) option is like tt(-t) but returns zero if the style is not
+set for any matching pattern.
 
 The tt(-m) option can be used to match a value. It returns zero if the 
 var(pattern) matches at least one of the strings in the value.
diff -ru ../z.old/Src/Modules/zutil.c Src/Modules/zutil.c
--- ../z.old/Src/Modules/zutil.c	Tue Feb 15 09:02:30 2000
+++ Src/Modules/zutil.c	Tue Feb 15 09:40:42 2000
@@ -285,6 +285,7 @@
     case 'a': min = 3; max =  3; break;
     case 'h': min = 3; max =  3; break;
     case 't': min = 2; max = -1; break;
+    case 'T': min = 2; max = -1; break;
     case 'm': min = 3; max =  3; break;
     case 'g': min = 1; max =  3; break;
     default:
@@ -417,6 +418,7 @@
 	}
 	break;
     case 't':
+    case 'T':
 	{
 	    Stypat s;
 
@@ -438,7 +440,7 @@
 			     !strcmp(s->vals[0], "on") ||
 			     !strcmp(s->vals[0], "1"));
 	    }
-	    return 1;
+	    return (args[0][1] == 't');
 	}
 	break;
     case 'm':

--
Sven Wischnowsky                         wischnow@xxxxxxxxxxxxxxxxxxxxxxx



Messages sorted by: Reverse Date, Date, Thread, Author