Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

[PATCH] multiple small completion issues



Hi all,

As a follow-up to 40808, I have since refined my regex and found the
same issue in _iptables. I also realised that people were probably doing
this wrong, because that is the way it's documented. Furthermore, I
fixed a tiny issue in _gcc (missing escape \) and added the --no-index
option for git diff.

Patches to all issues are attached.

Best,
Fabian


diff --git a/Completion/Unix/Command/_gcc b/Completion/Unix/Command/_gcc
index e188c7e9f..28a2ccbda 100644
--- a/Completion/Unix/Command/_gcc
+++ b/Completion/Unix/Command/_gcc
@@ -428,7 +428,7 @@ args+=(
   '-Wdisabled-optimization[Warn when an optimization pass is disabled]'
   '-Wdiv-by-zero[Warn about compile-time integer division by zero]'
   '-Wdouble-promotion[Warn about implicit conversions from "float" to "double"]'
-  '-Weffc++[Warn about violations of Effective C++ style rules]'
+  '-Weffc\+\+[Warn about violations of Effective C++ style rules]'
   '-Wempty-body[Warn about an empty body in an if or else statement]'
   '-Wendif-labels[Warn about stray tokens after #elif and #endif]'
   '-Wenum-compare[Warn about comparison of different enum types]'
diff --git a/Completion/Unix/Command/_git b/Completion/Unix/Command/_git
index f764daf75..ba535cede 100644
--- a/Completion/Unix/Command/_git
+++ b/Completion/Unix/Command/_git
@@ -752,7 +752,8 @@ _git-diff () {
     $diff_options \
     '(--exit-code)--quiet[disable all output]' \
     $diff_stage_options \
-    '(--cached --staged)'{--cached,--staged}'[show diff between index and named commit]' \
+    '(--cached --staged)--no-index[show diff between two paths on the filesystem]' \
+    '(--cached --staged --no-index)'{--cached,--staged}'[show diff between index and named commit]' \
     '(-)--[start file arguments]' \
     '*:: :->from-to-file' && ret=0
 
@@ -770,6 +771,12 @@ _git-diff () {
         return ret
       fi
 
+      # If "--no-index" was given, only file paths need to be completed.
+      if [[ -n ${opt_args[(I)--no-index]} ]]; then
+        _alternative 'files::_files' && ret=0
+        return ret
+      fi
+
       # Otherwise, more complex conditions need to be checked.
       case $CURRENT in
         (1)
diff --git a/Etc/completion-style-guide b/Etc/completion-style-guide
index e91e92307..a6fc737a7 100644
--- a/Etc/completion-style-guide
+++ b/Etc/completion-style-guide
@@ -64,7 +64,7 @@ tells _wanted where to put options specifying the `directory' description.
 Where two matches have identical meaning, give them the same
 description so that the completion system can group them together.
 Conventionally a brace expansion of this form is used:
-  '(--context,-C)'{--context=,-C-}'[specify lines of context]:lines'
+  '(--context -C)'{--context=,-C-}'[specify lines of context]:lines'
 You won't need the exclusion list if the option can be specified
 multiple times. It can also be useful to use the same description for
 matches which are completely opposite in their meaning if it shortens
diff --git a/Completion/Linux/Command/_iptables b/Completion/Linux/Command/_iptables
index 8f990030c..4178a1a2e 100644
--- a/Completion/Linux/Command/_iptables
+++ b/Completion/Linux/Command/_iptables
@@ -47,7 +47,7 @@ case ${prev[${prev[(I)-p|--protocol]}+1]}; in
 esac
 
 case ${prev[${prev[(I)-j|--jump]}+1]}; in
-  DNAT) args+=( '(--to,--to-destination)'{--to,--to-destination}':address:_users-ports' ) ;;
+  DNAT) args+=( '(--to --to-destination)'{--to,--to-destination}':address:_users-ports' ) ;;
   DSCP)
     args+=(
       '--set-dscp[set the DSCP field]:value'
@@ -67,7 +67,7 @@ case ${prev[${prev[(I)-j|--jump]}+1]}; in
   MARK) args+=( '--set-mark[set fwmark in packet]:number' ) ;;
   REDIRECT|MASQUERADE) args+=( '--to-ports[port (range) to map to]:port range:_ports' ) ;;
   REJECT) args+=( '--reject-with[drop packet and send reply]:reject type:->reject-types' ) ;;
-  SNAT) args+=( '(--to,--to-source)*'{--to,--to-source}'[specify address to map source to]:address:_users-ports' ) ;;
+  SNAT) args+=( '(--to --to-source)*'{--to,--to-source}'[specify address to map source to]:address:_users-ports' ) ;;
   TCPMSS)
     args+=(
       '--set-mss[explicitly set MSS option]:value'


Messages sorted by: Reverse Date, Date, Thread, Author