summaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-08-14 16:07:48 +0200
committerBram Moolenaar <Bram@vim.org>2016-08-14 16:07:48 +0200
commit35a4cfa200917dd171b1fff3cd5b6cee9add673d (patch)
treee12d8aac31bfe6c651bb4f5553658203c817ea55 /src/eval.c
parent2d1a248762f069e470acde389ff4686a45d2f817 (diff)
patch 7.4.2209v7.4.2209
Problem: Cannot map <M-">. (Stephen Riehm) Solution: Solve the memory access problem in another way. (Dominique Pelle) Allow for using <M-\"> in a string.
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/eval.c b/src/eval.c
index 45b8f07c38..2ab3ee4b90 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -233,8 +233,6 @@ static int get_string_tv(char_u **arg, typval_T *rettv, int evaluate);
static int get_lit_string_tv(char_u **arg, typval_T *rettv, int evaluate);
static int free_unref_items(int copyID);
static int get_env_tv(char_u **arg, typval_T *rettv, int evaluate);
-
-
static int get_env_len(char_u **arg);
static char_u * make_expanded_name(char_u *in_start, char_u *expr_start, char_u *expr_end, char_u *in_end);
static void check_vars(char_u *name, int len);
@@ -4926,7 +4924,7 @@ get_string_tv(char_u **arg, typval_T *rettv, int evaluate)
break;
/* Special key, e.g.: "\<C-W>" */
- case '<': extra = trans_special(&p, name, TRUE);
+ case '<': extra = trans_special(&p, name, TRUE, TRUE);
if (extra != 0)
{
name += extra;
@@ -4943,6 +4941,11 @@ get_string_tv(char_u **arg, typval_T *rettv, int evaluate)
}
*name = NUL;
+ if (p == NUL)
+ {
+ EMSG2(_("E114: Missing quote: %s"), *arg);
+ return FAIL;
+ }
*arg = p + 1;
return OK;