Hi William!
On So, 07 Apr 2013, William Fugh wrote:
> BTW: Here is a patch.
> >
> > Well done, thank you guys so much. :-)
Actually, it is not quite right. I forgot, there could be several
combining chars. So here is an updated patch. Bram, please check.
regards,
Christian
--
Nett sein kann jeder - meckern ist wichtig!
--
--
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.
diff --git a/src/getchar.c b/src/getchar.c
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -4616,9 +4616,21 @@
}
else
{
+#ifdef FEAT_MBYTE
+ int len = mb_char2len(PTR2CHAR(s));
+ int len2 = mb_ptr2len(s);
+#endif
/* Add character, possibly multi-byte to destination, escaping
* CSI and K_SPECIAL. */
d = add_char2buf(PTR2CHAR(s), d);
+#ifdef FEAT_MBYTE
+ while (len < len2)
+ {
+ /* add following combining char */
+ d = add_char2buf(PTR2CHAR(s+len), d);
+ len += mb_char2len(PTR2CHAR(s+len));
+ }
+#endif
mb_ptr_adv(s);
}
}
diff --git a/src/testdir/test44.in b/src/testdir/test44.in
--- a/src/testdir/test44.in
+++ b/src/testdir/test44.in
@@ -32,7 +32,9 @@
x:" Test backwards search from a multi-byte char
/x
x?.
-x:?^1?,$w! test.out
+x:let @w=':%s#comb[i]nations#ÅÌá¹£Ì#g'
+:@w
+:?^1?,$w! test.out
:e! test.out
G:put =matchstr(\"××××\", \".\", 0, 2) " ×
:put =matchstr(\"××××\", \"..\", 0, 2) " ××
@@ -61,3 +63,4 @@
h AÃÃÃÃÃÃ
ÄÄÄÇÇÇ áº¢ Bá¸á¸ CÃÄÄÄÄ DÄÄá¸á¸á¸ EÃÃÃÃÄÄÄÄÄẺẼ FḠGÄÄÄ Ä¢Ç¤Ç¦Ç´á¸ HĤĦḢḦḨ IÃÃÃÃĨĪĬĮİÇá» JÄ´ KĶǨḰḴ LĹĻĽĿÅḺ MḾṠNÃÅÅ
Åá¹á¹ OÃÃÃÃÃÃÅÅÅÆ ÇǪǬỠPá¹á¹ Q RÅÅÅá¹á¹ SÅÅÅÅ á¹ TŢŤŦṪṮ UÃÃÃÃŨŪŬŮŰŲƯÇỦ Vá¹¼ WÅ´áºáºáºáº Xáºáº YÃŶŸáºá»²á»¶á»¸ ZŹŻŽƵáºáº
i aà áâãäåÄÄÄ
ÇÇǡả bá¸á¸ cçÄÄÄÄ dÄÄá¸á¸á¸ eèéêëÄÄÄÄÄẻẽ fḠgÄÄġģǥǧǵḡ hĥħḣḧḩẠiìÃîïĩīÄįÇá» jĵǰ kķǩḱḵ lĺļľÅÅḻ mḿṠnñÅÅÅÅá¹
á¹ oòóôõöøÅÅÅÆ¡ÇÇ«Çá» pá¹á¹ q rÅÅÅá¹á¹ sÅÅÅšṡ tţťŧṫṯẠuùúûüũūÅůűųưÇá»§ vá¹½ wŵáºáºáº
áºáº xáºáº yýÿŷáºáºá»³á»·á»¹ zźżžƶáºáº
j 0123â¤x
+k combinations
diff --git a/src/testdir/test44.ok b/src/testdir/test44.ok
--- a/src/testdir/test44.ok
+++ b/src/testdir/test44.ok
@@ -17,6 +17,7 @@
h AÃÃÃÃÃÃ
ÄÄÄÇÇÇ áº¢ Bá¸á¸ CÃÄÄÄÄ DÄÄá¸á¸á¸ EÃÃÃÃÄÄÄÄÄẺẼ FḠGÄÄÄ Ä¢Ç¤Ç¦Ç´á¸ HĤĦḢḦḨ IÃÃÃÃĨĪĬĮİÇá» JÄ´ KĶǨḰḴ LĹĻĽĿÅḺ MḾṠNÃÅÅ
Åá¹á¹ OÃÃÃÃÃÃÅÅÅÆ ÇǪǬỠPá¹á¹ Q RÅÅÅá¹á¹ SÅÅÅÅ á¹ TŢŤŦṪṮ UÃÃÃÃŨŪŬŮŰŲƯÇỦ Vá¹¼ WÅ´áºáºáºáº Xáºáº YÃŶŸáºá»²á»¶á»¸ ZŹŻŽƵáº
i aà áâãäåÄÄÄ
ÇÇǡả bá¸á¸ cçÄÄÄÄ dÄÄá¸á¸á¸ eèéêëÄÄÄÄÄẻẽ fḠgÄÄġģǥǧǵḡ hĥħḣḧḩẠiìÃîïĩīÄįÇá» jĵǰ kķǩḱḵ lĺļľÅÅḻ mḿṠnñÅÅÅÅá¹
á¹ oòóôõöøÅÅÅÆ¡ÇÇ«Çá» pá¹á¹ q rÅÅÅá¹á¹ sÅÅÅšṡ tţťŧṫṯẠuùúûüũūÅůűųưÇá»§ vá¹½ wŵáºáºáº
áºáº xáºáº yýÿŷáºáºá»³á»·á»¹ zźżžƶáº
j 012â¤
+k ÅÌá¹£Ì
×
××
×