diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-07-25 21:19:13 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-07-25 21:19:13 +0200 |
commit | 00136dc321586800986e8f743c2f108f5eecbf92 (patch) | |
tree | ad111932cd38d2914c866d4b45c3d84585fc81e1 /src/eval.c | |
parent | 6f8d2ac6f1f8a4b971a4c9b27f9250288198f3bb (diff) | |
download | vim-git-00136dc321586800986e8f743c2f108f5eecbf92.tar.gz |
patch 8.1.0211: expanding a file name "~" results in $HOMEv8.1.0211
Problem: Expanding a file name "~" results in $HOME. (Aidan Shafran)
Solution: Change "~" to "./~" before expanding. (closes #3072)
Diffstat (limited to 'src/eval.c')
-rw-r--r-- | src/eval.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/eval.c b/src/eval.c index ef25a3fc9..6034cd24f 100644 --- a/src/eval.c +++ b/src/eval.c @@ -9690,11 +9690,12 @@ shortpath_for_partial( */ int modify_fname( - char_u *src, /* string with modifiers */ - int *usedlen, /* characters after src that are used */ - char_u **fnamep, /* file name so far */ - char_u **bufp, /* buffer for allocated file name or NULL */ - int *fnamelen) /* length of fnamep */ + char_u *src, // string with modifiers + int tilde_file, // "~" is a file name, not $HOME + int *usedlen, // characters after src that are used + char_u **fnamep, // file name so far + char_u **bufp, // buffer for allocated file name or NULL + int *fnamelen) // length of fnamep { int valid = 0; char_u *tail; @@ -9724,8 +9725,8 @@ repeat: || (*fnamep)[1] == '\\' # endif || (*fnamep)[1] == NUL) - #endif + && !(tilde_file && (*fnamep)[1] == NUL) ) { *fnamep = expand_env_save(*fnamep); |