mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.1.0588: cannot define a sign with space in the text
Problem: Cannot define a sign with space in the text. Solution: Allow for escaping characters. (Ben Jackson, closes #2967)
This commit is contained in:
parent
06d4c4c818
commit
06b056e110
@ -7779,6 +7779,14 @@ ex_sign(exarg_T *eap)
|
|||||||
int len;
|
int len;
|
||||||
|
|
||||||
arg += 5;
|
arg += 5;
|
||||||
|
for (s = arg; s + 1 < p; ++s)
|
||||||
|
if (*s == '\\')
|
||||||
|
{
|
||||||
|
// Remove a backslash, so that it is possible
|
||||||
|
// to use a space.
|
||||||
|
STRMOVE(s, s + 1);
|
||||||
|
--p;
|
||||||
|
}
|
||||||
# ifdef FEAT_MBYTE
|
# ifdef FEAT_MBYTE
|
||||||
/* Count cells and check for non-printable chars */
|
/* Count cells and check for non-printable chars */
|
||||||
if (has_mbyte)
|
if (has_mbyte)
|
||||||
|
@ -104,6 +104,33 @@ func Test_sign()
|
|||||||
exe 'sign jump 43 file=' . fn
|
exe 'sign jump 43 file=' . fn
|
||||||
call assert_equal('B', getline('.'))
|
call assert_equal('B', getline('.'))
|
||||||
|
|
||||||
|
" can't define a sign with a non-printable character as text
|
||||||
|
call assert_fails("sign define Sign4 text=\e linehl=Comment", 'E239:')
|
||||||
|
call assert_fails("sign define Sign4 text=a\e linehl=Comment", 'E239:')
|
||||||
|
call assert_fails("sign define Sign4 text=\ea linehl=Comment", 'E239:')
|
||||||
|
|
||||||
|
" Only 1 or 2 character text is allowed
|
||||||
|
call assert_fails("sign define Sign4 text=abc linehl=Comment", 'E239:')
|
||||||
|
call assert_fails("sign define Sign4 text= linehl=Comment", 'E239:')
|
||||||
|
call assert_fails("sign define Sign4 text=\ ab linehl=Comment", 'E239:')
|
||||||
|
|
||||||
|
" define sign with whitespace
|
||||||
|
sign define Sign4 text=\ X linehl=Comment
|
||||||
|
sign undefine Sign4
|
||||||
|
sign define Sign4 linehl=Comment text=\ X
|
||||||
|
sign undefine Sign4
|
||||||
|
|
||||||
|
sign define Sign5 text=X\ linehl=Comment
|
||||||
|
sign undefine Sign5
|
||||||
|
sign define Sign5 linehl=Comment text=X\
|
||||||
|
sign undefine Sign5
|
||||||
|
|
||||||
|
" define sign with backslash
|
||||||
|
sign define Sign4 text=\\\\ linehl=Comment
|
||||||
|
sign undefine Sign4
|
||||||
|
sign define Sign4 text=\\ linehl=Comment
|
||||||
|
sign undefine Sign4
|
||||||
|
|
||||||
" After undefining the sign, we should no longer be able to place it.
|
" After undefining the sign, we should no longer be able to place it.
|
||||||
sign undefine Sign1
|
sign undefine Sign1
|
||||||
sign undefine Sign2
|
sign undefine Sign2
|
||||||
|
@ -799,6 +799,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 */
|
||||||
|
/**/
|
||||||
|
588,
|
||||||
/**/
|
/**/
|
||||||
587,
|
587,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user