mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-22 16:41:12 +02:00
zsh-workers/7974
This commit is contained in:
parent
d139ae5643
commit
eda0e49696
6 changed files with 36 additions and 288 deletions
210
ChangeLog
210
ChangeLog
|
@ -1,215 +1,5 @@
|
||||||
1999-09-20 Peter Stephenson <pws@ibmth.df.unipi.it>
|
|
||||||
|
|
||||||
* pws: Config/version.mk: version 3.1.6-pws-5
|
|
||||||
|
|
||||||
* Sven: 7953: Completion/Commands/_expand_word,
|
|
||||||
Completion/Core/_expand, Doc/Zsh/compsys.yo: expand_completions
|
|
||||||
configuration key.
|
|
||||||
|
|
||||||
* pws: 7952: Completion/X/_xutils: xrdb should complete file
|
|
||||||
arguments.
|
|
||||||
|
|
||||||
* Sven: 7951: Src/subst.c, Doc/Zsh/expn.yo: parameter expansion flags
|
|
||||||
for quoting with single or double quotes.
|
|
||||||
|
|
||||||
* Sven: 7950: Src/utils.c, Src/Zle/complist.c: more careful
|
|
||||||
with VARARR's.
|
|
||||||
|
|
||||||
* Sven: 7949: 7949: Completion/X/_x_color,
|
|
||||||
Completion/X/_x_extension, Completion/X/_x_window,
|
|
||||||
Completion/X/_xutils: completion for standard X utilities.
|
|
||||||
|
|
||||||
* pws: 7948: Src/glob.c, Src/pattern.c: indexes weren't
|
|
||||||
calculate properly in $mbegin, $mend, $MBEGIN, $MEND because
|
|
||||||
of Meta bytes.
|
|
||||||
|
|
||||||
* Sven: 7947: Src/Zle/zle_tricky.c, Doc/Zsh/compwid.yo:
|
|
||||||
compstate[insert] can be all to insert all matches.
|
|
||||||
|
|
||||||
* Sven: 7944: Src/Zle/zle_tricky.c, Completion/Core/_multi_parts,
|
|
||||||
Completion/Core/_path_files, Completion/Core/_sep_parts:
|
|
||||||
new heuristic for deciding whether to add strings under match
|
|
||||||
control or if they are too ambiguous to be useful.
|
|
||||||
|
|
||||||
* Sven: 7943: Doc/Zsh/compsys.yo: docs for long args syntax
|
|
||||||
in _arguments.
|
|
||||||
|
|
||||||
* Bart: zsh-users/2610: Completion/Builtins/_kill,
|
|
||||||
Completion/Builtins/_wait, Completion/User/_gdb: split words
|
|
||||||
for ps arguments (replaces 2609).
|
|
||||||
|
|
||||||
* Bart: 7938: Completion/Base/_arg_compile, Completion/Base/_describe:
|
|
||||||
pre-compiler for _arguments and typo in describe.
|
|
||||||
|
|
||||||
* Tanaka Akira: 7937: Completion/User/_cvs, Completion/User/_lynx,
|
|
||||||
Completion/User/_wget: it's good to have _values.
|
|
||||||
|
|
||||||
* Bart: 7934: Completion/User/_telnet: improvement.
|
|
||||||
|
|
||||||
* Bart: 7932: Completion/User/_mailboxes: more generic.
|
|
||||||
|
|
||||||
* Bart: 7929: Src/hist.c, Src/Zle/zle_tricky.c: handle gaps
|
|
||||||
in history when scanning through it.
|
|
||||||
|
|
||||||
* Bart: 7928: Doc/Zsh/builtins.yo: typo in float stuff.
|
|
||||||
|
|
||||||
* Bart: 7925: Functions/Misc/run-help: various functions and
|
|
||||||
builtins in manual pages other than zshbuiltins.
|
|
||||||
|
|
||||||
* Adam: 7923: Completion/Core/compinit: compconf quoting tweak.
|
|
||||||
|
|
||||||
1999-09-17 Peter Stephenson <pws@ibmth.df.unipi.it>
|
|
||||||
|
|
||||||
* pws: 7921: Src/glob.c: bad test in rarely used
|
|
||||||
(string/)# globbing construct.
|
|
||||||
|
|
||||||
* Oliver: 7919: Completion/User/_man: try to find a manpath if
|
|
||||||
none (slightly adapted).
|
|
||||||
|
|
||||||
* Sven: 7917: Src/loop.c: hunk missed from 7915.
|
|
||||||
|
|
||||||
* pws: 7915: Doc/Zsh/arith.yo, Doc/Zsh/builtins.yo,
|
|
||||||
Src/Modules/parameter.c, Src/builtin.c, Src/cond.c, Src/exec.c,
|
|
||||||
Src/math.c, Src/mem.c, Src/params.c, Src/subst.c, Src/zsh.h,
|
|
||||||
configure.in: Floating point support via typeset -F and
|
|
||||||
typeset -E for variables and in matheval(). mnumber struct
|
|
||||||
passes around float or integer.
|
|
||||||
|
|
||||||
* Sven: 7903: Completion/Builtins/_cd: more careful with
|
|
||||||
things from cdablevars.
|
|
||||||
|
|
||||||
* Sven: 7902, 7912: Completion/Base/_arguments,
|
|
||||||
Doc/Zsh/compsys.yo: autodescribe_options.
|
|
||||||
|
|
||||||
* Sven: 7900: Completion/Commands/_history_complete_word,
|
|
||||||
Doc/Zsh/compsys.yo: history_stop config opt stops history
|
|
||||||
cycling past end.
|
|
||||||
|
|
||||||
* Sven: 7896: Src/Zle/zle_tricky.c: cursor positioning.
|
|
||||||
|
|
||||||
* Adam: 7892: Completion/User/_webbrowser: initial
|
|
||||||
implementation of completion for web browsers.
|
|
||||||
|
|
||||||
* Adam: 7891: Completion/Core/compinit: error message in compdef.
|
|
||||||
|
|
||||||
* Tanaka Akira: 7888: Completion/User/_wget: completion for wget.
|
|
||||||
|
|
||||||
* Tanaka Akira; 7887: Completion/User/_telnet: try to get
|
|
||||||
valid telnet options.
|
|
||||||
|
|
||||||
* Tanaka Akira: 7886: Completion/Base/_describe,
|
|
||||||
Completion/Debian/_apt, Completion/User/_cvs: -d option for
|
|
||||||
descriptions.
|
|
||||||
|
|
||||||
* Adam: 7882: Doc/Zsh/expn.yo: parentheses.
|
|
||||||
|
|
||||||
1999-09-16 Peter Stephenson <pws@ibmth.df.unipi.it>
|
|
||||||
|
|
||||||
* Adam: 7871: Completion/User/_perl_basepods,
|
|
||||||
Completion/User/_perl_builtin_funcs,
|
|
||||||
Completion/User/_perl_modules, Completion/User/_perldoc:
|
|
||||||
perl completion.
|
|
||||||
|
|
||||||
* Sven: 7864: Src/Zle/zle_tricky.c: crash when browsing
|
|
||||||
directory hierarchies with select and selecting an entry.
|
|
||||||
|
|
||||||
* Sven: 7863: Doc/Zsh/mod_parameter.yo, Src/Modules/parameter.c,
|
|
||||||
Src/Modules/parameter.mdd: $dirstack and $modules special
|
|
||||||
parameters.
|
|
||||||
|
|
||||||
* Sven: 7866: Doc/Zsh/compsys.yo, Completion/User/_mutt:
|
|
||||||
action necessary.
|
|
||||||
|
|
||||||
* Sven: 7862: Completion/Base/_arguments, Completion/User/_gcc,
|
|
||||||
Doc/Zsh/compsys.yo, Src/Zle/zle_tricky.c: completion for gcc,
|
|
||||||
-M match spec for _arguments, remove duplicate matches.
|
|
||||||
|
|
||||||
* Clint: 7860: Completion/User/_mailboxes, Completion/User/_mutt:
|
|
||||||
mutt support.
|
|
||||||
|
|
||||||
1999-09-15 Peter Stephenson <pws@ibmth.df.unipi.it>
|
|
||||||
|
|
||||||
* pws: 7855: Doc/Zsh/zftpsys.yo, Functions/Zftp/zfopen:
|
|
||||||
failed zfopen with arguments deletes the stored open parameters.
|
|
||||||
|
|
||||||
* Oliver: 7852: Completion/Builtins/_compdef,
|
|
||||||
Completion/User/_man: new compdef support, _man works for whatis
|
|
||||||
and apropos.
|
|
||||||
|
|
||||||
* Sven: 7850: Completion/Base/_arguments: minor cleanup.
|
|
||||||
|
|
||||||
* Sven: 7844: Src/Zle/complist.c, Src/Zle/zle_tricky.c,
|
|
||||||
Doc/Zsh/compsys.yo, Etc/completion-style-guide,
|
|
||||||
Completion/Base/_arguments, Completion/Base/_describe,
|
|
||||||
Completion/Base/_subscript, Completion/Base/_tilde,
|
|
||||||
Completion/Base/_values, Completion/Builtins/_cd,
|
|
||||||
Completion/Builtins/_kill, Completion/Builtins/_wait,
|
|
||||||
Completion/Core/_approximate, Completion/Core/_expand,
|
|
||||||
Completion/User/_gdb: various matching display bugs
|
|
||||||
(with compadd -d) and enhancements to correction and
|
|
||||||
approximation keys.
|
|
||||||
|
|
||||||
* Tanaka Akira: 7840: Completion/Base/_tilde,
|
|
||||||
Completion/Builtins/_cd: use compadd -d.
|
|
||||||
|
|
||||||
* pws: 7836: Src/Modules/zftp.c: bug from 7767: zftp rmsession
|
|
||||||
incremented node pointer wrongly and assigned new session
|
|
||||||
wrongly.
|
|
||||||
|
|
||||||
* pws: 7834: Src/pattern.c: bug from 7825, pure string path
|
|
||||||
segments wouldn't approximate.
|
|
||||||
|
|
||||||
1999-09-14 Peter Stephenson <pws@ibmth.df.unipi.it>
|
|
||||||
|
|
||||||
* Sven: 7827: Src/Zle/comp.h, Src/Zle/compctl.c,
|
|
||||||
Src/Zle/complist.c, Src/Zle/zle_tricky.c, Doc/Zsh/compsys.yo,
|
|
||||||
Doc/Zsh/compwid.yo, Completion/Base/_arguments,
|
|
||||||
Completion/Base/_values, Completion/Core/_display,
|
|
||||||
Completion/User/_mount: compadd -d for list of elements
|
|
||||||
to display instead of matches, -l to show one per line,
|
|
||||||
plus changes in _display and uses thereof; typos in _mount.
|
|
||||||
|
|
||||||
* pws: 7825, 7848: Doc/Zsh/expn.yo, Src/glob.c, Src/pattern.c,
|
|
||||||
Src/subst.c, Src/zsh.h: (#b) and (#m) globbing flags and
|
|
||||||
inverses; speed up compilation of pure string patterns.
|
|
||||||
|
|
||||||
* Sven: 7823: Src/Zle/zle_tricky.c: improve joining of completion
|
|
||||||
strings with different match control behaviour.
|
|
||||||
|
|
||||||
* Sven: 7824: Completion/Base/_arguments, Completion/Core/_message:
|
|
||||||
improve `no more arguments' message.
|
|
||||||
|
|
||||||
* Sven: 7819: Completion/Base/_arguments, Doc/Zsh/compsys.yo:
|
|
||||||
use of $options for single character options.
|
|
||||||
|
|
||||||
* Tanaka Akira: 7817: Completion/Debian/_apt,
|
|
||||||
Completion/User/_socket, Completion/User/_perl_builtin_funcs:
|
|
||||||
several improvements.
|
|
||||||
|
|
||||||
* Tanaka Akira: 7815: Completion/User/_combination,
|
|
||||||
Completion/User/_ports, Completion/User/_socket,
|
|
||||||
Completion/User/_telnet: more sophisticated port/user
|
|
||||||
combinations via general combination mechanism.
|
|
||||||
|
|
||||||
* Bart: 7813: Src/subst.c: correct incorrect application of
|
|
||||||
correction in 7697.
|
|
||||||
|
|
||||||
* Tanaka Akira: 7740: Completion/User/_man: handle gzipped and
|
|
||||||
SGML manual pages.
|
|
||||||
|
|
||||||
1999-09-13 Peter Stephenson <pws@ibmth.df.unipi.it>
|
1999-09-13 Peter Stephenson <pws@ibmth.df.unipi.it>
|
||||||
|
|
||||||
* pws: zsh-users/2598: Functions/Zle/incarg: zle function to
|
|
||||||
increment number under cursor.
|
|
||||||
|
|
||||||
* pws: 7812: Completion/X/_xrdb: now exists.
|
|
||||||
|
|
||||||
* Tanaka Akira: 7809: Completion/Debian/_apt, Completion/User/_patch:
|
|
||||||
new apt options and typo in _patch.
|
|
||||||
|
|
||||||
* Sven: 7808: Completion/Base/_arguments: don't add long options
|
|
||||||
sometimes.
|
|
||||||
|
|
||||||
* pws: Config/version.mk: 3.1.6-pws-4.
|
* pws: Config/version.mk: 3.1.6-pws-4.
|
||||||
|
|
||||||
* Tanaka Akira: 7806: Completion/Users/_pbm: missing backslash.
|
* Tanaka Akira: 7806: Completion/Users/_pbm: missing backslash.
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
DISTFILES_SRC='
|
DISTFILES_SRC='
|
||||||
.distfiles
|
.distfiles
|
||||||
_arg_compile _arguments _brace_parameter _command_names _condition
|
_arguments _brace_parameter _command_names
|
||||||
_default _describe _equal _first _math _parameter _precommand _redirect
|
_condition _default _equal _first
|
||||||
_regex_arguments _subscript _tilde _values _vars
|
_math _parameter _precommand _redirect _regex_arguments _subscript
|
||||||
|
_tilde _values _vars
|
||||||
'
|
'
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
DISTFILES_SRC='
|
DISTFILES_SRC='
|
||||||
.distfiles
|
.distfiles
|
||||||
_aliases _arrays _autoload _bg_jobs _bindkey _builtin _cd _command
|
_aliases _arrays _autoload _bg_jobs _bindkey _builtin _cd _command
|
||||||
_compdef _disable _echotc _enable _fc _functions _hash _jobs _kill
|
_dirs _disable _echotc _enable _fc _functions _hash _jobs _kill
|
||||||
_limits _sched _set _setopt _source _stat _trap _unhash _unsetopt
|
_limits _sched _set _setopt _source _stat _trap _unhash _unsetopt
|
||||||
_vars_eq _wait _which _zftp _zle _zmodload
|
_vars_eq _wait _which _zftp _zle _zmodload
|
||||||
'
|
'
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
# The parts of words from the array that are separated by the
|
# The parts of words from the array that are separated by the
|
||||||
# separator character are then completed independently.
|
# separator character are then completed independently.
|
||||||
|
|
||||||
local sep matches pref npref i tmp1 group expl menu pre suf opre osuf cpre
|
local sep matches pref npref i tmp1 group expl menu pre suf
|
||||||
typeset -U tmp2
|
typeset -U tmp2
|
||||||
|
|
||||||
# Get the options.
|
# Get the options.
|
||||||
|
@ -40,8 +40,6 @@ fi
|
||||||
|
|
||||||
pre="$PREFIX"
|
pre="$PREFIX"
|
||||||
suf="$SUFFIX"
|
suf="$SUFFIX"
|
||||||
opre="$PREFIX"
|
|
||||||
osuf="$SUFFIX"
|
|
||||||
orig="$PREFIX$SUFFIX"
|
orig="$PREFIX$SUFFIX"
|
||||||
|
|
||||||
# Special handling for menucompletion?
|
# Special handling for menucompletion?
|
||||||
|
@ -102,17 +100,14 @@ while true; do
|
||||||
matches=( "${(@M)matches:#${tmp1[1]}*}" )
|
matches=( "${(@M)matches:#${tmp1[1]}*}" )
|
||||||
tmp2=( "${(@M)matches:#${tmp1[1]}${sep}*}" )
|
tmp2=( "${(@M)matches:#${tmp1[1]}${sep}*}" )
|
||||||
|
|
||||||
PREFIX="${cpre}${pre}"
|
|
||||||
SUFFIX="$suf"
|
|
||||||
|
|
||||||
if (( $#tmp2 )); then
|
if (( $#tmp2 )); then
|
||||||
compadd "$group[@]" "$expl[@]" -p "$pref" -qS "$sep" \
|
compadd -U "$group[@]" "$expl[@]" -i "$IPREFIX" -I "$ISUFFIX" \
|
||||||
-M "r:|${sep}=* r:|=*" - "$tmp1[1]"
|
-p "$pref" -qS "$sep" - "$tmp1[1]"
|
||||||
else
|
else
|
||||||
compadd "$group[@]" "$expl[@]" -p "$pref" \
|
compadd -U "$group[@]" "$expl[@]" -i "$IPREFIX" -I "$ISUFFIX" \
|
||||||
-M "r:|${sep}=* r:|=*" - "$tmp1[1]"
|
-p "$pref" - "$tmp1[1]"
|
||||||
fi
|
fi
|
||||||
return 0
|
return 1
|
||||||
fi
|
fi
|
||||||
elif (( $#tmp1 )); then
|
elif (( $#tmp1 )); then
|
||||||
|
|
||||||
|
@ -123,14 +118,6 @@ while true; do
|
||||||
SUFFIX="$suf"
|
SUFFIX="$suf"
|
||||||
compadd -O matches -M "r:|${sep}=* r:|=*" - "$matches[@]"
|
compadd -O matches -M "r:|${sep}=* r:|=*" - "$matches[@]"
|
||||||
|
|
||||||
if [[ "$pre" = *${sep}* ]]; then
|
|
||||||
PREFIX="${cpre}${pre%%${sep}*}"
|
|
||||||
SUFFIX="${sep}${pre#*${sep}}${suf}"
|
|
||||||
else
|
|
||||||
PREFIX="${cpre}${pre}"
|
|
||||||
SUFFIX="$suf"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -n "$menu" ]]; then
|
if [[ -n "$menu" ]]; then
|
||||||
# With menucompletion we just add matches for the matching
|
# With menucompletion we just add matches for the matching
|
||||||
# components with the prefix we collected and the rest from the
|
# components with the prefix we collected and the rest from the
|
||||||
|
@ -138,12 +125,11 @@ while true; do
|
||||||
|
|
||||||
tmp2="$pre$suf"
|
tmp2="$pre$suf"
|
||||||
if [[ "$tmp2" = *${sep}* ]]; then
|
if [[ "$tmp2" = *${sep}* ]]; then
|
||||||
compadd "$group[@]" "$expl[@]" \
|
compadd -U "$group[@]" "$expl[@]" -i "$IPREFIX" -I "$ISUFFIX" \
|
||||||
-p "$pref" -s "${sep}${tmp2#*${sep}}" \
|
-p "$pref" -s "${sep}${tmp2#*${sep}}" - "$tmp1[@]"
|
||||||
-M "r:|${sep}=* r:|=*" - "$tmp1[@]"
|
|
||||||
else
|
else
|
||||||
compadd "$group[@]" "$expl[@]" -p "$pref"\
|
compadd -U "$group[@]" "$expl[@]" -i "$IPREFIX" -I "$ISUFFIX" \
|
||||||
-M "r:|${sep}=* r:|=*" - "$tmp1[@]"
|
-p "$pref" - "$tmp1[@]"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# With normal completion we add all matches one-by-one with
|
# With normal completion we add all matches one-by-one with
|
||||||
|
@ -152,12 +138,11 @@ while true; do
|
||||||
|
|
||||||
for i in "${(@M)matches:#(${(j:|:)~tmp1})*}"; do
|
for i in "${(@M)matches:#(${(j:|:)~tmp1})*}"; do
|
||||||
if [[ "$i" = *${sep}* ]]; then
|
if [[ "$i" = *${sep}* ]]; then
|
||||||
compadd "$group[@]" "$expl[@]" -S '' \
|
compadd -U "$group[@]" "$expl[@]" -i "$IPREFIX" -I "$ISUFFIX" \
|
||||||
-p "$pref" -s "${i#*${sep}}" \
|
-S '' -p "$pref" -s "${i#*${sep}}" - "${i%%${sep}*}${sep}"
|
||||||
-M "r:|${sep}=* r:|=*" - "${i%%${sep}*}${sep}"
|
|
||||||
else
|
else
|
||||||
compadd "$group[@]" "$expl[@]" -S '' -p "$pref" \
|
compadd -U "$group[@]" "$expl[@]" -i "$IPREFIX" -I "$ISUFFIX" \
|
||||||
-M "r:|${sep}=* r:|=*" - "$i"
|
-S '' -p "$pref" - "$i"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
@ -169,15 +154,12 @@ while true; do
|
||||||
|
|
||||||
[[ "$orig" = "$pref$pre$suf" ]] && return 1
|
[[ "$orig" = "$pref$pre$suf" ]] && return 1
|
||||||
|
|
||||||
PREFIX="${cpre}${pre}"
|
|
||||||
SUFFIX="$suf"
|
|
||||||
|
|
||||||
if [[ -n "$suf" ]]; then
|
if [[ -n "$suf" ]]; then
|
||||||
compadd "$group[@]" "$expl[@]" -s "$suf" \
|
compadd -U "$group[@]" "$expl[@]" -i "$IPREFIX" -I "$ISUFFIX" \
|
||||||
-M "r:|${sep}=* r:|=*" - "$pref$pre"
|
-s "$suf" - "$pref$pre"
|
||||||
else
|
else
|
||||||
compadd "$group[@]" "$expl[@]" -S '' \
|
compadd -U "$group[@]" "$expl[@]" -i "$IPREFIX" -I "$ISUFFIX" \
|
||||||
-M "r:|${sep}=* r:|=*" - "$pref$pre"
|
-S '' - "$pref$pre$suf"
|
||||||
fi
|
fi
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
@ -193,10 +175,8 @@ while true; do
|
||||||
# Now we set `pre' and `suf' to their new values.
|
# Now we set `pre' and `suf' to their new values.
|
||||||
|
|
||||||
if [[ "$pre" = *${sep}* ]]; then
|
if [[ "$pre" = *${sep}* ]]; then
|
||||||
cpre="${cpre}${pre%%${sep}*}${sep}"
|
|
||||||
pre="${pre#*${sep}}"
|
pre="${pre#*${sep}}"
|
||||||
elif [[ "$suf" = *${sep}* ]]; then
|
elif [[ "$suf" = *${sep}* ]]; then
|
||||||
cpre="${cpre}${pre}${suf%%${sep}*}${sep}"
|
|
||||||
pre="${suf#*${sep}}"
|
pre="${suf#*${sep}}"
|
||||||
suf=""
|
suf=""
|
||||||
else
|
else
|
||||||
|
@ -204,11 +184,9 @@ while true; do
|
||||||
# unambiguous prefix and that differs from the original string,
|
# unambiguous prefix and that differs from the original string,
|
||||||
# we insert it.
|
# we insert it.
|
||||||
|
|
||||||
PREFIX="${opre}${osuf}"
|
|
||||||
SUFFIX=""
|
|
||||||
|
|
||||||
[[ -n "$pref" && "$orig" != "$pref" ]] &&
|
[[ -n "$pref" && "$orig" != "$pref" ]] &&
|
||||||
compadd "$group[@]" "$expl[@]" -S '' -M "r:|${sep}=* r:|=*" - "$pref"
|
compadd -U "$group[@]" "$expl[@]" -i "$IPREFIX" -I "$ISUFFIX" \
|
||||||
|
-S '' - "$pref"
|
||||||
|
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
# menucompletion.
|
# menucompletion.
|
||||||
|
|
||||||
local linepath realpath donepath prepath testpath exppath
|
local linepath realpath donepath prepath testpath exppath
|
||||||
local tmp1 tmp2 tmp3 tmp4 i orig pre suf tpre tsuf opre osuf cpre
|
local tmp1 tmp2 tmp3 tmp4 i orig pre suf tpre tsuf
|
||||||
local pats haspats=no ignore group expl addpfx addsfx remsfx
|
local pats haspats=no ignore group expl addpfx addsfx remsfx
|
||||||
local nm=$compstate[nmatches] menu
|
local nm=$compstate[nmatches] menu
|
||||||
|
|
||||||
|
@ -118,8 +118,6 @@ fi
|
||||||
|
|
||||||
pre="$PREFIX"
|
pre="$PREFIX"
|
||||||
suf="$SUFFIX"
|
suf="$SUFFIX"
|
||||||
opre="$PREFIX"
|
|
||||||
osuf="$SUFFIX"
|
|
||||||
orig="${PREFIX}${SUFFIX}"
|
orig="${PREFIX}${SUFFIX}"
|
||||||
|
|
||||||
[[ $compstate[insert] = (*menu|[0-9]*) || -n "$_comp_correct" ||
|
[[ $compstate[insert] = (*menu|[0-9]*) || -n "$_comp_correct" ||
|
||||||
|
@ -293,8 +291,6 @@ for prepath in "$prepaths[@]"; do
|
||||||
|
|
||||||
if [[ "$haspats" = no && -z "$tpre$tsuf" &&
|
if [[ "$haspats" = no && -z "$tpre$tsuf" &&
|
||||||
"$pre" = */ && -z "$suf" ]]; then
|
"$pre" = */ && -z "$suf" ]]; then
|
||||||
PREFIX="${opre}${osuf}"
|
|
||||||
SUFFIX=""
|
|
||||||
compadd -nQS '' - "$linepath$donepath$orig"
|
compadd -nQS '' - "$linepath$donepath$orig"
|
||||||
tmp4=-
|
tmp4=-
|
||||||
fi
|
fi
|
||||||
|
@ -353,27 +349,19 @@ for prepath in "$prepaths[@]"; do
|
||||||
# collected as the suffixes to make the completion code expand
|
# collected as the suffixes to make the completion code expand
|
||||||
# it as far as possible.
|
# it as far as possible.
|
||||||
|
|
||||||
if [[ "$tmp3" = */* ]]; then
|
|
||||||
PREFIX="${linepath}${cpre}${tmp3%%/*}"
|
|
||||||
SUFFIX="/${tmp3#*/}"
|
|
||||||
else
|
|
||||||
PREFIX="${linepath}${cpre}${tmp3}"
|
|
||||||
SUFFIX=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -n $menu ]]; then
|
if [[ -n $menu ]]; then
|
||||||
[[ -n "$compconfig[path_cursor]" ]] && compstate[to_end]=''
|
[[ -n "$compconfig[path_cursor]" ]] && compstate[to_end]=''
|
||||||
if [[ "$tmp3" = */* ]]; then
|
if [[ "$tmp3" = */* ]]; then
|
||||||
compadd -QUf -p "$linepath${testpath:q}" -s "/${tmp3#*/}" \
|
compadd -QUf -p "$linepath${testpath:q}" -s "/${tmp3#*/}" \
|
||||||
-W "$prepath$realpath$testpath" "$ignore[@]" \
|
-W "$prepath$realpath$testpath" "$ignore[@]" \
|
||||||
"$addpfx[@]" "$addsfx[@]" "$remsfx[@]" -M 'r:|/=* r:|=*' \
|
"$addpfx[@]" "$addsfx[@]" "$remsfx[@]" -M 'r:|/=* r:|=*' \
|
||||||
+ "$group[@]" "$expl[@]" \
|
"$group[@]" "$expl[@]" -i "$IPREFIX" -I "$ISUFFIX" \
|
||||||
- "${(@)${(@)tmp1%%/*}:q}"
|
- "${(@)${(@)tmp1%%/*}:q}"
|
||||||
else
|
else
|
||||||
compadd -QUf -p "$linepath${testpath:q}" \
|
compadd -QUf -p "$linepath${testpath:q}" \
|
||||||
-W "$prepath$realpath$testpath" "$ignore[@]" \
|
-W "$prepath$realpath$testpath" "$ignore[@]" \
|
||||||
"$addpfx[@]" "$addsfx[@]" "$remsfx[@]" \
|
"$addpfx[@]" "$addsfx[@]" "$remsfx[@]" \
|
||||||
"$group[@]" "$expl[@]" \
|
"$group[@]" "$expl[@]" -i "$IPREFIX" -I "$ISUFFIX" \
|
||||||
- "${(@)tmp1:q}"
|
- "${(@)tmp1:q}"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
|
@ -382,14 +370,14 @@ for prepath in "$prepaths[@]"; do
|
||||||
compadd -QUf -p "$linepath${testpath:q}" -s "/${${i#*/}:q}" \
|
compadd -QUf -p "$linepath${testpath:q}" -s "/${${i#*/}:q}" \
|
||||||
-W "$prepath$realpath$testpath" "$ignore[@]" \
|
-W "$prepath$realpath$testpath" "$ignore[@]" \
|
||||||
"$addpfx[@]" "$addsfx[@]" "$remsfx[@]" -M 'r:|/=* r:|=*' \
|
"$addpfx[@]" "$addsfx[@]" "$remsfx[@]" -M 'r:|/=* r:|=*' \
|
||||||
"$group[@]" "$expl[@]" \
|
"$group[@]" "$expl[@]" -i "$IPREFIX" -I "$ISUFFIX" \
|
||||||
- "${${i%%/*}:q}"
|
- "${${i%%/*}:q}"
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
compadd -QUf -p "$linepath${testpath:q}" \
|
compadd -QUf -p "$linepath${testpath:q}" \
|
||||||
-W "$prepath$realpath$testpath" "$ignore[@]" \
|
-W "$prepath$realpath$testpath" "$ignore[@]" \
|
||||||
"$addpfx[@]" "$addsfx[@]" "$remsfx[@]" \
|
"$addpfx[@]" "$addsfx[@]" "$remsfx[@]" \
|
||||||
"$group[@]" "$expl[@]" \
|
"$group[@]" "$expl[@]" -i "$IPREFIX" -I "$ISUFFIX" \
|
||||||
- "${(@)tmp1:q}"
|
- "${(@)tmp1:q}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -411,17 +399,14 @@ for prepath in "$prepaths[@]"; do
|
||||||
testpath="${testpath}${tmp1[1]%%/*}/"
|
testpath="${testpath}${tmp1[1]%%/*}/"
|
||||||
tmp1=( "${(@)tmp1#*/}" )
|
tmp1=( "${(@)tmp1#*/}" )
|
||||||
|
|
||||||
cpre="${cpre}${tmp3%%/*}/"
|
|
||||||
tmp3="${tmp3#*/}"
|
tmp3="${tmp3#*/}"
|
||||||
done
|
done
|
||||||
|
|
||||||
if [[ -z "$tmp4" ]]; then
|
if [[ -z "$tmp4" ]]; then
|
||||||
PREFIX="${opre}${osuf}"
|
compadd -QUf -p "$linepath${testpath:q}" \
|
||||||
SUFFIX=""
|
|
||||||
compadd -QUf -p "$linepath${testpath:q}" \
|
|
||||||
-W "$prepath$realpath$testpath" "$ignore[@]" \
|
-W "$prepath$realpath$testpath" "$ignore[@]" \
|
||||||
"$addpfx[@]" "$addsfx[@]" "$remsfx[@]" \
|
"$addpfx[@]" "$addsfx[@]" "$remsfx[@]" \
|
||||||
"$group[@]" "$expl[@]" \
|
"$group[@]" "$expl[@]" -i "$IPREFIX" -I "$ISUFFIX" \
|
||||||
- "${(@)tmp1:q}"
|
- "${(@)tmp1:q}"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
@ -434,9 +419,7 @@ exppaths=( "${(@)exppaths:#$orig}" )
|
||||||
|
|
||||||
if [[ -n "$compconfig[path_expand]" &&
|
if [[ -n "$compconfig[path_expand]" &&
|
||||||
$#exppaths -gt 0 && nm -eq compstate[nmatches] ]]; then
|
$#exppaths -gt 0 && nm -eq compstate[nmatches] ]]; then
|
||||||
PREFIX="${opre}${osuf}"
|
compadd -QU -S '' "$group[@]" "$expl[@]" -i "$IPREFIX" -I "$ISUFFIX" \
|
||||||
SUFFIX=""
|
|
||||||
compadd -Q -S '' "$group[@]" "$expl[@]" \
|
|
||||||
-M 'r:|/=* r:|=*' -p "$linepath" - "$exppaths[@]"
|
-M 'r:|/=* r:|=*' -p "$linepath" - "$exppaths[@]"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
# `-X explanation' options.
|
# `-X explanation' options.
|
||||||
|
|
||||||
local str arr sep test testarr tmparr prefix suffixes matchers autosuffix
|
local str arr sep test testarr tmparr prefix suffixes matchers autosuffix
|
||||||
local matchflags opt group expl nm=$compstate[nmatches] opre osuf
|
local matchflags opt group expl nm=$compstate[nmatches]
|
||||||
|
|
||||||
# Get the options.
|
# Get the options.
|
||||||
|
|
||||||
|
@ -34,8 +34,6 @@ shift OPTIND-1
|
||||||
|
|
||||||
# Get the string from the line.
|
# Get the string from the line.
|
||||||
|
|
||||||
opre="$PREFIX"
|
|
||||||
osuf="$SUFFIX"
|
|
||||||
str="$PREFIX$SUFFIX"
|
str="$PREFIX$SUFFIX"
|
||||||
SUFFIX=""
|
SUFFIX=""
|
||||||
prefix=""
|
prefix=""
|
||||||
|
@ -146,8 +144,6 @@ done
|
||||||
|
|
||||||
# Add the matches for each of the suffixes.
|
# Add the matches for each of the suffixes.
|
||||||
|
|
||||||
PREFIX="$pre"
|
|
||||||
SUFFIX="$suf"
|
|
||||||
for i in "$suffixes[@]"; do
|
for i in "$suffixes[@]"; do
|
||||||
compadd -U "$group[@]" "$expl[@]" "$matchers[@]" "$autosuffix[@]" \
|
compadd -U "$group[@]" "$expl[@]" "$matchers[@]" "$autosuffix[@]" \
|
||||||
-i "$IPREFIX" -I "$ISUFFIX" -p "$prefix" -s "$i" - "$testarr[@]"
|
-i "$IPREFIX" -I "$ISUFFIX" -p "$prefix" -s "$i" - "$testarr[@]"
|
||||||
|
|
Loading…
Reference in a new issue