patch 8.0.1748: CmdlineEnter command uses backslash instead of slash
Problem: CmdlineEnter command uses backslash instead of slash.
Solution: Don't treat the character as a file name. (closes #2837)
diff --git a/src/fileio.c b/src/fileio.c
index f02925b..700bd3e 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -9524,6 +9524,12 @@
* ColorScheme, QuickFixCmd* or DirChanged */
if (event == EVENT_FILETYPE
|| event == EVENT_SYNTAX
+ || event == EVENT_CMDLINECHANGED
+ || event == EVENT_CMDLINEENTER
+ || event == EVENT_CMDLINELEAVE
+ || event == EVENT_CMDWINENTER
+ || event == EVENT_CMDWINLEAVE
+ || event == EVENT_CMDUNDEFINED
|| event == EVENT_FUNCUNDEFINED
|| event == EVENT_REMOTEREPLY
|| event == EVENT_SPELLFILEMISSING
@@ -9532,7 +9538,10 @@
|| event == EVENT_OPTIONSET
|| event == EVENT_QUICKFIXCMDPOST
|| event == EVENT_DIRCHANGED)
+ {
fname = vim_strsave(fname);
+ autocmd_fname_full = TRUE; /* don't expand it later */
+ }
else
fname = FullName_save(fname, FALSE);
}
diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim
index 2d7956f..1c34e30 100644
--- a/src/testdir/test_autocmd.vim
+++ b/src/testdir/test_autocmd.vim
@@ -837,6 +837,8 @@
au! CmdlineEnter
au! CmdlineLeave
+ let save_shellslash = &shellslash
+ set noshellslash
au! CmdlineEnter / let g:entered = expand('<afile>')
au! CmdlineLeave / let g:left = expand('<afile>')
let g:entered = 0
@@ -849,6 +851,7 @@
bwipe!
au! CmdlineEnter
au! CmdlineLeave
+ let &shellslash = save_shellslash
endfunc
" Test for BufWritePre autocommand that deletes or unloads the buffer.
diff --git a/src/version.c b/src/version.c
index a18394a..28a053a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1748,
+/**/
1747,
/**/
1746,