From 229f8dbf7a3ee3998d07fb452accda362d6e0dfe Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Mon, 6 May 2013 05:50:28 +0200 Subject: [PATCH] =?UTF-8?q?updated=20for=20version=207.3.927=20Problem:=20?= =?UTF-8?q?=20=20=20Missing=20combining=20characters=20when=20putting=20te?= =?UTF-8?q?xt=20in=20a=20register.=20Solution:=20=20=20Include=20combining?= =?UTF-8?q?=20characters.=20(David=20B=C3=BCrgin)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/getchar.c | 12 ++++++++++++ src/testdir/test44.in | 5 ++++- src/testdir/test44.ok | 1 + src/version.c | 2 ++ 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/getchar.c b/src/getchar.c index ba034bf2e8..946e757d64 100644 --- a/src/getchar.c +++ b/src/getchar.c @@ -4616,9 +4616,21 @@ vim_strsave_escape_csi(p) } 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 index e4868697d6..0c5b6db04d 100644 --- a/src/testdir/test44.in +++ b/src/testdir/test44.in @@ -32,7 +32,9 @@ x/ [[=a=]]* [[=b=]]* [[=c=]]* [[=d=]]* [[=e=]]* [[=f=]]* [[=g=]]* [[=h=]]* [[=i= x:" Test backwards search from a multi-byte char /x x?. -x:?^1?,$w! test.out +x:let @w=':%s#comb[i]nations#œ̄ṣ́m̥̄ᾱ̆́#g' +:@w +:?^1?,$w! test.out :e! test.out G:put =matchstr(\"אבגד\", \".\", 0, 2) " ב :put =matchstr(\"אבגד\", \"..\", 0, 2) " בג @@ -61,3 +63,4 @@ g a啷bb 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ñńņňʼ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 index d98ac2ef5d..0bd0b8ab73 100644 --- a/src/testdir/test44.ok +++ b/src/testdir/test44.ok @@ -17,6 +17,7 @@ g abb 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ñńņňʼnṅṉ oòóôõöøōŏőơǒǫǭỏ pṕṗ q rŕŗřṙṟ sśŝşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vṽ wŵẁẃẅẇẘ xẋẍ yýÿŷẏẙỳỷỹ zźżžƶẑ j 012❤ +k œ̄ṣ́m̥̄ᾱ̆́ ב בג א diff --git a/src/version.c b/src/version.c index 02d93d924a..76d60a74df 100644 --- a/src/version.c +++ b/src/version.c @@ -728,6 +728,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 927, /**/ 926, /**/