From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15817 invoked by alias); 28 May 2015 12:31:09 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 35315 Received: (qmail 14730 invoked from network); 28 May 2015 12:31:05 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2 autolearn=ham autolearn_force=no version=3.4.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.co.uk; s=s2048; t=1432815920; bh=hAyM7GehEIzIi3gi7Iu/xO7dFZNl//ZJ7siyWIfQWNs=; h=From:To:Subject:Date:From:Subject; b=UiEoj7xyRGmvo/nPJ6Gwy/4lReIFMHT/tPbZhOG8VzIwvNEVGPps4Ios2eur+3qVkpWZw0dKhMnyk7CNFs7PoI8KgXiVOYzJGnnZdSTMV8D9+T+S+amRJGcJcjeuUvESjx56p52SeWCEuQwnFQgDVL9/4DkydE1ZSoWYDb+J1QlqrDsgzFH2sZDmHk4B13XY7F7KmOIStj3JO2yYLtwEZHKvyeFZkCyO7VqCFDaB/6tvP4Q3XbEqeJh02xpDJ+avcjy+j7J/3HfHMyHfJUxgVVV9tU59Jam45o2iWCljV6B59MNwsNmbM0w6FTomPaVtP80zmCOujnxKN0LJMVrPtA== X-Yahoo-Newman-Id: 971737.38377.bm@smtp107.mail.ir2.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: u35tse4VM1m5RvENJTAEsTPRzud7ozQiQ8L8Op8U6T887pZ JdOLDzYa_SqZVwI98fdfAEsFBHwHhR_IVHQtqigJ.CC5xw21.EU2OgyzQR7j r0gKYEc7u.6e6ZlMMWRY82ST1bs4iiSq9nJaA0qDlFzvShTZYA1zhEfGIgch AMnwP0khrMc3r85X8dV1G4iZ046qxuQWNHVNxI5XXRHzrzUmDnECFP17sPGE V3DPsxSpraWpJUhmRrrVXm4o60kO45CfciUdECeSvgofxfaAydpXp7_SOhhM .eHoT8yaukyLGUjBuMucglot0ou0NjJIJDW83vZuUmwPdWnr1g7E7v51W7uv Zhyrj.Ko4teOd0N9YbZ3ZBNixi26IlEZU_WHhxgigYRYDWjaMPWWh5eXrL.L VaE1JM0o7eL5XFY2kGvr_WFToN_U43cZRL9GVO_aMerwUwZ._R0KwSvAvGTB 2FFhT2niqlEcABDejSfxmU5y_salnylKMOxAc83Aqo4BbgGkclBFIcMEYg_X w8aEEa6wW1We80Fq1NkZfF3euKBDf31jX X-Yahoo-SMTP: opAkk_CswBAce_kJ3nIPlH80cJI- From: Oliver Kiddle To: Zsh workers Subject: PATCH: direct use of _path_commands is mostly wrong MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <15975.1432815918.1@thecus.kiddle.eu> Date: Thu, 28 May 2015 14:25:18 +0200 Message-ID: <15976.1432815918@thecus.kiddle.eu> _path_commands completes just programs found in $PATH (and is responsible for the command descriptions, the caching of which my last post concerned). It does not complete programs specified via a full path so this fails: git grep --open-files-in-pager=/bin/l Instead, _command_names -e, allows also this form while completing only external commands. However, as mentioned in a TODO comment in _git, we should be able to complete something like this to complete less options: git grep --open-files-in-pager='less - The function for doing that is _cmdstring. That contains nothing more than compset -q and a call to _normal. So it does complete aliases, functions, variable assignments and so on. I think _git should use _cmdstring and the patch below does that. But should _cmdstring be adapted to avoid aliases etc. I considered adding a -e option also to _cmdstring but things like aliases can actually be valid in subshells. Another issue with _cmdstring to consider is that it resets the zstyle context. Currently the only other use of _cmdstring is _sh and _emulate. The one other instance of _path_commands being used where it shouldn't is in _matlab so the patch below also updates that (also adding options up to matlab R2014b). Oliver diff --git a/Completion/Unix/Command/_git b/Completion/Unix/Command/_git index c13ec12..7f3851e 100644 --- a/Completion/Unix/Command/_git +++ b/Completion/Unix/Command/_git @@ -946,7 +946,7 @@ _git-grep () { '(-n --line-number)'{-n,--line-number}'[prefix the line number to matching lines]' \ '(-l --files-with-matches -L --files-without-match --name-only)'{-l,--files-with-matches,--name-only}'[show only names of matching files]' \ '(-l --files-with-matches -L --files-without-match)'{-L,--files-without-match}'[show only names of non-matching files]' \ - '(--cached -O --open-files-in-pager)'{-O,--open-files-in-pager}'=-[open matching files in pager]::_path_commands' \ + '(--cached -O --open-files-in-pager)'{-O,--open-files-in-pager=}'-[open matching files in pager]:pager:_cmdstring' \ '(-z --null)'{-z,--null}'[output \0 after filenames]' \ '(-c --count)'{-c,--count}'[show number of matching lines in files]' \ '( --no-color)--color=-[color matches]:: :__git_color_whens' \ @@ -1846,9 +1846,6 @@ _git-config () { '(--no-includes)'--includes'[respect "include.*" directives in config files when looking up values]' \ '(--includes)'--no-includes'[do not respect "include.*" directives]' && ret=0 - # TODO: Most all _path_commands should be able to take arguments and so on. - # How do we deal with that and how do we quote the whole argument to git - # config? # TODO: Add support for merge.*. (merge driver), diff.*. (diff driver), and filter.*. (filter driver) options # (see gitattributes(5)). # TODO: .path options should take absolute paths. @@ -1891,7 +1888,7 @@ _git-config () { core.safecrlf:'verify that CRLF conversion is reversible::->core.safecrlf:false' core.autocrlf:'convert CRLFs to and from system specific::->core.autocrlf:false' core.symlinks:'create symbolic links for indexed symbolic links upon creation::->bool:true' - core.gitProxy:'command to execute to establish a connection to remote server:proxy command:_path_commands' + core.gitProxy:'command to execute to establish a connection to remote server:proxy command:_cmdstring' core.ignoreStat:'ignore modification times of files::->bool:false' core.preferSymlinkRefs:'use symbolic links for symbolic-reference files::->bool:false' core.bare:'use a repository without a working tree::->bool:false' @@ -1908,9 +1905,9 @@ _git-config () { core.deltaBaseCacheLimit:'maximum size of cache for base objects:maximum base objects cache size:->bytes:96m' core.bigFileThreshold:'maximum size of files to compress:maximum compress size:->bytes:512m' core.excludesfile:'additional file to use for exclusion:excludes file:_files' - core.askpass:'program to use for asking for passwords:password command:_path_commands' - core.editor:'editor to use for editing messages:editor:_path_commands' - core.pager:'pager to use for paginating output:pager:_path_commands' + core.askpass:'program to use for asking for passwords:password command:_cmdstring' + core.editor:'editor to use for editing messages:editor:_cmdstring' + core.pager:'pager to use for paginating output:pager:_cmdstring' core.whitespace:'list of common whitespace problems to notice::->core.whitespace' core.fsyncobjectfiles:'fsync() when writing object files::->bool:false' core.preloadindex:'use parallel index preload for operations like git diff::->bool:true' @@ -1918,10 +1915,10 @@ _git-config () { core.checkstat:'determine which stat fields to match between the index and work tree::->core.checkstat:default' core.notesRef:'show notes in given refs:refs:->string:refs/notes/commits' core.sparseCheckout:'use sparse checkout::->bool:false' - credential.helper:'external helper to be called when a username or password credential is needed::_path_commands' + credential.helper:'external helper to be called when a username or password credential is needed::_cmdstring' credential.useHttpPath:'consider the "path" component of an http or https URL to be important::->bool:false' credential.username:'If no username is set use this username by default:default username:->string' - 'credential.*.helper:external helper to be called when a username or password credential is needed::_path_commands' + 'credential.*.helper:external helper to be called when a username or password credential is needed::_cmdstring' 'credential.*.useHttpPath:consider the "path" component of an http or https URL to be important::->bool:false' 'credential.*.username:if no username is set use this username by default:default username:->string' add.ignore-errors:'ignore indexing errors when adding files::->bool:false' @@ -1936,7 +1933,7 @@ _git-config () { 'branch.*.mergeoptions:default options for merging::->branch.mergeoptions' 'branch.*.pushremote:what remote git push should push to::__git_remotes' 'branch.*.rebase:rebase on top of fetched branch::->bool:false' - 'browser.*.cmd:browser command to use:browser:_path_commands' + 'browser.*.cmd:browser command to use:browser:_cmdstring' 'browser.*.path:path to use for the browser:absolute browser path:_files -g "*(*)"' clean.requireForce:'require --force for git clean to actually do something::->bool:true' color.branch:'color output of git branch::->color-bool:false' @@ -1989,15 +1986,15 @@ _git-config () { commit.template:'template file for commit messages:template:_files' 'diff.*.binary:make the diff driver treat files as binary::->bool:false' 'diff.*.cachetextconv:make the diff driver cache the text conversion outputs::->bool:false' - 'diff.*.command:custom diff driver command::_path_commands' - 'diff.*.textconv:command to generate the text-converted version of a file::_path_commands' + 'diff.*.command:custom diff driver command::_cmdstring' + 'diff.*.textconv:command to generate the text-converted version of a file::_cmdstring' 'diff.*.wordregex:regular expression that the diff driver should use to split words in a line:regular expression:->string' 'diff.*.xfuncname:regular expression that the diff driver should use to recognize the hunk header:regular expression:->string' diff.algorithm:'default diff algorithm::->diff.algorithm:default' diff.autorefreshindex:'run git update-index --refresh before git diff::->bool:true' diff.context:'default number of context lines::->int:3' diff.dirstat:'comma separated list of --dirstat parameters specifying default behaviour:comma-separated list:->string:changes,noncumulative,3' - diff.external:'command to generate diff with:diff command:_path_commands' + diff.external:'command to generate diff with:diff command:_cmdstring' diff.mnemonicprefix:'use mnemonic source and destination prefixes::->bool:false' diff.noprefix:'strip source and destination prefixes::->bool:false' diff.orderfile:'file to read patch order glob patterns from:order file:_files' @@ -2008,7 +2005,7 @@ _git-config () { diff.submodule:'output format for submodule differences::->diff.submodule:short' diff.suppressBlankEmpty:'inhibit printing space before empty output lines::->bool:false' diff.tool:'diff tool to use::__git_difftools' - 'difftool.*.cmd:command to invoke for the diff tool::_path_commands' + 'difftool.*.cmd:command to invoke for the diff tool::_cmdstring' 'difftool.*.path:path to use for the diff tool:absolute diff tool path:_files -g "*(*)"' difftool.prompt:'prompt before each invocation of the diff tool::->bool:true' diff.wordRegex:'regex used to determine what a word is when performing word-by-word diff:regular expression:->string' @@ -2017,8 +2014,8 @@ _git-config () { fetch.unpackLimit:'maximum number of objects to unpack when fetching:unpack limit:->int' fetch.recurseSubmodules:'recurse into submodules (as needed) when fetching::->fetch.recurseSubmodules:on-demand' fetch.fsckObjects:'check all fetched objects::->bool:false' - 'filter.*.clean:command which is used to convert the content of a worktree file to a blob upon checkin::_path_commands' - 'filter.*.smudge:command which is used to convert the content of a blob object to a worktree file upon checkout::_path_commands' + 'filter.*.clean:command which is used to convert the content of a worktree file to a blob upon checkin::_cmdstring' + 'filter.*.smudge:command which is used to convert the content of a blob object to a worktree file upon checkout::_cmdstring' format.attach:'use multipart/mixed attachments::->bool:false' format.coverLetter:'control whether to generate a cover-letter when format-patch is invoked::->bool:false' format.numbered:'use sequence numbers in patch subjects::->format.numbered:auto' @@ -2061,7 +2058,7 @@ _git-config () { 'gitcvs.*.dbTableNamePrefix:database table name prefix:prefix:->string' gitcvs.usecrlfattr:'use end-of-line conversion attributes::->bool:false' gitcvs.allbinary:'treat all files from CVS as binary::->bool:false' - gpg.program:'use program instead of "gpg" found on $PATH when making or verifying a PGP signature::_path_commands' + gpg.program:'use program instead of "gpg" found on $PATH when making or verifying a PGP signature::_cmdstring' gui.commitmsgwidth:'width of commit message window:width::->int:75' gui.diffcontext:'number of context lines used in diff window:context::->int:5' gui.encoding:'encoding to use for displaying file contents::->encoding' @@ -2074,7 +2071,7 @@ _git-config () { gui.copyblamethreshold:'threshold to use in blame location detection:threshold:->string' gui.blamehistoryctx:'specify radius of history context in days for selected commit::->days' 'guitool.*.argprompt:prompt for arguments:argument prompt:->string' - 'guitool.*.cmd:shell command line to execute::_path_commands' + 'guitool.*.cmd:shell command line to execute::_cmdstring' 'guitool.*.confirm:show a confirmation dialog::->bool:false' 'guitool.*.needsfile:require that a diff is selected for command to be available::->bool:false' 'guitool.*.noconsole:suppress command output::->bool:false' @@ -2083,7 +2080,7 @@ _git-config () { 'guitool.*.prompt:prompt to display:prompt:->string' 'guitool.*.revunmerged:show only unmerged branches in revprompt::->bool:false' 'guitool.*.title:title of prompt dialog:prompt title:->string' - guitool.cmd:'shell command line to execute::_path_commands' + guitool.cmd:'shell command line to execute::_cmdstring' guitool.needsfile:'require that a diff is selected for command to be available::->bool:false' guitool.noconsole:'suppress command output::->bool:false' guitool.norescan:'skip rescanning for changes to the working directory::->bool:false' @@ -2150,7 +2147,7 @@ _git-config () { i18n.commitEncoding:'character encoding commit messages are stored in::->encoding' i18n.logOutputEncoding:'character encoding commit messages are output in::->encoding' imap.folder:'IMAP folder to use with git imap-send:IMAP folder name::_mailboxes' - imap.tunnel:'tunneling command to use for git imap-send:tunnel command:_path_commands' + imap.tunnel:'tunneling command to use for git imap-send:tunnel command:_cmdstring' imap.host:'host git imap-send should connect to::_hosts' # TODO: If imap.host is set, complete users on that system. imap.user:'user git imap-send should log in as::_users' @@ -2161,7 +2158,7 @@ _git-config () { imap.authMethod:'authentication method used::->imap.authMethod' init.templatedir:'directory from which templates are copied:template directory:_directories' instaweb.browser:'browser to use when browsing with gitweb::__git_browsers' - instaweb.httpd:'HTTP-daemon command-line to execute for instaweb:daemon:_path_commands' + instaweb.httpd:'HTTP-daemon command-line to execute for instaweb:daemon:_cmdstring' instaweb.local:'bind to 127.0.0.1::->bool:false' instaweb.modulepath:'module path for the Apache HTTP-daemon for instaweb:module directory:_directories' instaweb.port:'port to bind HTTP daemon to for instaweb::_ports' @@ -2175,7 +2172,7 @@ _git-config () { mailmap.blob:'like mailmap.file, but consider the value as a reference to a blob in the repository:blob reference:->string' mailmap.file:'augmenting mailmap file:mailmap file:_files' man.viewer:'man viewer to use for help in man format::__git_man_viewers' - 'man.*.cmd:the command to invoke the specified man viewer:man command:_path_commands' + 'man.*.cmd:the command to invoke the specified man viewer:man command:_cmdstring' 'man.*.path:path to use for the man viewer:absolute man tool path:_files -g "*(*)"' merge.branchdesc:'populate the log message with the branch description text as well::->bool:false' merge.conflictstyle:'style used for conflicted hunks::->merge.conflictstyle:merge' @@ -2188,10 +2185,10 @@ _git-config () { merge.tool:'tool used by git mergetool during merges::__git_mergetools' merge.verbosity:'amount of output shown by recursive merge strategy::->merge.verbosity:2' 'merge.*.name:human-readable name for custom low-level merge driver:name:->string' - 'merge.*.driver:command that implements a custom low-level merge driver:merge command:_path_commands' + 'merge.*.driver:command that implements a custom low-level merge driver:merge command:_cmdstring' 'merge.*.recursive:low-level merge driver to use when performing internal merge between common ancestors::__git_builtin_merge_drivers' 'mergetool.*.path:path to use for the merge tool:absolute merge tool path:_files -g "*(*)"' - 'mergetool.*.cmd:command to invoke for the merge tool:merge command:_path_commands' + 'mergetool.*.cmd:command to invoke for the merge tool:merge command:_cmdstring' 'mergetool.*.trustExitCode:trust the exit code of the merge tool::->bool:false' mergetool.keepBackup:'keep the original file with conflict markers::->bool:true' mergetool.keepTemporaries:'keep temporary files::->bool:false' @@ -2237,8 +2234,8 @@ _git-config () { 'remote.*.mirror:push with --mirror::->bool:false' 'remote.*.skipDefaultUpdate:skip this remote by default::->bool:false' 'remote.*.skipFetchAll:skip this remote by default::->bool:false' - 'remote.*.receivepack:default program to execute on remote when pushing:git receive-pack command:_path_commands' - 'remote.*.uploadpack:default program to execute on remote when fetching:git upload-pack command:_path_commands' + 'remote.*.receivepack:default program to execute on remote when pushing:git receive-pack command:_cmdstring' + 'remote.*.uploadpack:default program to execute on remote when fetching:git upload-pack command:_cmdstring' 'remote.*.tagopt:options for retrieving remote tags::->remote.tagopt' 'remote.*.vcs:interact with the remote through git-remote helper:remote VCS:->string' repack.usedeltabaseoffset:'use delta-base offsets::->bool:true' @@ -2251,8 +2248,8 @@ _git-config () { sendemail.annotate:'review and edit each patch you are about to send::->bool:false' sendemail.bcc:'value of Bcc\: header::_email_addresses' sendemail.cc:'value of Cc\: header::_email_addresses' - sendemail.cccmd:'command to generate Cc\: header with:Cc\: command:_path_commands' - sendemail.toccmd:'command to generate To\: header with:To\: command:_path_commands' + sendemail.cccmd:'command to generate Cc\: header with:Cc\: command:_cmdstring' + sendemail.toccmd:'command to generate To\: header with:To\: command:_cmdstring' sendemail.chainreplyto:'send each email as a reply to the previous one::->bool:false' sendemail.confirm:'type of confirmation required before sending::->sendemail.confirm:auto' sendemail.envelopesender:'envelope sender to send emails as::_email_addresses' @@ -2276,8 +2273,8 @@ _git-config () { 'sendemail.*.annotate:review and edit each patch you are about to send::bool->false' 'sendemail.*.bcc:value of Bcc\: header::_email_addresses' 'sendemail.*.cc:value of Cc\: header::_email_addresses' - 'sendemail.*.cccmd:command to generate Cc\: header with:Cc\: command:_path_commands' - 'sendemail.*.tocmd:command to generate To\: header with:To\: command:_path_commands' + 'sendemail.*.cccmd:command to generate Cc\: header with:Cc\: command:_cmdstring' + 'sendemail.*.tocmd:command to generate To\: header with:To\: command:_cmdstring' 'sendemail.*.chainreplyto:send each email as a reply to the previous one::->bool:false' 'sendemail.*.confirm:type of confirmation required before sending::->sendemail.confirm:auto' 'sendemail.*.envelopesender:envelope sender to send emails as::_email_addresses' @@ -2296,7 +2293,7 @@ _git-config () { 'sendemail.*.thread:set In-Reply-To\: and References\: headers::->bool:true' 'sendemail.*.validate:perform sanity checks on patches::->bool:true' sendemail.assume8bitEncoding:'encoding to use for non-ASCII messages::__git_encodings' - sequence.editor:'text editor used by git rebase -i::_path_commands' + sequence.editor:'text editor used by git rebase -i::_cmdstring' showbranch.default:'default set of branches for git show-branch::->branch' status.relativePaths:'show paths relative to current directory::->bool:false' status.showUntrackedFiles:'show untracked files::->status.showUntrackedFiles:normal' @@ -2331,7 +2328,7 @@ _git-config () { 'svn-remote.*.branches:branch mappings:branch mapping:->string' 'svn-remote.*.tags:tag mappings:tag mapping:->string' tag.sort:'Default sorting method:->string' - 'tar.*.command:specify a shell command through which the tar output generated by git archive should be piped::_path_commands' + 'tar.*.command:specify a shell command through which the tar output generated by git archive should be piped::_cmdstring' 'tar.*.remote:enable for use by remote clients via git-upload-archive::->bool' tar.umask:'umask to apply::->umask' transfer.unpackLimit:'default value for fetch.unpackLimit and receive.unpackLimit:unpack limit::->int:100' @@ -2993,13 +2990,13 @@ _git-filter-branch () { # such. # TODO: * should be git-rev-arg and git-rev-list arguments. _arguments -S -A '-*' \ - '--env-filter[filter for modifying environment in which commit will be performed]: :_path_commands' \ - '--tree-filter[filter for rewriting tree and its contents]: :_path_commands' \ - '--index-filter[filter for rewriting index]: :_path_commands' \ - '--parent-filter[filter for rewriting parent list of commit]: :_path_commands' \ - '--msg-filter[filter for rewriting commit messages]: :_path_commands' \ - '--commit-filter[filter for rewriting commit]: :_path_commands' \ - '--tag-name-filter[filter for rewriting tag names]: :_path_commands' \ + '--env-filter[filter for modifying environment in which commit will be performed]: :_cmdstring' \ + '--tree-filter[filter for rewriting tree and its contents]: :_cmdstring' \ + '--index-filter[filter for rewriting index]: :_cmdstring' \ + '--parent-filter[filter for rewriting parent list of commit]: :_cmdstring' \ + '--msg-filter[filter for rewriting commit messages]: :_cmdstring' \ + '--commit-filter[filter for rewriting commit]: :_cmdstring' \ + '--tag-name-filter[filter for rewriting tag names]: :_cmdstring' \ '--subdirectory-filter[only look at histor that touches given directory]: :_directories' \ '--prune-empty[ignore empty generated commits]' \ '--original[namespace where original commits will be stored]:namespace:_directories' \ @@ -3339,7 +3336,7 @@ _git-difftool () { '(-y --no-prompt --prompt)'{-y,--no-prompt}'[do not prompt before invocation of diff tool]' \ '(-y --no-prompt)--prompt[prompt before invocation of diff tool]' \ '(-t --tool -x --extcmd)'{-t,--tool=-}'[merge resolution program to use]: :__git_difftools' \ - '(-t --tool -x --extcmd)'{-x,--extcmd=-}'[custom diff command to use]: :_path_commands' \ + '(-t --tool -x --extcmd)'{-x,--extcmd=-}'[custom diff command to use]: :_cmdstring' \ '--tool-help[print a list of diff tools that may be used with --tool]' \ '(--symlinks)--no-symlinks[make copies of instead of symlinks to the working tree]' \ '(---no-symlinks)--symlinks[make symlinks to instead of copies of the working tree]' \ @@ -3712,8 +3709,8 @@ _git-send-email () { '--smtp-ssl-cert-path=[path to ca-certificates (directory or file)]:ca certificates path:_files' \ '--smtp-user=[specify user to use for SMTP-AUTH]:smtp user:_users' \ '--smtp-debug=[enable or disable debug output]:smtp debug:((0\:"disable" 1\:"enable"))' \ - '--cc-cmd=[specify command to generate Cc\: header with]:Cc\: command:_path_commands' \ - '--to-cmd=[specify command to generate To\: header with]:To\: command:_path_commands' \ + '--cc-cmd=[specify command to generate Cc\: header with]:Cc\: command:_cmdstring' \ + '--to-cmd=[specify command to generate To\: header with]:To\: command:_cmdstring' \ '( --no-chain-reply-to)--chain-reply-to[send each email as a reply to previous one]' \ '(--chain-reply-to )--no-chain-reply-to[send all emails after first as replies to first one]' \ '--identity=[specify configuration identity]: :__git_sendemail_identities' \ @@ -3802,7 +3799,7 @@ _git-svn () { '( --no-follow-parent)--follow-parent[follow parent commit]' '(--follow-parent )--no-follow-parent[do not follow parent commit]' '(-A --authors-file)'{-A,--authors-file}'[specify author-conversion file]:author-conversion file:_files' - '--authors-prog=[program used to generate authors]: :_path_commands' + '--authors-prog=[program used to generate authors]: :_cmdstring' '(-q --quiet)'{-q,--quiet}'[make git-svn less verbose]' '--repack=[repack files (for given number of revisions)]:: :__git_guard_number "revision limit"' '(--repack-flags --repack-args --repack-opts)'{--repack-flags=,--repack-args=,--repack-opts=}'[flags to pass to git-repack]:git-repack flags' @@ -3927,7 +3924,7 @@ _git-svn () { '--incremental[give output suitable for concatenation]' '--show-commit[output git commit SHA-1, as well]' '--color[undocumented]' - '--pager[undocumented]:pager:_path_commands' + '--pager[undocumented]:pager:_cmdstring' '--non-recursive[undocumented]') ;; (blame) diff --git a/Completion/X/Command/_matlab b/Completion/X/Command/_matlab index e912b68..0a52b9d 100644 --- a/Completion/X/Command/_matlab +++ b/Completion/X/Command/_matlab @@ -2,18 +2,22 @@ _arguments : \ {-h,-help}'[display arguments]' \ - '(-e)-n[display final environment variables, and exit]' \ - '(-n)-e[display ALL the environment variables and values, and exit]' \ + '(-)-n[display final environment variables, and exit]' \ + '(-)-e[display all environment variables and values, and exit]' \ '-arch[start MATLAB assuming architecture arch]:architecture:' \ '-c[set location of the license file]:licensefile:_files' \ '(-nodisplay)-display:display:_x_display' \ '(-display)-nodisplay[do not display any X commands]' \ '-nosplash[do not display the splash screen during startup]' \ '-mwvisual[the default X visual to use for figure windows]:visualid:' \ + '(-nosoftwareopengl)-softwareopengl' '(-softwareopengl)-nosoftwareopengl' \ + '-singleCompThread[limit to single computational thread]' \ '-debug[provide debugging information especially for X based problems]' \ '(-nodesktop -nojvm)-desktop[allow the MATLAB desktop to be started by a process without a controlling terminal]' \ '(-desktop -nojvm)-nodesktop[do not start the MATLAB desktop]' \ '(-nodesktop -desktop)-nojvm[shut off all Java support by not starting the Java virtual machine]' \ + '-jdb[enable remote java debugging]::port [4444]:_ports' \ '-r[start MATLAB and execute the MATLAB_command]:MATLAB_command:' \ - '-logfile[make a copy of any output to the command window in file log]:log file:' \ - '-D-:debugger:_path_commands' + '-logfile[copy any command window output to a file]:log file:_files' \ + '-D-:debugger:_command_names -e' \ + '-nouserjavapath[ignore custom javaclasspath.txt and javalibrarypath.txt files]'