mirror of
https://github.com/vim/vim
synced 2025-03-30 22:46:45 +02:00
patch 8.0.1829: MS-Windows: script for vimdiff can't handle ! chars
Problem: MS-Windows: script for vimdiff can't handle ! chars. Solution: Escape the ! chars. (Hans Ginzel, closes #2896)
This commit is contained in:
parent
e65fffd9b4
commit
12365ce49f
2 changed files with 8 additions and 1 deletions
|
@ -1197,13 +1197,17 @@ install_vimrc(int idx)
|
|||
fprintf(fd, " let opt = '-a --binary '\n");
|
||||
fprintf(fd, " if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif\n");
|
||||
fprintf(fd, " if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif\n");
|
||||
/* Use quotes only when needed, they may cause trouble. */
|
||||
/* Use quotes only when needed, they may cause trouble.
|
||||
* Always escape "!". */
|
||||
fprintf(fd, " let arg1 = v:fname_in\n");
|
||||
fprintf(fd, " if arg1 =~ ' ' | let arg1 = '\"' . arg1 . '\"' | endif\n");
|
||||
fprintf(fd, " let arg1 = substitute(arg1, '!', '\\!', 'g')\n");
|
||||
fprintf(fd, " let arg2 = v:fname_new\n");
|
||||
fprintf(fd, " if arg2 =~ ' ' | let arg2 = '\"' . arg2 . '\"' | endif\n");
|
||||
fprintf(fd, " let arg2 = substitute(arg2, '!', '\\!', 'g')\n");
|
||||
fprintf(fd, " let arg3 = v:fname_out\n");
|
||||
fprintf(fd, " if arg3 =~ ' ' | let arg3 = '\"' . arg3 . '\"' | endif\n");
|
||||
fprintf(fd, " let arg3 = substitute(arg3, '!', '\\!', 'g')\n");
|
||||
|
||||
/* If the path has a space: When using cmd.exe (Win NT/2000/XP) put
|
||||
* quotes around the diff command and rely on the default value of
|
||||
|
@ -1225,6 +1229,7 @@ install_vimrc(int idx)
|
|||
fprintf(fd, " else\n");
|
||||
fprintf(fd, " let cmd = $VIMRUNTIME . '\\diff'\n");
|
||||
fprintf(fd, " endif\n");
|
||||
fprintf(fd, " let cmd = substitute(cmd, '!', '\\!', 'g')\n");
|
||||
fprintf(fd, " silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3\n");
|
||||
fprintf(fd, " if exists('l:shxq_sav')\n");
|
||||
fprintf(fd, " let &shellxquote=l:shxq_sav\n");
|
||||
|
|
|
@ -761,6 +761,8 @@ static char *(features[]) =
|
|||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1829,
|
||||
/**/
|
||||
1828,
|
||||
/**/
|
||||
|
|
Loading…
Add table
Reference in a new issue