Sunday, April 7, 2013

Re: Weird:: substitute by using register with combinations

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ÈÉÊÃ&lsqauo;Ä'Ä"ĖĘĚẺẼ 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çćĉÄ&lsqauo;č dďÄ'á¸&lsqauo;ḏá¸' eèéêëÄ"ĕėęěẻẽ fḟ gĝğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįǐỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṁ nñńņňʼnṅṉ oòóôõöøōŏÅ'Æ¡Ç'ǫǭỏ pṕṗ q rŕŗřṙṟ sśŝşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưÇ"ủ vá¹½ wŵẁẃẅẇẘ xáº&lsqauo;ẍ 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ÈÉÊÃ&lsqauo;Ä'Ä"ĖĘĚẺẼ 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çćĉÄ&lsqauo;č dďÄ'á¸&lsqauo;ḏá¸' eèéêëÄ"ĕėęěẻẽ fḟ gĝğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįǐỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṁ nñńņňʼnṅṉ oòóôõöøōŏÅ'Æ¡Ç'ǫǭỏ pṕṗ q rŕŗřṙṟ sśŝşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưÇ"ủ vá¹½ wŵẁẃẅẇẘ xáº&lsqauo;ẍ yýÿŷẏẙỳỷỹ zźżžƶáº'
j 012❤
+k Å"̄ṣ́
×'
×'×'
א
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_use" 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_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

No comments:

Post a Comment