vim-patch:7.4.209

Problem:    When repeating a filter command "%" and "#" are expanded.
Solution:   Escape the command when storing for redo. (Christian Brabandt)

https://code.google.com/p/vim/source/detail?r=bb402c49379de97fcd475fbbbbdc5ed41e5dff07
This commit is contained in:
oni-link
2014-04-13 00:52:08 +02:00
committed by Thiago de Arruda
parent 4a13143263
commit 421c388bb7
2 changed files with 9 additions and 3 deletions

View File

@@ -931,7 +931,13 @@ void do_bang(int addr_count, exarg_T *eap, int forceit, int do_in, int do_out)
prevcmd = newcmd; prevcmd = newcmd;
if (bangredo) { /* put cmd in redo buffer for ! command */ if (bangredo) { /* put cmd in redo buffer for ! command */
AppendToRedobuffLit(prevcmd, -1); /* If % or # appears in the command, it must have been escaped.
* Reescape them, so that redoing them does not substitute them by the
* buffername. */
char_u *cmd = vim_strsave_escaped(prevcmd, (char_u *)"%#");
AppendToRedobuffLit(cmd, -1);
vim_free(cmd);
AppendToRedobuff((char_u *)"\n"); AppendToRedobuff((char_u *)"\n");
bangredo = FALSE; bangredo = FALSE;
} }

View File

@@ -252,7 +252,7 @@ static int included_patches[] = {
//212, //212,
//211, //211,
//210, //210,
//209, 209,
//208, //208,
207, 207,
//206, //206,