mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-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 vim/vim#2967)
06b056e110
This commit is contained in:
parent
bcc9b9335c
commit
845973c9fe
@ -5685,6 +5685,14 @@ void ex_sign(exarg_T *eap)
|
||||
int len;
|
||||
|
||||
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--;
|
||||
}
|
||||
}
|
||||
|
||||
// Count cells and check for non-printable chars
|
||||
cells = 0;
|
||||
|
@ -104,6 +104,33 @@ func Test_sign()
|
||||
exe 'sign jump 43 file=' . fn
|
||||
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.
|
||||
sign undefine Sign1
|
||||
sign undefine Sign2
|
||||
|
Loading…
Reference in New Issue
Block a user