comparison 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
comparison
equal deleted inserted replaced
828:01583c79d5f4 829:dc8197342755
4694 4694
4695 return ret; 4695 return ret;
4696 } 4696 }
4697 4697
4698 /* 4698 /*
4699 * Evaluate an "[expr]" or "[expr:expr]" index. 4699 * Evaluate an "[expr]" or "[expr:expr]" index. Also "dict.key".
4700 * "*arg" points to the '['. 4700 * "*arg" points to the '[' or '.'.
4701 * Returns FAIL or OK. "*arg" is advanced to after the ']'. 4701 * Returns FAIL or OK. "*arg" is advanced to after the ']'.
4702 */ 4702 */
4703 static int 4703 static int
4704 eval_index(arg, rettv, evaluate, verbose) 4704 eval_index(arg, rettv, evaluate, verbose)
4705 char_u **arg; 4705 char_u **arg;
4865 list_T *l; 4865 list_T *l;
4866 listitem_T *item; 4866 listitem_T *item;
4867 4867
4868 if (n2 < 0) 4868 if (n2 < 0)
4869 n2 = len + n2; 4869 n2 = len + n2;
4870 if (!empty2 && (n2 < 0 || n2 >= len || n2 + 1 < n1)) 4870 else if (n2 >= len)
4871 n2 = len - 1;
4872 if (!empty2 && (n2 < 0 || n2 + 1 < n1))
4871 { 4873 {
4872 if (verbose) 4874 if (verbose)
4873 EMSGN(_(e_listidx), n2); 4875 EMSGN(_(e_listidx), n2);
4874 return FAIL; 4876 return FAIL;
4875 } 4877 }