diff options
Diffstat (limited to 'src/charset.c')
-rw-r--r-- | src/charset.c | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/src/charset.c b/src/charset.c index 00a5326c8..c19828447 100644 --- a/src/charset.c +++ b/src/charset.c @@ -991,14 +991,15 @@ init_spell_chartab() else #endif { - /* Rough guess: use isalpha() for characters above 128. */ + /* Rough guess: use isalpha() and isupper() for characters above 128. + * */ for (i = 128; i < 256; ++i) { - spelltab.st_isw[i] = isalpha(i); - if (isupper(i)) + spelltab.st_isw[i] = MB_ISUPPER(i) || MB_ISLOWER(i); + if (MB_ISUPPER(i)) { spelltab.st_isu[i] = TRUE; - spelltab.st_fold[i] = tolower(i); + spelltab.st_fold[i] = MB_TOLOWER(i); } } } @@ -1150,6 +1151,8 @@ set_spell_finish(new_st) #if defined(FEAT_MBYTE) || defined(PROTO) /* * Write the current tables into the .spl file. + * This makes sure the same characters are recognized as word characters when + * generating an when using a spell file. */ void write_spell_chartab(fd) @@ -1160,15 +1163,6 @@ write_spell_chartab(fd) int flags; int i; - if (!did_set_spelltab) - { - /* No character table specified, write zero counts. */ - fputc(0, fd); - fputc(0, fd); - fputc(0, fd); - return; - } - fputc(128, fd); /* <charflagslen> */ for (i = 128; i < 256; ++i) { |