about summary refs log tree commit diff
path: root/Completion/Base/_values
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Base/_values')
-rw-r--r--Completion/Base/_values12
1 files changed, 6 insertions, 6 deletions
diff --git a/Completion/Base/_values b/Completion/Base/_values
index 54758a32e..eded48363 100644
--- a/Completion/Base/_values
+++ b/Completion/Base/_values
@@ -3,12 +3,12 @@
 local subopts opt usecc
 
 subopts=()
-while getopts ':O:C' opt; do
-  if [[ "$opt" = O ]]; then
-    subopts=( "${(@P)OPTARG}" )
-  else
-    usecc=yes
-  fi
+while [[ "$1" = -(O*|C) ]]; do
+  case "$1" in
+  -C) usecc=yes; shift ;;
+  -O) subopts=( "${(@P)2}" ); shift 2 ;;
+  *)  subopts=( "${(@P)1[3,-1]}" ); shift ;;
+  esac
 done
 
 if compvalues -i "$@"; then