From: Junio C Hamano Date: Wed, 24 Apr 2013 23:30:04 +0000 (-0700) Subject: Sync with maint X-Git-Tag: v1.8.3-rc0~19 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/2d0b07178d548fd23954e3a6444f1d4d2d8b3a40?ds=inline;hp=-c Sync with maint * maint: Update draft release notes to 1.8.2.2 completion: remove duplicate block for "git commit -c" cherry-pick/revert: make usage say '...' --- 2d0b07178d548fd23954e3a6444f1d4d2d8b3a40 diff --combined contrib/completion/git-completion.bash index 6df62c2173,f67b0f008b..bc3fc9e323 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@@ -53,6 -53,19 +53,6 @@@ __gitdir ( fi } -__gitcomp_1 () -{ - local c IFS=$' \t\n' - for c in $1; do - c="$c$2" - case $c in - --*=*|*.) ;; - *) c="$c " ;; - esac - printf '%s\n' "$c" - done -} - # The following function is based on code from: # # bash_completion - programmable completion functions for bash 3.2+ @@@ -182,18 -195,8 +182,18 @@@ _get_comp_words_by_ref ( } fi -# Generates completion reply with compgen, appending a space to possible -# completion words, if necessary. +__gitcompadd () +{ + local i=0 + for x in $1; do + if [[ "$x" == "$3"* ]]; then + COMPREPLY[i++]="$2$x$4" + fi + done +} + +# Generates completion reply, appending a space to possible completion words, +# if necessary. # It accepts 1 to 4 arguments: # 1: List of possible completion words. # 2: A prefix to be added to each possible completion word (optional). @@@ -205,25 -208,19 +205,25 @@@ __gitcomp ( case "$cur_" in --*=) - COMPREPLY=() ;; *) - local IFS=$'\n' - COMPREPLY=($(compgen -P "${2-}" \ - -W "$(__gitcomp_1 "${1-}" "${4-}")" \ - -- "$cur_")) + local c i=0 IFS=$' \t\n' + for c in $1; do + c="$c${4-}" + if [[ $c == "$cur_"* ]]; then + case $c in + --*=*|*.) ;; + *) c="$c " ;; + esac + COMPREPLY[i++]="${2-}$c" + fi + done ;; esac } -# Generates completion reply with compgen from newline-separated possible -# completion words by appending a space to all of them. +# Generates completion reply from newline-separated possible completion words +# by appending a space to all of them. # It accepts 1 to 4 arguments: # 1: List of possible completion words, separated by a single newline. # 2: A prefix to be added to each possible completion word (optional). @@@ -234,7 -231,7 +234,7 @@@ __gitcomp_nl () { local IFS=$'\n' - COMPREPLY=($(compgen -P "${2-}" -S "${4- }" -W "$1" -- "${3-$cur}")) + __gitcompadd "$1" "${2-}" "${3-$cur}" "${4- }" } # Generates completion reply with compgen from newline-separated possible @@@ -617,6 -614,7 +617,6 @@@ __git_complete_remote_or_refspec ( case "$cmd" in push) no_complete_refspec=1 ;; fetch) - COMPREPLY=() return ;; *) ;; @@@ -632,6 -630,7 +632,6 @@@ return fi if [ $no_complete_refspec = 1 ]; then - COMPREPLY=() return fi [ "$remote" = "." ] && remote= @@@ -952,6 -951,7 +952,6 @@@ _git_am ( " return esac - COMPREPLY=() } _git_apply () @@@ -971,6 -971,7 +971,6 @@@ " return esac - COMPREPLY=() } _git_add () @@@ -1030,6 -1031,7 +1030,6 @@@ _git_bisect ( __gitcomp_nl "$(__git_refs)" ;; *) - COMPREPLY=() ;; esac } @@@ -1122,14 -1124,9 +1122,14 @@@ _git_cherry ( _git_cherry_pick () { + local dir="$(__gitdir)" + if [ -f "$dir"/CHERRY_PICK_HEAD ]; then + __gitcomp "--continue --quit --abort" + return + fi case "$cur" in --*) - __gitcomp "--edit --no-commit" + __gitcomp "--edit --no-commit --signoff --strategy= --mainline" ;; *) __gitcomp_nl "$(__git_refs)" @@@ -1173,6 -1170,7 +1173,6 @@@ _git_clone ( return ;; esac - COMPREPLY=() } _git_commit () @@@ -1184,13 -1182,6 +1184,6 @@@ ;; esac - case "$prev" in - -c|-C) - __gitcomp_nl "$(__git_refs)" "" "${cur}" - return - ;; - esac - case "$cur" in --cleanup=*) __gitcomp "default strip verbatim whitespace @@@ -1356,6 -1347,7 +1349,6 @@@ _git_fsck ( return ;; esac - COMPREPLY=() } _git_gc () @@@ -1366,6 -1358,7 +1359,6 @@@ return ;; esac - COMPREPLY=() } _git_gitk () @@@ -1442,6 -1435,7 +1435,6 @@@ _git_init ( return ;; esac - COMPREPLY=() } _git_ls_files () @@@ -1577,6 -1571,7 +1570,6 @@@ _git_mergetool ( return ;; esac - COMPREPLY=() } _git_merge_base () @@@ -1829,7 -1824,7 +1822,7 @@@ _git_config ( local remote="${prev#remote.}" remote="${remote%.fetch}" if [ -z "$cur" ]; then - COMPREPLY=("refs/heads/") + __gitcompadd "refs/heads/" "" "" "" return fi __gitcomp_nl "$(__git_refs_remotes "$remote")" @@@ -1889,6 -1884,7 +1882,6 @@@ return ;; *.*) - COMPREPLY=() return ;; esac @@@ -2269,6 -2265,7 +2262,6 @@@ _git_remote ( __gitcomp "$c" ;; *) - COMPREPLY=() ;; esac } @@@ -2384,6 -2381,8 +2377,6 @@@ _git_stash ( *) if [ -z "$(__git_find_on_cmdline "$save_opts")" ]; then __gitcomp "$subcommands" - else - COMPREPLY=() fi ;; esac @@@ -2396,12 -2395,14 +2389,12 @@@ __gitcomp "--index --quiet" ;; show,--*|drop,--*|branch,--*) - COMPREPLY=() ;; show,*|apply,*|drop,*|pop,*|branch,*) __gitcomp_nl "$(git --git-dir="$(__gitdir)" stash list \ | sed -n -e 's/:.*//p')" ;; *) - COMPREPLY=() ;; esac fi @@@ -2411,7 -2412,7 +2404,7 @@@ _git_submodule ( { __git_has_doubledash && return - local subcommands="add status init update summary foreach sync" + local subcommands="add status init deinit update summary foreach sync" if [ -z "$(__git_find_on_cmdline "$subcommands")" ]; then case "$cur" in --*) @@@ -2518,6 -2519,7 +2511,6 @@@ _git_svn ( __gitcomp "--revision= --parent" ;; *) - COMPREPLY=() ;; esac fi @@@ -2542,10 -2544,13 +2535,10 @@@ _git_tag ( case "$prev" in -m|-F) - COMPREPLY=() ;; -*|tag) if [ $f = 1 ]; then __gitcomp_nl "$(__git_tags)" - else - COMPREPLY=() fi ;; *)