forked from aniani/vim
patch 8.2.4515: old subsitute syntax is still supported
Problem: Old subsitute syntax is still supported. Solution: Disallow using backslash after ":s" in Vim9 script.
This commit is contained in:
@@ -3246,4 +3246,6 @@ EXTERN char e_cannot_use_s_colon_in_vim9_script_str[]
|
|||||||
INIT(= N_("E1268: Cannot use s: in Vim9 script: %s"));
|
INIT(= N_("E1268: Cannot use s: in Vim9 script: %s"));
|
||||||
EXTERN char e_cannot_create_vim9_script_variable_in_function_str[]
|
EXTERN char e_cannot_create_vim9_script_variable_in_function_str[]
|
||||||
INIT(= N_("E1269: Cannot create a Vim9 script variable in a function: %s"));
|
INIT(= N_("E1269: Cannot create a Vim9 script variable in a function: %s"));
|
||||||
|
EXTERN char e_cannot_use_s_backslash_in_vim9_script[]
|
||||||
|
INIT(= N_("E1270: Cannot use :s\\/sub/ in Vim9 script"));
|
||||||
#endif
|
#endif
|
||||||
|
@@ -3737,6 +3737,11 @@ ex_substitute(exarg_T *eap)
|
|||||||
*/
|
*/
|
||||||
if (*cmd == '\\')
|
if (*cmd == '\\')
|
||||||
{
|
{
|
||||||
|
if (in_vim9script())
|
||||||
|
{
|
||||||
|
emsg(_(e_cannot_use_s_backslash_in_vim9_script));
|
||||||
|
return;
|
||||||
|
}
|
||||||
++cmd;
|
++cmd;
|
||||||
if (vim_strchr((char_u *)"/?&", *cmd) == NULL)
|
if (vim_strchr((char_u *)"/?&", *cmd) == NULL)
|
||||||
{
|
{
|
||||||
|
@@ -811,6 +811,10 @@ func Test_sub_vi_compatibility()
|
|||||||
s\&green&
|
s\&green&
|
||||||
call assert_equal('amber green yellow white green', getline(1))
|
call assert_equal('amber green yellow white green', getline(1))
|
||||||
close!
|
close!
|
||||||
|
|
||||||
|
call assert_fails('vim9cmd s\/white/', 'E1270:')
|
||||||
|
call assert_fails('vim9cmd s\?white?', 'E1270:')
|
||||||
|
call assert_fails('vim9cmd s\&white&', 'E1270:')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
" Test for substitute with the new text longer than the original text
|
" Test for substitute with the new text longer than the original text
|
||||||
|
@@ -754,6 +754,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
4515,
|
||||||
/**/
|
/**/
|
||||||
4514,
|
4514,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user