diff src/eval.c @ 829:dc8197342755 v7.0d04

updated for version 7.0d04
author vimboss
date Fri, 14 Apr 2006 20:42:25 +0000
parents 1cdd2661f34c
children 52d17d53b555
line wrap: on
line diff
--- a/src/eval.c
+++ b/src/eval.c
@@ -4696,8 +4696,8 @@ eval7(arg, rettv, evaluate)
 }
 
 /*
- * Evaluate an "[expr]" or "[expr:expr]" index.
- * "*arg" points to the '['.
+ * Evaluate an "[expr]" or "[expr:expr]" index.  Also "dict.key".
+ * "*arg" points to the '[' or '.'.
  * Returns FAIL or OK. "*arg" is advanced to after the ']'.
  */
     static int
@@ -4867,7 +4867,9 @@ eval_index(arg, rettv, evaluate, verbose
 
 		    if (n2 < 0)
 			n2 = len + n2;
-		    if (!empty2 && (n2 < 0 || n2 >= len || n2 + 1 < n1))
+		    else if (n2 >= len)
+			n2 = len - 1;
+		    if (!empty2 && (n2 < 0 || n2 + 1 < n1))
 		    {
 			if (verbose)
 			    EMSGN(_(e_listidx), n2);