diff options
Diffstat (limited to 'src/option.c')
-rw-r--r-- | src/option.c | 9 |
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; |