summaryrefslogtreecommitdiff
path: root/src/eval.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2013-06-12 22:08:58 +0200
committerBram Moolenaar <Bram@vim.org>2013-06-12 22:08:58 +0200
commit2a876e40cebe45c773302b5b9518d07100888d6b (patch)
treeefb810bc0190d1655306da7d70dc2ebed35cb52f /src/eval.c
parentec7944aaf2d5fd67b7bd59a69d6a393424b6c8f8 (diff)
downloadvim-git-2a876e40cebe45c773302b5b9518d07100888d6b.tar.gz
updated for version 7.3.1181v7.3.1181
Problem: Wrong error message for 1.0[0]. Solution: Check for funcref and float separately. (Yasuhiro Matsumoto)
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/eval.c b/src/eval.c
index 18512a97e..7e51a8a71 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -112,6 +112,7 @@ static char *e_dictrange = N_("E719: Cannot use [:] with a Dictionary");
static char *e_letwrong = N_("E734: Wrong variable type for %s=");
static char *e_nofunc = N_("E130: Unknown function: %s");
static char *e_illvar = N_("E461: Illegal variable name: %s");
+static char *e_float_as_string = N_("E806: using Float as a String");
static dictitem_T globvars_var; /* variable used for g: */
#define globvarht globvardict.dv_hashtab
@@ -5268,16 +5269,20 @@ eval_index(arg, rettv, evaluate, verbose)
char_u *s;
char_u *key = NULL;
- if (rettv->v_type == VAR_FUNC
-#ifdef FEAT_FLOAT
- || rettv->v_type == VAR_FLOAT
-#endif
- )
+ if (rettv->v_type == VAR_FUNC)
{
if (verbose)
EMSG(_("E695: Cannot index a Funcref"));
return FAIL;
}
+#ifdef FEAT_FLOAT
+ else if (rettv->v_type == VAR_FLOAT)
+ {
+ if (verbose)
+ EMSG(_(e_float_as_string));
+ return FAIL;
+ }
+#endif
if (**arg == '.')
{
@@ -20085,7 +20090,7 @@ get_tv_string_buf_chk(varp, buf)
break;
#ifdef FEAT_FLOAT
case VAR_FLOAT:
- EMSG(_("E806: using Float as a String"));
+ EMSG(_(e_float_as_string));
break;
#endif
case VAR_STRING: