Patch 8.1.0702
Problem: ":sign place" only uses the current buffer.
Solution: List signs for all buffers when there is no buffer argument.
Fix error message for invalid buffer name in sign_place().
(Yegappan Lakshmanan, closes #3774)
Files: runtime/doc/eval.txt, src/evalfunc.c, src/sign.c,
src/testdir/test_signs.vim
*** ../vim-8.1.0701/runtime/doc/eval.txt 2019-01-06 16:23:29.495325106
+0100
--- runtime/doc/eval.txt 2019-01-07 21:55:34.129662097 +0100
***************
*** 7945,7950 ****
--- 7971,7979 ----
name name of the defined sign
priority sign priority
+ The returned signs in a buffer are ordered by their line
+ number.
+
Returns an empty list on failure or if there are no placed
signs.
*** ../vim-8.1.0701/src/evalfunc.c 2019-01-04 18:07:20.981806698 +0100
--- src/evalfunc.c 2019-01-07 21:55:34.129662097 +0100
***************
*** 11462,11468 ****
buf = tv_get_buf(&argvars[3], FALSE);
if (buf == NULL)
{
! EMSG2(_("E158: Invalid buffer name: %s"), tv_get_string(&argvars[2]));
goto cleanup;
}
--- 11462,11468 ----
buf = tv_get_buf(&argvars[3], FALSE);
if (buf == NULL)
{
! EMSG2(_("E158: Invalid buffer name: %s"), tv_get_string(&argvars[3]));
goto cleanup;
}
*** ../vim-8.1.0701/src/sign.c 2019-01-07 21:16:49.329347583 +0100
--- src/sign.c 2019-01-07 21:55:34.129662097 +0100
***************
*** 1237,1242 ****
--- 1237,1243 ----
char_u *arg1;
char_u *name;
char_u *filename = NULL;
+ int lnum_arg = FALSE;
// first arg could be placed sign id
arg1 = arg;
***************
*** 1259,1264 ****
--- 1260,1266 ----
arg += 5;
*lnum = atoi((char *)arg);
arg = skiptowhite(arg);
+ lnum_arg = TRUE;
}
else if (STRNCMP(arg, "*", 1) == 0 && cmd == SIGNCMD_UNPLACE)
{
***************
*** 1327,1333 ****
// If the filename is not supplied for the sign place or the sign jump
// command, then use the current buffer.
! if (filename == NULL && (cmd == SIGNCMD_PLACE || cmd == SIGNCMD_JUMP))
*buf = curwin->w_buffer;
return OK;
--- 1329,1336 ----
// If the filename is not supplied for the sign place or the sign jump
// command, then use the current buffer.
! if (filename == NULL && ((cmd == SIGNCMD_PLACE && lnum_arg)
! || cmd == SIGNCMD_JUMP))
*buf = curwin->w_buffer;
return OK;
*** ../vim-8.1.0701/src/testdir/test_signs.vim 2019-01-07 21:16:49.329347583
+0100
--- src/testdir/test_signs.vim 2019-01-07 21:55:34.129662097 +0100
***************
*** 663,668 ****
--- 663,680 ----
call assert_equal("\n--- Signs ---\nSigns for Xsign:\n" .
\ " line=10 id=5 name=sign1 priority=10\n", a)
+ " Place signs in more than one buffer and list the signs
+ split foo
+ set buftype=nofile
+ sign place 25 line=76 name=sign1 priority=99 file=foo
+ let a = execute('sign place')
+ call assert_equal("\n--- Signs ---\nSigns for Xsign:\n" .
+ \ " line=10 id=5 name=sign1 priority=10\n" .
+ \ "Signs for foo:\n" .
+ \ " line=76 id=25 name=sign1 priority=99\n", a)
+ close
+ bwipe foo
+
" :sign place group={group}
let a = execute('sign place group=g1')
call assert_equal("\n--- Signs ---\nSigns for Xsign:\n" .
*** ../vim-8.1.0701/src/version.c 2019-01-07 21:16:49.329347583 +0100
--- src/version.c 2019-01-07 22:01:25.163266068 +0100
***************
*** 801,802 ****
--- 801,804 ----
{ /* Add new patch number below this line */
+ /**/
+ 702,
/**/
--
The difference between theory and practice, is that in theory, there
is no difference between theory and practice.
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.