summaryrefslogtreecommitdiff
path: root/src/option.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/option.c')
-rw-r--r--src/option.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/option.c b/src/option.c
index 6e9b3db1..a545588f 100644
--- a/src/option.c
+++ b/src/option.c
@@ -9185,7 +9185,7 @@ put_setstring(fd, cmd, name, valuep, expand)
int expand;
{
char_u *s;
- char_u buf[MAXPATHL];
+ char_u *buf;
if (fprintf(fd, "%s %s=", cmd, name) < 0)
return FAIL;
@@ -9203,9 +9203,16 @@ put_setstring(fd, cmd, name, valuep, expand)
}
else if (expand)
{
+ buf = alloc(MAXPATHL);
+ if (buf == NULL)
+ return FAIL;
home_replace(NULL, *valuep, buf, MAXPATHL, FALSE);
if (put_escstr(fd, buf, 2) == FAIL)
+ {
+ vim_free(buf);
return FAIL;
+ }
+ vim_free(buf);
}
else if (put_escstr(fd, *valuep, 2) == FAIL)
return FAIL;