diff options
author | Bram Moolenaar <Bram@vim.org> | 2010-05-13 17:46:58 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2010-05-13 17:46:58 +0200 |
commit | 54ab0f1e54dbca00f88f931dc0f0caf5f7a9d2a2 (patch) | |
tree | fa52f06aa96c3e9e92d2089054e494966bc2cb7d /src/spell.c | |
parent | 38ab0e21b826579759d4f01285ea0a43e85d5c1c (diff) | |
download | vim-git-54ab0f1e54dbca00f88f931dc0f0caf5f7a9d2a2.tar.gz |
updated for version 7.2.422v7.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)
Diffstat (limited to 'src/spell.c')
-rw-r--r-- | src/spell.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/spell.c b/src/spell.c index 98f5e3478..47b86ade8 100644 --- 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 |