From: Jacob Keller <jacob.kel...@gmail.com>

Using the new --dump-alias-names option from git-send-email, add completion
for --to, --cc, and --bcc with the available configured aliases.

Signed-off-by: Jacob Keller <jacob.kel...@gmail.com>
---

Notes:
    - v2
    * Use git-send-email for parsing instead of re-implementing it in awk
    
    - v3
    * update for change to git-send-email
    * add support for "--from"

 contrib/completion/git-completion.bash | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/contrib/completion/git-completion.bash 
b/contrib/completion/git-completion.bash
index 482ca84b451b..1de8c0e6fc96 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -10,6 +10,7 @@
 #    *) local and remote tag names
 #    *) .git/remotes file names
 #    *) git 'subcommands'
+#    *) git email aliases for git-send-email
 #    *) tree paths within 'ref:path/to/file' expressions
 #    *) file paths within current working directory and index
 #    *) common --long-options
@@ -1709,8 +1710,25 @@ _git_reflog ()
 __git_send_email_confirm_options="always never auto cc compose"
 __git_send_email_suppresscc_options="author self cc bodycc sob cccmd body all"
 
+__git_get_email_aliases ()
+{
+       git --git-dir="$(__gitdir)" send-email --dump-aliases 2>/dev/null | 
while read alias expansion
+       do
+               echo $alias
+       done
+}
+
 _git_send_email ()
 {
+       case "$prev" in
+       --to|--cc|--bcc|--from)
+               __gitcomp "
+               $(__git_get_email_aliases)
+               " "" ""
+               return
+               ;;
+       esac
+
        case "$cur" in
        --confirm=*)
                __gitcomp "
@@ -1735,6 +1753,12 @@ _git_send_email ()
                        " "" "${cur##--thread=}"
                return
                ;;
+       --to=*|--cc=*|--bcc=*|--from=*)
+               __gitcomp "
+               $(__git_get_email_aliases)
+               " "" "${cur#--*=}"
+               return
+               ;;
        --*)
                __gitcomp "--annotate --bcc --cc --cc-cmd --chain-reply-to
                        --compose --confirm= --dry-run --envelope-sender
-- 
2.6.3.491.g3e3f6ce

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to