about summary refs log tree commit diff
path: root/Completion/Base/_in_vared
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Base/_in_vared')
-rwxr-xr-xCompletion/Base/_in_vared15
1 files changed, 11 insertions, 4 deletions
diff --git a/Completion/Base/_in_vared b/Completion/Base/_in_vared
index 4d8e814db..c21601cdf 100755
--- a/Completion/Base/_in_vared
+++ b/Completion/Base/_in_vared
@@ -5,10 +5,17 @@ local also
 # Completion inside vared.
 
 if [[ $compstate[vared] = *\[* ]]; then
-  # vared on an array-element
-  compstate[parameter]=${compstate[vared]%%\[*}
-  compstate[context]=-value-
-  also=value
+  if [[ $compstate[vared] = *\]* ]]; then
+    # vared on an array-element
+    compstate[parameter]=${${compstate[vared]%%\]*}//\[/-}
+    compstate[context]=value
+    also=-value-
+  else
+    # vared on an array-value
+    compstate[parameter]=${compstate[vared]%%\[*}
+    compstate[context]=value
+    also=-value-
+  fi
 else
   # vared on a parameter, let's see if it is an array
   compstate[parameter]=$compstate[vared]