diff options
-rw-r--r-- | src/getchar.c | 12 | ||||
-rw-r--r-- | src/testdir/test44.in | 5 | ||||
-rw-r--r-- | src/testdir/test44.ok | 1 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 19 insertions, 1 deletions
diff --git a/src/getchar.c b/src/getchar.c index ba034bf2e..946e757d6 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 e4868697d..0c5b6db04 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 d98ac2ef5..0bd0b8ab7 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 02d93d924..76d60a74d 100644 --- a/src/version.c +++ b/src/version.c @@ -729,6 +729,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 927, +/**/ 926, /**/ 925, |