summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--Completion/Unix/Command/_chmod6
2 files changed, 6 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 05d331db5..9299afc70 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2014-01-05  Peter Stephenson  <p.w.stephenson@ntlworld.com>
 
+	* Jun T: 32231: Completion/Unix/Command/_chmod: was confused by
+	options before the mode argument.
+
 	* Axel Beckert: 32229: LICENCE: was not correctly referring to
 	Gnu General Public License.
 
diff --git a/Completion/Unix/Command/_chmod b/Completion/Unix/Command/_chmod
index 6cb310d57..5d3cb2c78 100644
--- a/Completion/Unix/Command/_chmod
+++ b/Completion/Unix/Command/_chmod
@@ -57,12 +57,12 @@ case "$state" in
       zmodload -F zsh/stat b:zstat 2>/dev/null
       typeset -i8 ref=$(zstat +mode $opt_args[--reference])
       _wanted files expl file _files -g "*(-.^f${ref#??})" && ret=0
-    elif [[ $words[2] = [0-7]## ]]; then
-      _wanted files expl file _files -g "*(-.^f$words[2])" && ret=0
+    elif [[ $line[1] = [0-7]## ]]; then
+      _wanted files expl file _files -g "*(-.^f$line[1])" && ret=0
     else
       local spec who op priv
       local -a specs
-      for spec in ${(s:,:)words[2]}; do
+      for spec in ${(s:,:)line[1]}; do
 	if [[ ${spec#*[+-=]} != [rwxst]## ]]; then
 	  _files && ret=0
 	  return ret