diff -Nru zsh-5.0.5/ChangeLog zsh-5.0.7/ChangeLog
--- zsh-5.0.5/ChangeLog 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/ChangeLog 2014-10-07 18:11:30.000000000 +0000
@@ -1,3 +1,1399 @@
+2014-10-07 Peter Stephenson
+
+ * unposted: Config/version.mk: 5.0.7
+
+2014-10-06 Peter Stephenson
+
+ * unposted (discussed offline): README: update description of
+ integer import problem.
+
+2014-10-04 Barton E. Schaefer
+
+ * 33354: Src/jobs.c, Test/A05execution.ztst: when backgrounding
+ a pipeline, close all pipe descriptors in the parent; add test
+ for both this and 33345+33346
+
+2014-10-03 Bart Schaefer
+
+ * 33346: Src/parse.c: another bit of the 33345 repair
+
+2014-10-03 Peter Stephenson
+
+ * 33345: Src/parse.c, Test/C04funcdef.ztst: fix longstanding
+ anonoymous function corruption of "complex" state that allowed
+ complex wordcode to be passed to execsimple(), causing crash.
+
+ * unposted: src/parse.c: comments were the wrong way round.
+
+ * 33343: Src/parse.c, Test/C04funcdef.ztst: variant anonymous
+ function syntax with arguments.
+
+2014-10-02 Peter Stephenson
+
+ * unposted: 5.0.6-dev-1.
+
+2014-10-02 Oliver Kiddle
+
+ * 33323: Completion/Zsh/Command/_typeset, Doc/Zsh/builtins.yo,
+ Src/builtin.c: fix bug in removing math functions and complete
+ -M option to functions
+
+ * 33315: Completion/Unix/Command/_sysctl: fix pattern to
+ match freebsd10 and later
+
+2014-10-02 Peter Stephenson
+
+ * unposted: remove "major".
+
+ * 33330: README, Etc/FAQ.yo: information for forthcoming 5.0.7
+ release.
+
+ * 33332: Test/C01arith.ztst: test numeric import fix in 33276.
+
+2014-10-02 Barton E. Schaefer
+
+ * 33320 (cf. PWS 33311): Completion/Base/Completer/_expand_alias,
+ Src/Zle/compcore.c, Src/utils.c, Src/ztype.h: revert 33069; add
+ typtab_flags bits (replaces specialcomma boolean) to record any
+ unusual handling of typtab entries; signal safety; make bangchar
+ non-special during completion lexing of the command line.
+
+2014-10-02 Peter Stephenson
+
+ * 33325: Src/exec.c, Test/A05execution.ztst: fix ksh autoloads
+ with redirections on function definitions.
+
+2014-10-01 Barton E. Schaefer
+
+ * 33319: Doc/Zsh/grammar.yo: fix parens in example from 33312
+
+2014-10-02 Axel Beckert
+
+ * 33284: Mathieu Malaterre: Completion/Unix/Command/_{graphics,
+ image}magick: Add missing JPEG 2000 file extensions.
+
+2014-10-01 Peter Stephenson
+
+ * 33312: Doc/Zsh/builtins.yo, Doc/Zsh/grammar.yo: document
+ redirections applied to function definitions.
+
+2014-09-30 Barton E. Schaefer
+
+ * 33298: Src/lex.c: make lexrestore() more signal-safe
+
+2014-09-30 Peter Stephenson
+
+ * 33294: Src/Modules/parameter.c, Test/A04redirect.ztst:
+ functions[func] value for functions with redirections and
+ extra tests.
+
+ * 33293: Src/Zle/compctl.c, Src/Zle/zle_refresh.c: fix warnings
+ from swish new compilers with a contemporary outlook.
+
+2014-09-29 Peter Stephenson
+
+ * 33286: Src/exec.c, Test/A04redirect.ztst: handle redirections
+ for multiple named functions.
+
+ * 33285: NEWS, Src/exec.c, Src/hashtable.c, Src/parse.c,
+ Src/signals.c, Src/zsh.h, Test/A04redirect.ztst: redirections in
+ function definitions are applied at execution not definition.
+
+2014-09-29 Frank Terbeck
+
+ * 33277: Functions/VCS_Info/VCS_INFO_reposub: Fix
+ VCS_INFO_reposub's command expansion
+
+2014-09-29 Peter Stephenson
+
+ * users/19183: Src/hist.c: handle unlikely error case with
+ fdopen() better.
+
+ * 33276: Src/params.c, Src/zsh.h: safer import of numerical
+ variables from environment.
+
+2014-09-28 Barton E. Schaefer
+
+ * 33268: Src/exec.c, Src/init.c, Src/signals.c: interactive shells
+ treat SIGPIPE like SIGHUP if and only if SHTTY is disconnected
+
+2014-09-27 Barton E. Schaefer
+
+ * 33256: Src/prompt.c: fix prompttrunc() counting of %{ %} spans
+
+2014-09-26 Peter Stephenson
+
+ * 33242: Src/parse.c: don't treat tokens immediately following
+ end of shell constructs for, while, repeat, if as being in
+ command position.
+
+ * Wieland Hoffmann: 33252: Completion/Unix/Command/_notmuch:
+ complete more subcommands.
+
+2014-09-25 Peter Stephenson
+
+ * users/19143: Src/glob.c: **/*(odonT) didn't work because
+ the trailing slash wasn't properly ignored.
+
+2014-09-25 Peter Stephenson
+
+ * unposted: NEWS: tweak last change.
+
+2014-09-24 Oliver Kiddle
+
+ * 33238: Completion/Unix/Command/_quilt: correct return values
+
+2014-09-24 Peter Stephenson
+
+ * Eric Cook: 33224: Completion/Linux/Command/_btrfs: complete
+ directory as second argument.
+
+2014-09-23 Barton E. Schaefer
+
+ * 33223: Completion/Base/Utility/_call_program: discard stderr
+ except when _complete_debug is in progress.
+
+2014-09-23 Øystein Walle
+
+ * 33179: Completion/Unix/Command/_git: _git: updates for Git 2.0.0
+
+ * 33176: Completion/Unix/Command/_git: _git: Add missing --list to
+ git-tag
+
+ * 33178: Completion/Unix/Command/_git: _git: updates for Git 2.1.0
+
+ * 33177: Completion/Unix/Command/_git: _git: fix typo in git-apply
+
+ * 33180: Completion/Unix/Command/_git: _git: add missing --3way
+ option
+
+2014-09-23 Peter Stephenson
+
+ * unposted: NEWS: more minor tweaks.
+
+ * unposted: NEWS: mention numeric output with underscore separators.
+
+ * unposted: NEWS: mention new
+ /usr/local/share/zsh/site-functions default.
+
+2014-09-23 Peter Stephenson
+
+ * 33221 (including 33173 from Anthony Heading):
+ Completion/Unix/Command/_perforce: complete directories
+ when handling unmaintained files and rationalise code that does
+ this.
+
+ * unposted: Completion/Unix/Command/_dvi: add dvipdf to list of
+ commands.
+
+ * Richard Hartmann: 33218: Completion/X/Command/_mplayer:
+ complete m4a files.
+
+2014-09-22 Oliver Kiddle
+
+ * 33198: Completion/Unix/Command/_augeas: new augtool completion
+
+ * users/19113: Completion/Linux/_cryptsetup: reorganised function
+
+2014-09-22 Daniel Hahler
+
+ * 33217: Functions/VCS_Info/Backends/VCS_INFO_get_data_git:
+ vcs_info: use `--ignore-submodules=dirty` with diff/diff-index
+
+2014-09-22 Peter Stephenson
+
+ * 33208: Tanu Kaskinen: improve printing of paths at end of
+ configuration.
+
+2014-09-20 Peter Stephenson
+
+ * 33214 (modified yet further): configure.ac: test prefixes better.
+
+ * 33213: configure.ac, Config/defs.mk.in: try again.
+
+ * 33212: Src/zsh.mdd: Src/init.c, Src/zsh.mdd, configure.ac: add
+ /usr/local/share/zsh/site-functions to head of fpath if not
+ present from result of running configure. There's no
+ configuration for this as it serves as a fallback.
+
+ * Tanu Kaskinen: 33209: Doc/Makefile.in: don't fail
+ catastrophically when builing zsh.texi if yodl isn't available.
+
+2014-09-19 Barton E. Schaefer
+
+ * 33206: Doc/Zsh/mod_computil.yo: fix compdescribe doc
+
+ * 33205: Completion/Base/Utility/_describe: if passed both an
+ array of completions and an array of display strings, keep them
+ in sync when filtering for matches.
+
+2014-09-18 Peter Stephenson
+
+ * users/19097: Doc/Zsh/mod_parameter.yo,
+ Src/Modules/parameter.c: remove functypetrace and instead add
+ cross-reference to zsh_eval_context.
+
+2014-09-16 Marc Finet
+
+ * 33188: Functions/VCS_Info/Backends/VCS_INFO_get_data_git:
+ vcs_info git: set rrn before using it
+
+ * 33184: Doc/Zsh/contrib.yo,
+ Functions/VCS_Info/Backends/VCS_INFO_get_data_git: vcs_info git:
+ consider patches for rebase
+
+2014-09-16 Mikael Magnusson
+
+ * 33136: Doc/Zsh/expn.yo, Src/glob.c: P glob qualifier appends
+ words when negated.
+
+ * 33137: Completion/Unix/Type/_path_files: complete # to introduce
+ a glob flag
+
+2014-09-14 Marc Finet
+
+ * 33149: Misc/vcs_info-examples: vcs_info examples: fix typo
+
+ * 33151: Completion/Unix/Command/_git: completion git: support
+ aliases when \n exist
+
+ * 33147: Functions/VCS_Info/Backends/VCS_INFO_get_data_git:
+ vcs_info git: detect revert or cherry-pick with multiple commits
+
+ * 33148: Functions/VCS_Info/VCS_INFO_quilt: vcs_info quilt:
+ refactor standalone detection
+
+ * 33145: Functions/VCS_Info/Backends/VCS_INFO_get_data_git:
+ vcs_info git: fix applied-string name
+
+ * 33150: Completion/Unix/Command/_git: completion git: fix
+ send-email --confirm values
+
+2014-09-12 Barton E. Schaefer
+
+ * 33143: Src/init.c: POSIX_ARGZERO more closely matches bash et al.
+
+2014-09-12 Peter Stephenson
+
+ * users/19075: Doc/Zsh/mod_parameter.yo,
+ Src/Modules/parameter.c: $functypestack gives "function",
+ "source" or "eval" for parallel element of $funcstack.
+
+2014-09-09 Peter Stephenson
+
+ * Eric Cook: 33132: Completion/Unix/Type/_net_interfaces: use ip
+ on Linux to get interface names.
+
+2014-09-08 Peter Stephenson
+
+ * users/19059 based on users/19058 (Paulo César Pereira de
+ Andrade): Src/pattern.c, Test/D02glob.ztst: remove inefficiency
+ with multiple "*"s in pattern matching and add test.
+
+2014-09-07 Barton E. Schaefer
+
+ * 33122: Src/Modules/pcre.c, Test/V07pcre.ztst: typo from 32891
+ caused incorrect matches for pcre_match -n
+
+2014-09-06 Barton E. Schaefer
+
+ * 33118: Src/subst.c: record original param unset state when
+ ${name:#word} et al. need to treat empty the same as unset, to
+ avoid incorrect NO_UNSET error
+
+ * 33116: Src/hist.c: followup to 32580 to prevent double-locking
+ with shared or incremental history
+
+ * unposted: Doc/Zsh/expn.yo: clarify ${(~j.|.)array} example
+
+2014-08-21 Mikael Magnusson
+
+ * 33061: Completion/Zsh/Command/_setopt,
+ Completion/Zsh/Command/_unsetopt: More useful setopt / unsetopt
+ completion.
+
+2014-09-04 Peter Stephenson
+
+ * 33110: Doc/Zsh/expn.yo: document use of $IFS[1] for variable
+ padding.
+
+2014-09-04 Peter Stephenson
+
+ * Alexandre Rames: 33108: Completion/Unix/Command/_stgit:
+ --patch completion.
+
+ * 33091: Doc/Zsh/builtins.yo: improve documentation for ttyctl.
+
+2014-09-03 Barton E. Schaefer
+
+ * 33100: Src/exec.c: check $fd more rigorously in "exec {fd}<&-"
+
+ * 33088: Completion/Base/Widget/_complete_debug: indentation in $PS4
+
+2014-09-01 Peter Stephenson
+
+ * Mark Oteiza: 33081: Completion/Unix/Type/_mime_types: suppress
+ error message if unnecessary file not found.
+
+2014-08-31 Barton E. Schaefer
+
+ * unposted: Test/A05execution.ztst: further tweaking of the
+ descriptor leak regression test that sometimes hangs
+
+ * 33077: Src/exec.c: SHTTY = -1 when closing it in closem()
+
+2014-08-30 Barton E. Schaefer
+
+ * 33070: Doc/Zsh/prompt.yo, Src/prompt.c: add %(e..) based on %e
+
+ * 33069: Completion/Base/Completer/_expand_alias: remove internal
+ quoting before looking up aliases when expanding aliases in an
+ unquoted word
+
+2014-08-29 Peter Stephenson
+
+ * 33057: Doc/Zsh/prompt.yo, Src/prompt.c: %e in prompts shows
+ evaluation / execution depth.
+
+2014-08-28 Peter Stephenson
+
+ * 33062: Etc/zsh-development-guide: update note on use of
+ .distfiles based on 33047.
+
+ * unposted: Config/version.mk: update to 5.0.6-dev-0 for new
+ commits post release.
+
+ * unposted: Config/version.mk: 5.0.6.
+
+2014-08-24 Peter Stephenson
+
+ * unposted: Config/version.mk: 5.0.5-dev-3.
+
+2014-08-24 Barton E. Schaefer
+
+ * unposted (see 33050): Completion/Unix/Command/_git: un-transpose
+ help text for git merge -{-no,}-verify
+
+2014-08-23 Peter Stephenson
+
+ * 33047: .distfiles, Completion/.distfiles,
+ Completion/AIX/.distfiles, Completion/AIX/Command/.distfiles,
+ Completion/AIX/Type/.distfiles, Completion/BSD/.distfiles,
+ Completion/BSD/Command/.distfiles, Completion/Base/.distfiles,
+ Completion/Base/Completer/.distfiles,
+ Completion/Base/Core/.distfiles,
+ Completion/Base/Utility/.distfiles,
+ Completion/Base/Widget/.distfiles,
+ Completion/Cygwin/Command/.distfiles,
+ Completion/Darwin/Command/.distfiles,
+ Completion/Darwin/Type/.distfiles, Completion/Debian/.distfiles,
+ Completion/Debian/Command/.distfiles,
+ Completion/Debian/Type/.distfiles,
+ Completion/Linux/Command/.distfiles,
+ Completion/Linux/Type/.distfiles,
+ Completion/Mandriva/.distfiles,
+ Completion/Mandriva/Command/.distfiles,
+ Completion/Redhat/.distfiles,
+ Completion/Redhat/Command/.distfiles,
+ Completion/Solaris/Command/.distfiles,
+ Completion/Solaris/Type/.distfiles, Completion/Unix/.distfiles,
+ Completion/Unix/Command/.distfiles,
+ Completion/Unix/Type/.distfiles, Completion/X/.distfiles,
+ Completion/X/Command/.distfiles, Completion/X/Type/.distfiles,
+ Completion/X/Utility/.distfiles, Completion/Zsh/.distfiles,
+ Completion/Zsh/Command/.distfiles,
+ Completion/Zsh/Context/.distfiles,
+ Completion/Zsh/Function/.distfiles,
+ Completion/Zsh/Type/.distfiles,
+ Completion/openSUSE/Command/.distfiles, Config/.distfiles,
+ Doc/.distfiles,Doc/Zsh/.distfiles, Doc/help/.distfiles,
+ Etc/.distfiles, Functions/.distfiles,
+ Functions/Calendar/.distfiles, Functions/Chpwd/.distfiles,
+ Functions/Compctl/.distfiles, Functions/Example/.distfiles,
+ Functions/Exceptions/.distfiles, Functions/MIME/.distfiles,
+ Functions/Misc/.distfiles, Functions/Newuser/.distfiles,
+ Functions/Prompts/.distfiles, Functions/TCP/.distfiles,
+ Functions/VCS_Info/.distfiles,
+ Functions/VCS_Info/Backends/.distfiles,
+ Functions/Zftp/.distfiles, Functions/Zle/.distfiles,
+ Misc/.distfiles, Scripts/.distfiles, Src/.distfiles,
+ Src/Builtins/.distfiles, Src/Modules/.distfiles,
+ Src/Zle/.distfiles, StartupFiles/.distfiles, Test/.distfiles,
+ Util/.distfiles, Util/mkdisttree.sh: Files controlled by git
+ are part of the source distribution unless explicitly included
+ in DISTFILES_NOT. The .distfiles file is still needed for
+ the directory to be processed.
+
+ * unposted: Etc/.gitignore: ignore generated FAQ*.html files.
+
+2014-08-23 Barton E. Schaefer
+
+ * 33046: Completion/Unix/Command/.distfiles,
+ Completion/Unix/Command/_chsh, Completion/Unix/Type/_users: new
+ completion for "chsh"
+
+2014-08-22 Barton E. Schaefer
+
+ * 33042: NEWS, Src/jobs.c: $? and $pipestatus report 128+signal
+ number for stopped jobs as well as terminated jobs
+
+2014-08-21 Mikael Magnusson
+
+ * 33038: Src/glob.c: Fix {a..b} expansion hanging when either
+ endpoint is a literal NUL character
+
+2014-08-20 Barton E. Schaefer
+
+ * Lokesh Mandvekar: 33032: Completion/Linux/Command/_docker,
+ Completion/Linux/Command/.distfiles: new completion for docker
+
+2014-08-15 Barton E. Schaefer
+
+ * unposted (see 33006): Test/A05execution.ztst: timeout the final
+ "read" in hung shell regression
+
+ * 33012: Src/utils.c: add an error return value (-1) to xsymlinks()
+ to differentiate when xbuf is set to the empty string; silences
+ bogus warning about failed expansion
+
+2014-08-14 Oliver Kiddle
+
+ * 32998: Completion/Unix/Command/_dsh, Completion/Unix/Command/_nm,
+ Completion/Unix/Command/_mosh, Completion/Unix/Command/_rsync,
+ Completion/Unix/Command/_wget: completion function updates
+
+ * 32997: Completion/Base/Utility/_sequence, Doc/Zsh/compsys.yo,
+ Completion/Unix/Command/_mount, Completion/Unix/Command/_nmap,
+ Completion/Unix/Command/_pgrep, Completion/Unix/Command/_zip:
+ add completion utility function for lists
+
+2014-08-14 Peter Stephenson
+
+ * 33002: Doc/Zsh/tcpsys.yo, Functions/TCP/tcp_expect: add option
+ -P to tcp_expect for tagging matches with a string rather than
+ a parameter index.
+
+2014-08-13 Oliver Kiddle
+
+ * 32925: Completion/Zsh/Command/_kill: complete process groups,
+ partly as a way to suppress insertion of ambiguous PID prefix
+
+ * 32893: Completion/Unix/Type/_pids: move use of _call_program
+ inside the _tags loop to allow processes to be separated
+
+2014-08-12 Peter Stephenson
+
+ * Config/version.mk: update to 5.0.5-dev-2.
+
+2014-08-12 Mikael Magnusson
+
+ * 32985: NEWS: Add NEWS entry for array zipping operators.
+
+2014-08-12 Peter Stephenson
+
+ * Axel Beckert: 32975, 32984: Doc/Zsh/Makefile.in: texi2html.conf
+ location was inconsistent when building out of tree.
+
+2014-08-10 Peter Stephenson
+
+ * unposted: Completion/Base/Completer/.distfiles,
+ Completion/Linux/Command/.distfiles,
+ Completion/Unix/Command/.distfiles, Config/version.mk,
+ Etc/.distfiles, Etc/FAQ.yo, Functions/Zle/.distfiles, NEWS,
+ README: updates for 5.0.5-dev-1 and 5.0.6 release.
+
+2014-08-10 Axel Beckert
+
+ * unposted: Doc/Zsh/expn.yo: Fix typo.
+
+2014-08-08 Barton E. Schaefer
+
+ * unposted: NEWS, Doc/Zsh/prompt.yo: mention 32971 in NEWS,
+ clarify RPROMPT behavior in docs.
+
+2014-08-07 Barton E. Schaefer
+
+ * 32971 (plus doc tweak): Doc/Zsh/prompt.yo, Src/prompt.c:
+ negative argument with %(l..) conditional and with %<< or %>>
+ truncation calculates space available before right margin
+ (positive argument still counts space used since left margin).
+
+2014-08-06 Peter Stephenson
+
+ * unposted, see 32968: Completion/openSUSE/Command/.distfiles
+ Completion/openSUSE/Command/_SuSEconfig ->
+ Completion/openSUSE/Command/_SUSEconfig: rename file.
+
+2014-08-04 Barton E. Schaefer
+
+ * Miles Ohlrich: 32958: Src/Zle/compctl.c: bitwise logic fix
+
+2014-08-04 Peter Stephenson
+
+ * 32954: Doc/Zsh/expn.yo: missed this.
+
+ * 32954 (plus new test): Src/cond.c, Test/D02glob.ztst:
+ (#q) on patterns with [[ ... = ... ] and [[ ... != ... ]]
+ shouldn't force a glob, it should simply be ignored.
+
+ * unposted: Src/subst.c: remove unused variables.
+
+2014-08-04 Mikael Magnusson
+
+ * 32949 (wip 32928, 32937): Doc/Zsh/expn.yo, Src/subst.c,
+ Test/D04parameter.ztst: Add :^ and :^^ for zipping arrays.
+
+2014-08-03 Peter Stephenson
+
+ * 32944: Doc/Zsh/builtins.yo: read -qs is handled properly.
+
+ * users/19006: Doc/Zsh/expn.yo: document position of
+ RC_EXPAND_PARAM handling during parameter substitution.
+
+2014-08-01 Peter Stephenson
+
+ * 32932: Src/glob.c, Src/utils.c: add hmkarray() and
+ use to fix leak.
+
+2014-07-31 Barton E. Schaefer
+
+ * 32931: Src/glob.c: with NO_NOMATCH, using a subscript glob
+ qualifier on a not-matching pattern should still return the
+ original pattern
+
+2014-07-30 Peter Stephenson
+
+ * unposted: Src/Builtins/sched.c, Src/Modules/datetime.c,
+ Src/Modules/stat.c: missed updates to ztrftime().
+
+ * 32919: Doc/Zsh/tcpsys.yo Functions/TCP/tcp_output: %P
+ at start of prompt in TCP function system causes standard
+ %-style substitution.
+
+ * 32918: Doc/Zsh/prompt.yo, Src/builtin.c,Src/prompt.c,
+ Src/utils.c, Src/watch.c: add ability to display times with
+ fractions of a second in prompts.
+
+2014-07-28 Barton E. Schaefer
+
+ * 32593: Completion/Unix/Command/_qemu: update --vga option
+
+2014-07-26 Axel Beckert
+
+ * Omari Norman: 32817: Add completion for moosic.
+
+ * Sebastian Ramacher: 32816: Add completion for bpython and
+ variants.
+
+ * 32911: Expand bpython completion to bpython2 and bpython3.
+
+2014-07-26 Barton E. Schaefer
+
+ * 32910: Src/mkmakemod.sh: quiet update of timestamp files
+
+2014-07-24 Barton E. Schaefer
+
+ * 32853: configure.ac, Src/mem.c, Src/zsh_system.h: redefine
+ the VARARR() macro to use heap rather than stack allocation;
+ enable old behavior via "configure --with-stack-allocation"
+
+ * unposted (see 32892): Src/builtins.c: 'fc -I' is an error
+
+ * 32903: Src/Modules/parameter.c: new empty (unset) elements in
+ the special parameter hash tables are special themselves, so that
+ adding elements via assignment syntax handles them correctly.
+
+2014-07-24 Peter Stephenson
+
+ * unposted: Functions/Zle/replace-argument, Doc/Zsh/contrib.yo:
+ allow negative numeric prefix to count backwards from last
+ argument.
+
+2014-07-23 Peter Stephenson
+
+ * Jai Keerthan: users/18981: Completion/Unix/Command/_tmux:
+ improved function completion.
+
+2014-07-23 Barton E. Schaefer
+
+ * 32898 (credit Jun T.): Doc/Zsh/mod_pcre.yo: fix bug in 32891.
+
+2014-07-23 Ansgar Burchardt
+
+ * 32895: Completion/Unix/Command/_nm: Match more shared library
+ names.
+
+2014-07-20 Barton E. Schaefer
+
+ * unposted: Doc/Zsh/builtins.yo: force retention of whitespace
+ in "fc" item prototype
+
+ * 32891: Doc/Zsh/mod_pcre.yo Src/Modules/pcre.c: the CASE_MATCH
+ option should apply to =~ when using pcre; fix pcre_match bug
+ with handling of empty string argument.
+
+2014-07-17 Barton E. Schaefer
+
+ * 32882 (cf. Augie Fackler 32879): Src/hist.c: restore correct
+ reload of backslash-continuation lines from history, broken by
+ workers/30443 just before the zsh 5.0.0 release; fix bad history
+ write of events ending with an even number of backslashes.
+
+2014-07-17 Oliver Kiddle
+
+ * 32849: Completion/Linux/Command/_ss: new completion function
+
+ * 32848: Completion/Unix/Command/_perl,
+ Completion/Unix/Command/_python, Completion/Unix/Command/_ruby:
+ fix words array before using _normal for script arguments
+
+2014-07-17 Peter Stephenson
+
+ * 32866 (plus extra undo fix in read-from-minibuffer):
+ Doc/Zsh/contrib.yo, Functions/Zle/read-from-minibuffer,
+ Functions/Zle/replace-argument: new replace-argument function;
+ fixes in read-from-minibuffer not to pass through numeric
+ argument to recursive edit and to hide minibuffer edit from
+ undo history.
+
+2014-07-15 Peter Stephenson
+
+ * Koen Wilde: 32863: Completion/Unix/Command/_mpc: mpc "insert"
+ command.
+
+2014-07-08 Peter Stephenson
+
+ * Dominic Hopf: 32837: Config/defs.mk.in: improve handling of
+ installation location for help directories.
+
+ * 32832: Doc/Zsh/grammar.yo Doc/Zsh/params.yo: attempt to
+ improve documentation for how assignment works.
+
+2014-07-03 Axel Beckert
+
+ * Felipe Sateler: 32819: Completion/Debian/Command/_axi-cache:
+ Update for axi-cache completion.
+
+ * Vincent Lefevre: 32818: Completion/Unix/Command/_gzip:
+ --rsyncable option is missing
+
+ * Daniel Bolton: 32815: Completion/Debian/Command/_aptitude:
+ missing resolver options
+
+ * Sebastian Ramacher: 32814: Completion/Debian/Command/_dpkg:
+ Add --add-architecture, --remove-architecture, and
+ --print-foreign-architectures options.
+
+2014-07-03 Mikael Magnusson
+
+ * 32821: Completion/Unix/Command/_gcc: Update _gcc as of GCC
+ 4.8.3 for generic options and x86.
+
+2014-07-03 Peter Stephenson
+
+ * Jun T: 32833: Completion/Unix/Command/_python,
+ Completion/Unix/Command/_ruby: complete file arguments as for
+ perl.
+
+2014-06-30 Peter Stephenson
+
+ * Jun T: 32823: Completion/Unix/Command/_perl: complete file
+ instead of script after -e.
+
+2014-06-26 Peter Stephenson
+
+ * Jun T: 32812: Doc/zsh.yo, Doc/ztexi.yo: put table of contents
+ at front of manual.
+
+2014-06-26 Peter Stephenson
+
+ * 32799: Doc/Zsh/builtins.yo, Src/Builtins/rlimits.c: resource
+ NTHR is not properly handled on netBSD.
+
+2014-06-24 Peter Stephenson
+
+ * 32789: Src/lex.c Src/mem.c Src/zsh_system.h configure.ac:
+ --enable-zsh-valgrind allows valgrind to analyse heap
+ allocations.
+
+2014-06-16 Peter Stephenson
+
+ * Jun T: 32781: Doc/Zsh/options.yo: source builtin and path
+ search doc.
+
+2014-06-14 Jun T
+
+ * 32779: Doc/Zsh/options.yo: fix a typo in options.yo
+
+2014-06-13 Peter Stephenson
+
+ * 32768, with further modifications: Doc/Zsh/options.yo,
+ Src/exec.c, Src/options.c, Src/zsh.h, Test/E01options.ztst,
+ Test/ztst.zsh: LOCAL_LOOPS option to restrict effect of
+ continue and break in function scope.
+
+ * 32666: Doc/Zsh/compat.yo: shell emulation based on executable
+ name incompletely documented.
+
+2014-06-11 Barton E. Schaefer
+
+ * Jun T: 32767: Src/glob.c: another spot to tweak bracechardots()
+
+2014-06-10 Barton E. Schaefer
+
+ * 32766: Src/glob.c: bracechardots() agrees with xpandbraces()
+ about what constitutes a {C1..C2} pattern, thus preventing crash
+
+ * Jun T: 32765: Src/glob.c: fix build when not MULTIBYTE_SUPPORT
+
+2014-06-09 Peter Stephenson
+
+ * Jun T: 32755: Doc/Zsh/grammar.yo: move line that was in the
+ wrong place.
+
+2014-06-07 Barton E. Schaefer
+
+ * Nikolas Garofil: 32737: Src/utils.c: properly ifdef declarations
+
+ * Nikolas Garofil: 32736 (tweak per 32741): Src/zsh_system.h:
+ memmove() should return its dest argument
+
+ * Nikolas Garofil: 32735: Src/signals.c: define ret before use
+
+ * Nikolas Garofil: 32734: Src/mem.c: remove unused pointers
+
+ * Nikolas Garofil: 32733: Src/prototypes.h: use size_t in bcopy()
+
+ * Nikolas Garofil: 32732 (tweak per 32739): Src/compat.c: fix
+ const declaration inconsistency
+
+2014-06-06 Peter Stephenson
+
+ * Jun T: 32719: Doc/Zsh/contrib.yo: minor issues.
+
+ * Jun T: 32715: Doc/Zsh/calsys.yo, Doc/Zsh/grammar.yo,
+ Doc/Zsh/zle.yo: formatting fixes.
+
+ * 32682 with tweaks: Doc/Zsh/options.yo, Src/hist.c,
+ Src/options.c, Src/zsh.h: INC_APPEND_HISTORY_TIME is new
+ behaviour, with INC_APPEND_HISTORY reverting to its previous
+ behaviour.
+
+ * Andrew Magee: 32698: Completion/Unix/Command/_hg: show
+ committable files.
+
+2014-06-05 Barton E. Schaefer
+
+ * 32723: Src/glob.c: add braces around some if/else branches
+
+ * 32716 (via Jun T. 31714): Src/utils.c: properly test iconv
+ return values for error conditions
+
+2014-06-04 Barton E. Schaefer
+
+ * 32711: Test/A07control.ztst: run "continue" test in a new
+ shell, lest it inadvertently continue the loop that reads the
+ test chunks from this file
+
+ * Daniel Shahaf: 32708: Doc/Zsh/expn.yo, Src/glob.c,
+ Test/D02glob.ztst: glob qualifier (Y) implies (oN), plus
+ incidental patch to avoid adding a meaningless bitvalue to
+ sort-order flags
+
+2014-06-03 Barton E. Schaefer
+
+ * Daniel Shahaf: 32694: Completion/Zsh/Type/_globquals,
+ Doc/Zsh/expn.yo, Src/glob.c, Test/D02glob.ztst: the number
+ of matches to find is the suffix argument of (Y) qualifier
+
+2014-06-03 Peter Stephenson
+
+ * Jun T: 32681: Doc/Zsh/zle.yo: formatting issue.
+
+2014-06-03 Peter Stephenson
+
+ * unposted: Src/cond.c: restore cond_match() in case used in
+ modules.
+
+2014-06-02 Barton E. Schaefer
+
+ * 32656 (via Jun T. via waltarix on github): when __APPLE__ is
+ defined at compile, normalize Unicode filenames in zreaddir()
+
+2014-06-02 Peter Stephenson
+
+ * Daniel Shahaf: users/18870: Src/glob.c, Test/D02glob.ztst:
+ glob scanner needed some coaxing with counting matches with (Y)
+ glob qualifier.
+
+2014-06-02 Daniel Shahaf
+
+ * 32662: Functions/VCS_Info/Backends/VCS_INFO_get_data_git:
+ vcs_info git: Fix stagedstr for empty repos
+
+2014-06-01 Barton E. Schaefer
+
+ * 32653: Completion/Unix/Command/_php: complete files with the
+ ".phar" extension as well as ".php", and respect the suffixes
+ zstyle to change this
+
+ * 32634 (plus doc): Doc/Zsh/options.yo, Doc/Zsh/params.yo,
+ Src/init.c, Src/options.c, Src/params.c, Src/zsh.h: add the
+ POSIX_ARGZERO option to allow toggling between the original
+ value of $0 and the value set by FUNCTION_ARGZERO
+
+ * Daniel Shahaf: users/18857: Doc/Zsh/expn.yo, Src/glob.c,
+ Test/D02glob.ztst: add (Y) glob qualifier
+
+2014-06-01 Peter Stephenson
+
+ * 32640: Doc/Zsh/cond.yo, Doc/Zsh/expn.yo, NEWS, Src/cond.c,
+ Src/glob.c, Test/D02glob.ztst: (#q) with EXTENDED_GLOB forces
+ globbing in [[ ... ]].
+
+2014-05-29 Peter Stephenson
+
+ * 32624: Src/builtin.c, Src/jobs.c: use correct scaling factor
+ (clock ticks) for times.
+
+ * Keerthan Jai: users/18860: Completion/Unix/Command/_man: man
+ -M overrides manpath.
+
+ * unposted: Src/params.c: use DIGBUFSIZE for pipestatus numeric
+ buffer.
+
+2014-05-29 Daniel Shahaf
+
+ * 32619: Functions/VCS_Info/Backends/VCS_INFO_get_data_svn:
+ vcs_info svn: Use the revision of cwd
+
+ * 32621: Functions/VCS_Info/Backends/VCS_INFO_get_data_svn:
+ vcs_info svn: 'Fix set-branch-format' when in subdirs
+
+ * 32620: Doc/Zsh/contrib.yo: Typo fix after commit eb4c70d
+
+2014-05-18 Peter Stephenson
+
+ * Jun T: 32616: Src/Builtins/rlimits.c: unnecessary printf
+ argument in limits on some systems.
+
+2014-05-16 Peter Stephenson
+
+ * Roman Neuhauser: users/18827 (plus tweaks to original
+ comments): Doc/Zsh/contrib.yo: more efficient way of extracting
+ hg bookmarks.
+
+2014-05-13 Barton E. Schaefer
+
+ * 32609: Src/parse.c, Test/CO2cond.ztst: [[ $var ]] behaves as
+ [[ -n $var ]] for bash/ksh compatibility; restore ksh [ -t ]
+ compatibility when POSIX_BUILTINS is not set; allow operators
+ defined by modules to be called with no arguments, although
+ this affects only runtime interpretation, not parsing.
+
+2014-05-09 Peter Stephenson
+
+ * Eric Cook: 32602: Doc/Zsh/grammar.yo: status of try + always
+ block is from the former, not the latter.
+
+2014-05-08 Peter Stephenson
+
+ * m0viefreak: 32600: Src/Zle/computil.c: fix problem with
+ _arguments thinking -- is a single letter option called '-',
+ which it isn't.
+
+2014-05-06 Daniel Shahaf
+
+ * 32597: Functions/VCS_Info/Backends/VCS_INFO_get_data_git:
+ vcs_info git: Describe detached heads symbolically.
+
+2014-04-29 Peter Stephenson
+
+ * Tomoki Sekiyama: 32592: add CORRECT_IGNORE_FILE variable.
+
+2014-04-23 Peter Stephenson
+
+ * Sebastien Alaiwan: 32562: Completion/Unix/Command/_bzr:
+ updates for bzr completion.
+
+ * Jasper Lievisse Adriaanse: 32558: configure.ac:
+ _XOPEN_SOURCE_EXTENDED now works OK on OpenBSD.
+
+2014-04-25 Barton E. Schaefer
+
+ * 32580: Src/hist.c: avoid indefinite wait in lockhistfile() by
+ checking for lock file time stamp far in the future relative to
+ the local clock. Change behavior of HIST_FCNTL_LOCK to use only
+ fcntl() locking, rather than applying both kinds of lock.
+
+2014-04-20 Barton E. Schaefer
+
+ * 32569: Src/loop.c: lastval ($?) should not be reset between
+ word list substitution and loop body execution in for/select.
+
+ * 32568: Src/exec.c, Src/loop.c: consistency in handling of errflag
+ condition during substitutions in for/select word lists, function
+ definition name position, and anonymous function argument lists.
+
+2014-04-17 Barton E. Schaefer
+
+ * Andrew Waldron: 32552 (updated by 32560): Src/exec.c,
+ Src/parse.c, Src/subst.c, Test/C04funcdef.ztst: fix segfault
+ when using process substitution in anonymous function argument
+ list; disallow process substitution in function name position.
+
+2014-04-15 Barton E. Schaefer
+
+ * Jun T: 32546: Completion/Unix/Type/_path_files: better handling
+ of ignored files when using -W to specify prefixes.
+
+2014-04-13 Barton E. Schaefer
+
+ * 32540: Src/Zle/zle_tricky.c, Src/Zle/zle_utils.c: following
+ successful history expansion, discard saved line position data
+ rather than restoring from it (updates 32531).
+
+2014-04-07 Peter Stephenson
+
+ * 32527: Doc/Zsh/contrib.yo, Functions/Misc/zcalc,
+ Functions/Zle/zcalc-auto-insert: zcalc-auto-insert widget
+ for key binding in zcalc.
+
+2014-04-06 Barton E. Schaefer
+
+ * unposted: Doc/Zsh/options.yo: fix typo in option cross-reference
+
+ * 32531: Src/Zle/zle_refresh.c, Src/Zle/zle_tricky.c, Src/hist.c:
+ fix memory leaks detected by valgrind, two in ZLE region highlight
+ and one in :A history modifier.
+
+2014-04-06 Peter Stephenson
+
+ * Sebastian Ramacher: 32533: Completion/Debian/Command/_apt: add
+ completion for "apt-mark".
+
+ * Alessandro Ghedini: 32532: Completion/Debian/Command/_apt:
+ support 'apt' command.
+
+ * 32530: llua: Completion/Unix/Command/_zfs: repeatable -o
+ argument.
+
+ * 32521: Doc/Zsh/params.yo: document that LOGNAME comes
+ from getlogin().
+
+2014-04-05 Daniel Shahaf
+
+ * 32528: Completion/Zsh/Command/_zstyle, Doc/Zsh/contrib.yo,
+ Functions/VCS_Info/Backends/VCS_INFO_get_data_git,
+ Misc/vcs_info-examples: vcs_info: Add check-for-staged-changes
+
+ * 32528: Doc/Zsh/contrib.yo: vcs_info: Document 'post-backend'
+ hook and bzr 'check-for-changes' support.
+
+2014-03-28 Peter Stephenson
+
+ * Danek Duvall: 32505: Completion/Unix/Command/_pgrep: improved
+ Solaris compatibility for pgrep completion.
+
+2014-03-23 Barton E. Schaefer
+
+ * m0viefreak: users/18660: Src/Zle/compresult.c,
+ Src/Zle/zle_misc.c, Src/Zle/zle_refresh.c: fix auto-removable
+ suffix highlighting
+
+ * m0viefreak: users/18657: Completion/Unix/Command/_git: fix
+ compadd for auto-removable suffix in _git_stash
+
+ * m0viefreak: users/18655: Completion/Unix/Command/_git: fix
+ compadd for auto-removable suffix in _git_commit_ranges
+
+2014-03-21 Peter Stephenson
+
+ * Takeshi Banse: 32502: Completion/Unix/Command/_git: fix typo
+ in argument list.
+
+2014-03-20 Peter Stephenson
+
+ * users/18644: Doc/Zsh/zle.yo: bindkey -s doc should refer to
+ documentation for argument interpretation.
+
+ * Completion/Unix/Command/_perforce: finally, after more than
+ ten years, complete depots after // in file paths as it always
+ should have done.
+
+2014-03-18 Barton E. Schaefer
+
+ * 32500: Src/pattern.c: handle interrupts during pattern matching
+
+ * Jun T: 32497: Test/X02zlevi.ztst, Test/comptest: avoid using
+ comptesteval in the middle of a series of tests; the change in
+ control required for sourcing the command file can confuse the
+ simulated interactive input
+
+2014-03-17 Peter Stephenson
+
+ * Jun T: 32494: Doc/zman.yo: Yodl hack to fix indentation
+ in nroff -man output.
+
+ * Jun T: 32493: Doc/Zsh/contrib.yo, Doc/Zsh/mod_pcre.yo,
+ Doc/Zsh/mod_regex.yo, Doc/Zsh/mod_sched.yo: some formatting
+ fixes.
+
+2014-03-16 Peter Stephenson
+
+ * Mariusz Fik: 32847: Completion/openSUSE/Command/_zypper: new
+ options.
+
+2014-03-14 Peter Stephenson
+
+ * unposted: Doc/Zsh/options.yo: document effect of 32479.
+
+ * Jun T: 32482: Doc/zman.yo: fix character translation table
+ usage with some versions of Yodl.
+
+2014-03-14 Peter Stephenson
+
+ * 32479: Src/builtin.c, Src/signals.c: with POSIXTRAPS
+ never propagate an implicit return from within a trap.
+
+2014-03-13 Peter Stephenson
+
+ * Kosuke Asami: 32473: Completion/Unix/Command/_pgrep: tidy up
+
+ * Kosuke Asami: 32471: Completion/Unix/Command/_pgrep: handle
+ BSD process options.
+
+ * Kosuke Asami: 32472: Completion/Unix/Command/_pgrep: new options.
+
+2014-03-13 Peter Stephenson
+
+ * Jun T: 32480: Src/Zle/zle_vi.c: fix crash in vi mode when too
+ few previous changes.
+
+2014-03-09 Barton E. Schaefer
+
+ * 32468: Src/Modules/zutil.c: save/restore match/mbegin/mend
+ when doing pattern lookups against zstyle contexts
+
+2014-03-03 Barton E. Schaefer
+
+ * users/18550: Doc/Zsh/compsys.yo: matcher-list clarifications
+
+2014-03-03 Simon Ruderich
+
+ * 32289: Doc: Add zsh version to footer in HTML documentation.
+
+2014-03-03 Oliver Kiddle
+
+ * 32441: Completion/Base/Completer/_extensions, Doc/Zsh/compsys.yo:
+ add completer for file extensions
+
+ * 32450: Src/Zle/zle_hist.c: make get-line set the history
+ number that was saved with the line
+
+ * 32448: Src/Zle/zle_params.c: fix seg fault after recursive-edit
+
+ * 32439 (with Yuri D'Elia): Completion/Base/Core/_main_complete:
+ add new show-ambiguity style
+
+ * 32436: Src/Zle/complist.c: allow = to be used in ZLS_COLORS
+ patterns if it is quoted or inside parentheses
+
+2014-03-01 Peter Stephenson
+
+ * 32453: Functions/Misc/zcalc: fix default base handling.
+
+ * Manuel Presnitz: 32412 modified c.f. 32415:
+ Completion/Zsh/Type/_globquals, Doc/Zsh/expn.yo, Src/glob.c,
+ Src/zsh.h: gigabyte and terabyte units for glob qualifiers.
+
+2014-02-28 Peter Stephenson
+
+ * users/18531 plus doc etc.: Doc/Zsh/contrib.yo,
+ Functions/Zle/.distfiles, Functions/Zle/expand-absolute-path:
+ new expand-absolute-path ZLE widget.
+
+2014-02-26 Peter Stephenson
+
+ * Jun T: 32435: Completion/Base/Core/_description,
+ Completion/Unix/Command/_rm: improved quoting for ignore-line
+ style.
+
+2014-02-24 Oliver Kiddle
+
+ * unposted: Doc/Zsh/compsys.yo: fix typo
+
+ * unposted: Completion/X/Command/_x_utils: duplicate local
+ statement was printing variable value
+
+ * users/18498: Completion/Base/Completer/_expand_alias: observe
+ add-space style in _expand_alias so suffix can be disabled
+
+ * users/18485: Completion/Unix/Command/_git: add .. as an
+ auto-removable suffix in git revision ranges
+
+2014-02-24 Peter Stephenson
+
+ * Hong Xu: 32492: Completion/Unix/Command/_npm: fix outdated
+ completion.
+
+ * Sebastien Alaiwan: 32462: Completion/Unix/Command/_bzr:
+ improve completion with directory path.
+
+2014-02-23 Barton E. Schaefer
+
+ * 32427: Doc/Zsh/zle.yo, Src/Zle/zle_main.c: avoid busy loop
+ on closed descriptors for "zle -F" handlers. Assure that the
+ handlers are called on error conditions and document the extra
+ argument that is passed in the error case.
+
+2014-02-19 Peter Stephenson
+
+ * 32414: Src/glob.c: improved error message for missing glob
+ qualifier delimiters.
+
+2014-02-18 Peter Stephenson
+
+ * Eric Cook: 32408: Completion/Linux/Command/_btrfs: additional
+ completions
+
+ * Eric Cook: 32409: Completion/Linux/Command/_btrfs: updated
+ completion for subcommands.
+
+ * Eric Cook: 32411: Completion/Linux/Command/_btrfs: minor typo.
+
+ * Eric Cook: 32410: Completion/Linux/Command/_btrfs: remove hard tabs.
+
+ * m0viefreak: Util/helpfiles: 32402: prefer col -bx to colcrt.
+
+ * m0viefreak: Util/helpfiles: 32405: Util/helpfiles: remove old
+ example now shell code is integrated in distribution.
+
+ * m0viefreak: 32404: Util/helpfiles: use env to find perl.
+
+ * m0viefreak: 32403: Doc/Zsh/contrib.yo: update zshcontrib
+ manual for helpfiles improvements.
+
+2014-02-18 m0viefreak
+
+ * 32396: Completion/Unix/Command/_git: _git: fix
+ __git_committish_range_{first,last} and __git_is_committish_range
+
+ * 32395: Completion/Unix/Command/_git: _git: diff: refactor and
+ fix wrong completions
+
+ * 32397: Completion/Unix/Command/_git: _git: fix __git_submodules
+ to only use the actual name of the submodule
+
+ * 32398: Completion/Unix/Command/_git: _git: completion updates up
+ to latest git v1.9.0
+
+2014-02-17 Barton E. Schaefer
+
+ * unposted (users/18468): Doc/Zsh/builtins.yo, Doc/Zsh/params.yo:
+ document interactions of "fc -R" etc. with "fc -l" and $HISTCMD
+
+2014-02-15 Barton E. Schaefer
+
+ * 32389 (with Jun Takimoto): Test/X02zlevi.ztst, Test/comptest:
+ additional PTY and keybinding adjustments
+
+ * 32388: Doc/Zsh/mod_zutil.yo, Src/Modules/zutil.c: zparseopts -K
+ preserves individual associative array elements
+
+2014-02-14 Oliver Kiddle
+
+ * 32361: Src/Zle/zle_tricky.c: don't reset lastline before completion
+
+2014-02-13 Barton E. Schaefer
+
+ * 32377: Test/comptest: change keybindings and PTY control for
+ vi-mode tests to make them more reliable
+
+2014-02-08 Barton E. Schaefer
+
+ * 32365: Src/Zle/zle_refresh.c, Src/init.c: another stab at the
+ heuristic for initializing rprompt_indent
+
+2014-02-07 Peter Stephenson
+
+ * Martin Vaeth: 32356: Util/helpfiles: fix a typo.
+
+2014-02-05 Oliver Kiddle
+
+ * 32355: Doc/Zsh/zle.yo Test/X02zlevi.ztst Test/comptest: document
+ and test vi mode undo changes
+
+ * 32342: Src/Zle/zle_main.c, Src/Zle/zle_vi.c: fix overstrike for vi
+ mode and use varying vi commands at line start
+
+ * 32334 (modified so KEEPSUFFIX is unchanged for vi-cmd-mode; based on
+ Jun T: 32324, 32330), 32347, Jun T: 32344, 32349: Src/Zle/iwidgets.list,
+ Src/Zle/zle_main.c, Src/Zle/zle_utils.c, Src/Zle/zle_vi.c
+ add split-undo zle widget for configurable breaks in undo sequence
+
+2014-02-02 Barton E. Schaefer
+
+ * unposted: Doc/Zsh/builtins.yo, Doc/Zsh/expn.yo,
+ Doc/Zsh/roadmap.yo: tweak index markers and related whitespace
+ to make appearance consistent with other pages
+
+ * 32341: Src/init.c: guess at best ZLE_RPROMPT_INDENT based on
+ termcap/terminfo description
+
+ * unposted: Src/Zle/zle_tricky.c: whitespace in comment
+
+ * 32340: Src/init.c, Src/Zle/compctl.c: add specifics to error
+ messages explaining failure of "read -c" / "read -l".
+
+ * 32338: Doc/Makefile.in: create Doc/help.txt as an empty file
+ when Util/helpfiles fails, so that the rest of the build does not
+ yeild a spurious error
+
+ * 32337: Src/params.c: initialize several special parameters to
+ unset for better compatibility in emulation modes; for the same
+ reason, remove the readonly flag from $_
+
+2014-01-31 Oliver Kiddle
+
+ * 32314: Src/Zle/zle_main.c, Src/Zle/zle_tricky.c,
+ Src/Zle/zle_utils.c, Src/Zle/zle_vi.c: merge undo events
+ corresponding to vi change in the vi-cmd-mode widget so undo from
+ insert mode is useful again
+
+2014-01-30 Barton E. Schaefer
+
+ * 32322: Completion/Base/Core/_main_complete: display a message
+ when completion is interrupted from the keyboard
+
+2014-01-30 Peter Stephenson
+
+ * Jun T: 32300: Completion/Unix/Command/_od: +
+ Completion/Unix/Command/.distfiles: new completion.
+
+2014-01-29 Peter Stephenson
+
+ * Christian Hesse: 32316: Completion/Unix/Command/_ssh: complete
+ new ssh key type.
+
+2014-01-28 Peter Stephenson
+
+ * 32303: Src/Zle/compcore.c, Completion/Zsh/Type/_parameters,
+ Completion/Zsh/Context/_brace_parameter: allow completion
+ of modifiers for parameters in a fairly simplistic way.
+
+2014-01-28 Peter Stephenson
+
+ * 32308 (slightly modified to use "a" as the vi command at start
+ of line): Src/Zle/zle_main.c, Src/Zle/zle_vi.c: improve
+ initialising of vi mode change when entering viins at start of
+ editing.
+
+2014-01-27 Barton E. Schaefer
+
+ * users/18368: Completion/Unix/Command/_git: in __git_files,
+ retry ls-files if nothing matched the prefix pattern, to give
+ _multi_parts a shot at the whole file list. Restores partial
+ path completion inadvertently removed by 31159.
+
+2014-01-27 Peter Stephenson
+
+ * unposted: Src/zsh.mdd: update 31983 to suppress stdout from
+ cmp, too.
+
+2014-01-23 Bart Schaefer
+
+ * unposted: Doc/Zsh/arith.yo: use LPAR()+RPAR() instead of parens
+ in sqrt example
+
+2014-01-23 Peter Stephenson
+
+ * 32299: Doc/Zsh/arith.yo, Functions/Misc/zcalc, Src/math.c,
+ Src/params.c, Src/subst.c, Test/C01arith.ztst: add
+ ability to use "_" at the end of a [#] arithmetic expression
+ to get underscores to space numeric output.
+
+2014-01-22 Barton E. Schaefer
+
+ * unposted: Src/mem.c: reformulate 32285 to lift the fheap->sp
+ test out of the loop, improve commentary
+
+2014-01-19 Barton E. Schaefer
+
+ * 32294 (plus typo fix): Src/utils.c: prevent buffer overflow when
+ scanning very long directory paths for symbolic links
+
+ * users/18335: Completion/Zsh/Command/_typeset: avoid passing to
+ "functions" those typeset options that it does not accept
+
+2014-01-18 Barton E. Schaefer
+
+ * 32285: Src/mem.c (freeheap): when the last-arena-with-free-space
+ pointer (fheap) points to an arena that is going to be discarded
+ because it has become empty, loop back through the entire linked
+ list of arenas to find another partly-filled arena; fixes crash
+ wherein pushheap followed by freeheap could orphan the whole list
+ of arenas in some circumstances
+
+ * 32283: Src/Zle/complist.c: avoid using a negative number for
+ available vertical space when the terminal has only a small number
+ of lines; fixes crash in menu selection
+
+2014-01-17 Peter Stephenson
+
+ * Daniel Hahler: 32271: Doc/Zsh/compsys.yo: fix matcher list
+ example.
+
+2014-01-17 Peter Stephenson
+
+ * sergio: 32267: Completion/Linux/Command/_modutils: modinfo may
+ not be in user's path, so use explicit path as already done for lsmod.
+
+2014-01-17 Frank Terbeck
+
+ * 32264: Functions/VCS_Info/Backends/VCS_INFO_detect_hg: vcs_info,
+ hg: Support detecting repos using ShareExtension
+
+2014-01-16 Barton E. Schaefer
+
+ * Thomas Mitterfellner: 32265: Completion/openSUSE/Command/_zypper:
+ better handling of large lists of packages
+
+2014-01-16 Peter Stephenson
+
+ * Holger Macht: 32257: Completion/openSUSE/Command/_zypper:
+ updates.
+
+2014-01-14 Peter Stephenson
+
+ * 32255: Completion/Unix/Command/_python: complete for Python
+ with command names python2.4 ... python3.4.
+
+2014-01-11 Peter Stephenson
+
+ * 32246: Doc/Zsh/builtins.yo, Src/builtin.c, Test/.distfiles,
+ Test/B08shift.ztst: add "shift -p" to pop arguments from the end
+ of arrays.
+
+2014-01-10 Peter Stephenson
+
+ * Koen Wilde: 32245: Completion/Unix/Command/_mpc: complete more
+ arguments.
+
+2014-01-09 Peter Stephenson
+
+ * users/18298 (tidied up): Doc/Zsh/expn.yo, Src/glob.c,
+ Test/D09brace.ztst: add {..} expansion.
+
+2014-01-07 Peter Stephenson
+
+ * Mark Oteiza: 32238: suppress error output completing after ip.
+
+2014-01-06 Peter Stephenson
+
+ * unposted: Config/version.mk: update to 5.0.5-dev-0 to avoid
+ installation clash with 5.0.5 release.
+
2014-01-05 Peter Stephenson
* unposted: Config/version.mk, Doc/Zsh/compsys.yo: update
@@ -1265,7 +2661,7 @@
* users/17665: Doc/Zsh/options.yo, Src/math.c, Src/options.c,
Src/zsh.h, Test/C01arith.ztst: add FORCE_FLOAT option.
-2013-02-27 Oliver Kiddle
+2013-02-27 Oliver Kiddle
* 31076: Completion/Linux/Command/_yast,
Completion/Unix/Type/_pids, Completion/Unix/Type/_pdf:
@@ -1286,7 +2682,7 @@
* 31060: Src/builtin.c: "+" before a flag for "functions" or
"autoload" should suppress display of function body.
-2013-02-21 Oliver Kiddle
+2013-02-21 Oliver Kiddle
* 31058: Completion/Zsh/Command/_fc, Completion/Unix/Command/_cut,
Completion/Unix/Command/_sed, Completion/Unix/Command/_wget,
@@ -1298,7 +2694,7 @@
* 31055: Completion/compaudit: missing '$' in search of /proc
file system.
-2013-02-12 Oliver Kiddle
+2013-02-12 Oliver Kiddle
* 31041: Test/comptest, Test/X02zlevi.ztst: add support for
testing line editor widgets from the test suite
@@ -1306,7 +2702,7 @@
* unposted: Etc/zsh-development-guide: remove duplication in
git guidelines
-2013-02-09 Oliver Kiddle
+2013-02-09 Oliver Kiddle
* Morita Sho: 31038: Completion/Unix/Type/_terminals:
add location of terminfo entries on Debian
@@ -1363,7 +2759,7 @@
modifiers :wq operating on an empty string crashed the shell.
The shell isn't supposed to crash.
-2013-01-20 Oliver Kiddle
+2013-01-20 Oliver Kiddle
* 30987: Completion/X/Command/_xrandr: only call xrandr when
necessary and use _call_program
@@ -1421,7 +2817,7 @@
* unposted: Config/version.mk: zsh 5.0.1.
-2012-12-18 Oliver Kiddle
+2012-12-18 Oliver Kiddle
* 30877: Etc/zsh-development-guide: document git workflow
@@ -1455,7 +2851,7 @@
* users/17445: Src/math.c, Test/C01arith.ztst: fix handling of
leading zeroes in floating point.
-2012-11-20 Oliver Kiddle
+2012-11-20 Oliver Kiddle
* 30811: Completion/Linux/Command/_btrfs,
Completion/Unix/Command/_mount: new completion for btrfs and
@@ -1470,7 +2866,7 @@
* users/17042: Src/jobs.c: don't stomp the environment in "jobs -Z"
unless we've first copied it to new memory.
-2012-11-16 Oliver Kiddle
+2012-11-16 Oliver Kiddle
* 30802: Completion/Unix/Command/_find: add new command switches
@@ -1488,7 +2884,7 @@
* 30800: Michal Halenka: Completion/Unix/Command/_arping: fix
option.
-2012-11-12 Oliver Kiddle
+2012-11-12 Oliver Kiddle
* 30795: Completion/Unix/Command/_xz,
Completion/Unix/Command/_bzip2: new xz completion, new bzip2 options
@@ -1496,7 +2892,7 @@
* 30794: Completion/Unix/Command/_irssi,
Completion/Unix/Command/_mutt: update for new options
-2012-11-11 Oliver Kiddle
+2012-11-11 Oliver Kiddle
* 30793: Completion/Unix/Command/_getent,
Completion/Unix/Command/_iconv, Completion/Unix/Command/_ldd:
@@ -1516,7 +2912,7 @@
* 30780: Doc/Zsh/builds.yo: document that set -o failures are
hard but setopt failures are soft.
-2012-11-07 Oliver Kiddle
+2012-11-07 Oliver Kiddle
* Benjamin R. Haskell: 30737: Completion/Unix/Command/_git:
make custom completion functions for git aliases easier
@@ -1585,7 +2981,7 @@
Test/C04funcdef.ztst: emulate command evaluations should apply
sticky emulation to autoloads, too.
-2012-10-07 Oliver Kiddle
+2012-10-07 Oliver Kiddle
* unposted: Completion/Unix/Command/_webbrowser,
Completion/Unix/Type/_pspdf: add evince, zathura, dwb
@@ -1639,7 +3035,7 @@
Functions/VCS_Info/Backends/VCS_INFO_detect_fossil: Fix fossil
detection on unix
-2012-09-28 Oliver Kiddle
+2012-09-28 Oliver Kiddle
* 30697: Completion/Unix/Command/_dbus: new completion definition
diff -Nru zsh-5.0.5/Completion/AIX/Command/.distfiles zsh-5.0.7/Completion/AIX/Command/.distfiles
--- zsh-5.0.5/Completion/AIX/Command/.distfiles 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/AIX/Command/.distfiles 2014-10-07 18:11:30.000000000 +0000
@@ -1,4 +1,2 @@
DISTFILES_SRC='
-.distfiles
-_floppy _lscfg _lsdev _lslv _lspv _lsvg _smit
'
diff -Nru zsh-5.0.5/Completion/AIX/.distfiles zsh-5.0.7/Completion/AIX/.distfiles
--- zsh-5.0.5/Completion/AIX/.distfiles 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/AIX/.distfiles 2014-10-07 18:11:30.000000000 +0000
@@ -1,3 +1,2 @@
DISTFILES_SRC='
-.distfiles
'
diff -Nru zsh-5.0.5/Completion/AIX/Type/.distfiles zsh-5.0.7/Completion/AIX/Type/.distfiles
--- zsh-5.0.5/Completion/AIX/Type/.distfiles 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/AIX/Type/.distfiles 2014-10-07 18:11:30.000000000 +0000
@@ -1,4 +1,2 @@
DISTFILES_SRC='
-.distfiles
-_logical_volumes _object_classes _physical_volumes _volume_groups
'
diff -Nru zsh-5.0.5/Completion/Base/Completer/.distfiles zsh-5.0.7/Completion/Base/Completer/.distfiles
--- zsh-5.0.5/Completion/Base/Completer/.distfiles 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Base/Completer/.distfiles 2014-10-07 18:11:30.000000000 +0000
@@ -1,17 +1,2 @@
DISTFILES_SRC='
-.distfiles
-_all_matches
-_approximate
-_complete
-_correct
-_expand
-_expand_alias
-_history
-_ignored
-_list
-_match
-_menu
-_oldlist
-_prefix
-_user_expand
'
diff -Nru zsh-5.0.5/Completion/Base/Completer/_expand_alias zsh-5.0.7/Completion/Base/Completer/_expand_alias
--- zsh-5.0.5/Completion/Base/Completer/_expand_alias 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Base/Completer/_expand_alias 2014-10-07 18:11:30.000000000 +0000
@@ -1,7 +1,7 @@
#compdef -K _expand_alias complete-word \C-xa
local word expl tmp pre sel what
-local -a tmpa
+local -a tmpa suf
eval "$_comp_setup"
@@ -58,7 +58,8 @@
tmp="\\$tmp"
fi
fi
- $pre _wanted aliases expl alias compadd -UQ -- ${tmp%%[[:blank:]]##}
+ zstyle -T ":completion:${curcontext}:" add-space || suf=( -S '' )
+ $pre _wanted aliases expl alias compadd -UQ "$suf[@]" -- ${tmp%%[[:blank:]]##}
elif (( $#pre )) && zstyle -t ":completion:${curcontext}:" complete; then
$pre _aliases -s "$sel" -S ''
else
diff -Nru zsh-5.0.5/Completion/Base/Completer/_extensions zsh-5.0.7/Completion/Base/Completer/_extensions
--- zsh-5.0.5/Completion/Base/Completer/_extensions 1970-01-01 00:00:00.000000000 +0000
+++ zsh-5.0.7/Completion/Base/Completer/_extensions 2014-10-07 18:11:30.000000000 +0000
@@ -0,0 +1,33 @@
+#autoload
+
+# This completer completes filename extensions when completing
+# after *. or ^*. It can be used anywhere in the completer list
+# but if used after _expand, patterns that already match a file
+# will be expanded before it is called.
+
+compset -P '(#b)([~$][^/]#/|)(*/|)(\^|)\*.' || return 1
+
+local -aU files
+local -a expl suf mfiles
+
+files=( ${(e)~match[1]}${match[2]}*.* ) || return 1
+eval set -A files '${(MSI:'{1..${#${(O)files//[^.]/}[1]}}':)files%%.[^/]##}'
+files=( ${files:#.<->(.*|)} )
+
+if zstyle -t ":completion:${curcontext}:extensions" prefix-hidden; then
+ files=( ${files#.} )
+else
+ PREFIX=".$PREFIX"
+ IPREFIX="${IPREFIX%.}"
+fi
+
+zstyle -T ":completion:${curcontext}:extensions" add-space ||
+ suf=( -S '' )
+
+_description extensions expl 'file extension'
+
+# for an exact match, fail so as to give _expand or _match a chance.
+compadd -O mfiles "$expl[@]" -a files
+[[ $#mfiles -gt 1 || ${mfiles[1]} != $PREFIX ]] &&
+ compadd "$expl[@]" "$suf[@]" -a files &&
+ [[ -z $compstate[exact_string] ]]
diff -Nru zsh-5.0.5/Completion/Base/Core/_description zsh-5.0.7/Completion/Base/Core/_description
--- zsh-5.0.5/Completion/Base/Core/_description 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Base/Core/_description 2014-10-07 18:11:30.000000000 +0000
@@ -47,17 +47,19 @@
zstyle -a ":completion:${curcontext}:$1" ignored-patterns _comp_ignore ||
_comp_ignore=()
- zstyle -s ":completion:${curcontext}:$1" ignore-line hidden &&
+ if zstyle -s ":completion:${curcontext}:$1" ignore-line hidden; then
+ local -a qwords
+ qwords=( ${words//(#m)[\[\]()\\*?#<>~\^\|]/\\$MATCH} )
case "$hidden" in
- true|yes|on|1) _comp_ignore=( "$_comp_ignore[@]" ${(q)"${words[@]}"} );;
- current) _comp_ignore=( "$_comp_ignore[@]" "${(q)words[CURRENT]}" );;
+ true|yes|on|1) _comp_ignore+=( $qwords );;
+ current) _comp_ignore+=( $qwords[CURRENT] );;
current-shown)
[[ "$compstate[old_list]" = *shown* ]] &&
- _comp_ignore=( "$_comp_ignore[@]" "${(q)words[CURRENT]}" );;
- other) _comp_ignore=( "$_comp_ignore[@]"
- "${(@q)words[1,CURRENT-1]}"
- "${(@q)words[CURRENT+1,-1]}" );;
+ _comp_ignore+=( $qwords[CURRENT] );;
+ other) _comp_ignore+=( $qwords[1,CURRENT-1]
+ $qwords[CURRENT+1,-1] );;
esac
+ fi
# Ensure the ignore option is first so we can override it
# for fake-always.
diff -Nru zsh-5.0.5/Completion/Base/Core/.distfiles zsh-5.0.7/Completion/Base/Core/.distfiles
--- zsh-5.0.5/Completion/Base/Core/.distfiles 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Base/Core/.distfiles 2014-10-07 18:11:30.000000000 +0000
@@ -1,6 +1,2 @@
DISTFILES_SRC='
-.distfiles
-_all_labels _main_complete _next_label _requested _tags
-_description _message _normal _setup _wanted
-_dispatch
'
diff -Nru zsh-5.0.5/Completion/Base/Core/_main_complete zsh-5.0.7/Completion/Base/Core/_main_complete
--- zsh-5.0.5/Completion/Base/Core/_main_complete 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Base/Core/_main_complete 2014-10-07 18:11:30.000000000 +0000
@@ -126,6 +126,11 @@
_completer_num=1
+# We assume localtraps to be in effect here ...
+integer SECONDS=0
+trap 'zle -M "Killed by signal in ${funcstack[0]} after ${SECONDS}s";
+ zle -R; return 130' INT QUIT
+
# Call the pre-functions.
funcs=( "$compprefuncs[@]" )
@@ -329,6 +334,14 @@
compadd -x "$mesg"
fi
+if zstyle -s ":completion:${curcontext}:" show-ambiguity tmp; then
+ local prefix=${${compstate[unambiguous]}[1,${compstate[unambiguous_cursor]}-1]}
+ local toquote='[=\(\)\|~^?*[\]#<>]'
+ [[ $tmp = (yes|true|on) ]] && tmp=4
+ [[ -n $prefix ]] &&
+ _comp_colors+=( "=(#i)${prefix[1,-2]//?/(}${prefix[1,-2]//(#m)?/${MATCH/$~toquote/\\$MATCH}|)}${prefix[-1]//(#m)$~toquote/\\$MATCH}(#b)(?|)*==$tmp" )
+fi
+
[[ "$_comp_force_list" = always ||
( "$_comp_force_list" = ?* && nm -ge _comp_force_list ) ]] &&
compstate[list]="${compstate[list]//messages} force"
diff -Nru zsh-5.0.5/Completion/Base/.distfiles zsh-5.0.7/Completion/Base/.distfiles
--- zsh-5.0.5/Completion/Base/.distfiles 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Base/.distfiles 2014-10-07 18:11:30.000000000 +0000
@@ -1,3 +1,2 @@
DISTFILES_SRC='
-.distfiles
'
diff -Nru zsh-5.0.5/Completion/Base/Utility/_call_program zsh-5.0.7/Completion/Base/Utility/_call_program
--- zsh-5.0.5/Completion/Base/Utility/_call_program 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Base/Utility/_call_program 2014-10-07 18:11:30.000000000 +0000
@@ -1,6 +1,13 @@
#autoload +X
-local tmp
+local tmp err_fd=-1
+
+if (( ${debug_fd:--1} > 2 ))
+then exec {err_fd}>&2 # debug_fd is saved stderr, 2 is log file
+else exec {err_fd}>/dev/null
+fi
+
+{ # Begin "always" block
if zstyle -s ":completion:${curcontext}:${1}" command tmp; then
if [[ "$tmp" = -* ]]; then
@@ -10,4 +17,10 @@
fi
else
eval "$argv[2,-1]"
-fi
+fi 2>&$err_fd
+
+} always {
+
+exec {err_fd}>&-
+
+}
diff -Nru zsh-5.0.5/Completion/Base/Utility/_describe zsh-5.0.7/Completion/Base/Utility/_describe
--- zsh-5.0.5/Completion/Base/Utility/_describe 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Base/Utility/_describe 2014-10-07 18:11:30.000000000 +0000
@@ -96,7 +96,7 @@
fi
if [[ -n $_mats ]]; then
- compadd "$_opts[@]" "${(@)_expl:/-J/-2V}" -D $_strs - \
+ compadd "$_opts[@]" "${(@)_expl:/-J/-2V}" -D $_strs -O $_mats - \
"${(@)${(@M)${(@P)_mats}##([^:\\]|\\?)##}//\\(#b)(?)/$match[1]}"
else
compadd "$_opts[@]" "${(@)_expl:/-J/-2V}" -D $_strs - \
diff -Nru zsh-5.0.5/Completion/Base/Utility/.distfiles zsh-5.0.7/Completion/Base/Utility/.distfiles
--- zsh-5.0.5/Completion/Base/Utility/.distfiles 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Base/Utility/.distfiles 2014-10-07 18:11:30.000000000 +0000
@@ -1,25 +1,2 @@
DISTFILES_SRC='
-.distfiles
-_alternative
-_arg_compile
-_arguments
-_cache_invalid
-_call_function
-_comp_locale
-_complete_help_generic
-_call_program
-_combination
-_set_command
-_describe
-_multi_parts
-_nothing
-_regex_arguments
-_retrieve_cache
-_sep_parts
-_store_cache
-_sub_commands
-_values
-_guard
-_pick_variant
-_regex_words
'
diff -Nru zsh-5.0.5/Completion/Base/Utility/_sequence zsh-5.0.7/Completion/Base/Utility/_sequence
--- zsh-5.0.5/Completion/Base/Utility/_sequence 1970-01-01 00:00:00.000000000 +0000
+++ zsh-5.0.7/Completion/Base/Utility/_sequence 2014-10-07 18:11:30.000000000 +0000
@@ -0,0 +1,39 @@
+#autoload
+
+# a separated list where each component of the list uses the same
+# function.
+
+# -n num : number of items in list [default is unlimited]
+# -s sep : specify separator [defaults to comma]
+# -d : duplicate values allowed
+
+local curcontext="$curcontext" nm="$compstate[nmatches]" pre nosep minus
+local -a sep num pref suf end uniq dedup
+
+zparseopts -D -a opts s:=sep n:=num p:=pref i:=pref P:=pref I:=suf S:=suf q=suf r:=suf R:=suf C:=cont d=uniq M: J: X: x:
+(( $#cont )) && curcontext="$curcontext%:*}:$cont[2]"
+(( $#sep )) || sep[2]=,
+
+if (( $+suf[(r)-S] )); then
+ end="${(q)suf[suf[(i)-S]+1]}"
+ (( $#end )) && compset -S ${end}\* && suf=() && nosep=1
+fi
+
+if (( ! $#uniq )); then
+ (( $+pref[(r)-P] )) && pre="${(q)pref[pref[(i)-P]+1]}"
+ typeset -T unique="${PREFIX#$pre}" uniq $sep[2]
+ dedup=( ${(q)uniq[1,-2]} )
+ unique="${SUFFIX}"
+ dedup+=( ${(q)uniq[2,-1]} )
+fi
+
+if (( ! $#num )) || (( num[2] > 1 )) && ! compset -P $(( num[2] - 1 )) \*$sep[2]; then
+ (( nosep )) || suf=( -S $sep[2] -r "$end[1]${sep[2][1]} \t\n\-" )
+ compset -S ${sep[2]}\* && suf=()
+ compset -P \*$sep[2] && pref=()
+else
+ pref=()
+fi
+
+(( minus = argv[(ib:2:)-] ))
+"${(@)argv[1,minus-1]}" "$opts[@]" -F dedup "$pref[@]" "$suf[@]" "${(@)argv[minus+1,-1]}"
diff -Nru zsh-5.0.5/Completion/Base/Widget/_complete_debug zsh-5.0.7/Completion/Base/Widget/_complete_debug
--- zsh-5.0.5/Completion/Base/Widget/_complete_debug 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Base/Widget/_complete_debug 2014-10-07 18:11:30.000000000 +0000
@@ -12,6 +12,8 @@
exec {debug_fd}>&2 2>| $tmp
fi
+ local -a debug_indent; debug_indent=( '%'{3..20}'(e. .)' )
+ local PROMPT4 PS4="${(j::)debug_indent}+%N:%i> "
setopt xtrace
: $ZSH_NAME $ZSH_VERSION
${1:-_main_complete}
diff -Nru zsh-5.0.5/Completion/Base/Widget/.distfiles zsh-5.0.7/Completion/Base/Widget/.distfiles
--- zsh-5.0.5/Completion/Base/Widget/.distfiles 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Base/Widget/.distfiles 2014-10-07 18:11:30.000000000 +0000
@@ -1,7 +1,2 @@
DISTFILES_SRC='
-.distfiles
-_bash_completions _correct_filename _history_complete_word
-_complete_debug _correct_word _most_recent_file
-_complete_help _expand_word _next_tags
-_complete_tag _generic _read_comp
'
diff -Nru zsh-5.0.5/Completion/BSD/Command/.distfiles zsh-5.0.7/Completion/BSD/Command/.distfiles
--- zsh-5.0.5/Completion/BSD/Command/.distfiles 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/BSD/Command/.distfiles 2014-10-07 18:11:30.000000000 +0000
@@ -1,19 +1,2 @@
DISTFILES_SRC='
-.distfiles
-_bsd_pkg
-_chflags
-_csup
-_cvsup
-_fetch
-_freebsd-update
-_fstat
-_kld
-_pfctl
-_portaudit
-_portlint
-_portmaster
-_portsnap
-_powerd
-_procstat
-_sockstat
'
diff -Nru zsh-5.0.5/Completion/BSD/.distfiles zsh-5.0.7/Completion/BSD/.distfiles
--- zsh-5.0.5/Completion/BSD/.distfiles 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/BSD/.distfiles 2014-10-07 18:11:30.000000000 +0000
@@ -1,3 +1,2 @@
DISTFILES_SRC='
-.distfiles
'
diff -Nru zsh-5.0.5/Completion/Cygwin/Command/.distfiles zsh-5.0.7/Completion/Cygwin/Command/.distfiles
--- zsh-5.0.5/Completion/Cygwin/Command/.distfiles 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Cygwin/Command/.distfiles 2014-10-07 18:11:30.000000000 +0000
@@ -1,7 +1,2 @@
DISTFILES_SRC='
-.distfiles
-_cygcheck _cygpath _cygrunsrv _cygserver
-_cygstart _dumper _getclip
-_mkshortcut _mkzsh _pscp _putclip
-_readshortcut
'
diff -Nru zsh-5.0.5/Completion/Darwin/Command/.distfiles zsh-5.0.7/Completion/Darwin/Command/.distfiles
--- zsh-5.0.5/Completion/Darwin/Command/.distfiles 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Darwin/Command/.distfiles 2014-10-07 18:11:30.000000000 +0000
@@ -1,4 +1,2 @@
DISTFILES_SRC='
-.distfiles
-_defaults _fink _hdiutil _open _qtplay _softwareupdate
'
diff -Nru zsh-5.0.5/Completion/Darwin/Command/_system_profiler zsh-5.0.7/Completion/Darwin/Command/_system_profiler
--- zsh-5.0.5/Completion/Darwin/Command/_system_profiler 1970-01-01 00:00:00.000000000 +0000
+++ zsh-5.0.7/Completion/Darwin/Command/_system_profiler 2014-10-07 18:11:30.000000000 +0000
@@ -0,0 +1,20 @@
+#compdef system_profiler
+
+typeset -A opt_args
+local context state state_descr line
+local -a _data_types
+
+# TODO: Should this be static? Calling `system_profiler -listDataTypes` takes
+# about 0.07-0.08 secs on my machine. Does this list ever change (between
+# different versions of OS X)?
+_data_types=( SP{AirPort,Applications,Audio,Bluetooth,Camera,CardReader,Component,ConfigurationProfile,DeveloperTools,Diagnostics,DisabledSoftware,DiscBurning,Displays,Ethernet,Extensions,FibreChannel,FireWire,Firewall,Fonts,Frameworks,Hardware,HardwareRAID,InstallHistory,Logs,ManagedClient,Memory,Network,NetworkLocation,NetworkVolume,PCI,ParallelATA,ParallelSCSI,Power,PrefPane,Printers,PrintersSoftware,SAS,SPI,SerialATA,Software,StartupItem,Storage,SyncServices,Thunderbolt,USB,UniversalAccess,WWAN}DataType )
+# the dynamic alternative is:
+#_data_types=( ${${(f)"$(_call_program path system_profiler -listDataTypes 2>/dev/null)"}[2,-1]} )
+
+_arguments \
+ '(- *)-usage' \
+ '(- *)-listDataTypes[lists the available datatypes]' \
+ '(-listDataTypes -usage)-xml[generate xml output]' \
+ '(-listDataTypes -usage)-detailLevel[level of detail for the report]:detail level:(mini basic full)' \
+ '(-listDataTypes -usage)-timeout+[maximum time to wait in seconds]' \
+ '(-listDataTypes -usage)*:data type:'"($_data_types)"
diff -Nru zsh-5.0.5/Completion/Darwin/Type/.distfiles zsh-5.0.7/Completion/Darwin/Type/.distfiles
--- zsh-5.0.5/Completion/Darwin/Type/.distfiles 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Darwin/Type/.distfiles 2014-10-07 18:11:30.000000000 +0000
@@ -1,4 +1,2 @@
DISTFILES_SRC='
-.distfiles
-_mac_applications _mac_files_for_application _retrieve_mac_apps
'
diff -Nru zsh-5.0.5/Completion/Debian/Command/_apt zsh-5.0.7/Completion/Debian/Command/_apt
--- zsh-5.0.5/Completion/Debian/Command/_apt 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Debian/Command/_apt 2014-10-07 18:11:30.000000000 +0000
@@ -1,11 +1,13 @@
-#compdef apt-get apt-cache apt-cdrom apt-config
+#compdef apt apt-get apt-cache apt-cdrom apt-config apt-mark
_apt () {
case "$service" in
+ apt) _apt-cmd "$@";;
apt-get) _apt-get "$@";;
apt-cache) _apt-cache "$@";;
apt-cdrom) _apt-cdrom "$@";;
apt-config) _apt-config "$@";;
+ apt-mark) _apt-mark "$@";;
*) _message "unknown command $service";;
esac
}
@@ -389,6 +391,38 @@
return 0
}
+_apt-cmd () {
+ _apt_arguments _apt-cmd_sm \
+ -h,--help:bool \
+ -v,--version:bool \
+ -c,--config-file:configfile \
+ -o,--option:arbitem \
+ -t,--target-release:release \
+ -- \
+ /$'list\0'/ \| \
+ /$'search\0'/ /$'[^\0]#\0'/ ':strings:pattern:' \| \
+ /$'show\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" avail' \# \
+ /$'update\0'/ \| \
+ \( \
+ /$'install\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" avail' \# \
+ /$'[^\0/]#/'/ /$'[^\0/]#\0'/ ':release name::_apt_releases' \) \| \
+ /$'remove\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" installed' \# \| \
+ /$'upgrade\0'/ \| \
+ /$'full-upgrade\0'/ \| \
+ /$'edit-sources\0'/ \| \
+ /"[]"/ ':argument-1::compadd "$expl_action[@]" list search show update install remove upgrade full-upgrade edit-sources'
+
+ _apt-cmd () {
+ local expl_action expl_packages
+ _description actions expl_action 'action'
+ _description packages expl_packages 'package'
+
+ _apt-cmd_sm
+ }
+
+ _apt-cmd "$@"
+}
+
_apt-get () {
_apt_arguments _apt-get_sm \
-h,--help:bool \
@@ -586,4 +620,34 @@
/var/lib/dpkg/available -nt "$1" ]]
}
+_apt-mark () {
+ _apt_arguments _apt-mark_sm \
+ -h,--help:bool \
+ -v,--version:bool \
+ -f,--file:configfile \
+ -c,--config-file:configfile \
+ -o,--option:arbitem \
+ -qq:bool \
+ -s:bool \
+ -- \
+ /$'auto\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" installed' \# \| \
+ /$'manual\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" installed' \# \| \
+ /$'hold\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" installed' \# \| \
+ /$'unhold\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" installed' \# \| \
+ /$'showauto\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" installed' \# \| \
+ /$'showmanual\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" installed' \# \| \
+ /$'showhold\0'/ /$'[^\0]#\0'/ ':packages::_deb_packages "$expl_packages[@]" installed' \# \| \
+ /"[]"/ ':argument-1::compadd "$expl_action[@]" auto manual hold unhold showauto showmanual showhold'
+
+ _apt-mark () {
+ local expl_action expl_packages
+ _description actions expl_action 'action'
+ _description packages expl_packages 'package'
+
+ _apt-mark_sm
+ }
+
+ _apt-mark "$@"
+}
+
_apt "$@"
diff -Nru zsh-5.0.5/Completion/Debian/Command/_aptitude zsh-5.0.7/Completion/Debian/Command/_aptitude
--- zsh-5.0.5/Completion/Debian/Command/_aptitude 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Debian/Command/_aptitude 2014-10-07 18:11:30.000000000 +0000
@@ -70,6 +70,8 @@
'--schedule-only[schedule operations to be performed in the future]' \
'--purge-unused[purge unused packages instead of removing]' \
'--visual-preview[start up the visual interface and display its preview screen]' \
+ '--full-resolver[attempts to resolve conflicts with a higher risk of breakage]' \
+ '--safe-resolver[attempts to resolve conflicts with a lower risk of breakage]' \
'-S[load the extended state information from non-standard state file]:state file:_files' \
'-u[begin updating the package lists as soon as the program starts]' \
'-i[displays a download preview when the program starts]' \
diff -Nru zsh-5.0.5/Completion/Debian/Command/_axi-cache zsh-5.0.7/Completion/Debian/Command/_axi-cache
--- zsh-5.0.5/Completion/Debian/Command/_axi-cache 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Debian/Command/_axi-cache 2014-10-07 18:11:30.000000000 +0000
@@ -11,10 +11,11 @@
if (( CURRENT == 2 )); then
_wanted tag expl 'axi-cache commands' \
- compadd help search more last show again
+ compadd help search more last show again info \
+ rdetails depends madison policy showpkg showsrc
else
case "$words[2]" in
- (search|show|again)
+ (search|show|again|rdetails|depends|madison|policy|showpkg|showsrc)
_wanted tag expl 'terms/query' \
compadd -- $($service $words[2] --tabcomplete=plain -- $words[CURRENT])
;;
@@ -22,6 +23,9 @@
_wanted tag expl 'count' \
compadd -- 1 2 3 4 5 6 7 8 9 0
;;
+ (help|info)
+ # no args
+ ;;
(*)
_files
;;
diff -Nru zsh-5.0.5/Completion/Debian/Command/.distfiles zsh-5.0.7/Completion/Debian/Command/.distfiles
--- zsh-5.0.5/Completion/Debian/Command/.distfiles 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Debian/Command/.distfiles 2014-10-07 18:11:30.000000000 +0000
@@ -1,52 +1,2 @@
DISTFILES_SRC='
-.distfiles
-_a2utils
-_apt
-_apt-file
-_aptitude
-_apt-move
-_apt-show-versions
-_auto-apt
-_axi-cache
-_bts
-_bug
-_cdbs-edit-patch
-_dak
-_dchroot
-_dchroot-dsa
-_dcut
-_debchange
-_debdiff
-_debfoster
-_debsign
-_dlocate
-_dpatch-edit-patch
-_dpkg
-_dpkg-buildpackage
-_dpkg-cross
-_dpkg-repack
-_dpkg_source
-_dput
-_dupload
-_git-buildpackage
-_invoke-rc.d
-_lighttpd
-_lintian
-_madison
-_make-kpkg
-_members
-_mergechanges
-_module-assistant
-_pbuilder
-_piuparts
-_reprepro
-_schroot
-_svn-buildpackage
-_toolchain-source
-_update-alternatives
-_update-rc.d
-_uscan
-_wajig
-_wanna-build
-_vim-addons _grep-excuses
'
diff -Nru zsh-5.0.5/Completion/Debian/Command/_dpkg zsh-5.0.7/Completion/Debian/Command/_dpkg
--- zsh-5.0.5/Completion/Debian/Command/_dpkg 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Debian/Command/_dpkg 2014-10-07 18:11:30.000000000 +0000
@@ -50,6 +50,9 @@
'--yet-to-unpack[list uninstalled]'
'--print-architecture[print target architecture]'
'--print-installation-architecture'
+ '--print-foreign-architectures[print list of extra architectures]'
+ '--add-architecture[add extra architecture]:architecture:->add_architecture'
+ '--remove-architecture[remove extra architecture]:architecture:->remove_architecture'
'--compare-versions[compare version numbers]:*::expression:= ->compare_versions'
)
@@ -179,4 +182,13 @@
_call_function ret _dpkg_$state && return ret
_files
;;
+ add_architecture)
+ _call_function ret _dpkg_$state && return ret
+ _wanted architecture expl 'extra architecture' \
+ compadd ${(f)"$(dpkg-architecture -L 2>/dev/null)"}
+ ;;
+ remove_architecture)
+ _call_function ret _dpkg_$state && return ret
+ _wanted architecture expl 'extra architecture' \
+ compadd ${(f)"$(dpkg --print-foreign-architectures 2>/dev/null)"}
esac
diff -Nru zsh-5.0.5/Completion/Debian/.distfiles zsh-5.0.7/Completion/Debian/.distfiles
--- zsh-5.0.5/Completion/Debian/.distfiles 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Debian/.distfiles 2014-10-07 18:11:30.000000000 +0000
@@ -1,3 +1,2 @@
DISTFILES_SRC='
-.distfiles
'
diff -Nru zsh-5.0.5/Completion/Debian/Type/.distfiles zsh-5.0.7/Completion/Debian/Type/.distfiles
--- zsh-5.0.5/Completion/Debian/Type/.distfiles 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Debian/Type/.distfiles 2014-10-07 18:11:30.000000000 +0000
@@ -1,4 +1,2 @@
DISTFILES_SRC='
-.distfiles
-_deb_packages
'
diff -Nru zsh-5.0.5/Completion/.distfiles zsh-5.0.7/Completion/.distfiles
--- zsh-5.0.5/Completion/.distfiles 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/.distfiles 2014-10-07 18:11:30.000000000 +0000
@@ -1,5 +1,2 @@
DISTFILES_SRC='
-.distfiles
-.cvsignore README compaudit compdump compinit compinstall
-bashcompinit
'
diff -Nru zsh-5.0.5/Completion/Linux/Command/_btrfs zsh-5.0.7/Completion/Linux/Command/_btrfs
--- zsh-5.0.5/Completion/Linux/Command/_btrfs 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Linux/Command/_btrfs 2014-10-07 18:11:30.000000000 +0000
@@ -1,15 +1,23 @@
#compdef btrfs
+# based on Btrfs v3.12+20131125
local curcontext="$curcontext" curstate state line expl grp cmd ret=1
-local -a groups args cmds_1 cmds_2 cmds_3 cmds_4 cmds_5 cmds_6
+local -a cmds_1 cmds_2 cmds_3 cmds_4 cmds_5 cmds_6 cmds_7 cmds_8 cmds_9 cmds_10
+local -a groups args
-groups=( subvolume filesystem device scrub balance inspect-internal help version )
-cmds_1=( create delete list snapshot get-default set-default find-new help )
+groups=( subvolume filesystem device scrub balance inspect-internal
+ quota qgroup replace rescue check restore send receive
+ help version )
+cmds_1=( create delete list snapshot get-default set-default find-new show help )
cmds_2=( df show sync defragment resize label balance help )
-cmds_3=( add delete scan help )
+cmds_3=( add delete ready scan stats help )
cmds_4=( start cancel resume status help )
cmds_5=( start pause cancel resume status )
-cmds_6=( inode-resolve logical-resolve help )
+cmds_6=( inode-resolve logical-resolve subvolid-resolve rootid help )
+cmds_7=( enable disable rescan help )
+cmds_8=( assign remove create destroy show limit help )
+cmds_9=( start status cancel help )
+cmds_10=( chunk-recover super-recover )
[[ $words[2] = h(|e(|l(|p))) ]] && args=( '--full[display detailed help]' )
@@ -31,88 +39,247 @@
: $words
local grp=${groups[(i)$words[2]*]}
: $grp
- (( grp && grp < 7 )) || return 1
+ (( grp && grp <= 14 )) || return 1
curcontext="${curcontext%:*:*}:$service-${groups[grp]}:"
- _wanted commands expl command compadd -a cmds_$grp && ret=0
+ case $grp in
+ 11)
+ # btrfs check
+ args+=(
+ {-s,--support}'[specify superblock]:superblock: _message "superblock"'
+ '--repair[try to repair the filesystem]'
+ '--init-csum-tree[create a new CRC tree]'
+ '--init-extent-tree[create a new extent tree]'
+ '1:path:_files -/'
+ )
+ ;|
+ 12)
+ # btrfs replace
+ args+=(
+ '-s[get snapshots]'
+ '-x[get extended attributes]'
+ '-v[verbose]'
+ '-i[ignore errors]'
+ '-o[overwrite]'
+ '-t[tree location]:tree:_message "tree location"'
+ '-f[filesystem location]:filesystem:_message "filesystem location"'
+ '-u[super mirror]:mirror:_message "super mirror"'
+ '-r[root objectid]:objectid:_message "root objectid"'
+ '-d[find dir]'
+ '-l[list tree roots]'
+ '--path-regex[restore matching filenames]:regex:_message "regex"'
+ '1:device:_files -/'
+ '2:path:_files -/'
+ )
+ ;|
+ 13)
+ # btrfs send
+ args+=(
+ '*-v[verbose mode]'
+ '-p[send incremental stream]:parent:_files -/'
+ '*-c[use snapshot as clone source]:clone:_files -/'
+ '-f[output file]:file:_files'
+ '1:subvol:_files -/'
+ )
+ ;|
+ 14)
+ # btrfs receive
+ args+=(
+ '*-v[verbose mode]'
+ '-f[input file]:file: _files'
+ '-e[terminate after ]'
+ '1:mount:->mounts'
+ )
+ ;|
+ <11-14>)
+ (( CURRENT-- )); shift words; curcontext="${curcontext%:*:*}:$service-${group[grp]}:"
+ _arguments -C "$args[@]" && ret=0
+ ;;
+ <0-10>)
+ _wanted commands expl command compadd -a cmds_$grp && ret=0
+ ;;
+ esac
;;
args)
: $words
local grp=${groups[(i)$words[1]*]}
- (( grp && grp < 7 )) || return 1
+ (( grp && grp <= 15 )) || return 1
local group=cmds_$grp
local cmd=${${(P)group}[(i)$words[2]*]}
(( cmd )) || return 1
curcontext="${curcontext%:*:*}:$service-${groups[grp]}-${${(P)group}[cmd]}:"
args=( '(-)--help[print help information]' )
case ${groups[grp]}:${${(P)group}[cmd]} in
- filesystem:balance)
- if (( CURRENT == 3 )); then
- state+=cmds
- else
- shift words
- (( CURRENT-- ))
- state+=args
- fi
- continue
- ;;
- subvolume:create) args+=( '1:destination:->mounts' );;
- subvolume:delete) args+=( '1:subvolume:_files -/' );;
- subvolume:snapshot) args+=( '-r[readonly snapshot]' '1:snapshot:_files -/' );;
- subvolume:list) args+=( '-p[include parent ID in output]' '1:path:->mounts' );;
- subvolume:set-default) args+=( '1:id:_guard "[0-9]#" id' '2:path:->mounts' );;
- filesystem:resize) args+=( '1:size:_guart "(|+|-)[0-9]#[GKM]"' '2:path:->mounts' );;
- filesystem:defragment)
- args+=(
- '-v[verbose]'
- '-c[compress files while defragmenting]'
- '-f[flush after defragmenting]'
- '-s[start position]:byte position'
- '-l[defragment limited number of bytes]:length (bytes)'
- '-t[defragment only files over a certain size]:minimum size (bytes)'
- '*:file:_files'
- )
- ;;
- filesystem:label) args+=( '1:device:_files -g "*(d)"' '2:label' );;
- filesystem:show) args+=( '(1 -)--all-devices[scan all devices in /dev]' '1: :_guard "^-*" uuid or label' );;
- device:(add|delete)) args+=( '1:device:_files -g "*(d)"' '2:path:->mounts' );;
- device:scan) args+=( '(1 -)--all-devices[scan all devices in /dev]' '1:device:_files -g "*(d)"' );;
- scrub:(start|resume))
- args+=(
- "-B[don't background and print statistics at end]"
- '-d[print separate statistics for each device]'
- '-q[omit error message and statistics]'
- '-r[read only mode]'
- '-u[scrub unused space too]'
- '1:path or device:_files'
- )
- ;;
- scrub:cancel) args+=( '1:path or device' );;
- scrub:status) args+=( '-d[separate statistics for each device]' '1:path or device:_files' );;
- balance:start)
- args+=(
- '(-m -s)-d+[act on data chunks]:filter:->filters'
- '(-d -s)-m+[act on metadata chunks]:filter:->filters'
- '(-d -m)-s+[act on system chunks (only under -f)]:filters:->filters'
- '-v[verbose mode]'
- '-f[force reducing of metadata integrity]'
- '1:path:_files -/'
- )
- ;;
- balance:status) args+=( '-v[verbose mode]' '2:path:_files -/' );;
- balance:(pause|cancel|resume)) args+=( '2:path:_files -/' );;
- inspect*:inode*) args+=( '-v[verbose mode]' '1:inode:_files' '2:path:_files -/' );;
- inspect*:logical*)
- args+=(
- '-v[verbose mode]'
- '-P[skip the path resolving and print the inodes instead]'
- '1:logical address:_files'
- '2:filesystem path:_files -/'
- )
- ;;
- subvolume:get-default) ;&
- *:sync) ;&
- *:df) args+=( '1:path:->mounts' );;
- *) args+=( '*: :_default' );; # fallback for unknown subcommands
+ filesystem:balance)
+ if (( CURRENT == 3 )); then
+ state+=cmds
+ else
+ shift words
+ (( CURRENT-- ))
+ state+=args
+ fi
+ continue
+ ;;
+ subvolume:create) args+=( '1:destination:->mounts' );;
+ subvolume:delete) args+=( '1:subvolume:_files -/' );;
+ subvolume:snapshot)
+ args+=(
+ '-r[readonly snapshot]'
+ '*-i[assign to qgroup]:qgroup: _message "qgroup"'
+ '1:source directory:_files -/'
+ '2:snapshot name or destination:_files -/'
+ )
+ ;;
+ subvolume:list)
+ args+=(
+ '-p[include parent ID in output]'
+ '-a[include all subvolumes]'
+ '-c[include ogeneration of the subvolume]'
+ '-g[include generation of the subvolume]'
+ '-o[include only subvolumes below the path]'
+ '-u[include UUID of subvolume]'
+ '-q[include parent UUID of subvolume]'
+ '-t[print results as a table]'
+ '-s[list only snapshot subvolumes]'
+ '-r[list only readonly subvolumes]'
+ '-G[subvolume generation is more or less than]:gen: _guard "(|+|-)[0-9]#"'
+ '-C[subvolume ogeneration is more or less than]:ogen: _guard "(|+|-)[0-9]#"'
+ '--sort=-[list in order]:sort:_values -s "," sort rootid gen ogen path'
+ '1:path:->mounts'
+ )
+ ;;
+ subvolume:set-default) args+=( '1:id:_guard "[0-9]#" id' '2:path:->mounts' );;
+ subvolume:get-default) args+=( '1:path:_files -/' );;
+ subvolume:find-new) args+=( '1:subvol:_files -/' '2:lastgen: _message "last gen"' );;
+ filesystem:resize) args+=( '1:size:_guard "(|+|-)[0-9]#[GKM]"' '2:path:->mounts' );;
+ filesystem:defragment)
+ args+=(
+ '-v[verbose]'
+ '-c[compress files while defragmenting]'
+ '-r[defragment files recursively]'
+ '-f[flush after defragmenting]'
+ '-s[start position]:byte position'
+ '-l[defragment limited number of bytes]:length (bytes)'
+ '-t[defragment only files over a certain size]:minimum size (bytes)'
+ '*:file:_files'
+ )
+ ;;
+ filesystem:label) args+=( '1:device:_files -g "*(d)"' '2:label' );;
+ filesystem:show)
+ args+=(
+ '(1 -)'{-d,--all-devices}'[scan all devices in /dev]'
+ '(1 -)'{-m,--mounted}'[show only mounted filesystems]'
+ '1: :_guard "^-*" uuid or label'
+ )
+ ;;
+ device:(add|delete))
+ args+=(
+ '1:device:_files -g "*(d)"'
+ '2:path:->mounts'
+ )
+ [[ ${${(P)group}[cmd]} == add ]] &&
+ args+=(
+ {-K,--nodiscard}'[do not perform discard]'
+ {-f,--force}'[force overwrite of existing filesystem]'
+ )
+ ;;
+ device:scan) args+=( '(1 -)--all-devices[scan all devices in /dev]' '1:device:_files -g "*(d)"' );;
+ device:stats) args+=( "1:device or mountpoint:_files -g '*(d,/)'" '-z[reset stats when done]' );;
+ device:ready) args+=( '1:device: _files -g "*(d)"' );;
+ scrub:(start|resume))
+ args+=(
+ "-B[don't background and print statistics at end]"
+ '-d[print separate statistics for each device]'
+ '-q[omit error message and statistics]'
+ '-r[read only mode]'
+ '-R[raw print mode]'
+ '-c[set ioprio class]:class:(( 0\:none 1\:realtime 2\:best-effort 3\:idle))'
+ '-n[set ioprio classdata]:classdata:(0 1 2 3 4 5 6 7)'
+ '1:path or device:_files'
+ )
+ [[ ${${(P)group}[cmd]} == start ]] && args+=( '-R[raw print mode]' )
+ ;;
+ scrub:cancel) args+=( '1:path or device' );;
+ scrub:status) args+=( '-d[separate statistics for each device]' '1:path or device:_files' );;
+ balance:start)
+ args+=(
+ '(-m -s)-d+[act on data chunks]:filter:->filters'
+ '(-d -s)-m+[act on metadata chunks]:filter:->filters'
+ '(-d -m)-s+[act on system chunks (only under -f)]:filters:->filters'
+ '-v[verbose mode]'
+ '-f[force reducing of metadata integrity]'
+ '1:path:_files -/'
+ )
+ ;;
+ balance:status) args+=( '-v[verbose mode]' '2:path:_files -/' );;
+ balance:(pause|cancel|resume)) args+=( '2:path:_files -/' );;
+ quota:(enable|disable)) args+=( '1:path:_files -/' );;
+ quota:rescan)
+ args+=(
+ '-s[show status of currently running rescan]'
+ '-w[wait for rescan to finish]'
+ '1:path:_files -/'
+ )
+ ;;
+ qgroup:(assign|remove)) args+=( '1:source path:_files -/'
+ '2:destination path:_files -/' '3:path:_files -/' );;
+ qgroup:(create|destroy)) args+=( '1:qgroupid:' '2:path:_files -/' );;
+ qgroup:show)
+ args+=(
+ '-p[print parent qgroup id]'
+ '-c[print child qgroup id]'
+ '-r[print max referenced size of qgroup]'
+ '-e[print max exclusive size of qgroup]'
+ '-F[list impacted qgroups\(include ancestral qgroups\)]'
+ '-f[list impacted qgroups\(exclude ancestral qgroups\)]'
+ '--sort=-[sort qgroups]:sort:_values -s , sort \
+ qgroupid rfer excl max_rfer max_excl'
+ '1:path:_files -/'
+ )
+ ;;
+ qgroup:limit)
+ args+=(
+ '-c[limit amount of data after compression]'
+ '-e[limit space exclusively to qgroup]'
+ ':size or none: _message "size or none"'
+ ':qgroup id or path:_files -/'
+ ':path:_files -/'
+ )
+ ;;
+ replace:start)
+ args+=(
+ '-r[read from only]:srcdev:_files'
+ '-f[force overwriting of target]'
+ '-B[do not background]'
+ ':srcdev or devid:_files'
+ ':target:_files'
+ ':path:->mounts'
+ )
+ ;;
+ replace:status) args+=( '-1[print once]' ':path:->mounts' );;
+ replace:cancel) args+=( ':path:->mounts' );;
+ inspect*:inode*) args+=( '-v[verbose mode]' '1:inode:_files' '2:path:_files -/' );;
+ inspect*:subvol*) args+=( '-v[verbose mode]' '1:subvolid:_guard "[0-9]#" subvolume id' '2:path:_files -/' );;
+ inspect*:logical*)
+ args+=(
+ '-v[verbose mode]'
+ '-P[skip the path resolving and print the inodes instead]'
+ '-s[buffer size]:buffer size:'
+ '1:logical address:_files'
+ '2:filesystem path:_files -/'
+ )
+ ;;
+ inspect*:rootid) args+=( '1:path:_files -/' );;
+ rescue:(chunk|super)-recover)
+ args+=(
+ '-y[assume yes to every question]'
+ '-v[verbose mode]'
+ )
+ [[ ${${(P)group}[cmd]} == chunk-recover ]] && args+=('-h[display help]')
+ ;;
+ subvolume:get-default) ;&
+ *:sync) ;&
+ *:df) args+=( '1:path:->mounts' );;
+ *) args+=( '*: :_default' );; # fallback for unknown subcommands
esac
shift words
(( CURRENT-- ))
@@ -125,18 +292,18 @@
filters)
state=()
_values -s , filter \
- 'profiles[balance only block groups in given replication profiles]:profile:->profiles' \
- 'usage[balance block groups with usage below percentage]:percentage' \
- 'devid[limit by device ID]:device ID' \
- 'drange[balance block groups overlapping byte range]:range' \
- 'vrange[balance block groups overlapping byte range in virtual address space]:range' \
- 'convert[convert block groups to given profile]:profile:->profiles' \
- 'soft[leave chunks that already have target profile]' && ret=0
+ 'profiles[balance only block groups in given replication profiles]:profile:->profiles' \
+ 'usage[balance block groups with usage below percentage]:percentage' \
+ 'devid[limit by device ID]:device ID' \
+ 'drange[balance block groups overlapping byte range]:range' \
+ 'vrange[balance block groups overlapping byte range in virtual address space]:range' \
+ 'convert[convert block groups to given profile]:profile:->profiles' \
+ 'soft[leave chunks that already have target profile]' && ret=0
state=( $state )
;;
profiles)
compset -P '*\|'
- _values -s ',' profile raid0 raid1 raid10 dup single && ret=0
+ _values -s ',' profile raid0 raid1 raid5 raid6 raid10 dup single && ret=0
;;
esac
done
diff -Nru zsh-5.0.5/Completion/Linux/Command/_cryptsetup zsh-5.0.7/Completion/Linux/Command/_cryptsetup
--- zsh-5.0.5/Completion/Linux/Command/_cryptsetup 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Linux/Command/_cryptsetup 2014-10-07 18:11:30.000000000 +0000
@@ -1,103 +1,82 @@
#compdef cryptsetup
-## completion for cryptsetup 1.3.0, based on cryptsetup(1)
-function _cryptsetup_action {
- typeset -a actions
- actions=(
- 'create:create a mapping'
- 'remove:remove an existing mapping'
- 'status:report mapping status'
- 'resize:resize an active mapping'
- 'luksFormat:Initialize a LUKS partition'
- 'luksOpen:Open LUKS partition'
- 'luksClose:remove an existing mapping'
- 'luksSuspend:suspend active device'
- 'luksResume:resume suspended device'
- 'luksAddKey:add a new key'
- 'luksRemoveKey:remove a key'
- 'luksChangeKey:change a key'
- 'luksKillSlot:wipe key from slot'
- 'luksUUID:print/change device UUID'
- 'isLuks:check if device is a LUKS partition'
- 'luksDump:dump header information'
- 'luksHeaderBackup:store binary backup of headers'
- 'luksHeaderRestore:restore header backup'
- )
- _describe action actions
-}
+local curcontext="$curcontext" ret=1
+local -a actions state line expl
-function _cryptsetup_device {
- typeset expl
- _wanted file expl device \
- _files
-}
+_arguments \
+ '(-v --verbose)'{-v,--verbose}'[enable verbose mode]' \
+ '--debug[enable debug mode]' \
+ '(-h --hash)'{-h,--hash}'[hash algorithm]:hash algorithm' \
+ '(-c --cipher)'{-c,--cipher}'[set cipher]:cipher specification' \
+ '(-y --verify-passphrase)'{-y,--verify-passphrase}'[query for password twice]' \
+ '(-d --key-file)'{-d,--key-file}'[set keyfile]:key file:_files' \
+ '(-l --keyfile-size)'{-l,--keyfile-size}'[set keyfile size]:size (bytes)' \
+ '--new-keyfile-size[set new keyfile size (luksAddKey)]:size (bytes)' \
+ '--master-key-file[set master key]:key file:_files' \
+ '--dump-master-key[dump luks master key]' \
+ '(--use-urandom)--use-random[use /dev/random to generate volume key]' \
+ '(--use-random)--use-urandom[use /dev/urandom to generate volume key]' \
+ '(-S --key-slot)'{-S,--key-slot}'[select key slot]:key slot' \
+ '(-s --key-size)'{-s,--key-size}'[set key size]:size (bits)' \
+ '(-b --size)'{-b,--size}'[force device size]:sectors' \
+ '(-o --offset)'{-o,--offset}'[set start offset]:sectors' \
+ '(-p --skip)'{-p,--skip}'[data to skip at beginning]:sectors' \
+ '--readonly[set up read-only mapping]' \
+ '(-i --iter-time)'{-i,--iter-time}'[set password processing duration]:duration (milliseconds)' \
+ '(-q --batch-mode)'{-q,--batch-mode}'[do not ask for confirmation]' \
+ '(-t --timeout)'{-t,--timeout}'[set password prompt timeout]:timeout (seconds)' \
+ '(-T --tries)'{-T,--tries}'[set maximum number of retries]:number of retries' \
+ '--align-payload[set payload alignment]:sectors' \
+ '--uuid[set device UUID]:uuid' \
+ '(- : *)--version[show version information]' \
+ ':action:->actions' \
+ '*::arguments:->action-arguments' && ret=0
+
+case $state in
+ actions)
+ actions=(
+ 'create:create a mapping'
+ 'remove:remove an existing mapping'
+ 'status:report mapping status'
+ 'resize:resize an active mapping'
+ 'luksFormat:initialize a LUKS partition'
+ 'luksOpen:open LUKS partition'
+ 'luksClose:remove an existing mapping'
+ 'luksSuspend:suspend active device'
+ 'luksResume:resume suspended device'
+ 'luksAddKey:add a new key'
+ 'luksRemoveKey:remove a key'
+ 'luksChangeKey:change a key'
+ 'luksKillSlot:wipe key from slot'
+ 'luksUUID:print/change device UUID'
+ 'isLuks:check if device is a LUKS partition'
+ 'luksDump:dump header information'
+ 'luksHeaderBackup:store binary backup of headers'
+ 'luksHeaderRestore:restore header backup'
+ )
+ _describe action actions && ret=0
+ ;;
+ action-arguments)
+ local -a args
+ local mapping=':mapping:_path_files -W /dev/mapper'
+ local device=':device:_files'
+ case ${words[1]} in
+ create) args=( $mapping $device );;
+ luksKillSlot) args=( $device ':key slot number' );;
+ luksOpen) args=( $device $mapping );;
+ remove|status|resize|luksClose|luksSuspend|luksResume) args=( $mapping );;
+ luks(AddKey|RemoveKey|DelKey|UUID|Dump)|isLuks) args=( $device );;
+ luks(Format|AddKey|RemoveKey|ChangeKey))
+ args=( $device ':key file:_files' )
+ ;;
+ luksHeader*) args=( $device '--header-backup-file:file:_files' );;
+ *)
+ _default
+ return
+ ;;
+ esac
+ _arguments $args && ret=0
+ ;;
+esac
-function _cryptsetup_mapping {
- typeset expl
- _wanted file expl 'mapping name' \
- _path_files -W /dev/mapper
-}
-
-function _cryptsetup_arguments {
-
- case ${words[1]} in
-
- create)
- _arguments ':mapping:_cryptsetup_mapping' ':device:_cryptsetup_device'
- ;;
-
- remove|status|resize|luksClose|luksSuspend|luksResume)
- _arguments ': :_cryptsetup_mapping'
- ;;
-
- luks(AddKey|RemoveKey|DelKey|UUID|Dump)|isLuks)
- _arguments ': :_cryptsetup_device'
- ;;
-
- luks(Format|AddKey|RemoveKey|ChangeKey))
- _arguments ': :_cryptsetup_device' ':key file:_files'
- ;;
-
- luksKillSlot)
- _arguments ': :_cryptsetup_device' ':key slot number'
- ;;
-
- luksOpen)
- _arguments ': :_cryptsetup_device' ': :_cryptsetup_mapping'
- ;;
-
- esac
-}
-
-function _cryptsetup {
- _arguments \
- '(-v --verbose)'{-v,--verbose}'[enable verbose mode]' \
- '--debug[enable debug mode]' \
- '(-h --hash)'{-h,--hash}'[hash algorithm]:hash algorithm' \
- '(-c --cipher)'{-c,--cipher}'[set cipher]:cipher specification' \
- '(-y --verify-passphrase)'{-y,--verify-passphrase}'[query for password twice]' \
- '(-d --key-file)'{-d,--key-file}'[set keyfile]:key file:_files' \
- '(-l --keyfile-size)'{-l,--keyfile-size}'[set keyfile size]:bytes' \
- '--new-keyfile-size[set new keyfile size (luksAddKey)]:bytes' \
- '--master-key-file[set master key]:key file:_files' \
- '--dump-master-key[dump luks master key]' \
- '(--use-urandom)--use-random[use /dev/random to generate volume key]' \
- '(--use-random)--use-urandom[use /dev/urandom to generate volume key]' \
- '(-S --key-slot)'{-S,--key-slot}'[select key slot]:key slot' \
- '(-s --key-size)'{-s,--key-size}'[set key size]:bits' \
- '(-b --size)'{-b,--size}'[force device size]:sectors' \
- '(-o --offset)'{-o,--offset}'[set start offset]:sectors' \
- '(-p --skip)'{-p,--skip}'[data to skip at beginning]:sectors' \
- '--readonly[set up read-only mapping]' \
- '(-i --iter-time)'{-i,--iter-time}'[set password processing duration]:milliseconds' \
- '(-q --batch-mode)'{-q,--batch-mode}'[do not ask for confirmation]' \
- '(-t --timeout)'{-t,--timeout}'[set password prompt timeout]:seconds' \
- '(-T --tries)'{-T,--tries}'[set maximum number of retries]:maximum retries' \
- '--align-payload[set payload alignment]:sectors' \
- '--uuid[set device UUID]:uuid' \
- '--version[show version information]' \
- ':action:_cryptsetup_action' \
- '*::arguments:_cryptsetup_arguments'
-}
-
-_cryptsetup "$@"
+return ret
diff -Nru zsh-5.0.5/Completion/Linux/Command/.distfiles zsh-5.0.7/Completion/Linux/Command/.distfiles
--- zsh-5.0.5/Completion/Linux/Command/.distfiles 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Linux/Command/.distfiles 2014-10-07 18:11:30.000000000 +0000
@@ -1,36 +1,2 @@
DISTFILES_SRC='
-.distfiles
-_acpi
-_acpitool
-_analyseplugin
-_brctl
-_btrfs
-_chrt
-_cryptsetup
-_ethtool
-_fusermount
-_ionice
-_ipset
-_iptables
-_iwconfig
-_losetup
-_lsusb
-_mdadm
-_mii-tool
-_modutils
-_mondo
-_nmcli
-_pkgtool
-_rpmbuild
-_schedtool
-_sshfs
-_strace
-_tpb
-_tpconfig
-_tune2fs
-_uml
-_valgrind
-_vserver
-_wpa_cli
-_yast
'
diff -Nru zsh-5.0.5/Completion/Linux/Command/_docker zsh-5.0.7/Completion/Linux/Command/_docker
--- zsh-5.0.5/Completion/Linux/Command/_docker 1970-01-01 00:00:00.000000000 +0000
+++ zsh-5.0.7/Completion/Linux/Command/_docker 2014-10-07 18:11:30.000000000 +0000
@@ -0,0 +1,410 @@
+#compdef docker
+#
+# zsh completion for docker (http://docker.com)
+#
+# version: 0.3.0
+# github: https://github.com/felixr/docker-zsh-completion
+#
+# contributers:
+# - Felix Riedel
+# - Vincent Bernat
+#
+# license:
+#
+# Copyright (c) 2013, Felix Riedel
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# * Neither the name of the nor the
+# names of its contributors may be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+__parse_docker_list() {
+ awk '
+NR == 1 {
+ idx=1;i=0;f[i]=0
+ header=$0
+ while ( match(header, / ([A-Z]+|[A-Z]+ [A-Z]+)/) ) {
+ idx += RSTART+1
+ f[++i]=idx
+ header = substr($0,idx)
+ }
+ f[++i]=999
+}
+
+NR > 1 '"$1"' {
+ for(j=0;j 1 && $1 != ""){printf("%s", $1);if ($2 != "") printf("\\:%s", $2); printf("\n")}')"})
+ images=($images ${(f)"$(_call_program commands docker images | awk '(NR > 1){printf("%s:%-15s in %s\n", $3,$2,$1)}')"})
+ _describe -t docker-images "Images" images
+}
+
+__docker_tags() {
+ local expl
+ declare -a tags
+ tags=(${(f)"$(_call_program commands docker images | awk '(NR>1){print $2}'| sort | uniq)"})
+ _describe -t docker-tags "tags" tags
+}
+
+__docker_repositories_with_tags() {
+ if compset -P '*:'; then
+ __docker_tags
+ else
+ __docker_repositories -qS ":"
+ fi
+}
+
+__docker_search() {
+ # declare -a dockersearch
+ local cache_policy
+ zstyle -s ":completion:${curcontext}:" cache-policy cache_policy
+ if [[ -z "$cache_policy" ]]; then
+ zstyle ":completion:${curcontext}:" cache-policy __docker_caching_policy
+ fi
+
+ local searchterm cachename
+ searchterm="${words[$CURRENT]%/}"
+ cachename=_docker-search-$searchterm
+
+ local expl
+ local -a result
+ if ( [[ ${(P)+cachename} -eq 0 ]] || _cache_invalid ${cachename#_} ) \
+ && ! _retrieve_cache ${cachename#_}; then
+ _message "Searching for ${searchterm}..."
+ result=(${(f)"$(_call_program commands docker search ${searchterm} | awk '(NR>2){print $1}')"})
+ _store_cache ${cachename#_} result
+ fi
+ _wanted dockersearch expl 'Available images' compadd -a result
+}
+
+__docker_caching_policy()
+{
+ # oldp=( "$1"(Nmh+24) ) # 24 hour
+ oldp=( "$1"(Nmh+1) ) # 24 hour
+ (( $#oldp ))
+}
+
+
+__docker_repositories () {
+ local expl
+ declare -a repos
+ repos=(${(f)"$(_call_program commands docker images | sed -e '1d' -e 's/[ ].*//' | sort | uniq)"})
+ _describe -t docker-repos "Repositories" repos "$@"
+}
+
+__docker_commands () {
+ # local -a _docker_subcommands
+ local cache_policy
+
+ zstyle -s ":completion:${curcontext}:" cache-policy cache_policy
+ if [[ -z "$cache_policy" ]]; then
+ zstyle ":completion:${curcontext}:" cache-policy __docker_caching_policy
+ fi
+
+ if ( [[ ${+_docker_subcommands} -eq 0 ]] || _cache_invalid docker_subcommands) \
+ && ! _retrieve_cache docker_subcommands;
+ then
+ _docker_subcommands=(${${(f)"$(_call_program commands
+ docker 2>&1 | sed -e '1,6d' -e '/^[ ]*$/d' -e 's/[ ]*\([^ ]\+\)\s*\([^ ].*\)/\1:\2/' )"}})
+ _docker_subcommands=($_docker_subcommands 'help:Show help for a command')
+ _store_cache docker_subcommands _docker_subcommands
+ fi
+ _describe -t docker-commands "docker command" _docker_subcommands
+}
+
+__docker_subcommand () {
+ local -a _command_args
+ case "$words[1]" in
+ (attach)
+ _arguments \
+ '--no-stdin[Do not attach stdin]' \
+ '--sig-proxy[Proxify all received signal]' \
+ ':containers:__docker_runningcontainers'
+ ;;
+ (build)
+ _arguments \
+ '--no-cache[Do not use cache when building the image]' \
+ '-q[Suppress verbose build output]' \
+ '--rm[Remove intermediate containers after a successful build]' \
+ '-t=-:repository:__docker_repositories_with_tags' \
+ ':path or URL:_directories'
+ ;;
+ (commit)
+ _arguments \
+ '--author=-[Author]:author: ' \
+ '-m=-[Commit message]:message: ' \
+ '--run=-[Configuration automatically applied when the image is run]:configuration: ' \
+ ':container:__docker_containers' \
+ ':repository:__docker_repositories_with_tags'
+ ;;
+ (cp)
+ _arguments \
+ ':container:->container' \
+ ':hostpath:_files'
+ case $state in
+ (container)
+ if compset -P '*:'; then
+ _files
+ else
+ __docker_containers -qS ":"
+ fi
+ ;;
+ esac
+ ;;
+ (diff|export)
+ _arguments '*:containers:__docker_containers'
+ ;;
+ (history)
+ _arguments \
+ '--no-trunc[Do not truncate output]' \
+ '-q[Only show numeric IDs]' \
+ '*:images:__docker_images'
+ ;;
+ (images)
+ _arguments \
+ '-a[Show all images]' \
+ '--no-trunc[Do not truncate output]' \
+ '-q[Only show numeric IDs]' \
+ '--tree[Output graph in tree format]' \
+ '--viz[Output graph in graphviz format]' \
+ ':repository:__docker_repositories'
+ ;;
+ (inspect)
+ _arguments \
+ '--format=-[Format the output using the given go template]:template: ' \
+ '*:containers:__docker_containers'
+ ;;
+ (import)
+ _arguments \
+ ':URL:(- http:// file://)' \
+ ':repository:__docker_repositories_with_tags'
+ ;;
+ (info)
+ ;;
+ (import)
+ _arguments \
+ ':URL:(- http:// file://)' \
+ ':repository:__docker_repositories_with_tags'
+ ;;
+ (insert)
+ _arguments '1:containers:__docker_containers' \
+ '2:URL:(http:// file://)' \
+ '3:file:_files'
+ ;;
+ (kill)
+ _arguments '*:containers:__docker_runningcontainers'
+ ;;
+ (load)
+ ;;
+ (login)
+ _arguments \
+ '-e=-[Email]:email: ' \
+ '-p=-[Password]:password: ' \
+ '-u=-[Username]:username: ' \
+ ':server: '
+ ;;
+ (logs)
+ _arguments \
+ '-f[Follow log output]' \
+ '*:containers:__docker_containers'
+ ;;
+ (port)
+ _arguments \
+ '1:containers:__docker_runningcontainers' \
+ '2:port:_ports'
+ ;;
+ (start)
+ _arguments \
+ '-a[Attach container'"'"'s stdout/stderr and forward all signals]' \
+ '-i[Attach container'"'"'s stding]' \
+ '*:containers:__docker_stoppedcontainers'
+ ;;
+ (rm)
+ _arguments \
+ '--link[Remove the specified link and not the underlying container]' \
+ '-v[Remove the volumes associated to the container]' \
+ '*:containers:__docker_stoppedcontainers'
+ ;;
+ (rmi)
+ _arguments \
+ '*:images:__docker_images'
+ ;;
+ (restart|stop)
+ _arguments '-t=-[Number of seconds to try to stop for before killing the container]:seconds to before killing:(1 5 10 30 60)' \
+ '*:containers:__docker_runningcontainers'
+ ;;
+ (top)
+ _arguments \
+ '1:containers:__docker_runningcontainers' \
+ '(-)*:: :->ps-arguments'
+ case $state in
+ (ps-arguments)
+ _ps
+ ;;
+ esac
+
+ ;;
+ (ps)
+ _arguments \
+ '-a[Show all containers]' \
+ '--before=-[Show only container created before...]:containers:__docker_containers' \
+ '-l[Show only the latest created container]' \
+ '-n=-[Show n last created containers, include non-running one]:n:(1 5 10 25 50)' \
+ '--no-trunc[Do not truncate output]' \
+ '-q[Only show numeric IDs]' \
+ '-s[Display sizes]' \
+ '--since=-[Show only containers created since...]:containers:__docker_containers'
+ ;;
+ (tag)
+ _arguments \
+ '-f[force]'\
+ ':image:__docker_images'\
+ ':repository:__docker_repositories_with_tags'
+ ;;
+ (run)
+ _arguments \
+ '-P[Publish all exposed ports to the host]' \
+ '-a[Attach to stdin, stdout or stderr]' \
+ '-c=-[CPU shares (relative weight)]:CPU shares:(0 10 100 200 500 800 1000)' \
+ '--cidfile=-[Write the container ID to the file]:CID file:_files' \
+ '-d[Detached mode: leave the container running in the background]' \
+ '*--dns=-[Set custom dns servers]:dns server: ' \
+ '*-e=-[Set environment variables]:environment variable: ' \
+ '--entrypoint=-[Overwrite the default entrypoint of the image]:entry point: ' \
+ '*--expose=-[Expose a port from the container without publishing it]: ' \
+ '-h=-[Container host name]:hostname:_hosts' \
+ '-i[Keep stdin open even if not attached]' \
+ '--link=-[Add link to another container]:link:->link' \
+ '--lxc-conf=-[Add custom lxc options]:lxc options: ' \
+ '-m=-[Memory limit (in bytes)]:limit: ' \
+ '--name=-[Container name]:name: ' \
+ '*-p=-[Expose a container'"'"'s port to the host]:port:_ports' \
+ '--privileged[Give extended privileges to this container]' \
+ '--rm[Remove intermediate containers when it exits]' \
+ '--sig-proxy[Proxify all received signal]' \
+ '-t[Allocate a pseudo-tty]' \
+ '-u=-[Username or UID]:user:_users' \
+ '*-v=-[Bind mount a volume (e.g. from the host: -v /host:/container, from docker: -v /container)]:volume: '\
+ '--volumes-from=-[Mount volumes from the specified container]:volume: ' \
+ '-w=-[Working directory inside the container]:directory:_directories' \
+ '(-):images:__docker_images' \
+ '(-):command: _command_names -e' \
+ '*::arguments: _normal'
+
+ case $state in
+ (link)
+ if compset -P '*:'; then
+ _wanted alias expl 'Alias' compadd -E ""
+ else
+ __docker_runningcontainers -qS ":"
+ fi
+ ;;
+ esac
+
+ ;;
+ (pull|search)
+ _arguments ':name:__docker_search'
+ ;;
+ (push)
+ _arguments ':repository:__docker_repositories_with_tags'
+ ;;
+ (save)
+ _arguments \
+ ':images:__docker_images'
+ ;;
+ (wait)
+ _arguments ':containers:__docker_runningcontainers'
+ ;;
+ (help)
+ _arguments ':subcommand:__docker_commands'
+ ;;
+ (*)
+ _message 'Unknown sub command'
+ esac
+
+}
+
+_docker () {
+ # Support for subservices, which allows for `compdef _docker docker-shell=_docker_containers`.
+ # Based on /usr/share/zsh/functions/Completion/Unix/_git without support for `ret`.
+ if [[ $service != docker ]]; then
+ _call_function - _$service
+ return
+ fi
+
+ local curcontext="$curcontext" state line
+ typeset -A opt_args
+
+ _arguments -C \
+ '-H=-[tcp://host:port to bind/connect to]:socket: ' \
+ '(-): :->command' \
+ '(-)*:: :->option-or-argument'
+
+ if (( CURRENT == 1 )); then
+
+ fi
+ case $state in
+ (command)
+ __docker_commands
+ ;;
+ (option-or-argument)
+ curcontext=${curcontext%:*:*}:docker-$words[1]:
+ __docker_subcommand
+ ;;
+ esac
+}
+
+_docker "$@"
diff -Nru zsh-5.0.5/Completion/Linux/Command/_modutils zsh-5.0.7/Completion/Linux/Command/_modutils
--- zsh-5.0.5/Completion/Linux/Command/_modutils 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Linux/Command/_modutils 2014-10-07 18:11:30.000000000 +0000
@@ -127,7 +127,7 @@
_message -e value 'parameter value'
else
local params
- params=( ${${(M)${(f)"$(_call_program module_parameter modinfo "$words[2]" 2>/dev/null)"}:#parm:*}##parm:[[:space:]]##} )
+ params=( ${${(M)${(f)"$(_call_program module_parameter /sbin/modinfo "$words[2]" 2>/dev/null)"}:#parm:*}##parm:[[:space:]]##} )
if [[ $#params -eq 0 ]]; then
_message -e parameter "This modules doesn't have parameters"
else
diff -Nru zsh-5.0.5/Completion/Linux/Command/_ss zsh-5.0.7/Completion/Linux/Command/_ss
--- zsh-5.0.5/Completion/Linux/Command/_ss 1970-01-01 00:00:00.000000000 +0000
+++ zsh-5.0.7/Completion/Linux/Command/_ss 2014-10-07 18:11:30.000000000 +0000
@@ -0,0 +1,98 @@
+#compdef ss
+
+local curcontext="$curcontext" suf ret=1
+local -a state line expl pref filt
+local -A opt_args
+local info="-h -V --help --version"
+local sx="state exclude"
+
+_arguments -C -s \
+ "(- *)"{-h,--help}'[show option summary]' \
+ "(- *)"{-V,--version}'[show version information]' \
+ "($info -n --numeric)"{-n,--numeric}"[don't resolve service names]" \
+ "($info -r --resolve)"{-r,--resolve}'[resolve host addresses]' \
+ "($info -a --all -l --listening)"{-a,--all}'[display all sockets]' \
+ "($info -l --listening -a --all)"{-l,--listening}'[display listening sockets]' \
+ "($info -o --options -e --extended)"{-o,--options}'[show timer information]' \
+ "($info -e --extended -o --options)"{-e,--extended}'[show detailed information]' \
+ "($info -m --memory)"{-m,--memory}'[show socket memory usage]' \
+ "($info -p --processes)"{-p,--processes}'[show process using each socket]' \
+ "($info -i --info)"{-i,--info}'[show internal TCP information]' \
+ "($info -s --summary)"{-s,--summary}'[print summary statistics]' \
+ "($info -4 --ipv4 -6 --ipv6)"{-4,--ipv4}'[display only IP version 4 sockets]' \
+ "($info -4 --ipv4 -6 --ipv6)"{-6,--ipv6}'[display only IP version 6 sockets]' \
+ "($info -0 --packet)"{-0,--packet}'[display PACKET sockets]' \
+ "($info -t --tcp)"{-t,--tcp}'[display TCP sockets]' \
+ "($info -u --udp)"{-u,--udp}'[display UDP sockets]' \
+ "($info -d --dccp)"{-d,--dccp}'[display DCCP sockets]' \
+ "($info -w --raw)"{-w,--raw}'[display RAW sockets]' \
+ "($info -x --unix)"{-x,--unix}'[display Unix domain sockets]' \
+ "($info -f --family)"{-f,--family}'[display sockets of specified type]:family:(unix inet inet6 link netlink)' \
+ "($info -A --query --socket)"{-A,--query,--socket}'[specify socket tables to show]: :_values -s , socket\ table all inet tcp udp raw unix packet netlink unix_dgram unix_stream packet_raw packet_dgram' \
+ "($info -D)"{-D,--diag=}'[dump raw info to file]:file:_files' \
+ "($info -F)"{-F,--filter=}'[read filter information from a file]:file:_files' \
+ "($info)*: :->filter" && ret=0
+
+if [[ -n $state ]]; then
+ case $words[CURRENT-1] in
+ (d|s)port)
+ _wanted operators expl operator \
+ compadd \< \> \= \>= \<= \== \!= eq ge gt lt le ne && ret=0
+ ;;
+ dst|src)
+ if compset -P unix: || (( $+opt_args[-x] + $+opt_args[--unix] )) || [[ $opt_args[-f] = unix ]]; then
+ _files -g '*(=)' && ret=0
+ elif compset -P nl:; then
+ if compset -P \*:; then
+ _pids && ret=0
+ else
+ _message channel
+ fi
+ elif compset -P link:; then
+ compset -P \*: && _message ifindex || _message protocol
+ else
+ compset -P 'inet(6|):'
+ pref=$?
+ compset -S ':*' || suf="-qS:"
+ if compset -P \*:; then
+ _ports && ret=0
+ elif compset -P \*/; then
+ _wanted netmasks expl netmask compadd $suf {1..31} && ret=0
+ elif (( pref )); then
+ _alternative \
+ "hosts:host:_hosts $suf" \
+ "prefixes:prefix:compadd $suf nl link unix" && ret=0
+ else
+ _hosts $suf && ret=0
+ fi
+ fi
+ ;;
+ state|exclude)
+ _wanted states expl state compadd -M 'm:{a-zA-Z_}={A-Za-z-}' \
+ ESTABLISHED SYN-SENT SYN-RECV FIN-WAIT-1 FIN-WAIT-2 TIME-WAIT \
+ CLOSED CLOSE-WAIT LAST-ACK LISTEN CLOSING \
+ all connected synchronized bucket big && ret=0
+ ;;
+ *)
+ if [[ $words[CURRENT-2] = (d|s)port ]]; then
+ compset -P '*:' || pref=(-P :)
+ _ports $pref
+ return
+ else
+ (( $#line > 1 )) && [[ ${words[CURRENT-1]:Q} != (and|or|\() ]] &&
+ filt=( "($sx)*"{and,or} )
+ _values -w -s ' ' -S ' ' filter $filt \
+ "*state[sockets in specified state]" \
+ "*exclude[sockets not in specified state]" \
+ "($sx)*src[local address/port of socket]" \
+ "($sx)*dst[peer address/port of socket]" \
+ "($sx)*dport[peer port]: :(lt gt ge)" \
+ "($sx)*sport[local port]" \
+ "($sx)*autobound[socket bound to ephemeral port]" \
+ "($sx)*"{not,\(,\)} && ret=0
+ fi
+ ;;
+ esac
+fi
+
+return ret
diff -Nru zsh-5.0.5/Completion/Linux/Type/.distfiles zsh-5.0.7/Completion/Linux/Type/.distfiles
--- zsh-5.0.5/Completion/Linux/Type/.distfiles 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Linux/Type/.distfiles 2014-10-07 18:11:30.000000000 +0000
@@ -1,6 +1,2 @@
DISTFILES_SRC='
-.distfiles
-_fuse_arguments
-_fuse_values
-_wakeup_capable_devices
'
diff -Nru zsh-5.0.5/Completion/Mandriva/Command/.distfiles zsh-5.0.7/Completion/Mandriva/Command/.distfiles
--- zsh-5.0.5/Completion/Mandriva/Command/.distfiles 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Mandriva/Command/.distfiles 2014-10-07 18:11:30.000000000 +0000
@@ -1,5 +1,2 @@
DISTFILES_SRC='
-.distfiles
-_urpmi
-_rebootin
'
diff -Nru zsh-5.0.5/Completion/Mandriva/.distfiles zsh-5.0.7/Completion/Mandriva/.distfiles
--- zsh-5.0.5/Completion/Mandriva/.distfiles 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Mandriva/.distfiles 2014-10-07 18:11:30.000000000 +0000
@@ -1,3 +1,2 @@
DISTFILES_SRC='
-.distfiles
'
diff -Nru zsh-5.0.5/Completion/openSUSE/Command/.distfiles zsh-5.0.7/Completion/openSUSE/Command/.distfiles
--- zsh-5.0.5/Completion/openSUSE/Command/.distfiles 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/openSUSE/Command/.distfiles 2014-10-07 18:11:30.000000000 +0000
@@ -1,8 +1,2 @@
DISTFILES_SRC='
-.distfiles
-_hwinfo
-_osc
-_SuSEconfig
-_yast2
-_zypper
'
diff -Nru zsh-5.0.5/Completion/openSUSE/Command/_SuSEconfig zsh-5.0.7/Completion/openSUSE/Command/_SuSEconfig
--- zsh-5.0.5/Completion/openSUSE/Command/_SuSEconfig 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/openSUSE/Command/_SuSEconfig 1970-01-01 00:00:00.000000000 +0000
@@ -1,28 +0,0 @@
-#compdef SuSEconfig
-
-local curcontext="$curcontext" state line
-typeset -A opt_args
-
-if [[ -z "$_SuSEconfig_modules" ]]; then
- for i in /sbin/conf.d/SuSEconfig.*; do
- case $i in *.rpm*|*.swap|*.bak|*.orig|*~|\#*) continue;; esac
- _SuSEconfig_modules=($_SuSEconfig_modules ${i##*/SuSEconfig.})
- done
-fi
-
-
-_arguments \
- '--help' \
- '--quick' \
- '--force' \
- '--verbose' \
- '--nonewpackage' \
- '--module:module:->module' && return 0
-
-case $state in
- module) compadd $_SuSEconfig_modules ;;
-esac
-
-# Usage: SuSEconfig [--quick|--nonewpackage|--force|--verbose] [--module name]
-
-
diff -Nru zsh-5.0.5/Completion/openSUSE/Command/_SUSEconfig zsh-5.0.7/Completion/openSUSE/Command/_SUSEconfig
--- zsh-5.0.5/Completion/openSUSE/Command/_SUSEconfig 1970-01-01 00:00:00.000000000 +0000
+++ zsh-5.0.7/Completion/openSUSE/Command/_SUSEconfig 2014-10-07 18:11:30.000000000 +0000
@@ -0,0 +1,28 @@
+#compdef SuSEconfig
+
+local curcontext="$curcontext" state line
+typeset -A opt_args
+
+if [[ -z "$_SuSEconfig_modules" ]]; then
+ for i in /sbin/conf.d/SuSEconfig.*; do
+ case $i in *.rpm*|*.swap|*.bak|*.orig|*~|\#*) continue;; esac
+ _SuSEconfig_modules=($_SuSEconfig_modules ${i##*/SuSEconfig.})
+ done
+fi
+
+
+_arguments \
+ '--help' \
+ '--quick' \
+ '--force' \
+ '--verbose' \
+ '--nonewpackage' \
+ '--module:module:->module' && return 0
+
+case $state in
+ module) compadd $_SuSEconfig_modules ;;
+esac
+
+# Usage: SuSEconfig [--quick|--nonewpackage|--force|--verbose] [--module name]
+
+
diff -Nru zsh-5.0.5/Completion/openSUSE/Command/_zypper zsh-5.0.7/Completion/openSUSE/Command/_zypper
--- zsh-5.0.5/Completion/openSUSE/Command/_zypper 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/openSUSE/Command/_zypper 2014-10-07 18:11:30.000000000 +0000
@@ -1,6 +1,8 @@
#compdef zypper
#
# Copyright (C) 2009 Holger Macht
+# Copyright (C) 2014 Thomas Mitterfellner
+# Copyright (C) 2014 Mariusz Fik
#
# This file is released under the GPLv2.
#
@@ -9,60 +11,171 @@
# Toggle verbose completions: zstyle ':completion:*:zypper:*' verbose no
# zstyle ':completion:*:zypper-subcommand:*' verbose no
#
-# version 0.1
+# version 0.3
#
# Main dispatcher
+function _zypper_caching_policy () {
+ # rebuild if zsh's cache is older than zypper's
+ if test /var/cache/zypp/raw -nt "$1"; then
+ return 0
+ else
+ return 1
+ fi
+}
+
_zypper() {
+ typeset -A opt_args
+ local context curcontext="$curcontext" state line
+
if (( CURRENT > 2 )) && [[ ${words[2]} != "help" ]]; then
# Remember the subcommand name
- local cmd=${words[2]}
+ local cmd=${words[2]}
# Set the context for the subcommand.
- curcontext="${curcontext%:*:*}:zypper-subcommand"
+ curcontext="${curcontext%:*:*}:zypper-subcommand"
# Narrow the range of words we are looking at to exclude `zypper'
- (( CURRENT-- ))
- shift words
-
- _zypper_cmd_do $cmd
+ (( CURRENT-- ))
+ shift words
+
+ _zypper_cmd_do $cmd
else
- local hline
- local -a cmdlist
- local tag=0
- _call_program help-commands LANG=C zypper help | sed -e ':a;N;$!ba;s/\n\t\t\t\t/ /g' | while read -A hline; do
- # start parsing with "Global Options:"
- [[ $hline =~ "^Global Options:" ]] && tag=1
- [[ $tag = 0 ]] && continue
- # all commands have to start with lower case letters
- [[ $hline[1] =~ ^[A-Z] ]] && continue
- (( ${#hline} < 2 )) && continue
-
- # cut comma at end of command
- hline[1]=`echo $hline[1] | sed -e 's/\(^.*\),/\1/'`
-
- # ${hline[1]%,} truncates the last ','
- cmdlist=($cmdlist "${hline[1]%,}:${hline[2,-1]}")
- done
- _describe -t zypper-commands 'zypper command' cmdlist
+ local hline
+ local -a cmdlist
+ local tag=0
+ _call_program help-commands LANG=C zypper help | sed -e ':a;N;$!ba;s/\n\t\t\t\t/ /g' | while read -A hline; do
+ # start parsing with "Global Options:"
+ [[ $hline =~ "^Global Options:" ]] && tag=1
+ [[ $tag = 0 ]] && continue
+ # skip empty lines
+ [[ $hline =~ ^\s*$ ]] && continue
+ # all commands have to start with lower case letters
+ [[ $hline == [[:upper:]]* ]] && continue
+ (( ${#hline} < 2 )) && continue
+
+ # cut comma at end of command
+ hline[1]=`echo $hline[1] | sed -e 's/\(^.*\),/\1/'`
+
+ # ${hline[1]%,} truncates the last ','
+ cmdlist=($cmdlist "${hline[1]%,}:${hline[2,-1]}")
+ done
+ _describe -t zypper-commands 'zypper command' cmdlist
fi
}
+_all_repos() {
+ local -a repos
+ repos=( $(zypper -q lr | tail -n +3 | cut -d'|' -f 2) )
+ _describe -t repos 'Available repositories' repos && return
+}
+
+_enabled_repos() {
+ repos=( $(zypper -x lr | grep 'enabled="1"' | cut -d\" -f 2) )
+ _describe -t repos 'Available repositories' repos && return
+}
+
+_disabled_repos() {
+ repos=( $(zypper -x lr | grep 'enabled="0"' | cut -d\" -f 2) )
+ _describe -t repos 'Available repositories' repos && return
+}
+
_zypper_cmd_do() {
+ typeset -A opt_args
+ local context state line
local hline
local -a cmdlist
local tag=0
+ local curcontext="$curcontext"
+
+ zstyle ":completion:${curcontext}:" use-cache on
+ zstyle ":completion:${curcontext}:" cache-policy _zypper_caching_policy
+
_call_program help-commands LANG=C zypper help $cmd | while read -A hline; do
- # start parsing from "Options:"
- [[ $hline =~ "^Command options:" ]] && tag=1
- [[ $tag = 0 ]] && continue
- # Option has to start with a '-'
- [[ $hline[1] =~ ^- ]] || continue
- (( ${#hline} < 2 )) && continue
+ # start parsing from "Options:"
+ [[ $hline =~ "^Command options:" ]] && tag=1
+ [[ $tag = 0 ]] && continue
+ # Option has to start with a '-'
+ [[ $hline[1] =~ ^- ]] || continue
+ (( ${#hline} < 2 )) && continue
- cmdlist=($cmdlist "${hline[1]%,}:${hline[2,-1]}")
+ cmdlist=($cmdlist "${hline[1]%,}:${hline[2,-1]}")
done
if [ -n "$cmdlist" ]; then
+ local -a repos
+
+ # special completion lists for certain options (mainly repos)
+ case ${words[CURRENT - 1]} in
+ --from)
+ repos=( $(zypper -x lr | grep 'enabled="1"' | cut -d\" -f 2) )
+ _describe -t repos 'Available repositories' repos && return
+ ;;
+ (--enable|-e)
+ case $cmd in
+ (mr|modifyrepo)
+ _disabled_repos && return
+ ;;
+ esac
+ ;;
+ (--disable|-d)
+ case $cmd in
+ (mr|modifyrepo)
+ _enabled_repos && return
+ ;;
+ esac
+ ;;
+ (--type|-t)
+ local -a types
+ case $cmd in
+ (if|info|se|search|in|install)
+ types=( pattern srcpackage package patch )
+ _describe -t types 'Package types' types && return
+ ;;
+ esac
+ ;;
+ esac
+
+ # all options available for the active main command
_describe -t zypper-commands 'zypper command' cmdlist
+
+ case $cmd in
+ (lr|repos)
+ _all_repos
+ ;;
+ (in|install)
+ local expl
+ _description files expl 'RPM files'
+ _files "$expl[@]" -g '*.(#i)rpm(.)'
+ ;;
+ esac
+
+ # only suggest packages if at least one character is given
+ if [[ ${words[CURRENT]} =~ "^[0-9a-zA-Z]" ]] ; then
+ local -a pkglist
+
+ if ( [[ ${+_zypp_all_raw} -eq 0 ]] || _cache_invalid ZYPPER_ALL_RAW ) && ! _retrieve_cache ZYPPER_ALL_RAW;
+ then
+ _zypp_all_raw=$(zypper -x -q se | grep 'subcommands' && ret=0
+
+[[ -z $state ]] && return ret
+
+if [[ CURRENT -eq 1 || $words[1] == help ]]; then
+ local -a subcmds
+ subcmds=( ${${${(f)"$(_call_program subcommands augtool help 2>/dev/null)"}[2,-2]## #}// #- /:} )
+ _describe -t subcommands "augtool command" subcmds && ret=0
+ return ret
+fi
+
+_tags paths
+while _tags; do
+ if _requested paths; then
+ local subcmd="$words[1]"
+ curcontext="${curcontext%:*}-${subcmd}:"
+ if compset -P '/files/'; then
+ _all_labels paths expl path _path_files -W / && ret=0
+ elif compset -P '/augeas/'; then
+ compset -P '*/'
+ local files
+ files=( ${${(f)"$(_call_program path augtool ls ${words[CURRENT]%/*} 2>/dev/null)"}% = *} )
+ while _next_label paths expl path; do
+ compadd "$expl[@]" -- ${files:#*/} && ret=0
+ compadd "$expl[@]" -S '' -- ${(M)files:#*/} && ret=0
+ done
+ else
+ local -a suf
+ suf=(-S '')
+ compset -S '/*' || suf=( -S / )
+ _all_labels paths expl path compadd -P/ "$suf[@]" files augeas && ret=0
+ fi
+ fi
+ (( ret )) || break
+done
+
+return ret
diff -Nru zsh-5.0.5/Completion/Unix/Command/_bpython zsh-5.0.7/Completion/Unix/Command/_bpython
--- zsh-5.0.5/Completion/Unix/Command/_bpython 1970-01-01 00:00:00.000000000 +0000
+++ zsh-5.0.7/Completion/Unix/Command/_bpython 2014-10-07 18:11:30.000000000 +0000
@@ -0,0 +1,46 @@
+#compdef bpython bpython-gtk bpython-urwid bpython2 bpython2-gtk bpython2-urwid bpython3 bpython3-gtk bpython3-urwid
+
+local -a all_opts urwid_opts gtk_opts
+
+all_opts=(
+ '--config[configuration file]:config file:_files'
+ '-h --help[show help message]'
+ '(-i --interactive)'{-i,--interactive}'[drop to bpython after running a file]'
+ '(-q --quiet)'{-q,--quiet}'[do not flush the output to stdout]'
+ '(-V --version)'{-V,--version}'[print version]'
+ '1:script:_files -g "*.u#py(-.)"'
+ '*:arguments:'
+)
+
+urwid_opts=(
+ '(-r --reactor)'{-r,--reactor}'[use Twisted reactor instead of the event loop]:reactor:'
+ '--help-reactors[display list of available Twisted reactors]'
+ '(-p --plugin)'{-p,--plugin}'[exectue a twistd plugin]:plugin:'
+ '(-s --server)'{-s,--server}'[run an eval server on the given port]:port:'
+)
+
+gtk_opts=(
+ '--socket-id[embed bpython]:socket id:'
+)
+
+case "$service" in
+ bpython|bpython2|bpython3)
+ _arguments \
+ "$all_opts[@]" && return 0
+ ;;
+
+ bpython-urwid|bpython2-urwid|bpython3-urwid)
+ _arguments \
+ "$all_opts[@]" \
+ "$urwid_opts[@]" && return 0
+ ;;
+
+ bpython-gtk|bpython2-gtk|bpython3-gtk)
+ _arguments \
+ "$all_opts[@]" \
+ "$gtk_opts[@]" && return 0
+ ;;
+esac
+
+
+# vim:autoindent expandtab shiftwidth=2 tabstop=2 softtabstop=2 filetype=zsh
diff -Nru zsh-5.0.5/Completion/Unix/Command/_bzr zsh-5.0.7/Completion/Unix/Command/_bzr
--- zsh-5.0.5/Completion/Unix/Command/_bzr 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Unix/Command/_bzr 2014-10-07 18:11:30.000000000 +0000
@@ -25,7 +25,7 @@
(( $+functions[_bzr_unknownFiles] )) ||
_bzr_unknownFiles() {
local fileList
- fileList=(${(ps:\0:)"$(bzr ls --null --unknown)"})
+ fileList=(${(ps:\0:)"$(bzr ls --null --unknown -R)"})
compadd -af fileList
return 0
}
@@ -41,7 +41,15 @@
(( $+functions[_bzr_versionedFiles] )) ||
_bzr_versionedFiles() {
local fileList
- fileList=(${(ps:\0:)"$(bzr ls --null --versioned)"})
+ fileList=(${(ps:\0:)"$(bzr ls --null --versioned -R)"})
+ compadd -af fileList
+ return 0
+}
+
+(( $+functions[_bzr_modifiedFiles] )) ||
+_bzr_modifiedFiles() {
+ local fileList
+ fileList=(${(ps:\0:)"$(bzr status . --versioned --short | cut -b 5- | tr '\n' '\0')"})
compadd -af fileList
return 0
}
@@ -214,7 +222,7 @@
'--unchanged[include unchanged files]'
'(-q --quiet -v --verbose)'{--quiet,-q}'[be quiet]'
'(-v --verbose -q --quiet)'{--verbose,-v}'[display more information]'
- '*:modified files:_bzr_versionedFiles'
+ '*:modified files:_bzr_modifiedFiles'
)
;;
@@ -300,7 +308,7 @@
args+=(
'--no-backup[skip generation of backup~ files]'
'(-r --revision)'{--revision=,-r}'[revision]:revision:'
- '*:file:_bzr_versionedFiles'
+ '*:file:_bzr_modifiedFiles'
)
;;
diff -Nru zsh-5.0.5/Completion/Unix/Command/_chsh zsh-5.0.7/Completion/Unix/Command/_chsh
--- zsh-5.0.5/Completion/Unix/Command/_chsh 1970-01-01 00:00:00.000000000 +0000
+++ zsh-5.0.7/Completion/Unix/Command/_chsh 2014-10-07 18:11:30.000000000 +0000
@@ -0,0 +1,40 @@
+#compdef chsh chpass
+case $OSTYPE in
+(darwin*|*bsd*)
+ _arguments : \
+ '-s[Specify user login shell]:shell:(${(Z+Cn+)"$(&/dev/null
+ then
+ local -a opts shells
+ shells=( $(=chsh -l) )
+ _arguments : \
+ "(-)-s[Specify your login shell]:shell:($shells)" \
+ "(-)--shell[Specify your login shell]:shell:($shells)" \
+ "(-)-l[Print shells in /etc/shells]" \
+ "(-)--list-shells[Print shells in /etc/shells]" \
+ "(-)-u[Print a usage message and exit]" \
+ "(-)--help[Print a usage message and exit]" \
+ "(-)-v[Print version information and exit]" \
+ "(-)--version[Print version information and exit]" \
+ "1:user name:_users"
+ return
+ fi
+ # else fall through
+ ;&
+(*)
+ local s=''
+ # Use $s to cause all options to be treated as mutually exclusive
+ [[ $words[CURRENT-1] = -* ]] && s="(-)$words[CURRENT-1]"
+ # This fiddling with $s is a hack to cause "_arguments : --" to use
+ # the /etc/shells listing for -s or --shell even when the description
+ # of that option has been pulled from the GNU --help output.
+ [[ $words[CURRENT-1] = (-s|--shell) ]] &&
+ s="$s"'[ ]:shell:(${(Z+Cn+)"$(groups' \
+ '(-f --file)'{-f,--file}'[use the file as list of machines]:file:_files' \
+ '(-r --remoteshell)'{-r,--remoteshell}'[execute using shell]:remote shell:(rsh ssh)' \
+ '(-o --remoteshellopt)'{-o,--remoteshellopt}'[option to give to remote shell ]:option' \
+ '(-)'{-h,--help}'[display help information]' \
+ '(-w --wait-shell -c --concurrent-shell)'{-w,--wait-shell}'[sequentially execute shell]' \
+ '(-c --concurrent-shell -w --wait-shell)'{-c,--concurrent-shell}'[execute shell concurrently]' \
+ '(-F --forklimit)'{-F,--forklimit}'[concurrent with limit on number]:fork limit' \
+ '(-)'{-V,--version}'[display version information]' \
+ '*::args: _normal' && return
+
+if [[ $state = groups ]]; then
+ if ! zstyle -s ":completion:$curcontext:dsh-groups" dsh-groups grp; then
+ [[ -e ~/.dsh/group ]] && grp="~/.dsh/group" || return 1
+ fi
+ _path_files -W ~/.dsh/group && return
+fi
+
+return 1
diff -Nru zsh-5.0.5/Completion/Unix/Command/_dvi zsh-5.0.7/Completion/Unix/Command/_dvi
--- zsh-5.0.5/Completion/Unix/Command/_dvi 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Unix/Command/_dvi 2014-10-07 18:11:30.000000000 +0000
@@ -1,4 +1,4 @@
-#compdef dvips dvibook dviconcat dvicopy dvidvi dviselect dvitodvi dvitype
+#compdef dvips dvibook dviconcat dvicopy dvidvi dvipdf dviselect dvitodvi dvitype
local expl args
diff -Nru zsh-5.0.5/Completion/Unix/Command/_gcc zsh-5.0.7/Completion/Unix/Command/_gcc
--- zsh-5.0.5/Completion/Unix/Command/_gcc 2014-01-05 18:24:59.000000000 +0000
+++ zsh-5.0.7/Completion/Unix/Command/_gcc 2014-10-07 18:11:30.000000000 +0000
@@ -1,6 +1,6 @@
#compdef gcc g++ cc c++ llvm-gcc llvm-g++ clang clang++ -value-,LDFLAGS,-default- -value-,CFLAGS,-default- -value-,CPPFLAGS,-default-
-local curcontext="$curcontext" state line ret=1 expl args args2
+local curcontext="$curcontext" state line ret=1 expl args args2 march
typeset -A opt_args
if [[ "$service" = -value-* ]]; then
@@ -76,7 +76,7 @@
-mpowerpc-gpopt -mno-powerpc-gpopt
-mpowerpc-gfxopt -mno-powerpc-gfxopt
-mnew-mnemonics -mno-new-mnemonics
- -mfull-toc -mminimal-toc -mno-fop-in-toc -mno-sum-in-toc
+ -mfull-toc -mminimal-toc -mno-fop-in-toc -mno-sum-in-toc
-msoft-float -mhard-float -mmultiple -mno-multiple
-mstring -mno-string -mbit-align -mno-bit-align
-mstrict-align -mno-strict-align -mrelocatable -mno-relocatable
@@ -110,34 +110,118 @@
)
;;
i[3456]86|x86_64)
+ march="native i386 i486 i586 pentium pentium-mmx pentiumpro i686 pentium2 pentium3 pentium3m pentium-m pentium4 pentium4m prescott nocona core2 corei7 corei7-avx core-avx-i core-avx2 atom k6 k6-2 k6-3 athlon athlon-tbird athlon-4 athlon-xp athlon-mp k8 opteron athlon64 athlon-fx k8-sse3 opteron-sse3 athlon64-sse3 amdfam10 barcelona bdver1 bdver2 bdver3 btver1 btver2 winchip-c6 winchip2 c3 c3-2 geode"
args=(
- '-mtune=:CPU type:(i386 i486 i586 pentium pentium-mmx i686 pentiumpro pentium2 pentium3 pentium3m pentium-m pentium4 pentium4m prescott nocona k6 k6-2 k6-3 athlon athlon-tbird athlon-4 athlon-xp athlon-mp k8 opteron athlon64 athlon-fx winchip-c6 winchip2 c3 c3-2)'
- '-march=:CPU type:(i386 i486 i586 pentium pentium-mmx i686 pentiumpro pentium2 pentium3 pentium3m pentium-m pentium4 pentium4m prescott nocona k6 k6-2 k6-3 athlon athlon-tbird athlon-4 athlon-xp athlon-mp k8 opteron athlon64 athlon-fx winchip-c6 winchip2 c3 c3-2)'
- '-mfpmath=:FPU type:(387 sse sse,387)'
- '-masm=:asm dialect:(att intel)'
- -mieee-fp -mno-ieee-fp -msoft-float
- -mno-fp-ret-in-387 -mno-fancy-math-387
- -malign-double -mno-align-double
- -m128bit-long-double -m96bit-long-double
- -msvr3-shlib -mno-svr3-shlib
- -mrtd
- '-mregparm=:number of integer argument registers:'
- '-mpreferred-stack-boundary=:size of boundary:'
- -mmmx -msse -msse2 -msse3 -m3dnow
- -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-3dnow
- -mpush-args -mno-push-args -maccumulate-outgoing-args
+ '-mtune=-[tune code for CPU type]:CPU type:('"$march"')'
+ '-march=-[generate instructions for CPU type]:CPU type:('"generic $march"')'
-mthreads
- -mno-align-stringops -minline-all-stringops
- -momit-leaf-frame-pointer
- -mtls-direct-seg-refs -mno-tls-direct-seg-refs
- -m32 -m64
- -mno-red-zone
- '-mcmodel=:memory model:(small kernel medium large)'
- -mno-wide-multiply
'-mreg-alloc=:default register allocation order:'
- '-malign-jumps=: **2 base for jump goal alignment:'
- '-malign-loops=: **2 base for loop alignment:'
- '-malign-functions=: **2 base for function alignment:'
+
+ # arguments with options
+ '-mabi=-[Generate code that conforms to the given ABI]:abi:(ms sysv)'
+ '-maddress-mode=-[Use given address mode]:address mode:(short long)'
+ '-malign-functions=-[Function starts are aligned to this power of 2]: **2 base for function alignment: '
+ '-malign-jumps=-[Jump targets are aligned to this power of 2]: **2 base for jump goal alignment: '
+ '-malign-loops=-[Loop code aligned to this power of 2]: **2 base for loop alignment: '
+ '-masm=-[Use given assembler dialect]:asm dialect:(att intel)'
+ '-mbranch-cost=-[Branches are this expensive (1-5, arbitrary units)]:branch cost (1-5): '
+ '-mcmodel=-[Use given x86-64 code model]:memory model:(32 small kernel medium large)'
+ '-mfpmath=-[Generate floating point mathematics using given instruction set]:FPU type:(387 sse sse,387 both)'
+ '-mincoming-stack-boundary=-[Assume incoming stack aligned to this power of 2]:assumed size of boundary: '
+ '-mlarge-data-threshold=-[Data greater than given threshold will go into .ldata section in x86-64 medium model]:threshold: '
+ '-mpreferred-stack-boundary=-[Attempt to keep stack aligned to this power of 2]:size of boundary: '
+ '-mregparm=-[Number of registers used to pass integer arguments]:number of integer argument registers: '
+ '-mstringop-strategy=-[Chose strategy to generate stringop using]:stringop strategy:(byte_loop libcall loop rep_4byte rep_8byte rep_byte unrolled_loop)'
+ '-mtls-dialect=-[Use given thread-local storage dialect]:TLS dialect:(gnu gnu2)'
+ '-mveclibabi=-[Vector library ABI to use]:vector library ABI:(acml svml)'
+
+ # arguments without options
+ '-m3dnow[Support 3DNow! built-in functions]'
+ '-m8bit-idiv[Expand 32bit/64bit integer divide into 8bit unsigned integer divide with run-time check]'
+ '-m32[Generate 32bit i386 code]'
+ '-m64[Generate 64bit x86-64 code]'
+ '-m96bit-long-double[sizeof(long double) is 12]'
+ '-m128bit-long-double[sizeof(long double) is 16]'
+ '-m80387[Use hardware fp]'
+ '-mabm[Support code generation of Advanced Bit Manipulation (ABM) instructions]'
+ '-maccumulate-outgoing-args[Reserve space for outgoing arguments in the function prologue]'
+ '-madx[Support flag-preserving add-carry instructions]'
+ '-maes[Support AES built-in functions and code generation]'
+ '-malign-double[Align some doubles on dword boundary]'
+ '-malign-stringops[Align destination of the string operations]'
+ '-mandroid[Generate code for the Android platform]'
+ '-mavx2[Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in functions and code generation]'
+ '-mavx256-split-unaligned-load[Split 32-byte AVX unaligned load]'
+ '-mavx256-split-unaligned-store[Split 32-byte AVX unaligned store]'
+ '-mavx[Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and AVX built-in functions and code generation]'
+ '-mbionic[Use Bionic C library]'
+ '-mbmi2[Support BMI2 built-in functions and code generation]'
+ '-mbmi[Support BMI built-in functions and code generation]'
+ '-mcld[Generate cld instruction in the function prologue]'
+ '-mcrc32[Support code generation of crc32 instruction]'
+ '-mcx16[Support code generation of cmpxchg16b instruction]'
+ '-mdispatch-scheduler[Do dispatch scheduling if processor is bdver1 or bdver2 or bdver3 and Haifa scheduling is selected]'
+ '-mf16c[Support F16C built-in functions and code generation]'
+ '-mfancy-math-387[Generate sin, cos, sqrt for FPU]'
+ '-mfentry[Emit profiling counter call at function entry before prologue]'
+ '-mfma4[Support FMA4 built-in functions and code generation ]'
+ '-mfma[Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and FMA built-in functions and code generation]'
+ '-mforce-drap[Always use Dynamic Realigned Argument Pointer (DRAP) to realign stack]'
+ '-mfp-ret-in-387[Return values of functions in FPU registers]'
+ '-mfsgsbase[Support FSGSBASE built-in functions and code generation]'
+ '-mfxsr[Support FXSAVE and FXRSTOR instructions]'
+ '-mglibc[Use GNU C library]'
+ '-mhard-float[Use hardware fp]'
+ '-mhle[Support Hardware Lock Elision prefixes]'
+ '-mieee-fp[Use IEEE math for fp comparisons]'
+ '-minline-all-stringops[Inline all known string operations]'
+ '-minline-stringops-dynamically[Inline memset/memcpy string operations, but perform inline version only for small blocks]'
+ '-mlong-double-64[Use 64-bit long double]'
+ '-mlong-double-80[Use 80-bit long double]'
+ '-mlwp[Support LWP built-in functions and code generation ]'
+ '-mlzcnt[Support LZCNT built-in function and code generation]'
+ '-mmmx[Support MMX built-in functions]'
+ '-mmovbe[Support code generation of movbe instruction]'
+ '-mms-bitfields[Use native (MS) bitfield layout]'
+ '-mno-sse4[Do not support SSE4.1 and SSE4.2 built-in functions and code generation]'
+ '-momit-leaf-frame-pointer[Omit the frame pointer in leaf functions]'
+ '-mpc32[Set 80387 floating-point precision to 32-bit]'
+ '-mpc64[Set 80387 floating-point precision to 64-bit]'
+ '-mpc80[Set 80387 floating-point precision to 80-bit]'
+ '-mpclmul[Support PCLMUL built-in functions and code generation]'
+ '-mpopcnt[Support code generation of popcnt instruction]'
+ '-mprefer-avx128[Use 128-bit AVX instructions instead of 256-bit AVX instructions in the auto-vectorizer]'
+ '-mprfchw[Support PREFETCHW instruction]'
+ '-mpush-args[Use push instructions to save outgoing arguments]'
+ '-mrdrnd[Support RDRND built-in functions and code generation]'
+ '-mrdseed[Support RDSEED instruction]'
+ '-mrecip[Generate reciprocals instead of divss and sqrtss]'
+ '-mred-zone[Use red-zone in the x86-64 code]'
+ '-mrtd[Alternate calling convention]'
+ '-mrtm[Support RTM built-in functions and code generation]'
+ '-msahf[Support code generation of sahf instruction in 64bit x86-64 code]'
+ '-msoft-float[Do not use hardware fp]'
+ '-msse2[Support MMX, SSE and SSE2 built-in functions and code generation]'
+ '-msse2avx[Encode SSE instructions with VEX prefix]'
+ '-msse3[Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation]'
+ '-msse4.1[Support MMX, SSE, SSE2, SSE3, SSSE3 and SSE4.1 built-in functions and code generation]'
+ '-msse4.2[Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation]'
+ '-msse4[Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 built-in functions and code generation]'
+ '-msse4a[Support MMX, SSE, SSE2, SSE3 and SSE4A built-in functions and code generation]'
+ '-msse[Support MMX and SSE built-in functions and code generation]'
+ '-msseregparm[Use SSE register passing conventions for SF and DF mode]'
+ '-mssse3[Support MMX, SSE, SSE2, SSE3 and SSSE3 built-in functions and code generation]'
+ '-mstack-arg-probe[Enable stack probing]'
+ '-mstackrealign[Realign stack in prologue]'
+ '-mtbm[Support TBM built-in functions and code generation]'
+ '-mtls-direct-seg-refs[Use direct references against %gs when accessing tls data]'
+ '-muclibc[Use uClibc C library]'
+ '-mvect8-ret-in-mem[Return 8-byte vectors in memory]'
+ '-mvzeroupper[Generate vzeroupper instruction before a transfer of control flow out of the function]'
+ '-mx32[Generate 32bit x86-64 code]'
+ '-mxop[Support XOP built-in functions and code generation ]'
+ '-mxsave[Support XSAVE and XRSTOR instructions]'
+ '-mxsaveopt[Support XSAVEOPT instruction]'
)
;;
hppa*)
@@ -222,90 +306,635 @@
)
fi
+local -a languages
+languages=(
+ c c-header cpp-output
+ c++ c++-header c++-cpp-output
+ objective-c objective-c-header objective-c-cpp-output
+ objective-c++ objective-c++-header objective-c++-cpp-output
+ assembler assembler-with-cpp
+ ada
+ f77 f77-cpp-input f95 f95-cpp-input
+ go
+ java
+)
+
+# generic options (from --help)
+args+=(
+ -a -C -H -P -s
+ '-###[print commands to run this compilation]'
+ '-o:output file:_files -g "^*.(c|h|cc|C|cxx)(-.)"'
+ '-x[Specify the language of the following input files]:input file language:('"$languages"')'
+ '+e-:virtual function definitions in classes:((0\:only\ interface 1\:generate\ code))'
+ '-d-:dump:->dump'
+ '-g-::debugging information type or level:(0 1 2 3 gdb coff stabs stabs+ dwarf dwarf+ dwarf-2 dwarf-3 dwarf-4 xcoff xcoff+)'
+ '-O-::optimization level:((0 1 2 3 g\:optimize\ for\ debugging\ experience s\:optimize\ for\ space fast\:optimize\ for\ speed\ disregarding\ exact\ standards\ compliance))'
+ '*-M-::output dependencies:((M\:only\ user\ header\ files MD\:output\ to\ file G\:treat\ missing\ header\ files\ as\ generated))'
+ '*-A-:define assertion:'
+ '*-D-:define macro:'
+ '*-U-:undefine macro:'
+ '-E[Preprocess only; do not compile, assemble or link]'
+ '-S[Compile only; do not assemble or link]'
+ '-c[Compile and assemble, but do not link]'
+ '*-Wp,-:preprocessor option:'
+ '*-Wl,-:linker option:'
+ '*-Xpreprocessor:preprocessor option:'
+ '*-Xlinker:linker option:'
+ '*-Xassembler:assembler option:'
+ '*-u:pretend symbol to be undefined:'
+ '*-Wa,-:assembler option:'
+ '*-l:library:->library'
+ '*-L-:library search path:_files -/'
+ '*-I-:header file search path:_files -/'
+ '-B-[Add to the compiler'\''s search paths]:executable prefix:_files -/'
+ '-b:target machine:'
+ '-V:specify compiler version:'
+ '--version[Display compiler version information]'
+ '-print-file-name=-[Display the full path to library ]:library:->library'
+ '-print-prog-name=-[Display the full path to compiler component ]:program:'
+ '*-specs=-[Override built-in specs with the contents of ]:file:_files'
+ '-std=-[Assume that the input sources are for ]:standard:(c90 c89 c99 c11 gnu90 gnu89 gnu99 gnu11 c++98 c++03 gnu++98 gnu++03 c++11 gnu++11 c++1y gnu++1y)'
+ '*-include:include file:_files -g \*.h\(-.\)'
+ '*-imacros:macro input file:_files -g \*.h\(-.\)'
+ '*-idirafter:second include path directory:_files -/'
+ '*-iprefix:prefix:_files'
+ '*-iwithprefix:second include path directory:_files -/'
+ '*-iwithprefixbefore:main include path directory:_files -/'
+ '*-isystem:second include path directory (system):_files -/'
+ '--sysroot=-[Use as the root directory for headers and libraries]:directory:_files -/'
+ '-pass-exit-codes[Exit with highest error code from a phase]'
+ '*--help=-[Display this information]:class:->help'
+ '--target-help[Display target specific command line options]'
+ '-dumpspecs[Display all of the built in spec strings]'
+ '-dumpversion[Display the version of the compiler]'
+ '-dumpmachine[Display the compiler'\''s target processor]'
+ '-print-search-dirs[Display the directories in the compiler'\''s search path]'
+ '-print-libgcc-file-name[Display the name of the compiler'\''s companion library]'
+ '-print-multiarch[Display the target'\''s normalized GNU triplet, used as a component in the library path]'
+ '-print-multi-directory[Display the root directory for versions of libgcc]'
+ '-print-multi-lib[Display the mapping between command line options and multiple library search directories]'
+ '-print-multi-os-directory[Display the relative path to OS libraries]'
+ '-print-sysroot[Display the target libraries directory]'
+ '-print-sysroot-headers-suffix[Display the sysroot suffix used to find headers]'
+ '-save-temps[Do not delete intermediate files]'
+ '-no-canonical-prefixes[Do not canonicalize paths when building relative prefixes to other gcc components]'
+ '-pipe[Use pipes rather than intermediate files]'
+ '-pie[Create a position independent executable]'
+ '-shared[Create a shared library]'
+ '-time[Time the execution of each subprocess]'
+)
-_arguments -C -M 'L:|-{fW}no-=-{fW} r:|[_-]=* r:|=*' \
+# warnings (from --help=warnings), note some -W options are listed by --help=common instead
+args+=(
+# --help=warnings,^joined
+ '-W[This switch is deprecated; use -Wextra instead]'
+ '-Wabi-tag[Warn if a subobject has an abi_tag attribute that the complete object type does not have]'
+ '-Wabi[Warn about things that will change when compiling with an ABI-compliant compiler]'
+ '-Waddress[Warn about suspicious uses of memory addresses]'
+ '-Waggregate-return[Warn about returning structures, unions or arrays]'
+ '-Waggressive-loop-optimizations[Warn if a loop with constant number of iterations triggers undefined behavior]'
+ '-Waliasing[Warn about possible aliasing of dummy arguments]'
+ '-Walign-commons[Warn about alignment of COMMON blocks]'
+ '-Wall[Enable most warning messages]'
+ '-Wampersand[Warn about missing ampersand in continued character constants]'
+ '-Warray-bounds[Warn if an array is accessed out of bounds]'
+ '-Warray-temporaries[Warn about creation of array temporaries]'
+ '-Wassign-intercept[Warn whenever an Objective-C assignment is being intercepted by the garbage collector]'
+ '-Wattributes[Warn about inappropriate attribute usage]'
+ '-Wbad-function-cast[Warn about casting functions to incompatible types]'
+ '-Wbuiltin-macro-redefined[Warn when a built-in preprocessor macro is undefined or redefined]'
+ '-Wc++-compat[Warn about C constructs that are not in the common subset of C and C++]'
+ '-Wc++0x-compat[Deprecated in favor of -Wc++11-compat]'
+ '-Wc++11-compat[Warn about C++ constructs whose meaning differs between ISO C++ 1998 and ISO C++ 2011]'
+ '-Wc-binding-type[Warn if the type of a variable might be not interoperable with C]'
+ '-Wcast-align[Warn about pointer casts which increase alignment]'
+ '-Wcast-qual[Warn about casts which discard qualifiers]'
+ '-Wchar-subscripts[Warn about subscripts whose type is "char"]'
+ '-Wcharacter-truncation[Warn about truncated character expressions]'
+ '-Wclobbered[Warn about variables that might be changed by "longjmp" or "vfork"]'
+ '-Wcomment[Warn about possibly nested block comments, and C++ comments spanning more than one physical line]'
+ '-Wcomments[Synonym for -Wcomment]'
+ '-Wcompare-reals[Warn about equality comparisons involving REAL or COMPLEX expressions]'
+ '-Wconversion-extra[Warn about most implicit conversions]'
+ '-Wconversion-null[Warn for converting NULL from/to a non-pointer type]'
+ '-Wconversion[Warn for implicit type conversions that may change a value]'
+ '-Wcoverage-mismatch[Warn in case profiles in -fprofile-use do not match]'
+ '-Wcpp[Warn when a #warning directive is encountered]'
+ '-Wctor-dtor-privacy[Warn when all constructors and destructors are private]'
+ '-Wdeclaration-after-statement[Warn when a declaration is found after a statement]'
+ '-Wdelete-non-virtual-dtor[Warn about deleting polymorphic objects with non- virtual destructors]'
+ '-Wdeprecated-declarations[Warn about uses of __attribute__((deprecated)) declarations]'
+ '-Wdeprecated[Warn if a deprecated compiler feature, class, method, or field is used]'
+ '-Wdisabled-optimization[Warn when an optimization pass is disabled]'
+ '-Wdiv-by-zero[Warn about compile-time integer division by zero]'
+ '-Wdouble-promotion[Warn about implicit conversions from "float" to "double"]'
+ '-Weffc++[Warn about violations of Effective C++ style rules]'
+ '-Wempty-body[Warn about an empty body in an if or else statement]'
+ '-Wendif-labels[Warn about stray tokens after #elif and #endif]'
+ '-Wenum-compare[Warn about comparison of different enum types]'
+#this still exists but makes completing -Werror= less convenient
+ #'-Werror-implicit-function-declaration[This switch is deprecated; use -Werror=implicit-function-declaration instead]'
+ '-Wextra[Print extra (possibly unwanted) warnings]'
+ '-Wfloat-equal[Warn if testing floating point numbers for equality]'
+ '-Wformat-contains-nul[Warn about format strings that contain NUL bytes]'
+ '-Wformat-extra-args[Warn if passing too many arguments to a function for its format string]'
+ '-Wformat-nonliteral[Warn about format strings that are not literals]'
+ '-Wformat-security[Warn about possible security problems with format functions]'
+ '-Wformat-y2k[Warn about strftime formats yielding 2-digit years]'
+ '-Wformat-zero-length[Warn about zero-length formats]'
+ '-Wformat[Warn about printf/scanf/strftime/strfmon format string anomalies]'
+ '-Wfree-nonheap-object[Warn when attempting to free a non-heap object]'
+ '-Wfunction-elimination[Warn about function call elimination]'
+ '-Wignored-qualifiers[Warn whenever type qualifiers are ignored]'
+ '-Wimplicit-function-declaration[Warn about implicit function declarations]'
+ '-Wimplicit-int[Warn when a declaration does not specify a type]'
+ '-Wimplicit-interface[Warn about calls with implicit interface]'
+ '-Wimplicit-procedure[Warn about called procedures not explicitly declared]'
+ '-Wimplicit[Warn about implicit declarations]'
+ '-Winherited-variadic-ctor[Warn about C++11 inheriting constructors when the base has a variadic constructor]'
+ '-Winit-self[Warn about variables which are initialized to themselves]'
+ '-Winline[Warn when an inlined function cannot be inlined]'
+ '-Wint-to-pointer-cast[Warn when there is a cast to a pointer from an integer of a different size]'
+ '-Wintrinsic-shadow[Warn if a user-procedure has the same name as an intrinsic]'
+ '-Wintrinsics-std[Warn on intrinsics not part of the selected standard]'
+ '-Winvalid-memory-model[Warn when an atomic memory model parameter is known to be outside the valid range]'
+ '-Winvalid-offsetof[Warn about invalid uses of the "offsetof" macro]'
+ '-Winvalid-pch[Warn about PCH files that are found but not used]'
+ '-Wjump-misses-init[Warn when a jump misses a variable initialization]'
+ '-Wline-truncation[Warn about truncated source lines]'
+ '-Wliteral-suffix[Warn when a string or character literal is followed by a ud-suffix which does not begin with an underscore]'
+ '-Wlogical-op[Warn when a logical operator is suspiciously always evaluating to true or false]'
+ '-Wlong-long[Do not warn about using "long long" when -pedantic]'
+ '-Wmain[Warn about suspicious declarations of "main"]'
+ '-Wmaybe-uninitialized[Warn about maybe uninitialized automatic variables]'
+ '-Wmissing-braces[Warn about possibly missing braces around initializers]'
+ '-Wmissing-declarations[Warn about global functions without previous declarations]'
+ '-Wmissing-field-initializers[Warn about missing fields in struct initializers]'
+ '-Wmissing-include-dirs[Warn about user-specified include directories that do not exist]'
+ '-Wmissing-parameter-type[Warn about function parameters declared without a type specifier in K&R-style functions]'
+ '-Wmissing-prototypes[Warn about global functions without prototypes]'
+ '-Wmudflap[Warn about constructs not instrumented by -fmudflap]'
+ '-Wmultichar[Warn about use of multi-character character constants]'
+ '-Wnarrowing[Warn about narrowing conversions within { } that are ill-formed in C++11]'
+ '-Wnested-externs[Warn about "extern" declarations not at file scope]'
+ '-Wnoexcept[Warn when a noexcept expression evaluates to false even though the expression can'\''t actually throw]'
+ '-Wnon-template-friend[Warn when non-templatized friend functions are declared within a template]'
+ '-Wnon-virtual-dtor[Warn about non-virtual destructors]'
+ '-Wnonnull[Warn about NULL being passed to argument slots marked as requiring non-NULL]'
+ '-Wold-style-cast[Warn if a C-style cast is used in a program]'
+ '-Wold-style-declaration[Warn for obsolescent usage in a declaration]'
+ '-Wold-style-definition[Warn if an old-style parameter definition is used]'
+ '-Woverflow[Warn about overflow in arithmetic expressions]'
+ '-Woverlength-strings[Warn if a string is longer than the maximum portable length specified by the standard]'
+ '-Woverloaded-virtual[Warn about overloaded virtual function names]'
+ '-Woverride-init[Warn about overriding initializers without side effects]'
+ '-Wpacked-bitfield-compat[Warn about packed bit-fields whose offset changed in GCC 4.4]'
+ '-Wpacked[Warn when the packed attribute has no effect on struct layout]'
+ '-Wpadded[Warn when padding is required to align structure members]'
+ '-Wparentheses[Warn about possibly missing parentheses]'
+ '-Wpedantic[Issue warnings needed for strict compliance to the standard]'
+ '-Wpmf-conversions[Warn when converting the type of pointers to member functions]'
+ '-Wpointer-arith[Warn about function pointer arithmetic]'
+ '-Wpointer-sign[Warn when a pointer differs in signedness in an assignment]'
+ '-Wpointer-to-int-cast[Warn when a pointer is cast to an integer of a different size]'
+ '-Wpoison-system-directories[Warn for -I and -L options using system directories if cross compiling]'
+ '-Wpragmas[Warn about misuses of pragmas]'
+ '-Wproperty-assign-default[Warn if a property for an Objective-C object has no assign semantics specified]'
+ '-Wprotocol[Warn if inherited methods are unimplemented]'
+ '-Wreal-q-constant[Warn about real-literal-constants with '\''q'\'' exponent-letter]'
+ '-Wrealloc-lhs-all[Warn when a left-hand-side variable is reallocated]'
+ '-Wrealloc-lhs[Warn when a left-hand-side array variable is reallocated]'
+ '-Wredundant-decls[Warn about multiple declarations of the same object]'
+ '-Wreorder[Warn when the compiler reorders code]'
+ '-Wreturn-local-addr[Warn about returning a pointer/reference to a local or temporary variable]'
+ '-Wreturn-type[Warn whenever a function'\''s return type defaults to "int" (C), or about inconsistent return types (C++)]'
+ '-Wselector[Warn if a selector has multiple methods]'
+ '-Wsequence-point[Warn about possible violations of sequence point rules]'
+ '-Wshadow[Warn when one local variable shadows another]'
+ '-Wsign-compare[Warn about signed-unsigned comparisons]'
+ '-Wsign-promo[Warn when overload promotes from unsigned to signed]'
+ '-Wstack-protector[Warn when not issuing stack smashing protection for some reason]'
+ '-Wstrict-null-sentinel[Warn about uncasted NULL used as sentinel]'
+ '-Wstrict-prototypes[Warn about unprototyped function declarations]'
+ '-Wstrict-selector-match[Warn if type signatures of candidate methods do not match exactly]'
+ '-Wsuggest-attribute=-[Warn about functions which might be candidates for __attribute__((const))]:const: '
+ '-Wsurprising[Warn about "suspicious" constructs]'
+ '-Wswitch-default[Warn about enumerated switches missing a "default-" statement]'
+ '-Wswitch-enum[Warn about all enumerated switches missing a specific case]'
+ '-Wswitch[Warn about enumerated switches, with no default, missing a case]'
+ '-Wsync-nand[Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used]'
+ '-Wsynth[Deprecated. This switch has no effect]'
+ '-Wsystem-headers[Do not suppress warnings from system headers]'
+ '-Wtabs[Permit nonconforming uses of the tab character]'
+ '-Wtarget-lifetime[Warn if the pointer in a pointer assignment might outlive its target]'
+ '-Wtraditional-conversion[Warn of prototypes causing type conversions different from what would happen in the absence of prototype]'
+ '-Wtraditional[Warn about features not present in traditional C]'
+ '-Wtrampolines[Warn whenever a trampoline is generated]'
+ '-Wtrigraphs[Warn if trigraphs are encountered that might affect the meaning of the program]'
+ '-Wtype-limits[Warn if a comparison is always true or always false due to the limited range of the data type]'
+ '-Wundeclared-selector[Warn about @selector()s without previously declared methods]'
+ '-Wundef[Warn if an undefined macro is used in an #if directive]'
+ '-Wunderflow[Warn about underflow of numerical constant expressions]'
+ '-Wuninitialized[Warn about uninitialized automatic variables]'
+ '-Wunknown-pragmas[Warn about unrecognized pragmas]'
+ '-Wunsafe-loop-optimizations[Warn if the loop cannot be optimized due to nontrivial assumptions]'
+ '-Wunsuffixed-float-constants[Warn about unsuffixed float constants]'
+ '-Wunused-but-set-parameter[Warn when a function parameter is only set, otherwise unused]'
+ '-Wunused-but-set-variable[Warn when a variable is only set, otherwise unused]'
+ '-Wunused-dummy-argument[Warn about unused dummy arguments]'
+ '-Wunused-function[Warn when a function is unused]'
+ '-Wunused-label[Warn when a label is unused]'
+ '-Wunused-local-typedefs[Warn when typedefs locally defined in a function are not used]'
+ '-Wunused-macros[Warn about macros defined in the main file that are not used]'
+ '-Wunused-parameter[Warn when a function parameter is unused]'
+ '-Wunused-result[Warn if a caller of a function, marked with attribute warn_unused_result, does not use its return value]'
+ '-Wunused-value[Warn when an expression value is unused]'
+ '-Wunused-variable[Warn when a variable is unused]'
+ '-Wunused[Enable all -Wunused- warnings]'
+ '-Wuseless-cast[Warn about useless casts]'
+ '-Wvarargs[Warn about questionable usage of the macros used to retrieve variable arguments]'
+ '-Wvariadic-macros[Warn about using variadic macros]'
+ '-Wvector-operation-performance[Warn when a vector operation is compiled outside the SIMD]'
+ '-Wvirtual-move-assign[Warn if a virtual base has a non-trivial move assignment operator]'
+ '-Wvla[Warn if a variable length array is used]'
+ '-Wvolatile-register-var[Warn when a register variable is declared volatile]'
+ '-Wwrite-strings[In C++, nonzero means warn about deprecated conversion from string literals to '\''char *'\''. In C, similar warning, except that the conversion is of course not deprecated by the ISO C standard]'
+ '-Wzero-as-null-pointer-constant[Warn when a literal '\''0'\'' is used as null pointer]'
+ '-frequire-return-statement[Functions which return values must end with return statements]'
+# --help=warnings,joined
+ '-Wlarger-than=-[Warn if an object is larger than bytes]:number: '
+ '-Wnormalized=-[Warn about non-normalised Unicode strings]:normalization:((id\:allow\ some\ non-nfc\ characters\ that\ are\ valid\ identifiers nfc\:only\ allow\ NFC nfkc\:only\ allow\ NFKC none\:allow\ any\ normalization)): '
+ '-Wstack-usage=-[Warn if stack usage might be larger than specified amount]:stack usage: '
+ '-Wstrict-aliasing=-[Warn about code which might break strict aliasing rules]:level of checking (higher is more accurate):(1 2 3)'
+ '-Wstrict-overflow=-[Warn about optimizations that assume that signed overflow is undefined]:level of checking (higher finds more cases):(1 2 3 4 5)'
+# -W options from --help=common
+ '-Werror=-[Treat specified warning as error (or all if none specified)]:warning:->werror'
+ '-Wfatal-errors[Exit on the first error occurred]'
+ '-Wframe-larger-than=-[Warn if a function'\'\''s stack frame requires more than bytes]:number: '
+)
+# optimizers (from --help=optimizers), except for -O
+args+=(
+# --help=optimizers,^joined
+ '-faggressive-loop-optimizations[Aggressively optimize loops using language constraints]'
+ '-falign-functions=-[Align the start of functions]:function alignment'
+ '-falign-jumps=-[Align labels which are only reached by jumping]:jump alignment'
+ '-falign-labels=-[Align all labels]:label alignment'
+ '-falign-loops=-[Align the start of loops]:loop alignment'
+ '-fasynchronous-unwind-tables[Generate unwind tables that are exact at each instruction boundary]'
+ '-fbranch-count-reg[Replace add, compare, branch with branch on count register]'
+ '-fbranch-probabilities[Use profiling information for branch probabilities]'
+ '-fbranch-target-load-optimize2[Perform branch target load optimization after prologue / epilogue threading]'
+ '-fbranch-target-load-optimize[Perform branch target load optimization before prologue / epilogue threading]'
+ '-fbtr-bb-exclusive[Restrict target load migration not to re-use registers in any basic block]'
+ '-fcaller-saves[Save registers around function calls]'
+ '-fcombine-stack-adjustments[Looks for opportunities to reduce stack adjustments and stack references]'
+ '-fcommon[Do not put uninitialized globals in the common section]'
+ '-fcompare-elim[Perform comparison elimination after register allocation has finished]'
+ '-fconserve-stack[Do not perform optimizations increasing noticeably stack usage]'
+ '-fcprop-registers[Perform a register copy-propagation optimization pass]'
+ '-fcrossjumping[Perform cross-jumping optimization]'
+ '-fcse-follow-jumps[When running CSE, follow jumps to their targets]'
+ '-fcx-fortran-rules[Complex multiplication and division follow Fortran rules]'
+ '-fcx-limited-range[Omit range reduction step when performing complex division]'
+ '-fdata-sections[Place data items into their own section]'
+ '-fdce[Use the RTL dead code elimination pass]'
+ '-fdefer-pop[Defer popping functions args from stack until later]'
+ '-fdelayed-branch[Attempt to fill delay slots of branch instructions]'
+ '-fdelete-null-pointer-checks[Delete useless null pointer checks]'
+ '-fdevirtualize[Try to convert virtual calls to direct ones]'
+ '-fdse[Use the RTL dead store elimination pass]'
+ '-fearly-inlining[Perform early inlining]'
+ '-fexceptions[Enable exception handling]'
+ '-fexpensive-optimizations[Perform a number of minor, expensive optimizations]'
+ '-ffinite-math-only[Assume no NaNs or infinities are generated]'
+ '-ffloat-store[Don'\''t allocate floats and doubles in extended- precision registers]'
+ '-fforward-propagate[Perform a forward propagation pass on RTL]'
+ '-fgcse-after-reload[Perform global common subexpression elimination after register allocation has finished]'
+ '-fgcse-las[Perform redundant load after store elimination in global common subexpression elimination]'
+ '-fgcse-lm[Perform enhanced load motion during global common subexpression elimination]'
+ '-fgcse-sm[Perform store motion after global common subexpression elimination]'
+ '-fgcse[Perform global common subexpression elimination]'
+ '-fgraphite-identity[Enable Graphite Identity transformation]'
+ '-fguess-branch-probability[Enable guessing of branch probabilities]'
+ '-fhandle-exceptions[This switch lacks documentation]'
+ '-fhoist-adjacent-loads[Enable hoisting adjacent loads to encourage generating conditional move instructions]'
+ '-fif-conversion2[Perform conversion of conditional jumps to conditional execution]'
+ '-fif-conversion[Perform conversion of conditional jumps to branchless equivalents]'
+ '-finline-atomics[Inline __atomic operations when a lock free instruction sequence is available]'
+ '-finline-functions-called-once[Integrate functions only required by their single caller]'
+ '-finline-functions[Integrate functions not declared "inline" into their callers when profitable]'
+ '-finline-small-functions[Integrate functions into their callers when code size is known not to grow]'
+ '-finline[Enable inlining of function declared "inline", disabling disables all inlining]'
+ '-fipa-cp-clone[Perform cloning to make Interprocedural constant propagation stronger]'
+ '-fipa-cp[Perform Interprocedural constant propagation]'
+ '-fipa-profile[Perform interprocedural profile propagation]'
+ '-fipa-pta[Perform interprocedural points-to analysis]'
+ '-fipa-pure-const[Discover pure and const functions]'
+ '-fipa-reference[Discover readonly and non addressable static variables]'
+ '-fipa-sra[Perform interprocedural reduction of aggregates]'
+ '-fira-hoist-pressure[Use IRA based register pressure calculation in RTL hoist optimizations]'
+ '-fivopts[Optimize induction variables on trees]'
+ '-fjump-tables[Use jump tables for sufficiently large switch statements]'
+ '-floop-block[Enable Loop Blocking transformation]'
+ '-floop-interchange[Enable Loop Interchange transformation]'
+ '-floop-nest-optimize[Enable the ISL based loop nest optimizer]'
+ '-floop-parallelize-all[Mark all loops as parallel]'
+ '-floop-strip-mine[Enable Loop Strip Mining transformation]'
+ '-fmath-errno[Set errno after built-in math functions]'
+ '-fmerge-all-constants[Attempt to merge identical constants and constant variables]'
+ '-fmerge-constants[Attempt to merge identical constants across compilation units]'
+ '-fmodulo-sched[Perform SMS based modulo scheduling before the first scheduling pass]'
+ '-fmove-loop-invariants[Move loop invariant computations out of loops]'
+ '-fno-threadsafe-statics[Do not generate thread-safe code for initializing local statics]'
+ '-fnon-call-exceptions[Support synchronous non-call exceptions]'
+ '-fnothrow-opt[Treat a throw() exception specification as noexcept to improve code size]'
+ '-fomit-frame-pointer[When possible do not generate stack frames]'
+ '-fopt-info[Enable all optimization info dumps on stderr]'
+ '-foptimize-register-move[Do the full register move optimization pass]'
+ '-foptimize-sibling-calls[Optimize sibling and tail recursive calls]'
+ '-foptimize-strlen[Enable string length optimizations on trees]'
+ '-fpack-struct[Pack structure members together without holes]'
+ '-fpeel-loops[Perform loop peeling]'
+ '-fpeephole2[Enable an RTL peephole pass before sched2]'
+ '-fpeephole[Enable machine specific peephole optimizations]'
+ '-fpredictive-commoning[Run predictive commoning optimization]'
+ '-fprefetch-loop-arrays[Generate prefetch instructions, if available, for arrays in loops]'
+ '-freg-struct-return[Return small aggregates in registers]'
+ '-fregmove[Enables a register move optimization]'
+ '-frename-registers[Perform a register renaming optimization pass]'
+ '-freorder-blocks-and-partition[Reorder basic blocks and partition into hot and cold sections]'
+ '-freorder-blocks[Reorder basic blocks to improve code placement]'
+ '-freorder-functions[Reorder functions to improve code placement]'
+ '-frerun-cse-after-loop[Add a common subexpression elimination pass after loop optimizations]'
+ '-freschedule-modulo-scheduled-loops[Enable/Disable the traditional scheduling in loops that already passed modulo scheduling]'
+ '-frounding-math[Disable optimizations that assume default FP rounding behavior]'
+ '-frtti[Generate run time type descriptor information]'
+ '-fsched-critical-path-heuristic[Enable the critical path heuristic in the scheduler]'
+ '-fsched-dep-count-heuristic[Enable the dependent count heuristic in the scheduler]'
+ '-fsched-group-heuristic[Enable the group heuristic in the scheduler]'
+ '-fsched-interblock[Enable scheduling across basic blocks]'
+ '-fsched-last-insn-heuristic[Enable the last instruction heuristic in the scheduler]'
+ '-fsched-pressure[Enable register pressure sensitive insn scheduling]'
+ '-fsched-rank-heuristic[Enable the rank heuristic in the scheduler]'
+ '-fsched-spec-insn-heuristic[Enable the speculative instruction heuristic in the scheduler]'
+ '-fsched-spec-load-dangerous[Allow speculative motion of more loads]'
+ '-fsched-spec-load[Allow speculative motion of some loads]'
+ '-fsched-spec[Allow speculative motion of non-loads]'
+ '-fsched2-use-superblocks[If scheduling post reload, do superblock scheduling]'
+ '-fschedule-insns2[Reschedule instructions after register allocation]'
+ '-fschedule-insns[Reschedule instructions before register allocation]'
+ '-fsection-anchors[Access data in the same section from shared anchor points]'
+ '-fsel-sched-pipelining-outer-loops[Perform software pipelining of outer loops during selective scheduling]'
+ '-fsel-sched-pipelining[Perform software pipelining of inner loops during selective scheduling]'
+ '-fsel-sched-reschedule-pipelined[Reschedule pipelined regions without pipelining]'
+ '-fselective-scheduling2[Run selective scheduling after reload]'
+ '-fselective-scheduling[Schedule instructions using selective scheduling algorithm]'
+ '-fshort-double[Use the same size for double as for float]'
+ '-fshort-enums[Use the narrowest integer type possible for enumeration types]'
+ '-fshort-wchar[Force the underlying type for "wchar_t" to be "unsigned short"]'
+ '-fshrink-wrap[Emit function prologues only before parts of the function that need it, rather than at the top of the function]'
+ '-fsignaling-nans[Disable optimizations observable by IEEE signaling NaNs]'
+ '-fsigned-zeros[Disable floating point optimizations that ignore the IEEE signedness of zero]'
+ '-fsingle-precision-constant[Convert floating point constants to single precision constants]'
+ '-fsplit-ivs-in-unroller[Split lifetimes of induction variables when loops are unrolled]'
+ '-fsplit-wide-types[Split wide types into independent registers]'
+ '-fstrict-aliasing[Assume strict aliasing rules apply]'
+ '-fstrict-enums[Assume that values of enumeration type are always within the minimum range of that type]'
+ '-fthread-jumps[Perform jump threading optimizations]'
+ '-ftoplevel-reorder[Reorder top level functions, variables, and asms]'
+ '-ftrapping-math[Assume floating-point operations can trap]'
+ '-ftrapv[Trap for signed overflow in addition, subtraction and multiplication]'
+ '-ftree-bit-ccp[Enable SSA-BIT-CCP optimization on trees]'
+ '-ftree-builtin-call-dce[Enable conditional dead code elimination for builtin calls]'
+ '-ftree-ccp[Enable SSA-CCP optimization on trees]'
+ '-ftree-ch[Enable loop header copying on trees]'
+ '-ftree-coalesce-inlined-vars[Enable coalescing of copy-related user variables that are inlined]'
+ '-ftree-coalesce-vars[Enable coalescing of all copy-related user variables]'
+ '-ftree-copy-prop[Enable copy propagation on trees]'
+ '-ftree-copyrename[Replace SSA temporaries with better names in copies]'
+ '-ftree-cselim[Transform condition stores into unconditional ones]'
+ '-ftree-dce[Enable SSA dead code elimination optimization on trees]'
+ '-ftree-dominator-opts[Enable dominator optimizations]'
+ '-ftree-dse[Enable dead store elimination]'
+ '-ftree-forwprop[Enable forward propagation on trees]'
+ '-ftree-fre[Enable Full Redundancy Elimination (FRE) on trees]'
+ '-ftree-loop-distribute-patterns[Enable loop distribution for patterns transformed into a library call]'
+ '-ftree-loop-distribution[Enable loop distribution on trees]'
+ '-ftree-loop-if-convert-stores[Also if-convert conditional jumps containing memory writes]'
+ '-ftree-loop-if-convert[Convert conditional jumps in innermost loops to branchless equivalents]'
+ '-ftree-loop-im[Enable loop invariant motion on trees]'
+ '-ftree-loop-ivcanon[Create canonical induction variables in loops]'
+ '-ftree-loop-optimize[Enable loop optimizations on tree level]'
+ '-ftree-lrs[Perform live range splitting during the SSA- >normal pass]'
+ '-ftree-partial-pre[In SSA-PRE optimization on trees, enable partial- partial redundancy elimination]'
+ '-ftree-phiprop[Enable hoisting loads from conditional pointers]'
+ '-ftree-pre[Enable SSA-PRE optimization on trees]'
+ '-ftree-pta[Perform function-local points-to analysis on trees]'
+ '-ftree-reassoc[Enable reassociation on tree level]'
+ '-ftree-scev-cprop[Enable copy propagation of scalar-evolution information]'
+ '-ftree-sink[Enable SSA code sinking on trees]'
+ '-ftree-slp-vectorize[Enable basic block vectorization (SLP) on trees]'
+ '-ftree-slsr[Perform straight-line strength reduction]'
+ '-ftree-sra[Perform scalar replacement of aggregates]'
+ '-ftree-switch-conversion[Perform conversions of switch initializations]'
+ '-ftree-tail-merge[Enable tail merging on trees]'
+ '-ftree-ter[Replace temporary expressions in the SSA->normal pass]'
+ '-ftree-vect-loop-version[Enable loop versioning when doing loop vectorization on trees]'
+ '-ftree-vectorize[Enable loop vectorization on trees]'
+ '-ftree-vrp[Perform Value Range Propagation on trees]'
+ '-funit-at-a-time[Compile whole compilation unit at a time]'
+ '-funroll-all-loops[Perform loop unrolling for all loops]'
+ '-funroll-loops[Perform loop unrolling when iteration count is known]'
+ '-funsafe-loop-optimizations[Allow loop optimizations to assume that the loops behave in normal way]'
+ '-funsafe-math-optimizations[Allow math optimizations that may violate IEEE or ISO standards]'
+ '-funswitch-loops[Perform loop unswitching]'
+ '-funwind-tables[Just generate unwind tables for exception handling]'
+ '-fvar-tracking-assignments-toggle[Toggle -fvar-tracking-assignments]'
+ '-fvar-tracking-assignments[Perform variable tracking by annotating assignments]'
+ '-fvar-tracking-uninit[Perform variable tracking and also tag variables that are uninitialized]'
+ '-fvar-tracking[Perform variable tracking]'
+ '-fvariable-expansion-in-unroller[Apply variable expansion when loops are unrolled]'
+ '-fvect-cost-model[Enable use of cost model in vectorization]'
+ '-fvpt[Use expression value profiles in optimizations]'
+ '-fweb[Construct webs and split unrelated uses of single variable]'
+ '-fwhole-program[Perform whole program optimizations]'
+ '-fwrapv[Assume signed arithmetic overflow wraps around]'
+# --help=optimizers,joined
+ '-fpack-struct=-[Set initial maximum structure member alignment]:alignment: '
+)
+
+# other common options, gcc --help=warnings --help=optimizers --help=common|sed 1,/language-independent/d
+args+=(
+# | grep -v ::
+ '--debug[This switch lacks documentation]'
+ '--dump[This switch lacks documentation]'
+ '--dumpbase[This switch lacks documentation]'
+ '--dumpdir[This switch lacks documentation]'
+ '--help[Display this information]'
+ '--no-warnings[This switch lacks documentation]'
+ '--optimize[This switch lacks documentation]'
+ '--output[This switch lacks documentation]'
+ '--param[Set parameter to value. See manpage for a complete list of parameters]:name=value'
+ '--pedantic-errors[This switch lacks documentation]'
+ '--pedantic[This switch lacks documentation]'
+ '--profile[This switch lacks documentation]'
+ '--verbose[This switch lacks documentation]'
+ '--version[This switch lacks documentation]'
+ '-aux-info[Emit declaration information into ]:file:_files'
+ '-dumpbase[Set the file basename to be used for dumps]'
+ '-dumpdir[Set the directory name to be used for dumps]'
+ '-fPIC[Generate position-independent code if possible (large mode)]'
+ '-fPIE[Generate position-independent code for executables if possible (large mode)]'
+ '-fassociative-math[Allow optimization for floating-point arithmetic which may change the result of the operation due to rounding]'
+ '-fauto-inc-dec[Generate auto-inc/dec instructions]'
+ '-fbounds-check[Generate code to check bounds before indexing arrays]'
+ '-fcall-saved--[Mark as being preserved across functions]:register'
+ '-fcall-used--[Mark as being corrupted by function calls]:register'
+ '-fcheck-data-deps[Compare the results of several data dependence analyzers]'
+ '-fcompare-debug-second[Run only the second compilation of -fcompare-debug]'
+ '-fcompare-debug=[Compile with and without e.g. -gtoggle, and compare the final-insns dump]:opts:' #TODO: complete gcc options here
+ '-fdbg-cnt-list[List all available debugging counters with their limits and counts]'
+ '-fdbg-cnt=[,-,...) Set the debug counter limit]:counter\:limit,...: ' #TODO: gcc -fdbg-cnt-list -x c /dev/null -o /dev/null -c
+ '-fdebug-types-section[Output .debug_types section when using DWARF v4 debuginfo]'
+ '-fdelete-dead-exceptions[Delete dead instructions that may throw exceptions]'
+ '-fdiagnostics-show-caret[Show the source line with a caret indicating the column]'
+ '-fdiagnostics-show-location=-[How often to emit source location at the beginning of line-wrapped diagnostics]:source location:(once every-line)'
+ '-fdiagnostics-show-option[Amend appropriate diagnostic messages with the command line option that controls them]'
+ #not meant for end users
+ #'-fdisable--pass=[disables an optimization pass]:range1+range2: '
+ #'-fdisable-[disables an optimization pass]'
+ #'-fenable--pass=[enables an optimization pass]:range1+range2: '
+ #'-fenable-[enables an optimization pass]'
+ #'-fdump-[Dump various compiler internals to a file]'
+ '-fdump-final-insns=-[Dump to filename the insns at the end of translation]:filename:_files'
+ '-fdump-go-spec=-[Write all declarations to file as Go code]:filename:_files'
+ '-fdump-noaddr[Suppress output of addresses in debugging dumps]'
+ '-fdump-passes[Dump optimization passes]'
+ '-fdump-unnumbered-links[Suppress output of previous and next insn numbers in debugging dumps]'
+ '-fdump-unnumbered[Suppress output of instruction numbers, line number notes and addresses in debugging dumps]'
+ '-fdwarf2-cfi-asm[Enable CFI tables via GAS assembler directives]'
+ '-feliminate-dwarf2-dups[Perform DWARF2 duplicate elimination]'
+ '-feliminate-unused-debug-symbols[Perform unused type elimination in debug info]'
+ '-feliminate-unused-debug-types[Perform unused type elimination in debug info]'
+ '-femit-class-debug-always[Do not suppress C++ class debug information]'
+ '-fexcess-precision=-[Specify handling of excess floating-point precision]:precision handling:(fast standard)'
+ '-ffast-math[Sets -fno-math-errno, -funsafe-math-optimizations, -ffinite-math-only, -fno-rounding-math, -fno-signaling-nans and -fcx-limited-range]'
+ '-ffat-lto-objects[Output lto objects containing both the intermediate language and binary output]'
+ '-ffixed--[Mark as being unavailable to the compiler]:register'
+ '-ffunction-cse[Allow function addresses to be held in registers]'
+ '-ffunction-sections[Place each function into its own section]'
+ '-fgnu-tm[Enable support for GNU transactional memory]'
+ '-fgraphite[Enable in and out of Graphite representation]'
+ '-fident[Process #ident directives]'
+ '-findirect-inlining[Perform indirect inlining]'
+ '-finhibit-size-directive[Do not generate .size directives]'
+ '-finline-limit=[Limit the size of inlined functions to ]:number: '
+ '-finstrument-functions[Instrument function entry and exit with profiling calls]'
+ '-fira-loop-pressure[Use IRA based register pressure calculation in RTL loop optimizations]'
+ '-fira-share-save-slots[Share slots for saving different hard registers]'
+ '-fira-share-spill-slots[Share stack slots for spilled pseudo-registers]'
+ '-fira-verbose=[Control IRA'\''s level of diagnostic messages]:verbosity: '
+ '-fkeep-inline-functions[Generate code for functions even if they are fully inlined]'
+ '-fkeep-static-consts[Emit static const variables even if they are not used]'
+ '-fleading-underscore[Give external symbols a leading underscore]'
+ '-flto-compression-level=[Use zlib compression level for IL]:compression level: '
+ '-flto-partition=[Partition symbols and vars at linktime based on object files they originate from]:partitioning algorithm:(1to1 balanced max)'
+ '-flto-report[Report various link-time optimization statistics]'
+ '-flto[Enable link-time optimization]'
+ '-fmax-errors=-[Maximum number of errors to report]:errors: '
+ '-fmem-report-wpa[Report on permanent memory allocation in WPA only]'
+ '-fmem-report[Report on permanent memory allocation]'
+ '-fmerge-debug-strings[Attempt to merge identical debug strings across compilation units]'
+ '-fmessage-length=-[Limit diagnostics to characters per line. 0 suppresses line-wrapping]:length: '
+ '-fmodulo-sched-allow-regmoves[Perform SMS based modulo scheduling with register moves allowed]'
+ '-fopt-info-type=-[Dump compiler optimization details]:filename:_files'
+ '-fopt-info[Dump compiler optimization details]'
+ '-fpartial-inlining[Perform partial inlining]'
+ '-fpcc-struct-return[Return small aggregates in memory, not registers]'
+ '-fpic[Generate position-independent code if possible (small mode)]'
+ '-fpie[Generate position-independent code for executables if possible (small mode)]'
+ '-fplugin-arg--[Specify argument = for plugin