about summary refs log tree commit diff
path: root/Completion/X/_xmodmap
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/X/_xmodmap')
-rw-r--r--Completion/X/_xmodmap9
1 files changed, 6 insertions, 3 deletions
diff --git a/Completion/X/_xmodmap b/Completion/X/_xmodmap
index da0029a16..01358b0d4 100644
--- a/Completion/X/_xmodmap
+++ b/Completion/X/_xmodmap
@@ -82,9 +82,12 @@ if [[ -n "$state" ]]; then
     [[ "$what" = *ksym* ]] && _x_keysym "$suf[@]" && ret=0
 
   else
-    if _wanted commands expl command; then
-      compadd "$expl[@]" -S ' ' keycode keysym clear add remove && ret=0
-      compadd "$expl[@]" -S ' = ' pointer && ret=0
+    if _wanted commands; then
+      while _try commands expl command; do
+        compadd "$expl[@]" -S ' ' keycode keysym clear add remove && ret=0
+        compadd "$expl[@]" -S ' = ' pointer && ret=0
+        (( ret )) || return 0
+      done
     fi
   fi
 fi