Mercurial > vim
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 } |