mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-01-21 00:01:26 +01:00
23863: remove all global variables.
This commit is contained in:
parent
1874c548ed
commit
75bf795d60
2 changed files with 37 additions and 68 deletions
|
@ -1,5 +1,8 @@
|
|||
2007-09-30 Clint Adams <clint@zsh.org>
|
||||
|
||||
* 23863: Completion/Unix/Command/_git: remove all
|
||||
global variables.
|
||||
|
||||
* 23862: Completion/Unix/Command/_git: declare
|
||||
author_conversion_file_arg_spec local.
|
||||
|
||||
|
|
|
@ -9,24 +9,18 @@
|
|||
#
|
||||
# zstyle ':completion::*:git-{name-rev,add,rm}:*' ignore-line true
|
||||
|
||||
declare -g nul_arg=
|
||||
_git() {
|
||||
local nul_arg abbrev_arg find_copies_harder_arg diff_l_arg pretty_arg exec_arg
|
||||
local author_conversion_file_arg long_author_conversion_file_arg verbose_arg
|
||||
local help_arg template_arg shared_arg thin_arg author_conversion_file_arg_spec
|
||||
local -a diff_args fetch_args merge_args force_ref_arg tags_fetch_arg
|
||||
local -a upload_pack_arg common_fetch_args common_apply_args
|
||||
|
||||
nul_arg='-z[use NUL termination on output]'
|
||||
|
||||
declare -g abbrev_arg
|
||||
|
||||
abbrev_arg='--abbrev=-[set minimum SHA1 display-length]: :_guard "[[\:digit\:]]#" length'
|
||||
|
||||
declare -g find_copies_harder_arg=
|
||||
|
||||
find_copies_harder_arg='--find-copies-harder[try harder to find copies]'
|
||||
|
||||
declare -g diff_l_arg
|
||||
|
||||
diff_l_arg='-l-[limit number of rename/copy targets to run]: :_guard "[[\:digit\:]]#" number'
|
||||
|
||||
declare -ga diff_args
|
||||
|
||||
diff_args=(
|
||||
'--diff-filter=-[select certain kinds of files for diff]: :_guard "[ACDMRTUXB*]#" kinds'
|
||||
$find_copies_harder_arg
|
||||
|
@ -65,18 +59,14 @@ diff_args=(
|
|||
'(--exit-code)--quiet[disable all output]'
|
||||
)
|
||||
|
||||
declare -g pretty_arg=
|
||||
pretty_arg='--pretty=-[pretty print commit messages]::pretty print:((raw\:"the raw commits"
|
||||
medium\:"most parts of the messages"
|
||||
short\:"few headers and only subject of messages"
|
||||
full\:"all parts of the commit messages"
|
||||
oneline\:"commit-ids and subject of messages"))'
|
||||
|
||||
declare -g exec_arg=
|
||||
exec_arg='--exec=-[specify path to git-upload-pack on remote side]:remote path'
|
||||
|
||||
declare -ga fetch_args
|
||||
|
||||
fetch_args=(
|
||||
'-c[fetch commit objects]'
|
||||
'-t[fetch trees associated with commit objects]'
|
||||
|
@ -86,8 +76,6 @@ fetch_args=(
|
|||
'--recover[recover from a failed fetch]'
|
||||
)
|
||||
|
||||
declare -ga merge_args
|
||||
|
||||
# TODO: Add descriptions to strategies (stupid is undocumented).
|
||||
merge_args=(
|
||||
'(-n --no-summary)'{-n,--no-summary}'[do not show diffstat at the end of the merge]'
|
||||
|
@ -96,38 +84,25 @@ merge_args=(
|
|||
'*'{-s,--strategy=-}'[use given merge strategy]:merge strategy:__git_merge_strategies'
|
||||
)
|
||||
|
||||
declare -ga force_ref_arg
|
||||
|
||||
force_ref_arg=('(-f --force)'{-f,--force}'[allow refs that are not ancestors to be updated]')
|
||||
|
||||
declare -ga tags_fetch_arg
|
||||
|
||||
tags_fetch_arg=(
|
||||
'(--no-tags -t --tags)--no-tags[disable automatic tag following]'
|
||||
'(--no-tags -t --tags)'{-t,--tags}'[fetch remote tags]'
|
||||
)
|
||||
|
||||
local author_conversion_file_arg_spec
|
||||
author_conversion_file_arg_spec='[specify author-conversion file]:author-conversion file:_files'
|
||||
|
||||
declare -g author_conversion_file_arg=
|
||||
author_conversion_file_arg='-A'$author_conversion_file_arg_spec
|
||||
|
||||
declare -g long_author_conversion_file_arg=
|
||||
long_author_conversion_file_arg='--authors-file=-'$author_conversion_file_arg_spec
|
||||
|
||||
declare -g verbose_arg=
|
||||
verbose_arg='-v[produce verbose output]'
|
||||
|
||||
declare -g help_arg=
|
||||
help_arg='-h[display usage information]'
|
||||
|
||||
declare -ga upload_pack_arg
|
||||
upload_pack_arg=('(-u --upload-pack)'{-u,--upload-pack=-}'[specify path to git-upload-pack on remote side]:remote path')
|
||||
|
||||
|
||||
declare -ga common_fetch_args
|
||||
|
||||
common_fetch_args=(
|
||||
'(-a --append)'{-a,--append}'[append ref names and object names of fetched refs to "$GIT_DIR/FETCH_HEAD"]'
|
||||
$upload_pack_arg
|
||||
|
@ -138,22 +113,15 @@ common_fetch_args=(
|
|||
'--depth=-[deepen the history of a shallow repository by the given number of commits]: :_guard "[[\:guard\:]]" "depth"'
|
||||
)
|
||||
|
||||
declare -ga common_apply_args
|
||||
|
||||
common_apply_args=(
|
||||
'--whitespace=-[detect a new or modified line that ends with trailing whitespaces]: :__git_apply_whitespace_strategies'
|
||||
'-p-[remove N leading slashes from traditional diff paths]: :_guard "[[\:digit\:]]#" number'
|
||||
'-C-[ensure at least N lines of context match before and after each change]: :_guard "[[\:digit\:]]#" number')
|
||||
|
||||
declare -g template_arg=
|
||||
|
||||
template_arg='--template=-[directory to use as a template for the object database]:directory:_directories'
|
||||
|
||||
declare -g shared_arg=
|
||||
|
||||
shared_arg='--shared=-[share repository amongst several users]::permissions:__git_repository_permissions'
|
||||
|
||||
declare -g thin_arg=
|
||||
thin_arg='--thin[minimize number of objects to be sent]'
|
||||
|
||||
__git_zstyle_default () {
|
||||
|
@ -375,36 +343,6 @@ __git_aliases_and_commands () {
|
|||
'aliases: :__git_aliases' \
|
||||
'commands: :_git_commands'
|
||||
}
|
||||
|
||||
_git () {
|
||||
local curcontext=$curcontext ret=1
|
||||
|
||||
if [[ $words[1] == git ]]; then
|
||||
local state line
|
||||
declare -A opt_args
|
||||
_arguments -C \
|
||||
'(- :)--version[display version information]' \
|
||||
'(- :)--help[display help message]' \
|
||||
'--exec-path=-[path containing core git-programs]::directory:_directories' \
|
||||
'(-p --paginate)'{-p,--paginate}'[pipe output into $PAGER]' \
|
||||
'--git-dir=-[path to repository]:directory:_directories' \
|
||||
'--bare[use $PWD as repository]' \
|
||||
':command:->command' \
|
||||
'*::options:->options' && ret=0
|
||||
case $state in
|
||||
(command)
|
||||
__git_aliases_and_commands
|
||||
;;
|
||||
(options)
|
||||
curcontext="${curcontext%:*:*}:git-$words[1]:"
|
||||
_call_function ret _git-$words[1]
|
||||
;;
|
||||
esac
|
||||
else
|
||||
_call_function ret _$words[1]
|
||||
fi
|
||||
}
|
||||
|
||||
# NOTE: -c is undocumented.
|
||||
# TODO: Perhaps provide some sort of completion or guard for line range (-L).
|
||||
# NOTE: --score-debug is undocumented.
|
||||
|
@ -4135,4 +4073,32 @@ __git_is_indexed () {
|
|||
[[ -n $(git ls-files $REPLY) ]]
|
||||
}
|
||||
|
||||
local curcontext=$curcontext ret=1
|
||||
|
||||
if [[ $words[1] == git ]]; then
|
||||
local state line
|
||||
declare -A opt_args
|
||||
_arguments -C \
|
||||
'(- :)--version[display version information]' \
|
||||
'(- :)--help[display help message]' \
|
||||
'--exec-path=-[path containing core git-programs]::directory:_directories' \
|
||||
'(-p --paginate)'{-p,--paginate}'[pipe output into $PAGER]' \
|
||||
'--git-dir=-[path to repository]:directory:_directories' \
|
||||
'--bare[use $PWD as repository]' \
|
||||
':command:->command' \
|
||||
'*::options:->options' && ret=0
|
||||
case $state in
|
||||
(command)
|
||||
__git_aliases_and_commands
|
||||
;;
|
||||
(options)
|
||||
curcontext="${curcontext%:*:*}:git-$words[1]:"
|
||||
_call_function ret _git-$words[1]
|
||||
;;
|
||||
esac
|
||||
else
|
||||
_call_function ret _$words[1]
|
||||
fi
|
||||
}
|
||||
|
||||
_git
|
||||
|
|
Loading…
Reference in a new issue