mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-10-27 16:50:58 +01:00
zsh-3.1.6-dev-20
This commit is contained in:
parent
d770c43f14
commit
d8f7030273
33 changed files with 802 additions and 302 deletions
544
ChangeLog
544
ChangeLog
|
|
@ -1,3 +1,547 @@
|
||||||
|
2000-03-23 Peter Stephenson <pws@pwstephenson.fsnet.co.uk>
|
||||||
|
|
||||||
|
* Tanaka Akira: 10234, 10236: Completion/X/_xwit: _message passing.
|
||||||
|
|
||||||
|
* Tanaka Akira; 10232: Test/comptest, Test/ztst.zsh, ChangeLog(!):
|
||||||
|
minor test fixes and typo.
|
||||||
|
|
||||||
|
* Sven: 10226: Completion/Core/_path_files: quoting problem.
|
||||||
|
|
||||||
|
* Sven: 10225: Completion/Core/_path_files: dot problems with
|
||||||
|
files.
|
||||||
|
|
||||||
|
* Tanaka Akira: 10223: Completion/Base/_regex_arguments,
|
||||||
|
Completion/X/_x_colormapid, Completion/X/_xwit:
|
||||||
|
new X completions.
|
||||||
|
|
||||||
|
* Bart: 10218: Src/prompt.c: possible realloc() in
|
||||||
|
putpromptchar().
|
||||||
|
|
||||||
|
2000-03-22 Peter Stephenson <pws@pwstephenson.fsnet.co.uk>
|
||||||
|
|
||||||
|
* Sven: 10215: Completion/User/_nedit: and this one.
|
||||||
|
|
||||||
|
* Sven: 10214: Completion/Builtins/_cd,
|
||||||
|
Completion/Builtins/_zstyle, Completion/User/_pbm,
|
||||||
|
Completion/User/_pspdf, Completion/User/_tiff,
|
||||||
|
Completion/User/_zdump: some _path_files calls now need loop for
|
||||||
|
tags.
|
||||||
|
|
||||||
|
* Sven: 10210: Completion/Commands/_next_tags,
|
||||||
|
Completion/Core/_main_complete, Completion/Core/compinit,
|
||||||
|
Doc/Zsh/compsys.yo: _next_tags doesn't need to be in completer
|
||||||
|
list any more; $compprefuncs array does pre-completion functions.
|
||||||
|
|
||||||
|
* Sven: 10209: Completion/Core/_loop, Completion/Core/_try:
|
||||||
|
missing functions form 10195.
|
||||||
|
|
||||||
|
* 10204: Completion/Base/_arguments, Completion/Base/_values,
|
||||||
|
Completion/Core/_alternative, Completion/Core/_tags,
|
||||||
|
Completion/Core/_wanted, Src/Zle/computil.c: additions to 10195.
|
||||||
|
|
||||||
|
* Sven: 10195: Completion/Base/_arguments,
|
||||||
|
Completion/Base/_brace_parameter, Completion/Base/_condition,
|
||||||
|
Completion/Base/_default, Completion/Base/_describe,
|
||||||
|
Completion/Base/_first, Completion/Base/_jobs,
|
||||||
|
Completion/Base/_math, Completion/Base/_parameter,
|
||||||
|
Completion/Base/_subscript, Completion/Base/_tilde,
|
||||||
|
Completion/Base/_values, Completion/Builtins/_arrays,
|
||||||
|
Completion/Builtins/_autoload, Completion/Builtins/_bindkey,
|
||||||
|
Completion/Builtins/_builtin, Completion/Builtins/_cd,
|
||||||
|
Completion/Builtins/_command, Completion/Builtins/_compdef,
|
||||||
|
Completion/Builtins/_echotc, Completion/Builtins/_functions,
|
||||||
|
Completion/Builtins/_hash, Completion/Builtins/_limits,
|
||||||
|
Completion/Builtins/_pids, Completion/Builtins/_popd,
|
||||||
|
Completion/Builtins/_sched, Completion/Builtins/_signals,
|
||||||
|
Completion/Builtins/_stat, Completion/Builtins/_vars,
|
||||||
|
Completion/Builtins/_zftp, Completion/Builtins/_zle,
|
||||||
|
Completion/Builtins/_zmodload, Completion/Builtins/_zpty,
|
||||||
|
Completion/Builtins/_zstyle, Completion/Commands/_next_tags,
|
||||||
|
Completion/Core/_alternative, Completion/Core/_files,
|
||||||
|
Completion/Core/_main_complete, Completion/Core/_multi_parts,
|
||||||
|
Completion/Core/_options, Completion/Core/_parameters,
|
||||||
|
Completion/Core/_path_files, Completion/Core/_requested,
|
||||||
|
Completion/Core/_sep_parts, Completion/Core/_set_options,
|
||||||
|
Completion/Core/_setup, Completion/Core/_tags,
|
||||||
|
Completion/Core/_unset_options, Completion/Core/_wanted,
|
||||||
|
Completion/Debian/_apt, Completion/Debian/_deb_packages,
|
||||||
|
Completion/Linux/_rpm, Completion/User/_archie,
|
||||||
|
Completion/User/_cvs, Completion/User/_dd,
|
||||||
|
Completion/User/_domains, Completion/User/_gcc,
|
||||||
|
Completion/User/_gdb, Completion/User/_getconf,
|
||||||
|
Completion/User/_gprof, Completion/User/_groups,
|
||||||
|
Completion/User/_gs, Completion/User/_hosts, Completion/User/_lp,
|
||||||
|
Completion/User/_mailboxes, Completion/User/_make,
|
||||||
|
Completion/User/_man, Completion/User/_mh, Completion/User/_mount,
|
||||||
|
Completion/User/_mutt, Completion/User/_mysql_utils,
|
||||||
|
Completion/User/_netscape, Completion/User/_nslookup,
|
||||||
|
Completion/User/_pbm, Completion/User/_perl_basepods,
|
||||||
|
Completion/User/_perl_builtin_funcs,
|
||||||
|
Completion/User/_perl_modules, Completion/User/_ports,
|
||||||
|
Completion/User/_rcs, Completion/User/_rlogin,
|
||||||
|
Completion/User/_socket, Completion/User/_ssh,
|
||||||
|
Completion/User/_stty, Completion/User/_tar,
|
||||||
|
Completion/User/_telnet, Completion/User/_tiff,
|
||||||
|
Completion/User/_urls, Completion/User/_user_at_host,
|
||||||
|
Completion/User/_users, Completion/User/_users_on,
|
||||||
|
Completion/User/_whois, Completion/User/_yp,
|
||||||
|
Completion/X/_x_color, Completion/X/_x_cursor,
|
||||||
|
Completion/X/_x_display, Completion/X/_x_extension,
|
||||||
|
Completion/X/_x_font, Completion/X/_x_keysym,
|
||||||
|
Completion/X/_x_modifier, Completion/X/_x_window,
|
||||||
|
Completion/X/_xmodmap, Completion/X/_xutils, Doc/Zsh/compsys.yo,
|
||||||
|
Doc/Zsh/mod_zutil.yo, Etc/completion-style-guide,
|
||||||
|
Functions/Zftp/zfcd_match, Functions/Zftp/zfget_match,
|
||||||
|
Src/Modules/zutil.c, Src/Zle/computil.c: implement tag aliases,
|
||||||
|
which allows neat tricks with styles.
|
||||||
|
|
||||||
|
* Sven: 10197: Src/exec.c, Src/init.c: %_ sometimes got cmdstack
|
||||||
|
wrong in source(); $(...) didn't show up at all.
|
||||||
|
|
||||||
|
* Bart: 10193: Src/prompt.c: prompttrunc() didn't track realloc()'s.
|
||||||
|
|
||||||
|
* Bart: 10181: Functions/Prompts/prompt_bart_setup: Bart's Theme
|
||||||
|
and Variations.
|
||||||
|
|
||||||
|
* Sven: 10178: Completion/Commands/_next_tags, Doc/Zsh/compsys.yo:
|
||||||
|
don't bind _next_tags by default and add some more docs.
|
||||||
|
|
||||||
|
* Sven: 10176: Src/Zle/compresult.c, Src/init.c, Src/parse.c:
|
||||||
|
optimize list-packed.
|
||||||
|
|
||||||
|
* Sven: 10174: Doc/Zsh/compsys.yo, Doc/Zsh/compwid.yo: tweaks on
|
||||||
|
completer and -V.
|
||||||
|
|
||||||
|
* Bart: 10173: Functions/Prompts/prompt_bart_setup,
|
||||||
|
Functions/Prompts/promptinit: Bart's Theme.
|
||||||
|
|
||||||
|
* Sven: 10172: Completion/Core/_main_complete: typo.
|
||||||
|
|
||||||
|
* Bart: 10168: Src/init.c: move hbegin() to get it right in
|
||||||
|
precmd.
|
||||||
|
|
||||||
|
* Oliver: 10166: Completion/X/_xt_arguments,
|
||||||
|
Completion/User/_nedit: new and improved.
|
||||||
|
|
||||||
|
* Bart: 10165: Doc/Zsh/builtins.yo, Doc/Zsh/compsys.yo: move doc
|
||||||
|
for using a completer twice; zcompile doc tweak.
|
||||||
|
|
||||||
|
* Oliver: 10162: Completion/Core/_expand: use nullglob option
|
||||||
|
instead of (N) so that user's qualifiers work.
|
||||||
|
|
||||||
|
* Sven: 10159: Src/Zle/compresult.c: wrong calculation of display
|
||||||
|
length when not using zsh/complist.
|
||||||
|
|
||||||
|
* Sven: 10156: Src/exec.c: possible invalid field in function
|
||||||
|
definition when loading.
|
||||||
|
|
||||||
|
* Zefram: 10152: Src/mem.c: fix ordering ambiguity ANSI wouldn't
|
||||||
|
have liked.
|
||||||
|
|
||||||
|
* Bart: 10150: Src/exec.c, Test/51xtrace.ztst: `one last' xtrace
|
||||||
|
redirection fix.
|
||||||
|
|
||||||
|
* Sven: 10149: Doc/Zsh/builtins.yo, Src/builtin.c, Src/exec.c,
|
||||||
|
Src/parse.c: allows native and ksh-like wordcode function styles.
|
||||||
|
|
||||||
|
* Sven: 10148: Src/Zle/comp.h, Src/Zle/compcore.c, Src/mem.c:
|
||||||
|
optimization for added matches where things didn't change.
|
||||||
|
|
||||||
|
* Sven: 10146: Completion/Core/_sort_tags, Completion/Core/_tags,
|
||||||
|
Doc/Zsh/compsys.yo: return value of function called by _tags used
|
||||||
|
to decide dispositions.
|
||||||
|
|
||||||
|
* Sven: 10145: Doc/Zsh/mod_zle.yo: confess to users that zle input
|
||||||
|
is on a stack.
|
||||||
|
|
||||||
|
* Sven: 10144: Doc/Zsh/builtins.yo, Src/Modules/parameter.c,
|
||||||
|
Src/builtin.c, Src/exec.c, Src/linklist.c, Src/parse.c: dump
|
||||||
|
functions from current shell.
|
||||||
|
|
||||||
|
* Sven: 10143: Src/init.c, Src/math.c: better ignoring of bits
|
||||||
|
that shouldn't get evaluated in math expressions.
|
||||||
|
|
||||||
|
* Sven: 10135: Doc/Zsh/compsys.yo, Src/Zle/computil.c: complex
|
||||||
|
argument handling expressions.
|
||||||
|
|
||||||
|
* Sven: 10131: Src/Modules/stat.c, Src/Modules/zpty.c,
|
||||||
|
Src/Modules/zutil.c, Src/Zle/compctl.c, Src/Zle/complete.c,
|
||||||
|
Src/Zle/computil.c, Src/Zle/zle_main.c, Src/Zle/zle_thingy.c,
|
||||||
|
Src/parse.c: more consistent zerrnam/zwarnnam usage.
|
||||||
|
|
||||||
|
* Sven: 10129: Doc/Zsh/builtins.yo, Src/builtin.c, Src/parse.c:
|
||||||
|
autoload -w can mark all functions in .zwc files for autoloading.
|
||||||
|
|
||||||
|
* Sven: 10128: Doc/Zsh/zle.yo, Src/Zle/zle_main.c, Src/init.c,
|
||||||
|
Src/signals.c, Src/zsh.h: zle parameters available readonly in
|
||||||
|
traps.
|
||||||
|
|
||||||
|
* Sven: 10127: Doc/Zsh/zle.yo, Src/Zle/compresult.c,
|
||||||
|
Src/Zle/iwidgets.list, Src/Zle/zle_main.c, Src/Zle/zle_misc.c,
|
||||||
|
Src/Zle/zle_refresh.c, Src/Zle/zle_thingy.c, Src/Zle/zle_tricky.c:
|
||||||
|
end-of-list widget to display prompt under command line, plus
|
||||||
|
$MARK documentation.
|
||||||
|
|
||||||
|
* Sven: 10126: Src/Zle/compcore.c: quotes in $PREFIX and $SUFFIX.
|
||||||
|
|
||||||
|
* Sven: 10125: Src/math.c, Src/params.c: restore old cruddy
|
||||||
|
behaviour removed in 10104, but using recursion counter.
|
||||||
|
|
||||||
|
* Sven: 10120: Src/exec.c, Src/loop.c, Src/parse.c: state not
|
||||||
|
tested properly in some constructs.
|
||||||
|
|
||||||
|
* Sven: 10117: Doc/Zsh/mod_zle.yo, Src/Zle/zle_params.c,
|
||||||
|
Src/Zle/zle_thingy.c: zle on its own returns zle status;
|
||||||
|
MARK parameter; disallow widgets in traps.
|
||||||
|
|
||||||
|
* Oliver: 10116: Completion/Builtins/_source: wasn't looking
|
||||||
|
through the path.
|
||||||
|
|
||||||
|
* Sven: 10112: Completion/Base/_condition, Src/Zle/zle_tricky.c:
|
||||||
|
fix up altmodische _condition; `[[ ... && ' thought it was in
|
||||||
|
command position for completion.
|
||||||
|
|
||||||
|
* Sven: 10108: Completion/Commands/.distfiles,
|
||||||
|
Completion/Commands/_next_tags, Completion/Core/_files,
|
||||||
|
Completion/Core/_main_complete, Completion/Core/_requested,
|
||||||
|
Completion/Core/_wanted, Doc/Zsh/compsys.yo,
|
||||||
|
Functions/Misc/.distfiles: _next_tags allows you to cycle through
|
||||||
|
sets of completions according to the tags.
|
||||||
|
|
||||||
|
* Sven: 10107: Doc/Zsh/compwid.yo, Src/Zle/complete.c,
|
||||||
|
Src/Zle/compmatch.c: ** in match spec allows matching including
|
||||||
|
the anchor as well.
|
||||||
|
|
||||||
|
* Sven: 10106: Functions/Misc/zrecompile, Src/exec.c, Src/parse.c,
|
||||||
|
Src/zsh.h: recompilation of wordcode files and related bugs.
|
||||||
|
|
||||||
|
* Sven: 10105: Src/lex.c: single exclamation marks in conditions.
|
||||||
|
|
||||||
|
* Sven: 10104: Src/math.c, Src/params.c: retrieve parameters in
|
||||||
|
math evaluations more directly rather than recursively calling
|
||||||
|
matheval(), which was kind of stupid, so stupid I could quite
|
||||||
|
possible have put it in myself, but I don't think I did this time.
|
||||||
|
|
||||||
|
* Sven: 10103: Src/glob.c: bad handling of ./ and ../ in
|
||||||
|
closures.
|
||||||
|
|
||||||
|
* Bart: 10098: configure.in, Src/cond.c: check for AIX's
|
||||||
|
faccessx() and neaten configure library function tests.
|
||||||
|
|
||||||
|
* Oliver: 10088: Completion/User/_groups,
|
||||||
|
Completion/Base/_condition: better handling of files after
|
||||||
|
conditions, checking of use of NIS.
|
||||||
|
|
||||||
|
* Adam: 10087: Completion/User/_perl_modules,
|
||||||
|
Completion/User/_perl: new and enhanced perl completions.
|
||||||
|
|
||||||
|
* Oliver: 10073: Src/cond.c: /dev/fd emulation for access tests.
|
||||||
|
|
||||||
|
* Adam: 10072: Completion/User/_mysql_utils: new completion
|
||||||
|
function for something with suspcicious `SQL' bit in its name.
|
||||||
|
|
||||||
|
* Bart: 10071: Src/exec.c: xtrace output redirection problem.
|
||||||
|
|
||||||
|
* Sven: 10059: Src/builtin.c, Src/lex.c, Src/parse.c, Src/text.c,
|
||||||
|
Src/zsh.h: bugs found by ksh tests: typeset -Ai didn't create
|
||||||
|
assocs (still doesn't create ints), some heredoc difficulties, |&
|
||||||
|
difficulties.
|
||||||
|
|
||||||
|
* Alexandre: 10058: Completion/User/_prcs, Completion/User/_diff,
|
||||||
|
Completion/User/_diff_options: another solution for the GNU diff
|
||||||
|
completion problem.
|
||||||
|
|
||||||
|
* Bart: 10056: Etc/MACHINES: RLIM_INFINITY incompatibility with
|
||||||
|
some Linux/GNU libraries.
|
||||||
|
|
||||||
|
* Sven: 10044: Completion/User/_diff, Completion/User/_use_lo:
|
||||||
|
gdiff should use diff completion, pretty obviously.
|
||||||
|
|
||||||
|
* Sven: 10041: Doc/Zsh/builtins.yo, Doc/Zsh/files.yo,
|
||||||
|
Doc/Zsh/func.yo, Src/init.c, Src/parse.c: enhancements for digest
|
||||||
|
files including digests of sourced files. Or maybe digestion of
|
||||||
|
sauce.
|
||||||
|
|
||||||
|
* Sven: 10040: Completion/User/_diff_options: can test for GNU
|
||||||
|
diff.
|
||||||
|
|
||||||
|
* Oliver: 10029: Src/utils.c: bad handling of '^^' in keystring
|
||||||
|
parsing.
|
||||||
|
|
||||||
|
* Andrej: 10028: Completion/Builtins/_cd: remove local directory
|
||||||
|
from cdpath.
|
||||||
|
|
||||||
|
* Sven: 10025: Functions/Misc/nslookup, Src/Modules/zpty.c:
|
||||||
|
optimizations for pty reads.
|
||||||
|
|
||||||
|
* Sven: 10017: Doc/Zsh/builtins.yo, Src/lex.c, Src/parse.c:
|
||||||
|
fix buffer problem for autoloading and unportable macro.
|
||||||
|
|
||||||
|
* Oliver: 10013: Completion/Builtins/_compdef,
|
||||||
|
Completion/Builtins/_zpty, Completion/User/_getconf: two new
|
||||||
|
functions and one updated.
|
||||||
|
|
||||||
|
* Andrej: 10011: Completion/User/_sudo: options for recent sudo.
|
||||||
|
|
||||||
|
* Bart: 10009: Completion/Base/_subscript: didn't get arrays the
|
||||||
|
right length.
|
||||||
|
|
||||||
|
* Bart: 10006: configure.in, Src/utils.c: use mktemp() if
|
||||||
|
available.
|
||||||
|
|
||||||
|
* Bart: 9992: Functions/Zle/predict-on: tweaks.
|
||||||
|
|
||||||
|
* Bart: 9990: Test/07cond.ztst: compatibility fix for chmod g+s.
|
||||||
|
|
||||||
|
* Bart: 9982: Test/53completion.ztst, Test/Makefile.in,
|
||||||
|
Test/comptest, Test/ztst.zsh: better handling of uninstalled
|
||||||
|
modules.
|
||||||
|
|
||||||
|
* Andrej: 9981: Src/Modules/zpty.c: SYSV-related pty stuff.
|
||||||
|
|
||||||
|
* Bart: 9980: Src/Makefile.in: separate mymods.conf and xmods.conf
|
||||||
|
dependencies.
|
||||||
|
|
||||||
|
* Sven: 9966: Doc/Zsh/builtins.yo, Doc/Zsh/func.yo, Src/parse.c:
|
||||||
|
require .zwc ending for digest files.
|
||||||
|
|
||||||
|
* Bart: 9963: Test/11glob.ztst: existing globbing tests run under
|
||||||
|
new test harness.
|
||||||
|
|
||||||
|
* Bart: 9961: INSTALL, Src/Makefile.in, Test/53completion.ztst,
|
||||||
|
Test/comptest: errors trying to load zpty for static shell in
|
||||||
|
tests; INSTALL didn't describe mymods.conf properly.
|
||||||
|
|
||||||
|
* Tanaka Akira: 9960: Test/comptest, Test/53completion.ztst: avoid
|
||||||
|
zpty timing problem.
|
||||||
|
|
||||||
|
* Sven: 9958: Src/parse.c: sharing strings made test fail with
|
||||||
|
new wordcode.
|
||||||
|
|
||||||
|
* Tanaka Akira: 9957: Test/comptest: clear to end.
|
||||||
|
|
||||||
|
* Sven: 9953: Src/Zle/complist.c: was incorrectly omitting some
|
||||||
|
display sequences.
|
||||||
|
|
||||||
|
* Tanaka Akira: 9952: Test/comptest: compatibility, quoting and
|
||||||
|
debugging fixes.
|
||||||
|
|
||||||
|
* Sven: 9951: Completion/Core/_multi_parts: was producing
|
||||||
|
mysterious blank entries.
|
||||||
|
|
||||||
|
* Sven: 9948: Src/exec.c, Src/parse.c: stripkshdef() was broken.
|
||||||
|
|
||||||
|
* Sven: 9947: Completion/Core/compdump, Completion/Core/compinit,
|
||||||
|
Doc/Zsh/builtins.yo, Doc/Zsh/func.yo, Src/builtin.c, Src/cond.c,
|
||||||
|
Src/exec.c, Src/glob.c, Src/lex.c, Src/loop.c, Src/math.c,
|
||||||
|
Src/mem.c, Src/parse.c, Src/text.c, Src/utils.c, Src/zsh.h:
|
||||||
|
Wordcode compilation for functions using .zwc or `digest
|
||||||
|
functions' in $fpath.
|
||||||
|
|
||||||
|
* Bart: 9946: Src/subst.c: return type in 9937.
|
||||||
|
|
||||||
|
* Bart: 9945: Src/prompt.c: truncation messed up non-literal
|
||||||
|
parts of the prompt.
|
||||||
|
|
||||||
|
* Bart: 9942: Src/prompt.c: truncation in true part of ternary
|
||||||
|
expression incorrectly showed false part and closing parenthesis.
|
||||||
|
|
||||||
|
* Sven: 9937: Src/subst.c: parsing problem with parameter
|
||||||
|
substitution which showed up in file completion.
|
||||||
|
|
||||||
|
* Sven: 9938: Src/Modules/parameter.c: problem assigning to
|
||||||
|
dirstack.
|
||||||
|
|
||||||
|
* Tanaka Akira: 9936: Src/Zle/complist.c, Test/comptest,
|
||||||
|
Test/53completion.ztst: tests for completion using zpty.
|
||||||
|
|
||||||
|
* Tanaka Akira: 9935: Test/52zregexparse.ztst: tests for
|
||||||
|
zregexparse.
|
||||||
|
|
||||||
|
2000-03-21 Peter Stephenson <pws@pwstephenson.fsnet.co.uk>
|
||||||
|
|
||||||
|
* Sven: 9920: Completion/Core/.distfiles, Completion/Core/_call:
|
||||||
|
the function needed for 9897.
|
||||||
|
|
||||||
|
* Bart: 9912: Completion/User/_mailboxes: further improvements.
|
||||||
|
|
||||||
|
* Sven: 9904: Src/utils.c: getquery() and rmstarsilent.
|
||||||
|
|
||||||
|
* Sven: 9902: Completion/Core/_path_files: _files -g problem.
|
||||||
|
|
||||||
|
* Sven: 9900, 9903: Src/exec.c: parsing oddity in here documents.
|
||||||
|
|
||||||
|
* 9897: Completion/Base/_arguments, Completion/Builtins/_pids,
|
||||||
|
Completion/Linux/_rpm, Completion/User/_a2ps,
|
||||||
|
Completion/User/_archie, Completion/User/_diff_options,
|
||||||
|
Completion/User/_finger, Completion/User/_groups,
|
||||||
|
Completion/User/_gs, Completion/User/_killall,
|
||||||
|
Completion/User/_lp, Completion/User/_telnet,
|
||||||
|
Completion/User/_users_on, Completion/User/_yp,
|
||||||
|
Completion/X/_x_font, Completion/X/_x_window, Doc/Zsh/compsys.yo:
|
||||||
|
use _call function and `command' style to override command
|
||||||
|
used in various completions.
|
||||||
|
|
||||||
|
* Sven: 9895: Completion/Base/_combination,
|
||||||
|
Completion/Builtins/_zstyle, Completion/User/_telnet,
|
||||||
|
Doc/Zsh/compsys.yo: usage of combination styles.
|
||||||
|
|
||||||
|
* Sven: 9893: Completion/Core/_multi_parts: return values.
|
||||||
|
|
||||||
|
* Sven: 9892: Completion/Core/_main_complete,
|
||||||
|
Completion/Core/_path_files, Completion/Core/compdump,
|
||||||
|
Completion/Core/compinit: improved fix for 9886; typo in
|
||||||
|
_main_complete; compdump uses (q) flag; remove compstyle; update
|
||||||
|
compconf.
|
||||||
|
|
||||||
|
* Bart: 9891: Completion/User/_cvs: kshautoload problem.
|
||||||
|
|
||||||
|
* Bart: 9889: acconfig.h, configure.in, Src/exec.c,
|
||||||
|
Src/prototypes.h: from 3.0.8: detect mknod(), minor redirection
|
||||||
|
tweaks.
|
||||||
|
|
||||||
|
* Bart: 9886: Completion/Core/_path_files: matcher problem.
|
||||||
|
|
||||||
|
* Tanaka Akira: 9885: Completion/User/_dvi, Completion/User/_lynx,
|
||||||
|
Completion/X/_xutils: extra arguments for completion functions.
|
||||||
|
|
||||||
|
* Alexandre: 9882: Completion/User/_prcs: error messages.
|
||||||
|
|
||||||
|
* Sven: 9880: Completion/Core/_path_files: error message with
|
||||||
|
~unknown.
|
||||||
|
|
||||||
|
* Sven: 9879: Completion/User/_tilde_files: use of magicequalsubst
|
||||||
|
with completion.
|
||||||
|
|
||||||
|
* Sven: 9877: Src/parse.c: wordcode bug in functions with failed
|
||||||
|
builtins.
|
||||||
|
|
||||||
|
* Sven: 9876: Completion/Base/_combination,
|
||||||
|
Completion/User/_rlogin, Completion/User/_ssh,
|
||||||
|
Completion/User/_user_at_host, Doc/Zsh/compsys.yo: more flexible
|
||||||
|
handling of separators in combinations.
|
||||||
|
|
||||||
|
* Sven: 9870: Completion/Core/_path_files,
|
||||||
|
Completion/User/.distfiles, Completion/User/_dd,
|
||||||
|
Completion/User/_tilde_files, Src/Zle/compresult.c: better
|
||||||
|
handling of paths beginning ~ in various places.
|
||||||
|
|
||||||
|
* Sven: 9865: Completion/Builtins/_zstyle,
|
||||||
|
Completion/Core/_main_complete, Completion/Core/_setup,
|
||||||
|
Doc/Zsh/compsys.yo, Src/Zle/compcore.c, Src/Zle/compresult.c:
|
||||||
|
implement prefer-ignored style to prefer alternative matches
|
||||||
|
to going on to another completer.
|
||||||
|
|
||||||
|
* Sven: 9863: Src/parse.c, Src/text.c: wordcode problems, using
|
||||||
|
old code.
|
||||||
|
|
||||||
|
* Sven: 9861: Completion/Core/_main_complete: interaction of
|
||||||
|
_main_complete and _oldlist.
|
||||||
|
|
||||||
|
* Sven: 9860: Src/Zle/compctl.c: storing of match and display list.
|
||||||
|
|
||||||
|
* Sven: 9855: Completion/Core/_multi_parts, Doc/Zsh/compsys.yo:
|
||||||
|
_multi_parts accepts -f.
|
||||||
|
|
||||||
|
2000-02-23 Peter Stephenson <pws@pwstephenson.fsnet.co.uk>
|
||||||
|
|
||||||
|
* Sven: 9845: Functions/Zle/incremental-complete-word: another
|
||||||
|
context change.
|
||||||
|
|
||||||
|
* Sven: 9844: Functions/Zle/predict-on: rationalize 9837.
|
||||||
|
|
||||||
|
* Sven: 9840: config.sub: test for alphaev6 systems.
|
||||||
|
|
||||||
|
* Sven: 9839: Src/Builtins/sched.c, Src/Modules/example.c,
|
||||||
|
Src/Modules/mapfile.c, Src/Modules/parameter.c,
|
||||||
|
Src/Modules/zftp.c, Src/Modules/zprof.c, Src/Modules/zpty.c,
|
||||||
|
Src/Modules/zutil.c, Src/Zle/compcore.c, Src/Zle/compctl.c,
|
||||||
|
Src/Zle/complete.c, Src/Zle/complist.c, Src/Zle/compresult.c,
|
||||||
|
Src/Zle/computil.c, Src/Zle/zle_hist.c, Src/Zle/zle_main.c,
|
||||||
|
Src/Zle/zle_misc.c, Src/Zle/zle_thingy.c, Src/Zle/zle_tricky.c,
|
||||||
|
Src/Zle/zleparameter.c, Src/builtin.c, Src/cond.c, Src/exec.c,
|
||||||
|
Src/glob.c, Src/hist.c, Src/init.c, Src/jobs.c, Src/lex.c,
|
||||||
|
Src/linklist.c, Src/loop.c, Src/main.c, Src/math.c, Src/mem.c,
|
||||||
|
Src/module.c, Src/params.c, Src/parse.c, Src/pattern.c,
|
||||||
|
Src/prompt.c, Src/signals.c, Src/subst.c, Src/utils.c, Src/zsh.h:
|
||||||
|
Eliminate `useheap' variable and consequent HEAPALLOC/PERMALLOC
|
||||||
|
usage throughout the shell (hooray!) All memory allocation is
|
||||||
|
either explicitly on the heap or permanent.
|
||||||
|
|
||||||
|
* Sven: 9838: Src/Modules/parameter.c, Src/Zle/computil.c,
|
||||||
|
Src/Zle/zle_main.c, Src/builtin.c, Src/cond.c, Src/exec.c,
|
||||||
|
Src/glob.c, Src/hashtable.c, Src/init.c, Src/jobs.c, Src/lex.c,
|
||||||
|
Src/linklist.c, Src/loop.c, Src/params.c, Src/parse.c,
|
||||||
|
Src/signals.c, Src/signals.h, Src/subst.c, Src/text.c,
|
||||||
|
Src/version.h, Src/zsh.h: parser now emits wordcode directly; a
|
||||||
|
whole heap of optimisations of the execution tree.
|
||||||
|
|
||||||
|
* Sven: 9837: Completion/User/_gunzip, Functions/Zle/predict-on:
|
||||||
|
no. of colons in predict-on, typo in _gunzip.
|
||||||
|
|
||||||
|
* Sven: 9835: Completion/Builtins/_zstyle,
|
||||||
|
Completion/Core/_main_complete, Doc/Zsh/compsys.yo: document
|
||||||
|
single-ignored style, better handling of descriptions with
|
||||||
|
warnings about no matches.
|
||||||
|
|
||||||
|
* Bart: 2930: Completion/User/_ssh: basic completion for remote
|
||||||
|
files.
|
||||||
|
|
||||||
|
2000-02-22 Peter Stephenson <pws@pwstephenson.fsnet.co.uk>
|
||||||
|
|
||||||
|
* Sven: 9831: Completion/Core/_multi_parts: better separator
|
||||||
|
removal.
|
||||||
|
|
||||||
|
* Sven: 9830: Completion/X/_x_arguments: reverse 9824, but use
|
||||||
|
_default instead of _files if no special arguments.
|
||||||
|
|
||||||
|
* Bart: 9828: Completion/User/_mailboxes: $i -> "$i" missed out.
|
||||||
|
|
||||||
|
2000-02-21 Peter Stephenson <pws@pwstephenson.fsnet.co.uk>
|
||||||
|
|
||||||
|
* Clint: 9824: Completion/X/_x_arguments: `*/X11/*' was too broad
|
||||||
|
a definition for X commands taking standard arguments to be
|
||||||
|
useful.
|
||||||
|
|
||||||
|
* Clint: 9823: configure.in: open fifo read/write in test to avoid
|
||||||
|
possible (unconfirmed) hang.
|
||||||
|
|
||||||
|
* Bart: 9822: Completion/User/_mailboxes: add completions for mush
|
||||||
|
and tkrat; allow pine to complete mh folders.
|
||||||
|
|
||||||
|
* Sven: 9816: Completion/Core/_multi_parts,
|
||||||
|
Completion/User/_mailboxes: improved version of 9812/9815.
|
||||||
|
|
||||||
|
* Bart: 9812, 9815: Completion/User/_mailboxes,
|
||||||
|
Completion/User/_mutt: improved mailbox completion for all sorts
|
||||||
|
of types, currently only used for mutt.
|
||||||
|
|
||||||
|
* Sven: 9810: Completion/Core/_multi_parts: difficulties with
|
||||||
|
separator as initial character.
|
||||||
|
|
||||||
|
* Sven: 9809: Completion/Builtins/_popd,
|
||||||
|
Completion/Core/_approximate, Doc/Zsh/compsys.yo: documentation
|
||||||
|
improvements and typo fixes.
|
||||||
|
|
||||||
|
* Tanaka Akira/Sven: 9807: Completion/Core/_main_complete:
|
||||||
|
single-ignored style, as yet undocumented, for handling of
|
||||||
|
alternate match set.
|
||||||
|
|
||||||
|
* Sven: 9806: Completion/Core/_multi_parts: problems with literal
|
||||||
|
(parenthesised) arrays.
|
||||||
|
|
||||||
|
* Sven: 9805: Completion/Core/_path_files: difficulties with
|
||||||
|
suffixes when expanding paths.
|
||||||
|
|
||||||
|
* Sven: 9802: Src/utils.c: no need to quote !'s in ${(qq)...}
|
||||||
|
because they're not active in single quotes.
|
||||||
|
|
||||||
|
* Bart: 9799: Src/utils.c: better interpretation of typeahead when
|
||||||
|
querying user e.g. for spell checking.
|
||||||
|
|
||||||
|
* Adam: 9798: Doc/Makefile.in: use `texi' and `html' for targets
|
||||||
|
to avoid duplicated name complaint by gmake.
|
||||||
|
|
||||||
2000-02-20 Peter Stephenson <pws@pwstephenson.fsnet.co.uk>
|
2000-02-20 Peter Stephenson <pws@pwstephenson.fsnet.co.uk>
|
||||||
|
|
||||||
* pws: Config/version.mk: 3.1.6-dev-19.
|
* pws: Config/version.mk: 3.1.6-dev-19.
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
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 _fg_jobs _functions _hash _kill
|
_compdef _disable _echotc _enable _fc _fg_jobs _functions
|
||||||
_limits _nothing _pids _popd _sched _set _setopt _source _stat _trap
|
_hash _kill _limits _nothing _pids _popd _sched _set _setopt _source
|
||||||
_unhash _unsetopt _vars _vars_eq _wait _which _zftp _zle _zmodload
|
_stat _trap _unhash _unsetopt _vars _vars_eq _wait _which _zftp _zle
|
||||||
_signals _zstyle
|
_zmodload _zpty _signals _zstyle
|
||||||
'
|
'
|
||||||
|
|
|
||||||
|
|
@ -49,13 +49,13 @@ styles=(
|
||||||
packageset c:packageset
|
packageset c:packageset
|
||||||
path 'c:_wanted directories expl directory _path_files -/'
|
path 'c:_wanted directories expl directory _path_files -/'
|
||||||
ports c:_ports
|
ports c:_ports
|
||||||
|
prefer-ignored c:bool
|
||||||
prefix-hidden c:bool
|
prefix-hidden c:bool
|
||||||
prefix-needed c:bool
|
prefix-needed c:bool
|
||||||
prompt c:
|
prompt c:
|
||||||
remove-all-dups c:bool
|
remove-all-dups c:bool
|
||||||
single-ignored c:single-ignored
|
single-ignored c:single-ignored
|
||||||
sort c:bool
|
sort c:bool
|
||||||
tag-aliases c:tag
|
|
||||||
tag-order c:tag
|
tag-order c:tag
|
||||||
special-dirs c:sdirs
|
special-dirs c:sdirs
|
||||||
squeeze-slashes c:bool
|
squeeze-slashes c:bool
|
||||||
|
|
@ -215,7 +215,7 @@ while [[ -n $state ]]; do
|
||||||
;;
|
;;
|
||||||
|
|
||||||
single-ignored)
|
single-ignored)
|
||||||
_wanted values expl 'how to handle a single ignored match' \
|
_wanted values expl 'how to handle single alternate match' \
|
||||||
compadd - show menu
|
compadd - show menu
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ _next_tags_pre() {
|
||||||
# Helper function for sorting tags. Most of this is copied from _tags.
|
# Helper function for sorting tags. Most of this is copied from _tags.
|
||||||
|
|
||||||
_next_tags_sort() {
|
_next_tags_sort() {
|
||||||
local order tags tag nodef tmp tmp2
|
local order tags tag nodef
|
||||||
|
|
||||||
if ! zstyle -a ":completion:${curcontext}:" tag-order order; then
|
if ! zstyle -a ":completion:${curcontext}:" tag-order order; then
|
||||||
if (( $+_comp_default_tags )); then
|
if (( $+_comp_default_tags )); then
|
||||||
|
|
@ -69,49 +69,12 @@ _next_tags_sort() {
|
||||||
case $tag in
|
case $tag in
|
||||||
-) nodef=yes;;
|
-) nodef=yes;;
|
||||||
*\(\)) "${${tag%%[ ]#\(\)}##[ ]#}" "$@";;
|
*\(\)) "${${tag%%[ ]#\(\)}##[ ]#}" "$@";;
|
||||||
\!*) comptry "${(@)argv:#(${(j:|:)~${=~tag[2,-1]}})}";;
|
\!*) comptry "${(@)argv:#(${(j:|:)~${=tag[2,-1]}})}";;
|
||||||
?*) tmp=( ${${(s: :)${tag//\\\\ /$'\0'}}//$'\0'/ } ) tmp2=() tmp3=()
|
?*) comptry ${=tag};;
|
||||||
for tag in "$tmp[@]"; do
|
|
||||||
if [[ "$tag" = *:* ]]; then
|
|
||||||
tmp2=( "$tmp2[@]" "${(@M)^argv:#${~tag%%:*}}:${tag#*:}" )
|
|
||||||
else
|
|
||||||
for atag in "${(@M)argv:#${~tag}}"; do
|
|
||||||
if zstyle -a ":completion:${curcontext}:${atag}" tag-aliases als; then
|
|
||||||
tmp3=( "$tmp3[@]" "$als[@]" )
|
|
||||||
tmp=( "${(@)tmp:#${atag}}" )
|
|
||||||
else
|
|
||||||
tmp2=( "$tmp2[@]" "$atag" )
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
comptry "${(@)tmp2:#(${(j:|:)~${(q)tmp%%:*}})}" "$tmp3[@]" "$tmp[@]"
|
|
||||||
;;
|
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
if [[ -z "$nodef" ]]; then
|
[[ -z "$nodef" ]] && comptry "$@"
|
||||||
if (( $+_comp_default_tags )); then
|
|
||||||
for tag in "$_comp_default_tags[@]"; do
|
|
||||||
if zstyle -a ":completion:${curcontext}:${tag}" tag-aliases als; then
|
|
||||||
comptry "$als[@]"
|
|
||||||
else
|
|
||||||
comptry "$tag"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
else
|
|
||||||
tmp2=()
|
|
||||||
for tag; do
|
|
||||||
if zstyle -a ":completion:${curcontext}:${tag}" tag-aliases als; then
|
|
||||||
tmp2=( "$tmp2[@]" "$als[@]" )
|
|
||||||
else
|
|
||||||
tmp2=( "$tmp2[@]" "$tag" )
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
comptry "$tmp2[@]"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[[ -o kshautoload ]] || _next_tags "$@"
|
[[ -o kshautoload ]] || _next_tags "$@"
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
DISTFILES_SRC='
|
DISTFILES_SRC='
|
||||||
.distfiles
|
.distfiles
|
||||||
_alternative _approximate _call _compalso _complete _correct _description
|
_alternative _approximate _call _compalso _complete _correct _description
|
||||||
_expand _files _funcall _list _main_complete _match
|
_expand _files _funcall _list _loop _main_complete _match
|
||||||
_menu _multi_parts _message _normal _oldlist _options
|
_menu _multi_parts _message _normal _oldlist _options
|
||||||
_parameters _path_files _prefix _requested _sep_parts
|
_parameters _path_files _prefix _requested _sep_parts
|
||||||
_set_options _setup _sort_tags _tags
|
_set_options _setup _sort_tags _tags _try
|
||||||
_unset_options _wanted
|
_unset_options _wanted
|
||||||
compdump compinit compinstall
|
compdump compinit compinstall
|
||||||
'
|
'
|
||||||
|
|
|
||||||
|
|
@ -29,9 +29,8 @@ zstyle -s ":completion:${curcontext}:$1" matcher match &&
|
||||||
opts=($opts -M "${(q)match}")
|
opts=($opts -M "${(q)match}")
|
||||||
[[ -n "$_matcher" ]] && opts=($opts -M "${(q)_matcher}")
|
[[ -n "$_matcher" ]] && opts=($opts -M "${(q)_matcher}")
|
||||||
|
|
||||||
if [[ -z "$_comp_no_ignore" ]] &&
|
if zstyle -a ":completion:${curcontext}:$1" ignored-patterns _comp_ignore; then
|
||||||
zstyle -a ":completion:${curcontext}:$1" ignored-patterns _comp_ignore; then
|
opts=( $opts -F _comp_ignore)
|
||||||
opts=( $opts -F _comp_ignore )
|
|
||||||
else
|
else
|
||||||
_comp_ignore=()
|
_comp_ignore=()
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
setopt localoptions nullglob rcexpandparam extendedglob
|
setopt localoptions nullglob rcexpandparam extendedglob
|
||||||
unsetopt markdirs globsubst shwordsplit nounset ksharrays
|
unsetopt markdirs globsubst shwordsplit nounset ksharrays
|
||||||
|
|
||||||
local func funcs ret=1 tmp _compskip format _comp_ignore \
|
local ctxt func funcs ret=1 tmp _compskip format _comp_ignore \
|
||||||
_completers _completer _completer_num curtag \
|
_completers _completer _completer_num curtag \
|
||||||
_matchers _matcher _matcher_num _comp_tags \
|
_matchers _matcher _matcher_num _comp_tags \
|
||||||
context state line opt_args val_args curcontext="$curcontext" \
|
context state line opt_args val_args curcontext="$curcontext" \
|
||||||
|
|
@ -61,8 +61,7 @@ _last_menu_style=()
|
||||||
|
|
||||||
# Get the names of the completers to use in the positional parameters.
|
# Get the names of the completers to use in the positional parameters.
|
||||||
|
|
||||||
(( $# )) || zstyle -a ":completion:${curcontext}:" completer argv ||
|
(( $# )) || zstyle -a ":completion:${curcontext}:" completer argv || set _complete
|
||||||
set _complete
|
|
||||||
|
|
||||||
# And now just call the completer functions defined.
|
# And now just call the completer functions defined.
|
||||||
|
|
||||||
|
|
@ -78,8 +77,14 @@ for func in "$funcs[@]"; do
|
||||||
done
|
done
|
||||||
|
|
||||||
for _completer; do
|
for _completer; do
|
||||||
|
ctxt=":completion:${curcontext/::/:${_completer[2,-1]}-${(M)#_completers[1,_completer_num]:#$_completer}:}:"
|
||||||
|
|
||||||
zstyle -a ":completion:${curcontext/::/:${_completer[2,-1]}-${(M)#_completers[1,_completer_num]:#$_completer}:}:" matcher-list _matchers ||
|
if zstyle -t "$ctxt" prefer-ignored && (( $compstate[alternate_nmatches] )); then
|
||||||
|
ret=0
|
||||||
|
break;
|
||||||
|
fi
|
||||||
|
|
||||||
|
zstyle -a "$ctxt" matcher-list _matchers ||
|
||||||
_matchers=( '' )
|
_matchers=( '' )
|
||||||
|
|
||||||
_matcher_num=1
|
_matcher_num=1
|
||||||
|
|
@ -93,9 +98,26 @@ for _completer; do
|
||||||
(( _completer_num++ ))
|
(( _completer_num++ ))
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if zstyle -s ":completion:${curcontext}:" single-ignored tmp &&
|
||||||
|
[[ $compstate[old_list] != shown &&
|
||||||
|
$compstate[alternate_nmatches] = 1 ]]; then
|
||||||
|
case "$tmp" in
|
||||||
|
show) compstate[insert]='' compstate[list]='list force' tmp='' ;;
|
||||||
|
menu)
|
||||||
|
local expl
|
||||||
|
|
||||||
|
compstate[insert]='menu'
|
||||||
|
_description original expl original
|
||||||
|
compadd "$expl[@]" -a -S '' - "$PREFIX$SUFFIX"
|
||||||
|
;;
|
||||||
|
*) tmp='' ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ -n "$tmp" || $compstate[old_list] = keep ||
|
if [[ -n "$tmp" || $compstate[old_list] = keep ||
|
||||||
$compstate[nmatches] -gt 1 ]]; then
|
$compstate[nmatches]+$compstate[alternate_nmatches] -gt 1 ]]; then
|
||||||
[[ _last_nmatches -ge 0 && _last_nmatches -ne $compstate[nmatches] ]] &&
|
[[ _last_nmatches -ge 0 &&
|
||||||
|
_last_nmatches -ne $compstate[nmatches]+$compstate[alternate_nmatches] ]] &&
|
||||||
_menu_style=( "$_last_menu_style[@]" "$_menu_style[@]" )
|
_menu_style=( "$_last_menu_style[@]" "$_menu_style[@]" )
|
||||||
|
|
||||||
if [[ "$compstate[insert]" = "$_saved_insert" ]]; then
|
if [[ "$compstate[insert]" = "$_saved_insert" ]]; then
|
||||||
|
|
@ -148,7 +170,7 @@ if [[ -n "$tmp" || $compstate[old_list] = keep ||
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
elif [[ $compstate[nmatches] -eq 0 &&
|
elif [[ $compstate[nmatches]+$compstate[alternate_nmatches] -eq 0 &&
|
||||||
$#_lastdescr -ne 0 && $compstate[old_list] != keep ]] &&
|
$#_lastdescr -ne 0 && $compstate[old_list] != keep ]] &&
|
||||||
zstyle -s ":completion:${curcontext}:warnings" format format; then
|
zstyle -s ":completion:${curcontext}:warnings" format format; then
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -142,9 +142,8 @@ eorig="$orig"
|
||||||
|
|
||||||
# If given no `-F' option, we may want to use $fignore, turned into patterns.
|
# If given no `-F' option, we may want to use $fignore, turned into patterns.
|
||||||
|
|
||||||
[[ -z "$_comp_no_ignore" && $#ignore -eq 0 &&
|
[[ $#ignore -eq 0 && ( -z $gopt || "$pats" = \ #\*\ # ) && -n $FIGNORE ]] &&
|
||||||
( -z $gopt || "$pats" = \ #\*\ # ) && -n $FIGNORE ]] &&
|
ignore=( "?*${^fignore[@]}" )
|
||||||
ignore=( "?*${^fignore[@]}" )
|
|
||||||
|
|
||||||
if (( $#ignore )); then
|
if (( $#ignore )); then
|
||||||
_comp_ignore=( "$_comp_ignore[@]" "$ignore[@]" )
|
_comp_ignore=( "$_comp_ignore[@]" "$ignore[@]" )
|
||||||
|
|
@ -351,7 +350,7 @@ for prepath in "$prepaths[@]"; do
|
||||||
continue 2
|
continue 2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z "$_comp_no_ignore" && "$tpre$tsuf" != */* && $#tmp1 -ne 0 ]] &&
|
if [[ "$tpre$tsuf" != */* && $#tmp1 -ne 0 ]] &&
|
||||||
zstyle -s ":completion:${curcontext}:files" ignore-parents rem &&
|
zstyle -s ":completion:${curcontext}:files" ignore-parents rem &&
|
||||||
[[ ( "$rem" != *dir* || "$pats" = '*(-/)' ) &&
|
[[ ( "$rem" != *dir* || "$pats" = '*(-/)' ) &&
|
||||||
( "$rem" != *..* || "$tmp1" = *../* ) ]]; then
|
( "$rem" != *..* || "$tmp1" = *../* ) ]]; then
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
local curcontext="${curcontext/:[^:]#:/:prefix-${(M)#_completers[1,_completer_num]:#_prefix}:}" comp i
|
local curcontext="${curcontext/:[^:]#:/:prefix-${(M)#_completers[1,_completer_num]:#_prefix}:}" comp i
|
||||||
|
|
||||||
zstyle -a ":completion:${curcontext}:" completer comp ||
|
zstyle -a ":completion:${curcontext}:" completer comp ||
|
||||||
comp=( "${(@)_completers[1,_completer_num-1][(R)_prefix,-1]}" )
|
comp=( "${(@)_completers[1,_completer_num][(R)_prefix,-1]}" )
|
||||||
|
|
||||||
if zstyle -t ":completion:${curcontext}:" add-space; then
|
if zstyle -t ":completion:${curcontext}:" add-space; then
|
||||||
ISUFFIX=" $SUFFIX"
|
ISUFFIX=" $SUFFIX"
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ fi
|
||||||
_menu_style=( "$_last_menu_style[@]" "$_menu_style[@]" )
|
_menu_style=( "$_last_menu_style[@]" "$_menu_style[@]" )
|
||||||
|
|
||||||
if zstyle -a ":completion:${curcontext}:$1" menu val; then
|
if zstyle -a ":completion:${curcontext}:$1" menu val; then
|
||||||
_last_nmatches=$nm
|
_last_nmatches=$(( $nm + $compstate[alternate_nmatches] ))
|
||||||
_last_menu_style=( "$val[@]" )
|
_last_menu_style=( "$val[@]" )
|
||||||
else
|
else
|
||||||
_last_nmatches=-1
|
_last_nmatches=-1
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ if (( $# )); then
|
||||||
|
|
||||||
# We have arguments: the tags supported in this context.
|
# We have arguments: the tags supported in this context.
|
||||||
|
|
||||||
local curcontext="$curcontext" order tag nodef tmp tmp2 tmp3 als atag
|
local curcontext="$curcontext" order tag nodef
|
||||||
|
|
||||||
if [[ "$1" = -C?* ]]; then
|
if [[ "$1" = -C?* ]]; then
|
||||||
curcontext="${curcontext%:*}:${1[3,-1]}"
|
curcontext="${curcontext%:*}:${1[3,-1]}"
|
||||||
|
|
@ -51,13 +51,7 @@ if (( $# )); then
|
||||||
|
|
||||||
if [[ -n "$_sort_tags" ]]; then
|
if [[ -n "$_sort_tags" ]]; then
|
||||||
"$_sort_tags" "$@"
|
"$_sort_tags" "$@"
|
||||||
else
|
elif zstyle -a ":completion:${curcontext}:" tag-order order; then
|
||||||
zstyle -a ":completion:${curcontext}:" tag-order order ||
|
|
||||||
if [[ "$*" = *(arguments|values)* || "$*" = *options* ]] ;then
|
|
||||||
order=( 'arguments values' options )
|
|
||||||
else
|
|
||||||
order=()
|
|
||||||
fi
|
|
||||||
|
|
||||||
for tag in $order; do
|
for tag in $order; do
|
||||||
case $tag in
|
case $tag in
|
||||||
|
|
@ -67,49 +61,33 @@ if (( $# )); then
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
\!*) comptry "${(@)argv:#(${(j:|:)~${=~tag[2,-1]}})}";;
|
\!*) comptry "${(@)argv:#(${(j:|:)~${=tag[2,-1]}})}";;
|
||||||
?*) tmp=( ${${(s: :)${tag//\\\\ /$'\0'}}//$'\0'/ } ) tmp2=() tmp3=()
|
?*) comptry ${${(ps: :)${tag//\\\\ /$'\0'}}//$'\0'/ };;
|
||||||
for tag in "$tmp[@]"; do
|
|
||||||
if [[ "$tag" = *:* ]]; then
|
|
||||||
tmp2=( "$tmp2[@]" "${(@M)^argv:#${~tag%%:*}}:${tag#*:}" )
|
|
||||||
else
|
|
||||||
for atag in "${(@M)argv:#${~tag}}"; do
|
|
||||||
if zstyle -a ":completion:${curcontext}:${atag}" tag-aliases als; then
|
|
||||||
tmp3=( "$tmp3[@]" "$als[@]" )
|
|
||||||
tmp=( "${(@)tmp:#${atag}}" )
|
|
||||||
else
|
|
||||||
tmp2=( "$tmp2[@]" "$atag" )
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
comptry "${(@)tmp2:#(${(j:|:)~${(q)tmp%%:*}})}" "$tmp3[@]" "$tmp[@]"
|
|
||||||
;;
|
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
if [[ -z "$nodef" ]]; then
|
if [[ -z "$nodef" ]]; then
|
||||||
if (( $+_comp_default_tags )); then
|
if (( $+_comp_default_tags )); then
|
||||||
for tag in "$_comp_default_tags[@]"; do
|
for tag in "$_comp_default_tags[@]"; do
|
||||||
if zstyle -a ":completion:${curcontext}:${tag}" tag-aliases als; then
|
comptry "$tag"
|
||||||
comptry "$als[@]"
|
|
||||||
else
|
|
||||||
comptry "$tag"
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
tmp2=()
|
comptry "$@"
|
||||||
for tag; do
|
|
||||||
if zstyle -a ":completion:${curcontext}:${tag}" tag-aliases als; then
|
|
||||||
tmp2=( "$tmp2[@]" "$als[@]" )
|
|
||||||
else
|
|
||||||
tmp2=( "$tmp2[@]" "$tag" )
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
comptry "$tmp2[@]"
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
|
||||||
|
# Use default tags...
|
||||||
|
|
||||||
|
if (( $+_comp_default_tags )); then
|
||||||
|
for tag in "$_comp_default_tags[@]"; do
|
||||||
|
comptry "$tag"
|
||||||
|
done
|
||||||
|
else
|
||||||
|
comptry arguments values
|
||||||
|
comptry options
|
||||||
|
fi
|
||||||
|
comptry "$@"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Return non-zero if at least one set of tags should be used.
|
# Return non-zero if at least one set of tags should be used.
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@ DISTFILES_SRC='
|
||||||
.distfiles
|
.distfiles
|
||||||
_a2ps _archie _bison _bunzip2 _bzip2 _chown _compress
|
_a2ps _archie _bison _bunzip2 _bzip2 _chown _compress
|
||||||
_configure _cvs _dd _diff _diff_options _dir_list _dirs
|
_configure _cvs _dd _diff _diff_options _dir_list _dirs
|
||||||
_domains _dvi _find _finger _flex _gcc _gdb _gprof _groups
|
_domains _dvi _find _finger _flex _gcc _gdb _getconf _gprof _groups
|
||||||
_gs _gunzip _gv _gzip _hosts _ispell _killall _lp _lynx
|
_gs _gunzip _gv _gzip _hosts _ispell _killall _lp _lynx
|
||||||
_mailboxes _make _man _mh _mount _mutt _my_accounts
|
_mailboxes _make _man _mh _mount _mutt _my_accounts _mysql_utils _nedit
|
||||||
_netscape _nslookup _other_accounts _pack _patch _pbm _pdf
|
_netscape _nslookup _other_accounts _pack _patch _pbm _pdf _perl
|
||||||
_perl_basepods _perl_builtin_funcs _perl_modules _perldoc
|
_perl_basepods _perl_builtin_funcs _perl_modules _perldoc
|
||||||
_ports _prcs _prompt _ps _pspdf _psutils _rcs _rlogin _sh _socket
|
_ports _prcs _prompt _ps _pspdf _psutils _rcs _rlogin _sh _socket
|
||||||
_ssh _strip _stty _su _sudo _tar _tar_archive _telnet _tex _texi
|
_ssh _strip _stty _su _sudo _tar _tar_archive _telnet _tex _texi
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,7 @@ _wanted groups || return 1
|
||||||
|
|
||||||
if ! zstyle -a ":completion:${curcontext}:" groups groups; then
|
if ! zstyle -a ":completion:${curcontext}:" groups groups; then
|
||||||
(( $+_cache_groups )) ||
|
(( $+_cache_groups )) ||
|
||||||
if (( ${+commands[ypcat]} )) &&
|
if (( ${+commands[ypcat]} )) && tmp=$(ypcat group.byname); then
|
||||||
tmp=$(_call groups ypcat group.byname); then
|
|
||||||
: ${(A)_cache_groups:=${${(f)tmp}%%:*}} # If you use YP
|
: ${(A)_cache_groups:=${${(f)tmp}%%:*}} # If you use YP
|
||||||
else
|
else
|
||||||
: ${(A)_cache_groups:=${${(s: :)$(</etc/group)}%%:*}}
|
: ${(A)_cache_groups:=${${(s: :)$(</etc/group)}%%:*}}
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,7 @@ _mailbox_cache () {
|
||||||
|
|
||||||
setopt localoptions nullglob
|
setopt localoptions nullglob
|
||||||
|
|
||||||
|
|
||||||
[[ -f ${~muttrc:-.} ]] &&
|
[[ -f ${~muttrc:-.} ]] &&
|
||||||
_mutt_cache=( ${$(grep mailboxes ${~muttrc})[2,-1]} )
|
_mutt_cache=( ${$(grep mailboxes ${~muttrc})[2,-1]} )
|
||||||
|
|
||||||
|
|
@ -76,11 +77,11 @@ _mailbox_cache () {
|
||||||
shift dirboxes
|
shift dirboxes
|
||||||
if [[ -d "$i/cur" ]]; then
|
if [[ -d "$i/cur" ]]; then
|
||||||
_maildir_cache=( "${_maildir_cache[@]}" "$i" )
|
_maildir_cache=( "${_maildir_cache[@]}" "$i" )
|
||||||
elif j=( $i/<1-> ) && [[ -n "$j" ]]; then
|
elif j=( "$i"/<1-> ) && [[ -n "$j" ]]; then
|
||||||
_mh_cache=( "${_mh_cache[@]}" "$i" )
|
_mh_cache=( "${_mh_cache[@]}" "$i" )
|
||||||
else
|
else
|
||||||
_mbox_cache=( "${_mbox_cache[@]}" "$i"/*(.) )
|
_mbox_cache=( "${_mbox_cache[@]}" "$i"/*(.) )
|
||||||
dirboxes=( $dirboxes $i/*(/) )
|
dirboxes=( $dirboxes "$i"/*(/) )
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
DISTFILES_SRC='
|
DISTFILES_SRC='
|
||||||
.distfiles
|
.distfiles
|
||||||
_x_arguments _x_borderwidth _x_color _x_cursor _x_display _x_extension
|
_x_arguments _x_borderwidth _x_color _x_colormapid _x_cursor _x_display
|
||||||
_x_font _x_geometry _x_keysym _x_locale _x_modifier _x_name _x_resource
|
_x_extension _x_font _x_geometry _x_keysym _x_locale _x_modifier
|
||||||
_x_selection_timeout _x_title _x_window _xdvi _xfig _xmodmap _xrdb
|
_x_name _x_resource _x_selection_timeout _x_title _x_window _xdvi _xfig
|
||||||
_xt_arguments _xt_session_id _xterm _xutils _xv
|
_xmodmap _xrdb _xt_arguments _xt_session_id _xterm _xutils _xv _xwit
|
||||||
'
|
'
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
local expl list desc
|
local expl list desc
|
||||||
|
|
||||||
_wanted colormapids || return 1
|
_wanted colormapids expl 'colormap id' || return 1
|
||||||
|
|
||||||
list=(${(f)"$(xprop -root -f RGB_COLOR_MAP 32xcccccccxx ': $0\n'|awk -F'[ ():]' '/^[a-zA-Z_]+\(RGB_COLOR_MAP\)/ {print $5, "--", $1}')"})
|
list=(${(f)"$(xprop -root -f RGB_COLOR_MAP 32xcccccccxx ': $0\n'|awk -F'[ ():]' '/^[a-zA-Z_]+\(RGB_COLOR_MAP\)/ {print $5, "--", $1}')"})
|
||||||
|
|
||||||
|
|
@ -12,4 +12,4 @@ else
|
||||||
desc=()
|
desc=()
|
||||||
fi
|
fi
|
||||||
|
|
||||||
_loop colormapids expl 'colormap id' compadd "$@" "$desc[@]" - "${(@)list%% *}"
|
compadd "$expl[@]" "$@" "$desc[@]" - "${(@)list%% *}"
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,8 @@ _xwit_guard () {
|
||||||
|
|
||||||
_xwit_compopts () {
|
_xwit_compopts () {
|
||||||
local expl
|
local expl
|
||||||
_wanted options expl option compadd - ${(k)no[(R)*~0]} ||
|
_description options expl option
|
||||||
_loop options expl option compadd - ${(k)no}
|
compadd "$expl[@]" - ${(k)no[(R)*~0]} || compadd "$expl[@]" - ${(k)no}
|
||||||
}
|
}
|
||||||
|
|
||||||
_regex_arguments _xwit_parse \
|
_regex_arguments _xwit_parse \
|
||||||
|
|
|
||||||
|
|
@ -27,5 +27,5 @@
|
||||||
# This must also serve as a shell script, so do not add spaces around the
|
# This must also serve as a shell script, so do not add spaces around the
|
||||||
# `=' signs.
|
# `=' signs.
|
||||||
|
|
||||||
VERSION=3.1.6-dev-19
|
VERSION=3.1.6-dev-20
|
||||||
VERSION_DATE='February 20, 2000'
|
VERSION_DATE='February 23, 2000'
|
||||||
|
|
|
||||||
|
|
@ -979,9 +979,8 @@ if the value contains the string tt(directory), then the tests will
|
||||||
only be performed if only names of directories are completed.
|
only be performed if only names of directories are completed.
|
||||||
|
|
||||||
Note that names of directories ignored because of one of the tests
|
Note that names of directories ignored because of one of the tests
|
||||||
will be ignored in the same way as the matches ignored because of the
|
will be placed in the alternate set of completions so that they will
|
||||||
tt(ignored-patterns) style. I.e. by using the tt(_ignored) completer
|
be completed if there are no other possible completions.
|
||||||
it is possible to complete these directories nonetheless.
|
|
||||||
)
|
)
|
||||||
item(tt(ignored-patterns))(
|
item(tt(ignored-patterns))(
|
||||||
This style is used with the tags used when adding matches and defines a
|
This style is used with the tags used when adding matches and defines a
|
||||||
|
|
@ -1284,6 +1283,26 @@ A style holding the service names of ports to complete. If this is
|
||||||
not set by the user, the service names from `tt(/etc/services)' will
|
not set by the user, the service names from `tt(/etc/services)' will
|
||||||
be used.
|
be used.
|
||||||
)
|
)
|
||||||
|
item(tt(prefer-ignored))(
|
||||||
|
This style is tested by the main completion function before calling a
|
||||||
|
completer. The context name is formed in the same way as for the
|
||||||
|
tt(matcher-list) style, i.e. it contains the name of the completer
|
||||||
|
that will be called plus a hyphen and the number of the call to that
|
||||||
|
completer.
|
||||||
|
|
||||||
|
If the style is set to true and completion did not generate any normal
|
||||||
|
matches yet, but there are matches that were ignored because they
|
||||||
|
matched one of the patterns given with the tt(fignore) array or the
|
||||||
|
tt(ignored-patterns) style, these ignored matches are used immediatly
|
||||||
|
and no other completer will be called.
|
||||||
|
|
||||||
|
It is sometimes useful to set this style for the tt(correct) or
|
||||||
|
tt(approximate) completer so that ignored matches are prefered over
|
||||||
|
corrections.
|
||||||
|
|
||||||
|
example(zstyle ':completion:*:complete-2:*' prefer-ignored yes
|
||||||
|
zstyle ':completion:*:(correct|approximate)-1:*' prefer-ignored yes)
|
||||||
|
)
|
||||||
item(tt(prefix-hidden))(
|
item(tt(prefix-hidden))(
|
||||||
This is used when matches with a common prefix are added (e.g. option
|
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
|
names). If it is `true', this prefix will not be shown in the list of
|
||||||
|
|
@ -1311,8 +1330,11 @@ matches have no common prefix different from the word on the line or
|
||||||
if there is such a common prefix, respectively. The sequence `tt(%c)'
|
if there is such a common prefix, respectively. The sequence `tt(%c)'
|
||||||
is replaced by the name of the completer function that generated the
|
is replaced by the name of the completer function that generated the
|
||||||
matches (without the leading underscore). Finally, `tt(%n)' is
|
matches (without the leading underscore). Finally, `tt(%n)' is
|
||||||
replaced by the number of matches generated
|
replaced by the number of matches generated, `tt(%a)' is replaced by
|
||||||
and if the tt(list) style is set, `tt(%l)' is
|
an empty string if the matches are in the normal set (i.e. the one
|
||||||
|
without file names with one of the suffixes from the
|
||||||
|
tt(ignored-suffixes) style) and with `tt( -alt-)' if the matches are
|
||||||
|
in the alternate set, and if the tt(list) style is set, `tt(%l)' is
|
||||||
replaced by `tt(...)' if the list of matches is too long to fit on the
|
replaced by `tt(...)' if the list of matches is too long to fit on the
|
||||||
screen and with an empty string otherwise. If the tt(list) style is
|
screen and with an empty string otherwise. If the tt(list) style is
|
||||||
`false', `tt(%l)' will always be removed.
|
`false', `tt(%l)' will always be removed.
|
||||||
|
|
@ -1323,9 +1345,12 @@ all duplicate matches should be removed, rather than just consecutive
|
||||||
duplicates.
|
duplicates.
|
||||||
)
|
)
|
||||||
item(tt(single-ignored))(
|
item(tt(single-ignored))(
|
||||||
This is used by the tt(_ignored) completer. It allows to specify what
|
Using styles like tt(ignored-patterns) allows one to put some matches
|
||||||
should be done if it can generate only one match, which is often a
|
in the alternate set of matches which is only used if there are no
|
||||||
special case. If its value is tt(show), the single match will only be shown,
|
`normal' matches. Having only one such normally ignored match is often
|
||||||
|
a special case because one probably doesn't want that match to be
|
||||||
|
inserted immediatly. This style allows to configure what to do in such
|
||||||
|
a case. If its value is tt(show), the single match will only be shown,
|
||||||
not inserted. If the value is tt(menu), then the single match and the
|
not inserted. If the value is tt(menu), then the single match and the
|
||||||
original string are both added as matches and menucompletion is
|
original string are both added as matches and menucompletion is
|
||||||
started so that one can easily select either of them.
|
started so that one can easily select either of them.
|
||||||
|
|
@ -1388,34 +1413,6 @@ example(zstyle ':completion:*:expand:::' substitute '${NUMERIC:-1} != 1')
|
||||||
substitution will be performed only if given an explicit numeric
|
substitution will be performed only if given an explicit numeric
|
||||||
argument other than `tt(1)', as by typing `tt(ESC 2 TAB)'.
|
argument other than `tt(1)', as by typing `tt(ESC 2 TAB)'.
|
||||||
)
|
)
|
||||||
item(tt(tag-aliases))(
|
|
||||||
This allows to give aliases for tags that are to be used whenever the
|
|
||||||
tag this style is set for is used (see the tt(tag-order) style below
|
|
||||||
for a description of tag aliases).
|
|
||||||
|
|
||||||
The value is a list of strings of the same form used by the
|
|
||||||
tt(tag-order) style: `var(tag)tt(:)var(alias)', optionally followed by
|
|
||||||
a second colon and a description.
|
|
||||||
|
|
||||||
The effect of using this style is that the var(tag) is offered more
|
|
||||||
than once, once for each alias. For example, together with the
|
|
||||||
tt(ignored-patterns) style this allows to split the matches for the
|
|
||||||
tag into different groups, as in:
|
|
||||||
|
|
||||||
example(zstyle ':completion:*:options' tag-aliases \
|
|
||||||
'options:-long:long options' \
|
|
||||||
'options:-short:short options' \
|
|
||||||
'options:-single-letter:single letter options'
|
|
||||||
|
|
||||||
zstyle ':completion:*:options-long' ignored-patterns '[-+](|-|[^-]*)'
|
|
||||||
zstyle ':completion:*:options-short' ignored-patterns '--*' '[-+]?'
|
|
||||||
zstyle ':completion:*:options-single-letter' ignored-patterns '???*')
|
|
||||||
|
|
||||||
With the tt(group-names) style set, this makes options beginning with
|
|
||||||
`tt(-)tt(-)', options beginning with a single `tt(-)' or `tt(+)' but
|
|
||||||
containing multiple characters and single-letter options be displayed
|
|
||||||
in separate groups with different descriptions.
|
|
||||||
)
|
|
||||||
item(tt(tag-order))(
|
item(tt(tag-order))(
|
||||||
This provides a mechanism for sorting how the tags available in a
|
This provides a mechanism for sorting how the tags available in a
|
||||||
particular context will be used.
|
particular context will be used.
|
||||||
|
|
@ -1448,20 +1445,22 @@ to specify tag aliases instead of only tags. These are of the form
|
||||||
by the completion function for the current context and var(alias) is a
|
by the completion function for the current context and var(alias) is a
|
||||||
name. For this, the completion function will generate matches in the
|
name. For this, the completion function will generate matches in the
|
||||||
same way as for the var(tag) but it will use the var(alias) in place
|
same way as for the var(tag) but it will use the var(alias) in place
|
||||||
of the tag in the context names used to look up styles. If the
|
of the tag in the context names used to look up styles. This can be
|
||||||
var(alias) starts with a hyphen, the var(tag) is prepended to the
|
|
||||||
var(alias) to form the name used for lookup. This can be
|
|
||||||
used to make the completion system try a certain tag more than once,
|
used to make the completion system try a certain tag more than once,
|
||||||
supplying different style settings for each attempt. For example,
|
supplying different style settings for each attempt. For example,
|
||||||
|
|
||||||
example(zstyle ':completion:*:*:-command-:*' tag-order 'functions:-non-comp'
|
example(zstyle ':completion:*:*:-command-:*' tag-order 'functions:-non-comp'
|
||||||
zstyle ':completion:*:functions-non-comp' ignored-patterns '_*')
|
zstyle '*:-non-comp' ignored-patterns '_*')
|
||||||
|
|
||||||
Makes completion in command position first try only names of shell
|
Makes completion in command position first try only names of shell
|
||||||
functions that don't match the pattern `tt(_*)'. If that generates no
|
functions that don't match the pattern `tt(_*)'. If that generates no
|
||||||
matches, the default of trying all the other things that can be
|
matches, the default of trying all the other things that can be
|
||||||
completed in command position is used, including the names of all
|
completed in command position is used, including the names of all
|
||||||
shell functions.
|
shell functions. Note that the var(alias) used in this example
|
||||||
|
`tt(-non-comp)' with the hyphen at the bginning is not in any way
|
||||||
|
special to the completion system. But since no other tag starts with a
|
||||||
|
hyphen, using such a name allows to use a context pattern as short as
|
||||||
|
the one in the second line without making it ambiguous.
|
||||||
|
|
||||||
The var(alias) may optionally be followed by a second colon and a
|
The var(alias) may optionally be followed by a second colon and a
|
||||||
description. This description will then be used for the `tt(%d)' in
|
description. This description will then be used for the `tt(%d)' in
|
||||||
|
|
@ -1471,53 +1470,6 @@ be quoted by preceding them with a backslash and a `tt(%d)' appearing
|
||||||
in the description is replaced with the description given by the
|
in the description is replaced with the description given by the
|
||||||
completion function.
|
completion function.
|
||||||
|
|
||||||
In each of the cases above, the tag may also be a pattern. In this
|
|
||||||
case all of the offered tags matching this pattern will be used except
|
|
||||||
for those that are given explicitly in the same string. There are
|
|
||||||
probably two main uses of this. One is the case where one wants to try
|
|
||||||
one of the tags more than once, setting other styles differently for
|
|
||||||
each try, but still wants to use all the other tags without having to
|
|
||||||
bother to repeat them all. For example, to make completion of function
|
|
||||||
names in command position first ignore all the completion functions
|
|
||||||
starting with an underscore one could do:
|
|
||||||
|
|
||||||
example(zstyle ':completion:*:*:-command-:*' tag-order \
|
|
||||||
'functions:-non-comp *' functions
|
|
||||||
zstyle ':completion:*:functions-non-comp' ignored-patterns '_*')
|
|
||||||
|
|
||||||
Here, the completion system will first try all tags offered, but will
|
|
||||||
use the tag alias tt(functions-non-comp) when looking up styles for
|
|
||||||
the function names completed. For this, the tt(ignored-patterns) style
|
|
||||||
is set to make functions starting with an underscore be not considered
|
|
||||||
as possible matches. If none of the generated matches match the string
|
|
||||||
on the line, the completion system will use the second value of the
|
|
||||||
tt(tag-order) style and complete functions names again, but this time
|
|
||||||
using so name tt(functions) to look up styles, so that the
|
|
||||||
tt(ignored-patterns) style will not be used and all function names
|
|
||||||
will be considered.
|
|
||||||
|
|
||||||
The second interesting use of patterns is the case where one wants to
|
|
||||||
try multiple match specifications one after another. The
|
|
||||||
tt(atcher-list) style offers something similar, but it is tested very
|
|
||||||
early in the completion system and hence can't be set for single
|
|
||||||
commands or even more specific contexts. So, to make completion for
|
|
||||||
the arguments of the command tt(foo) and only for this command first
|
|
||||||
try normal completion with out any match specification and, if that
|
|
||||||
generates no matches, try again with case-insensitive matching, one
|
|
||||||
could do:
|
|
||||||
|
|
||||||
example(zstyle ':completion:*:*:foo:*' tag-order '*' '*:-case'
|
|
||||||
zstyle ':completion:*-case' matcher 'm:{a-z}={A-Z}')
|
|
||||||
|
|
||||||
This will make the completion system first try all the tags offered
|
|
||||||
when completing after tt(foo) and use the tags to do the lookup. If
|
|
||||||
that generates no matches, the second value of tt(tag-order) is
|
|
||||||
used. This will make all tags be tried again, but this time using the
|
|
||||||
names of the tags with the tt(-case) appended to them for lookup of
|
|
||||||
styles. I.e. in this second attempt, the value for the tt(matcher)
|
|
||||||
style from the second call to tt(zstyle) in the example will be used
|
|
||||||
to make completion case-insensitive.
|
|
||||||
|
|
||||||
Strings in the value may also be of the form `var(func)tt(())'. In
|
Strings in the value may also be of the form `var(func)tt(())'. In
|
||||||
this case the function var(func) will be called which can then define
|
this case the function var(func) will be called which can then define
|
||||||
in which order tags are to be used based on additional context
|
in which order tags are to be used based on additional context
|
||||||
|
|
@ -1589,6 +1541,10 @@ item(tt(users-hosts-ports))(
|
||||||
Like tt(users-hosts) but used for commands like tt(telnet) and
|
Like tt(users-hosts) but used for commands like tt(telnet) and
|
||||||
containing strings of the form `var(user)tt(@)var(host)tt(:)var(port)'.
|
containing strings of the form `var(user)tt(@)var(host)tt(:)var(port)'.
|
||||||
)
|
)
|
||||||
|
item(tt(users-hosts-ports))(
|
||||||
|
Like tt(users-hosts) but used for commands like tt(telnet) and
|
||||||
|
containing strings of the form `var(user)tt(@)var(host)tt(:)var(port)'.
|
||||||
|
)
|
||||||
item(tt(verbose))(
|
item(tt(verbose))(
|
||||||
This is used in several contexts to decide if only a simple or a
|
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
|
verbose list of matches should be generated. For example some commands
|
||||||
|
|
@ -1885,20 +1841,6 @@ tt(COMPLETE_IN_WORD) option is set. Because otherwise the cursor will
|
||||||
be set after the word before the completion code is called and hence
|
be set after the word before the completion code is called and hence
|
||||||
there will be no suffix.
|
there will be no suffix.
|
||||||
)
|
)
|
||||||
findex(_ignored)
|
|
||||||
item(tt(_ignored))(
|
|
||||||
Using the tt(ignored-patterns) style it is possible to make some
|
|
||||||
matches be ignored. This completer allows to complete these matches as
|
|
||||||
if no tt(ignored-patterns) style were set. Which completers are called
|
|
||||||
for this is determined in the same way as for the tt(_prefix)
|
|
||||||
completer.
|
|
||||||
|
|
||||||
Finally, tt(_ignored) uses the tt(single-ignored) style if only one
|
|
||||||
match could be generated. It can be set to tt(show) to make that match
|
|
||||||
be only displayed, not inserted into the line or it can be set to
|
|
||||||
tt(menu) to make the single match and the original string from the
|
|
||||||
line be offered in a menucompletion.
|
|
||||||
)
|
|
||||||
findex(_menu)
|
findex(_menu)
|
||||||
item(tt(_menu))(
|
item(tt(_menu))(
|
||||||
This completer is a simple example function implemented to show how
|
This completer is a simple example function implemented to show how
|
||||||
|
|
|
||||||
|
|
@ -197,13 +197,16 @@ level.
|
||||||
)
|
)
|
||||||
item(tt(nmatches))(
|
item(tt(nmatches))(
|
||||||
The number of matches generated and accepted by the completion code so
|
The number of matches generated and accepted by the completion code so
|
||||||
far.
|
far, excluding those matches that are only accepted by ignoring the
|
||||||
)
|
tt(fignore) parameter and the tt(-a) option of the tt(compadd) builtin
|
||||||
item(tt(ignored))(
|
|
||||||
The number of words that were ignored because they matched one of the
|
|
||||||
patterns given with the tt(-F) option to the tt(compadd) builtin
|
|
||||||
command.
|
command.
|
||||||
)
|
)
|
||||||
|
item(tt(alternate_nmatches))(
|
||||||
|
Like tt(nmatches), but counts only matches in the alternate set. I.e. file
|
||||||
|
names with one of the suffixes from the tt(fignore) array and matches
|
||||||
|
put into the alternate set using the tt(-a) option of the tt(compadd)
|
||||||
|
builtin command (see below) are not counted.
|
||||||
|
)
|
||||||
item(tt(restore))(
|
item(tt(restore))(
|
||||||
This is set to tt(auto) before a function is entered, which forces the
|
This is set to tt(auto) before a function is entered, which forces the
|
||||||
special parameters mentioned above (tt(words), tt(CURRENT), tt(PREFIX),
|
special parameters mentioned above (tt(words), tt(CURRENT), tt(PREFIX),
|
||||||
|
|
@ -515,9 +518,23 @@ with any prefix specified by the tt(-p) option to form a complete filename
|
||||||
for testing. Hence it is only useful if combined with the tt(-f) flag, as
|
for testing. Hence it is only useful if combined with the tt(-f) flag, as
|
||||||
the tests will not otherwise be performed.
|
the tests will not otherwise be performed.
|
||||||
)
|
)
|
||||||
|
item(tt(-a))(
|
||||||
|
The completion code may build two sets of matches: the normal and the
|
||||||
|
alternate set. Normally only the matches in the first set are used,
|
||||||
|
but if this set is empty, the words from the alternate set are
|
||||||
|
used. The completion code uses this mechanism, for example, to make
|
||||||
|
filenames without one of the suffixes defined with the tt(fignore)
|
||||||
|
shell parameter be preferred over filenames with one of these
|
||||||
|
suffixes.
|
||||||
|
|
||||||
|
With the tt(-a)-flag given, the var(words) are stored in the alternate
|
||||||
|
set unless this flag is overridden by the tt(-F) option.
|
||||||
|
)
|
||||||
item(tt(-F) var(array))(
|
item(tt(-F) var(array))(
|
||||||
Specifies an array containing patterns. Words matching one of these
|
Specifies an array containing patterns.
|
||||||
patterns are ignored, i.e. not considered to be possible matches.
|
Words matching one of these patterns are stored in
|
||||||
|
the alternate set of matches and words that match none of the patterns
|
||||||
|
are stored in the normal set.
|
||||||
|
|
||||||
The var(array) may be the name of an array parameter or a list of
|
The var(array) may be the name of an array parameter or a list of
|
||||||
literal patterns enclosed in parentheses and quoted, as in `tt(-F "(*?.o
|
literal patterns enclosed in parentheses and quoted, as in `tt(-F "(*?.o
|
||||||
|
|
|
||||||
13
Etc/MACHINES
13
Etc/MACHINES
|
|
@ -18,6 +18,10 @@ The format of entries is thus:
|
||||||
Machines
|
Machines
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
Apple/NeXT OpenStep 4.2 for i386.
|
||||||
|
Reported to work at least with gcc 2.8.1 and gawk 2.15 patchlevel
|
||||||
|
6, but not with the bundled cc 2.7.2.1 and awk.
|
||||||
|
|
||||||
Cray: Unicos (C90 and T90)
|
Cray: Unicos (C90 and T90)
|
||||||
Should build `out-of-the-box'.
|
Should build `out-of-the-box'.
|
||||||
|
|
||||||
|
|
@ -66,7 +70,7 @@ IBM: AIX 3.2, 4.1
|
||||||
4.1, though native cc works. More information about this problem
|
4.1, though native cc works. More information about this problem
|
||||||
would be appreciated.
|
would be appreciated.
|
||||||
|
|
||||||
Linux: Linux (i386) [3.1.4]
|
Linux: Linux (i[345]86,various Pentia,AMD K6/2)
|
||||||
Should build `out-of-the-box'.
|
Should build `out-of-the-box'.
|
||||||
|
|
||||||
If you are using an early minor version of libc 5, then a bug
|
If you are using an early minor version of libc 5, then a bug
|
||||||
|
|
@ -80,6 +84,13 @@ Linux: Linux (i386) [3.1.4]
|
||||||
on Linux Alpha with egcs 1.0.3a and 1.1.1 using -O1 or greater,
|
on Linux Alpha with egcs 1.0.3a and 1.1.1 using -O1 or greater,
|
||||||
the completion code is not correctly compiled.
|
the completion code is not correctly compiled.
|
||||||
|
|
||||||
|
Some versions of glibc2 have a conflict with <asm/resource.h>
|
||||||
|
which causes a redefinition warning on RLIM_INFINITY. This
|
||||||
|
causes configure to decide that <sys/resource.h> is not present,
|
||||||
|
which can cause compilation errors in zsh's rlimit code. The
|
||||||
|
best solution is to edit config.h after running configure and
|
||||||
|
#define HAS_SYS_RESOURCE_H.
|
||||||
|
|
||||||
NetBSD: NetBSD 1.*
|
NetBSD: NetBSD 1.*
|
||||||
Should build `out-of-the-box'.
|
Should build `out-of-the-box'.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
DISTFILES_SRC='
|
DISTFILES_SRC='
|
||||||
.distfiles
|
.distfiles
|
||||||
prompt_elite2_setup prompt_adam1_setup prompt_fade_setup
|
prompt_elite2_setup prompt_adam1_setup prompt_bart_setup prompt_fade_setup
|
||||||
prompt_elite_setup prompt_redhat_setup prompt_adam2_setup
|
prompt_elite_setup prompt_redhat_setup prompt_adam2_setup
|
||||||
prompt_fire_setup prompt_suse_setup prompt_bigfade_setup
|
prompt_fire_setup prompt_suse_setup prompt_bigfade_setup
|
||||||
prompt_oliver_setup prompt_off_setup prompt_zefram_setup
|
prompt_oliver_setup prompt_off_setup prompt_zefram_setup
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ incremental-complete-word() {
|
||||||
unsetopt autolist menucomplete automenu # doesn't work well
|
unsetopt autolist menucomplete automenu # doesn't work well
|
||||||
|
|
||||||
local key lbuf="$LBUFFER" rbuf="$RBUFFER" pmpt pstr word
|
local key lbuf="$LBUFFER" rbuf="$RBUFFER" pmpt pstr word
|
||||||
local lastl lastr wid twid num post toolong
|
local lastl lastr wid twid num alt post toolong
|
||||||
local curcontext="${curcontext}" stop brk
|
local curcontext="${curcontext}" stop brk
|
||||||
|
|
||||||
[[ -z "$curcontext" ]] && curcontext=:::
|
[[ -z "$curcontext" ]] && curcontext=:::
|
||||||
|
|
@ -41,6 +41,10 @@ incremental-complete-word() {
|
||||||
LBUFFER="$lbuf"
|
LBUFFER="$lbuf"
|
||||||
RBUFFER="$rbuf"
|
RBUFFER="$rbuf"
|
||||||
num=$_lastcomp[nmatches]
|
num=$_lastcomp[nmatches]
|
||||||
|
if (( ! num )); then
|
||||||
|
num="${_lastcomp[alternate_nmatches]}"
|
||||||
|
alt=' -alt-'
|
||||||
|
fi
|
||||||
if (( ! num )); then
|
if (( ! num )); then
|
||||||
word=''
|
word=''
|
||||||
state='-no match-'
|
state='-no match-'
|
||||||
|
|
@ -51,7 +55,7 @@ incremental-complete-word() {
|
||||||
word="${_lastcomp[unambiguous]}"
|
word="${_lastcomp[unambiguous]}"
|
||||||
state=''
|
state=''
|
||||||
fi
|
fi
|
||||||
zformat -f pstr "$pmpt" "u:${word}" "s:$state" "n:$num" \
|
zformat -f pstr "$pmpt" "u:${word}" "s:$state" "n:$num" "a:$alt" \
|
||||||
"l:$toolong" "c:${_lastcomp[completer][2,-1]}"
|
"l:$toolong" "c:${_lastcomp[completer][2,-1]}"
|
||||||
zle -R "$pstr"
|
zle -R "$pstr"
|
||||||
read -k key
|
read -k key
|
||||||
|
|
@ -83,6 +87,12 @@ incremental-complete-word() {
|
||||||
LBUFFER="$lastl"
|
LBUFFER="$lastl"
|
||||||
RBUFFER="$lastr"
|
RBUFFER="$lastr"
|
||||||
num=$_lastcomp[nmatches]
|
num=$_lastcomp[nmatches]
|
||||||
|
if (( ! num )); then
|
||||||
|
num="${_lastcomp[alternate_nmatches]}"
|
||||||
|
alt=' -alt-'
|
||||||
|
else
|
||||||
|
alt=''
|
||||||
|
fi
|
||||||
if (( ! num )); then
|
if (( ! num )); then
|
||||||
word=''
|
word=''
|
||||||
state='-no match-'
|
state='-no match-'
|
||||||
|
|
@ -93,7 +103,7 @@ incremental-complete-word() {
|
||||||
word="${_lastcomp[unambiguous]}"
|
word="${_lastcomp[unambiguous]}"
|
||||||
state=''
|
state=''
|
||||||
fi
|
fi
|
||||||
zformat -f pstr "$pmpt" "u:${word}" "s:$state" "n:$num" \
|
zformat -f pstr "$pmpt" "u:${word}" "s:$state" "n:$num" "a:$alt" \
|
||||||
"l:$toolong" "c:${_lastcomp[completer][2,-1]}"
|
"l:$toolong" "c:${_lastcomp[completer][2,-1]}"
|
||||||
zle -R "$pstr"
|
zle -R "$pstr"
|
||||||
read -k key
|
read -k key
|
||||||
|
|
|
||||||
|
|
@ -131,7 +131,7 @@ predict-limit-list() {
|
||||||
then
|
then
|
||||||
compstate[list]=''
|
compstate[list]=''
|
||||||
compstate[force_list]=yes
|
compstate[force_list]=yes
|
||||||
elif zstyle -t ":completion:::predict::" list always
|
elif zstyle -t ":completion:predict::::" list always
|
||||||
then
|
then
|
||||||
compstate[force_list]=yes
|
compstate[force_list]=yes
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -165,7 +165,7 @@ get_pty(int *master, int *slave)
|
||||||
|
|
||||||
#else /* ! __osf__ */
|
#else /* ! __osf__ */
|
||||||
|
|
||||||
#if defined(__SVR4) || defined(sinix)
|
#if __SVR4
|
||||||
|
|
||||||
#include <sys/stropts.h>
|
#include <sys/stropts.h>
|
||||||
|
|
||||||
|
|
@ -174,12 +174,11 @@ get_pty(int *master, int *slave)
|
||||||
{
|
{
|
||||||
int mfd, sfd;
|
int mfd, sfd;
|
||||||
char *name;
|
char *name;
|
||||||
int ret;
|
|
||||||
|
|
||||||
if ((mfd = open("/dev/ptmx", O_RDWR)) < 0)
|
if ((mfd = open("/dev/ptmx", O_RDWR)) < 0)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (grantpt(mfd) || unlockpt(mfd) || !(name = ptsname(mfd))) {
|
if (!(name = ptsname(mfd)) || grantpt(mfd) || unlockpt(mfd)) {
|
||||||
close(mfd);
|
close(mfd);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
@ -187,31 +186,31 @@ get_pty(int *master, int *slave)
|
||||||
close(mfd);
|
close(mfd);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if ((ret = ioctl(sfd, I_FIND, "ptem")) != 1)
|
if ((ret = ioctl(sfd, I_FIND, "ptem")) != 1)
|
||||||
if (ret == -1 || ioctl(sfd, I_PUSH, "ptem") == -1) {
|
if (ret == -1 || ioctl(sfd, I_PUSH, "ptem") == -1) {
|
||||||
close(mfd);
|
close(mfd);
|
||||||
close(sfd);
|
close(sfd);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if ((ret = ioctl(sfd, I_FIND, "ldterm")) != 1)
|
if ((ret = ioctl(sfd, I_FIND, "ldterm")) != 1)
|
||||||
if (ret == -1 || ioctl(sfd, I_PUSH, "ldterm") == -1) {
|
if (ret == -1 || ioctl(sfd, I_PUSH, "ldterm") == -1) {
|
||||||
close(mfd);
|
close(mfd);
|
||||||
close(sfd);
|
close(sfd);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if ((ret = ioctl(sfd, I_FIND, "ttcompat")) != 1)
|
if ((ret = ioctl(sfd, I_FIND, "ttcompat")) != 1)
|
||||||
if (ret == -1 || ioctl(sfd, I_PUSH, "ttcompat") == -1) {
|
if (ret == -1 || ioctl(sfd, I_PUSH, "ttcompat") == -1) {
|
||||||
close(mfd);
|
close(mfd);
|
||||||
close(sfd);
|
close(sfd);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
*master = mfd;
|
*master = mfd;
|
||||||
*slave = sfd;
|
*slave = sfd;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#else /* ! (defined(__SVR4) || defined(sinix)) */
|
#else /* ! (defined(__SVR4) || defined(sinix)) */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
get_pty(int *master, int *slave)
|
get_pty(int *master, int *slave)
|
||||||
|
|
|
||||||
|
|
@ -229,9 +229,10 @@ struct menuinfo {
|
||||||
|
|
||||||
#define CAF_QUOTE 1
|
#define CAF_QUOTE 1
|
||||||
#define CAF_NOSORT 2
|
#define CAF_NOSORT 2
|
||||||
#define CAF_MATCH 4
|
#define CAF_ALT 4
|
||||||
#define CAF_UNIQCON 8
|
#define CAF_MATCH 8
|
||||||
#define CAF_UNIQALL 16
|
#define CAF_UNIQCON 16
|
||||||
|
#define CAF_UNIQALL 32
|
||||||
|
|
||||||
/* Data for compadd and addmatches() */
|
/* Data for compadd and addmatches() */
|
||||||
|
|
||||||
|
|
@ -350,12 +351,12 @@ typedef void (*CLPrintFunc)(Cmgroup, Cmatch *, int, int, int, int,
|
||||||
#define CP_OLDINS (1 << CPN_OLDINS)
|
#define CP_OLDINS (1 << CPN_OLDINS)
|
||||||
#define CPN_VARED 20
|
#define CPN_VARED 20
|
||||||
#define CP_VARED (1 << CPN_VARED)
|
#define CP_VARED (1 << CPN_VARED)
|
||||||
#define CPN_LISTLINES 21
|
#define CPN_ANMATCHES 21
|
||||||
|
#define CP_ANMATCHES (1 << CPN_ANMATCHES)
|
||||||
|
#define CPN_LISTLINES 22
|
||||||
#define CP_LISTLINES (1 << CPN_LISTLINES)
|
#define CP_LISTLINES (1 << CPN_LISTLINES)
|
||||||
#define CPN_QUOTES 22
|
#define CPN_QUOTES 23
|
||||||
#define CP_QUOTES (1 << CPN_QUOTES)
|
#define CP_QUOTES (1 << CPN_QUOTES)
|
||||||
#define CPN_IGNORED 23
|
|
||||||
#define CP_IGNORED (1 << CPN_IGNORED)
|
|
||||||
|
|
||||||
#define CP_KEYPARAMS 24
|
#define CP_KEYPARAMS 24
|
||||||
#define CP_ALLKEYS ((unsigned int) 0xffffff)
|
#define CP_ALLKEYS ((unsigned int) 0xffffff)
|
||||||
|
|
|
||||||
|
|
@ -307,7 +307,6 @@ do_completion(Hookdef dummy, Compldat dat)
|
||||||
hasmatched = hasunmatched = 0;
|
hasmatched = hasunmatched = 0;
|
||||||
minmlen = 1000000;
|
minmlen = 1000000;
|
||||||
maxmlen = -1;
|
maxmlen = -1;
|
||||||
compignored = 0;
|
|
||||||
|
|
||||||
/* Make sure we have the completion list and compctl. */
|
/* Make sure we have the completion list and compctl. */
|
||||||
if (makecomplist(s, incmd, lst)) {
|
if (makecomplist(s, incmd, lst)) {
|
||||||
|
|
@ -1464,7 +1463,7 @@ addmatches(Cadata dat, char **argv)
|
||||||
int lpl, lsl, pl, sl, bcp = 0, bcs = 0, bpadd = 0, bsadd = 0;
|
int lpl, lsl, pl, sl, bcp = 0, bcs = 0, bpadd = 0, bsadd = 0;
|
||||||
int ppl = 0, psl = 0;
|
int ppl = 0, psl = 0;
|
||||||
int llpl = 0, llsl = 0, nm = mnum, gflags = 0, ohp = haspattern;
|
int llpl = 0, llsl = 0, nm = mnum, gflags = 0, ohp = haspattern;
|
||||||
int isexact, doadd, ois = instring, oib = inbackt;
|
int oisalt = 0, isalt, isexact, doadd, ois = instring, oib = inbackt;
|
||||||
Cline lc = NULL, pline = NULL, sline = NULL;
|
Cline lc = NULL, pline = NULL, sline = NULL;
|
||||||
Cmatch cm;
|
Cmatch cm;
|
||||||
struct cmlist mst;
|
struct cmlist mst;
|
||||||
|
|
@ -1744,6 +1743,7 @@ addmatches(Cadata dat, char **argv)
|
||||||
} else
|
} else
|
||||||
dat->prpre = dupstring(dat->prpre);
|
dat->prpre = dupstring(dat->prpre);
|
||||||
/* Select the set of matches. */
|
/* Select the set of matches. */
|
||||||
|
oisalt = (dat->aflags & CAF_ALT);
|
||||||
|
|
||||||
if (dat->remf) {
|
if (dat->remf) {
|
||||||
dat->remf = dupstring(dat->remf);
|
dat->remf = dupstring(dat->remf);
|
||||||
|
|
@ -1761,7 +1761,7 @@ addmatches(Cadata dat, char **argv)
|
||||||
/* Walk through the matches given. */
|
/* Walk through the matches given. */
|
||||||
obpl = bpl;
|
obpl = bpl;
|
||||||
obsl = bsl;
|
obsl = bsl;
|
||||||
if (aign || pign) {
|
if (!oisalt && (aign || pign)) {
|
||||||
int max = 0;
|
int max = 0;
|
||||||
char **ap = argv;
|
char **ap = argv;
|
||||||
|
|
||||||
|
|
@ -1780,8 +1780,9 @@ addmatches(Cadata dat, char **argv)
|
||||||
disp = NULL;
|
disp = NULL;
|
||||||
}
|
}
|
||||||
sl = strlen(s);
|
sl = strlen(s);
|
||||||
if (aign || pign) {
|
isalt = oisalt;
|
||||||
int il = ppl + sl + psl, addit = 1;
|
if (!isalt && (aign || pign)) {
|
||||||
|
int il = ppl + sl + psl;
|
||||||
|
|
||||||
if (ppl)
|
if (ppl)
|
||||||
memcpy(ibuf, dat->ppre, ppl);
|
memcpy(ibuf, dat->ppre, ppl);
|
||||||
|
|
@ -1795,19 +1796,15 @@ addmatches(Cadata dat, char **argv)
|
||||||
char **pt = aign;
|
char **pt = aign;
|
||||||
int filell;
|
int filell;
|
||||||
|
|
||||||
for (; addit && *pt; pt++)
|
for (isalt = 0; !isalt && *pt; pt++)
|
||||||
addit = !((filell = strlen(*pt)) < il &&
|
isalt = ((filell = strlen(*pt)) < il &&
|
||||||
!strcmp(*pt, ibuf + il - filell));
|
!strcmp(*pt, ibuf + il - filell));
|
||||||
}
|
}
|
||||||
if (addit && pign) {
|
if (!isalt && pign) {
|
||||||
Patprog *pt = pign;
|
Patprog *pt = pign;
|
||||||
|
|
||||||
for (; addit && *pt; pt++)
|
for (isalt = 0; !isalt && *pt; pt++)
|
||||||
addit = !pattry(*pt, ibuf);
|
isalt = pattry(*pt, ibuf);
|
||||||
}
|
|
||||||
if (!addit) {
|
|
||||||
compignored++;
|
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!(dat->aflags & CAF_MATCH)) {
|
if (!(dat->aflags & CAF_MATCH)) {
|
||||||
|
|
@ -1835,7 +1832,7 @@ addmatches(Cadata dat, char **argv)
|
||||||
for (bp = obsl; bp; bp = bp->next)
|
for (bp = obsl; bp; bp = bp->next)
|
||||||
bp->curpos += bsadd;
|
bp->curpos += bsadd;
|
||||||
|
|
||||||
if ((cm = add_match_data(0, ms, lc, dat->ipre, NULL,
|
if ((cm = add_match_data(isalt, ms, lc, dat->ipre, NULL,
|
||||||
dat->isuf, dat->pre, dat->prpre,
|
dat->isuf, dat->pre, dat->prpre,
|
||||||
dat->ppre, pline,
|
dat->ppre, pline,
|
||||||
dat->psuf, sline,
|
dat->psuf, sline,
|
||||||
|
|
@ -2178,8 +2175,6 @@ add_match_data(int alt, char *str, Cline line,
|
||||||
|
|
||||||
newmatches = 1;
|
newmatches = 1;
|
||||||
mgroup->new = 1;
|
mgroup->new = 1;
|
||||||
if (alt)
|
|
||||||
compignored++;
|
|
||||||
|
|
||||||
if (!complastprompt || !*complastprompt)
|
if (!complastprompt || !*complastprompt)
|
||||||
dolastprompt = 0;
|
dolastprompt = 0;
|
||||||
|
|
|
||||||
|
|
@ -36,8 +36,7 @@
|
||||||
mod_export zlong compcurrent;
|
mod_export zlong compcurrent;
|
||||||
/**/
|
/**/
|
||||||
zlong complistmax,
|
zlong complistmax,
|
||||||
complistlines,
|
complistlines;
|
||||||
compignored;
|
|
||||||
|
|
||||||
/**/
|
/**/
|
||||||
mod_export
|
mod_export
|
||||||
|
|
@ -477,6 +476,9 @@ bin_compadd(char *name, char **argv, char *ops, int func)
|
||||||
sp = &(dat.prpre);
|
sp = &(dat.prpre);
|
||||||
e = "string expected after -%c";
|
e = "string expected after -%c";
|
||||||
break;
|
break;
|
||||||
|
case 'a':
|
||||||
|
dat.aflags |= CAF_ALT;
|
||||||
|
break;
|
||||||
case 'M':
|
case 'M':
|
||||||
sp = &m;
|
sp = &m;
|
||||||
e = "matching specification expected after -%c";
|
e = "matching specification expected after -%c";
|
||||||
|
|
@ -910,9 +912,9 @@ static struct compparam compkparams[] = {
|
||||||
{ "old_list", PM_SCALAR, VAL(compoldlist), NULL, NULL },
|
{ "old_list", PM_SCALAR, VAL(compoldlist), NULL, NULL },
|
||||||
{ "old_insert", PM_SCALAR, VAL(compoldins), NULL, NULL },
|
{ "old_insert", PM_SCALAR, VAL(compoldins), NULL, NULL },
|
||||||
{ "vared", PM_SCALAR, VAL(compvared), NULL, NULL },
|
{ "vared", PM_SCALAR, VAL(compvared), NULL, NULL },
|
||||||
|
{ "alternate_nmatches", PM_INTEGER | PM_READONLY, NULL, NULL, VAL(get_anmatches) },
|
||||||
{ "list_lines", PM_INTEGER | PM_READONLY, NULL, NULL, VAL(get_listlines) },
|
{ "list_lines", PM_INTEGER | PM_READONLY, NULL, NULL, VAL(get_listlines) },
|
||||||
{ "all_quotes", PM_SCALAR | PM_READONLY, VAL(compqstack), NULL, NULL },
|
{ "all_quotes", PM_SCALAR | PM_READONLY, VAL(compqstack), NULL, NULL },
|
||||||
{ "ignored", PM_INTEGER | PM_READONLY, VAL(compignored), NULL, NULL },
|
|
||||||
{ NULL, 0, NULL, NULL, NULL }
|
{ NULL, 0, NULL, NULL, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -1023,7 +1025,14 @@ set_compstate(Param pm, HashTable ht)
|
||||||
static zlong
|
static zlong
|
||||||
get_nmatches(Param pm)
|
get_nmatches(Param pm)
|
||||||
{
|
{
|
||||||
return (permmatches(0) ? 0 : nmatches);
|
return num_matches(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**/
|
||||||
|
static zlong
|
||||||
|
get_anmatches(Param pm)
|
||||||
|
{
|
||||||
|
return num_matches(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**/
|
/**/
|
||||||
|
|
|
||||||
|
|
@ -1102,6 +1102,22 @@ do_ambig_menu(void)
|
||||||
minfo.cur = mc;
|
minfo.cur = mc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return the real number of matches. */
|
||||||
|
|
||||||
|
/**/
|
||||||
|
zlong
|
||||||
|
num_matches(int normal)
|
||||||
|
{
|
||||||
|
int alt;
|
||||||
|
|
||||||
|
alt = permmatches(0);
|
||||||
|
|
||||||
|
if (normal)
|
||||||
|
return (alt ? 0 : nmatches);
|
||||||
|
else
|
||||||
|
return (alt ? nmatches : 0);
|
||||||
|
}
|
||||||
|
|
||||||
/* Return the number of screen lines needed for the list. */
|
/* Return the number of screen lines needed for the list. */
|
||||||
|
|
||||||
/**/
|
/**/
|
||||||
|
|
|
||||||
|
|
@ -2363,7 +2363,7 @@ bin_comptags(char *nam, char **args, char *ops, int func)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
s->ptr = q + 1;
|
s->ptr = q + 1;
|
||||||
setsparam(args[2], ztrdup(*v == '-' ? dyncat(args[1], v) : v));
|
setsparam(args[2], ztrdup(v));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
||||||
|
|
@ -333,7 +333,7 @@ zrefresh(void)
|
||||||
tsetcap(TCUNDERLINEEND, 0);
|
tsetcap(TCUNDERLINEEND, 0);
|
||||||
|
|
||||||
if (!clearflag) {
|
if (!clearflag) {
|
||||||
if (tccan(TCCLEAREOD) && isset(ALWAYSLASTPROMPT))
|
if (tccan(TCCLEAREOD))
|
||||||
tcout(TCCLEAREOD);
|
tcout(TCCLEAREOD);
|
||||||
else
|
else
|
||||||
cleareol = 1; /* request: clear to end of line */
|
cleareol = 1; /* request: clear to end of line */
|
||||||
|
|
|
||||||
14
Src/text.c
14
Src/text.c
|
|
@ -122,7 +122,8 @@ getpermtext(Eprog prog, Wordcode c)
|
||||||
tlim = tbuf + tsiz;
|
tlim = tbuf + tsiz;
|
||||||
tindent = 1;
|
tindent = 1;
|
||||||
tjob = 0;
|
tjob = 0;
|
||||||
gettext2(&s);
|
if (prog->len)
|
||||||
|
gettext2(&s);
|
||||||
*tptr = '\0';
|
*tptr = '\0';
|
||||||
untokenize(tbuf);
|
untokenize(tbuf);
|
||||||
return tbuf;
|
return tbuf;
|
||||||
|
|
@ -194,9 +195,6 @@ struct tstack {
|
||||||
struct {
|
struct {
|
||||||
int par;
|
int par;
|
||||||
} _cond;
|
} _cond;
|
||||||
struct {
|
|
||||||
Wordcode end;
|
|
||||||
} _subsh;
|
|
||||||
} u;
|
} u;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -332,10 +330,8 @@ gettext2(Estate state)
|
||||||
if (!s) {
|
if (!s) {
|
||||||
taddstr("( ");
|
taddstr("( ");
|
||||||
tindent++;
|
tindent++;
|
||||||
n = tpush(code, 1);
|
tpush(code, 1);
|
||||||
n->u._subsh.end = state->pc + WC_SUBSH_SKIP(code);
|
|
||||||
} else {
|
} else {
|
||||||
state->pc = s->u._subsh.end;
|
|
||||||
tindent--;
|
tindent--;
|
||||||
taddstr(" )");
|
taddstr(" )");
|
||||||
stack = 1;
|
stack = 1;
|
||||||
|
|
@ -345,10 +341,8 @@ gettext2(Estate state)
|
||||||
if (!s) {
|
if (!s) {
|
||||||
taddstr("{ ");
|
taddstr("{ ");
|
||||||
tindent++;
|
tindent++;
|
||||||
n = tpush(code, 1);
|
tpush(code, 1);
|
||||||
n->u._subsh.end = state->pc + WC_CURSH_SKIP(code);
|
|
||||||
} else {
|
} else {
|
||||||
state->pc = s->u._subsh.end;
|
|
||||||
tindent--;
|
tindent--;
|
||||||
taddstr(" }");
|
taddstr(" }");
|
||||||
stack = 1;
|
stack = 1;
|
||||||
|
|
|
||||||
|
|
@ -3,5 +3,6 @@ DISTFILES_SRC='
|
||||||
ztst.zsh comptest
|
ztst.zsh comptest
|
||||||
01grammar.ztst 02alias.ztst 03quoting.ztst 04redirect.ztst
|
01grammar.ztst 02alias.ztst 03quoting.ztst 04redirect.ztst
|
||||||
05command.ztst 06arith.ztst 07cond.ztst 08traps.ztst 09funcdef.ztst
|
05command.ztst 06arith.ztst 07cond.ztst 08traps.ztst 09funcdef.ztst
|
||||||
10prompt.ztst 50cd.ztst 51xtrace.ztst 52zregexparse.ztst 53completion.ztst
|
10prompt.ztst 11glob.ztst 50cd.ztst 51xtrace.ztst 52zregexparse.ztst
|
||||||
|
53completion.ztst
|
||||||
'
|
'
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue