diff options
author | Bram Moolenaar <Bram@vim.org> | 2010-03-23 18:06:52 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2010-03-23 18:06:52 +0100 |
commit | 63fa526b50fffe510c26b336ee09e9ee5cf2ed5f (patch) | |
tree | bef45bcacd53a9038bf145b9fb759e5b033aadba | |
parent | d25bc238708ca97d9f1c70179a18d1c325e909de (diff) | |
download | vim-git-63fa526b50fffe510c26b336ee09e9ee5cf2ed5f.tar.gz |
updated for version 7.2.410v7.2.410
Problem: Highlighting directories for completion doesn't work properly.
Solution: Don't halve backslashes when not needed, expaned "~/".
(Dominique Pelle)
-rw-r--r-- | src/ex_getln.c | 24 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 21 insertions, 5 deletions
diff --git a/src/ex_getln.c b/src/ex_getln.c index dea4b1342..6e74a23f1 100644 --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -3948,12 +3948,26 @@ showmatches(xp, wildmenu) || xp->xp_context == EXPAND_SHELLCMD || xp->xp_context == EXPAND_BUFFERS) { - char_u *halved_slash; - /* highlight directories */ - halved_slash = backslash_halve_save(files_found[k]); - j = mch_isdir(halved_slash); - vim_free(halved_slash); + if (xp->xp_numfiles != -1) + { + char_u *halved_slash; + char_u *exp_path; + + /* Expansion was done before and special characters + * were escaped, need to halve backslashes. Also + * $HOME has been replaced with ~/. */ + exp_path = expand_env_save_opt(files_found[k], TRUE); + halved_slash = backslash_halve_save( + exp_path != NULL ? exp_path : files_found[k]); + j = mch_isdir(halved_slash != NULL ? halved_slash + : files_found[k]); + vim_free(exp_path); + vim_free(halved_slash); + } + else + /* Expansion was done here, file names are literal. */ + j = mch_isdir(files_found[k]); if (showtail) p = L_SHOWFILE(k); else diff --git a/src/version.c b/src/version.c index 5d3406148..9cff4cea0 100644 --- a/src/version.c +++ b/src/version.c @@ -682,6 +682,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 410, +/**/ 409, /**/ 408, |