Merge branch 'sg/completion-config'
authorJunio C Hamano <gitster@pobox.com>
Fri, 22 May 2015 19:41:53 +0000 (12:41 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 22 May 2015 19:41:54 +0000 (12:41 -0700)
Code clean-up for completion script (in contrib/).

* sg/completion-config:
completion: simplify query for config variables
completion: add a helper function to get config variables

1  2 
contrib/completion/git-completion.bash
index 20b81146128960041f39b755d37e1d4d6bf61312,078b281f692f6acfbbe0bc5b888a06831f8ecff2..bfc74e9d57a5293fce39362c68e7490888ec08e6
@@@ -665,8 -665,8 +665,8 @@@ __git_list_porcelain_commands (
                checkout-index)   : plumbing;;
                commit-tree)      : plumbing;;
                count-objects)    : infrequent;;
 -              credential-cache) : credentials helper;;
 -              credential-store) : credentials helper;;
 +              credential)       : credentials;;
 +              credential-*)     : credentials helper;;
                cvsexportcommit)  : export;;
                cvsimport)        : import;;
                cvsserver)        : daemon;;
@@@ -739,30 -739,25 +739,25 @@@ __git_compute_porcelain_commands (
        __git_porcelain_commands=$(__git_list_porcelain_commands)
  }
  
+ # Lists all set config variables starting with the given section prefix,
+ # with the prefix removed.
+ __git_get_config_variables ()
+ {
+       local section="$1" i IFS=$'\n'
+       for i in $(git --git-dir="$(__gitdir)" config --get-regexp "^$section\..*" 2>/dev/null); do
+               i="${i#$section.}"
+               echo "${i/ */}"
+       done
+ }
  __git_pretty_aliases ()
  {
-       local i IFS=$'\n'
-       for i in $(git --git-dir="$(__gitdir)" config --get-regexp "pretty\..*" 2>/dev/null); do
-               case "$i" in
-               pretty.*)
-                       i="${i#pretty.}"
-                       echo "${i/ */}"
-                       ;;
-               esac
-       done
+       __git_get_config_variables "pretty"
  }
  
  __git_aliases ()
  {
-       local i IFS=$'\n'
-       for i in $(git --git-dir="$(__gitdir)" config --get-regexp "alias\..*" 2>/dev/null); do
-               case "$i" in
-               alias.*)
-                       i="${i#alias.}"
-                       echo "${i/ */}"
-                       ;;
-               esac
-       done
+       __git_get_config_variables "alias"
  }
  
  # __git_aliased_command requires 1 argument
@@@ -2122,7 -2117,6 +2117,7 @@@ _git_config (
                http.noEPSV
                http.postBuffer
                http.proxy
 +              http.sslCipherList
                http.sslCAInfo
                http.sslCAPath
                http.sslCert
@@@ -2260,12 -2254,7 +2255,7 @@@ _git_remote (
                __git_complete_remote_or_refspec
                ;;
        update)
-               local i c='' IFS=$'\n'
-               for i in $(git --git-dir="$(__gitdir)" config --get-regexp "remotes\..*" 2>/dev/null); do
-                       i="${i#remotes.}"
-                       c="$c ${i/ */}"
-               done
-               __gitcomp "$c"
+               __gitcomp "$(__git_get_config_variables "remotes")"
                ;;
        *)
                ;;