summaryrefslogtreecommitdiffstats
path: root/src/evalbuffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/evalbuffer.c')
-rw-r--r--src/evalbuffer.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/evalbuffer.c b/src/evalbuffer.c
index 3fed3893e9..2ba2f679a5 100644
--- a/src/evalbuffer.c
+++ b/src/evalbuffer.c
@@ -128,7 +128,8 @@ find_win_for_curbuf(void)
}
/*
- * Set line or list of lines in buffer "buf".
+ * Set line or list of lines in buffer "buf" to "lines".
+ * Any type is allowed and converted to a string.
*/
static void
set_buffer_lines(
@@ -187,7 +188,7 @@ set_buffer_lines(
li = l->lv_first;
}
else
- line = tv_get_string_chk(lines);
+ line = typval_tostring(lines, FALSE);
// default result is zero == OK
for (;;)
@@ -197,7 +198,8 @@ set_buffer_lines(
// list argument, get next string
if (li == NULL)
break;
- line = tv_get_string_chk(&li->li_tv);
+ vim_free(line);
+ line = typval_tostring(&li->li_tv, FALSE);
li = li->li_next;
}
@@ -238,6 +240,7 @@ set_buffer_lines(
break;
++lnum;
}
+ vim_free(line);
if (added > 0)
{