aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2016-04-20 13:44:12 +0200
committerBjörn Linse <bjorn.linse@gmail.com>2016-04-21 18:11:06 +0200
commitce17d031805ab548f26f5b2d519fb8e3bf1bbff1 (patch)
tree24afb43c916063c690d7a8f5fb319cac407aeb01 /src
parenta7a0bf54e3f339f7bf1f97dee44546cdcd926b1d (diff)
downloadrneovim-ce17d031805ab548f26f5b2d519fb8e3bf1bbff1.tar.gz
rneovim-ce17d031805ab548f26f5b2d519fb8e3bf1bbff1.tar.bz2
rneovim-ce17d031805ab548f26f5b2d519fb8e3bf1bbff1.zip
eval: let getreg() return valid list for an undefined register
vim-patch:7.4.1755 this prevents a crash when the list is used in setreg() later
Diffstat (limited to 'src')
-rw-r--r--src/nvim/eval.c5
-rw-r--r--src/nvim/version.c1
2 files changed, 4 insertions, 2 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index e9b1df6367..b51480afc6 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -10096,9 +10096,10 @@ static void f_getreg(typval_T *argvars, typval_T *rettv)
rettv->v_type = VAR_LIST;
rettv->vval.v_list =
get_reg_contents(regname, (arg2 ? kGRegExprSrc : 0) | kGRegList);
- if (rettv->vval.v_list != NULL) {
- rettv->vval.v_list->lv_refcount++;
+ if (rettv->vval.v_list == NULL) {
+ rettv->vval.v_list = list_alloc();
}
+ rettv->vval.v_list->lv_refcount++;
} else {
rettv->v_type = VAR_STRING;
rettv->vval.v_string = get_reg_contents(regname, arg2 ? kGRegExprSrc : 0);
diff --git a/src/nvim/version.c b/src/nvim/version.c
index afd5639d30..5ead7cecbe 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -69,6 +69,7 @@ static char *features[] = {
// clang-format off
static int included_patches[] = {
+ 1755,
1654,
1652,
1643,