about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--Completion/Unix/Command/_git16
2 files changed, 14 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index b71b0cd28..fdb02a943 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -9,6 +9,9 @@
 	* 34467: Completion/Unix/Command/_git: completion: git: minor doc
 	fixes
 
+	* 34468: Completion/Unix/Command/_git: completion: git: stash:
+	handle 'save' being the default
+
 2015-02-07  Daniel Shahaf  <d.s@daniel.shahaf.name>
 
 	* 34464: Completion/Unix/Command/_mtr: Update mtr completion
diff --git a/Completion/Unix/Command/_git b/Completion/Unix/Command/_git
index 50eb4d365..9552780c6 100644
--- a/Completion/Unix/Command/_git
+++ b/Completion/Unix/Command/_git
@@ -1519,6 +1519,7 @@ _git-stash () {
   case $state in
     (command)
       local -a commands
+      local -a save_arguments
 
       commands=(
         save:'save your local modifications to a new stash'
@@ -1531,19 +1532,24 @@ _git-stash () {
         drop:'remove a single stashed state from the stash list'
         create:'create a stash without storing it in the ref namespace')
 
+      save_arguments=(
+        '(--keep-index)--patch[interactively select hunks from diff between HEAD and working tree to stash]' \
+          '(             --no-keep-index)--keep-index[all changes already added to the index are left intact]' \
+          '(--keep-index                )--no-keep-index[all changes already added to the index are undone]' \
+          '(-q --quiet)'{-q,--quiet}'[suppress all output]' \
+          '(-u --include-untracked)'{-u,--include-untracked}'[include untracked files]' \
+      )
       _describe -t commands command commands && ret=0
+      _arguments -S $save_arguments && ret=0  # "stash" defaults to "save", but without "message".
       ;;
     (option-or-argument)
       curcontext=${curcontext%:*}-$line[1]:
 
       case $line[1] in
         (save)
+          _arguments -S $save_arguments && ret=0
           _arguments -S \
-            '(--keep-index)--patch[interactively select hunks from diff between HEAD and working tree to stash]' \
-            '(             --no-keep-index)--keep-index[all changes already added to the index are left intact]' \
-            '(--keep-index                )--no-keep-index[all changes already added to the index are undone]' \
-            '(-q --quiet)'{-q,--quiet}'[suppress all output]' \
-            '(-u --include-untracked)'{-u,--include-untracked}'[include untracked files]' \
+            $save_arguments \
             ':: :_guard "([^-]?#|)" message' && ret=0
           ;;
         (list)