Mercurial > vim
diff src/ex_docmd.c @ 14393:c62601adad69 v8.1.0211
patch 8.1.0211: expanding a file name "~" results in $HOME
commit https://github.com/vim/vim/commit/00136dc321586800986e8f743c2f108f5eecbf92
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Jul 25 21:19:13 2018 +0200
patch 8.1.0211: expanding a file name "~" results in $HOME
Problem: Expanding a file name "~" results in $HOME. (Aidan Shafran)
Solution: Change "~" to "./~" before expanding. (closes https://github.com/vim/vim/issues/3072)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 25 Jul 2018 21:30:06 +0200 |
parents | 95030c543411 |
children | 289b850d2cbf |
line wrap: on
line diff
--- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -10654,6 +10654,7 @@ eval_vars( int resultlen; buf_T *buf; int valid = VALID_HEAD + VALID_PATH; /* assume valid result */ + int tilde_file = FALSE; int spec_idx; #ifdef FEAT_MODIFY_FNAME int skip_mod = FALSE; @@ -10720,7 +10721,10 @@ eval_vars( valid = 0; /* Must have ":p:h" to be valid */ } else + { result = curbuf->b_fname; + tilde_file = STRCMP(result, "~") == 0; + } break; case SPEC_HASH: /* '#' or "#99": alternate file */ @@ -10784,7 +10788,10 @@ eval_vars( valid = 0; /* Must have ":p:h" to be valid */ } else + { result = buf->b_fname; + tilde_file = STRCMP(result, "~") == 0; + } } break; @@ -10877,7 +10884,7 @@ eval_vars( #ifdef FEAT_MODIFY_FNAME else if (!skip_mod) { - valid |= modify_fname(src, usedlen, &result, &resultbuf, + valid |= modify_fname(src, tilde_file, usedlen, &result, &resultbuf, &resultlen); if (result == NULL) {