about summary refs log tree commit diff
path: root/Completion/Unix
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Unix')
-rw-r--r--Completion/Unix/Command/_hg12
1 files changed, 11 insertions, 1 deletions
diff --git a/Completion/Unix/Command/_hg b/Completion/Unix/Command/_hg
index f48598278..c18500bcb 100644
--- a/Completion/Unix/Command/_hg
+++ b/Completion/Unix/Command/_hg
@@ -226,6 +226,16 @@ _hg_modified() {
   _wanted files expl 'modified files' _multi_parts / status_files
 }
 
+_hg_committable() {
+  typeset -a status_files
+  # A file is a candidate for `hg commit` if it is:
+  # - modified (m), or
+  # - added (a), or
+  # - removed (r)
+  _hg_status mar
+  _wanted files expl 'committable files' _multi_parts / status_files
+}
+
 _hg_resolve() {
   local rstate rpath
 
@@ -476,7 +486,7 @@ _hg_cmd_commit() {
   '(--logfile -l)'{-l+,--logfile}'[read commit message from specified file]:log file:_files' \
   '(--date -d)'{-d+,--date}'[record datecode as commit date]:date code:' \
   '(--user -u)'{-u+,--user}'[record user as commiter]:user:' \
-  '*:file:_hg_files'
+  '*:file:_hg_committable'
 }
 
 _hg_cmd_copy() {