Right now, there can't be right-aligned one-character signs(like "sign define
rightsign text=\ r"), because prefixing a sign with a space breaks the define
statement.
The "text=" argument for signs uses skiptowhite_esc, which forces whitespace in
the argument to be escaped, but then never actually unescapes the whitespace.
This patch unescapes the whitespace, so that right aligned signs can function
correctly.
-James
--- vim74/src/ex_cmds.c 2013-08-07 09:15:51.000000000 -0400
+++ vim74-mod/src/ex_cmds.c 2013-09-23 19:54:33.902516135 -0400
@@ -6972,6 +6972,11 @@
cells = 0;
for (s = arg; s < p; s += (*mb_ptr2len)(s))
{
+ if (s < p - 1 && (*mb_ptr2char)(s) == '\\')
+ {
+ STRMOVE(s, s + 1);
+ --p;
+ }
if (!vim_isprintc((*mb_ptr2char)(s)))
break;
cells += (*mb_ptr2cells)(s);
@@ -6981,8 +6986,15 @@
#endif
{
for (s = arg; s < p; ++s)
+ {
+ if ( s < p - 1 && *s == '\\')
+ {
+ STRMOVE(s, s + 1);
+ --p;
+ }
if (!vim_isprintc(*s))
break;
+ }
cells = (int)(s - arg);
}
/* Currently must be one or two display cells */
--
--
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/groups/opt_out.
--- vim74/src/ex_cmds.c 2013-08-07 09:15:51.000000000 -0400
+++ vim74-mod/src/ex_cmds.c 2013-09-23 19:54:33.902516135 -0400
@@ -6972,6 +6972,11 @@
cells = 0;
for (s = arg; s < p; s += (*mb_ptr2len)(s))
{
+ if (s < p - 1 && (*mb_ptr2char)(s) == '\\')
+ {
+ STRMOVE(s, s + 1);
+ --p;
+ }
if (!vim_isprintc((*mb_ptr2char)(s)))
break;
cells += (*mb_ptr2cells)(s);
@@ -6981,8 +6986,15 @@
#endif
{
for (s = arg; s < p; ++s)
+ {
+ if ( s < p - 1 && *s == '\\')
+ {
+ STRMOVE(s, s + 1);
+ --p;
+ }
if (!vim_isprintc(*s))
break;
+ }
cells = (int)(s - arg);
}
/* Currently must be one or two display cells */