# HG changeset patch # User Bram Moolenaar # Date 1273765618 -7200 # Node ID 12aba62fa7c6812ec46eb3be6759d82a4a651a93 # Parent 35effbd07a25d1df122e795165d26ceb65510c3a updated for version 7.2.422 Problem: May get E763 when using spell dictionaries. Solution: Avoid utf-8 case folded character to be truncated to 8 bits and differ from latin1. (Dominique Pelle) diff --git a/src/spell.c b/src/spell.c --- a/src/spell.c +++ b/src/spell.c @@ -9780,10 +9780,16 @@ init_spell_chartab() { for (i = 128; i < 256; ++i) { + int f = utf_fold(i); + int u = utf_toupper(i); + spelltab.st_isu[i] = utf_isupper(i); spelltab.st_isw[i] = spelltab.st_isu[i] || utf_islower(i); - spelltab.st_fold[i] = utf_fold(i); - spelltab.st_upper[i] = utf_toupper(i); + /* The folded/upper-cased value is different between latin1 and + * utf8 for 0xb5, causing E763 for no good reason. Use the latin1 + * value for utf-8 to avoid this. */ + spelltab.st_fold[i] = (f < 256) ? f : i; + spelltab.st_upper[i] = (u < 256) ? u : i; } } else diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -682,6 +682,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 422, +/**/ 421, /**/ 420,