From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17113 invoked from network); 15 Feb 2000 09:03:10 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 15 Feb 2000 09:03:10 -0000 Received: (qmail 7998 invoked by alias); 15 Feb 2000 09:03:04 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 9731 Received: (qmail 7990 invoked from network); 15 Feb 2000 09:03:03 -0000 Date: Tue, 15 Feb 2000 10:02:59 +0100 (MET) Message-Id: <200002150902.KAA11504@beta.informatik.hu-berlin.de> From: Sven Wischnowsky To: zsh-workers@sunsite.auc.dk In-reply-to: Peter Stephenson's message of Fri, 11 Feb 2000 19:16:46 +0000 Subject: 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@informatik.hu-berlin.de