mirror of
https://github.com/neovim/neovim.git
synced 2025-10-04 08:56:29 +00:00
Merge #11763 'spell: remove non-UTF8 dead code'
This commit is contained in:
@@ -848,7 +848,7 @@ static void find_word(matchinf_T *mip, int mode)
|
||||
mip->mi_compflags[mip->mi_complen] = ((unsigned)flags >> 24);
|
||||
mip->mi_compflags[mip->mi_complen + 1] = NUL;
|
||||
if (word_ends) {
|
||||
char_u fword[MAXWLEN];
|
||||
char_u fword[MAXWLEN] = { 0 };
|
||||
|
||||
if (slang->sl_compsylmax < MAXWLEN) {
|
||||
// "fword" is only needed for checking syllables.
|
||||
@@ -1026,26 +1026,25 @@ match_checkcompoundpattern (
|
||||
|
||||
// Returns true if "flags" is a valid sequence of compound flags and "word"
|
||||
// does not have too many syllables.
|
||||
static bool can_compound(slang_T *slang, char_u *word, char_u *flags)
|
||||
static bool can_compound(slang_T *slang, const char_u *word,
|
||||
const char_u *flags)
|
||||
FUNC_ATTR_NONNULL_ALL
|
||||
{
|
||||
char_u uflags[MAXWLEN * 2];
|
||||
int i;
|
||||
char_u *p;
|
||||
char_u uflags[MAXWLEN * 2] = { 0 };
|
||||
|
||||
if (slang->sl_compprog == NULL)
|
||||
if (slang->sl_compprog == NULL) {
|
||||
return false;
|
||||
if (enc_utf8) {
|
||||
// Need to convert the single byte flags to utf8 characters.
|
||||
p = uflags;
|
||||
for (i = 0; flags[i] != NUL; i++) {
|
||||
p += utf_char2bytes(flags[i], p);
|
||||
}
|
||||
*p = NUL;
|
||||
p = uflags;
|
||||
} else
|
||||
p = flags;
|
||||
if (!vim_regexec_prog(&slang->sl_compprog, false, p, 0))
|
||||
}
|
||||
// Need to convert the single byte flags to utf8 characters.
|
||||
char_u *p = uflags;
|
||||
for (int i = 0; flags[i] != NUL; i++) {
|
||||
p += utf_char2bytes(flags[i], p);
|
||||
}
|
||||
*p = NUL;
|
||||
p = uflags;
|
||||
if (!vim_regexec_prog(&slang->sl_compprog, false, p, 0)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Count the number of syllables. This may be slow, do it last. If there
|
||||
// are too many syllables AND the number of compound words is above
|
||||
@@ -3607,7 +3606,7 @@ static void suggest_trie_walk(suginfo_T *su, langp_T *lp, char_u *fword, bool so
|
||||
{
|
||||
char_u tword[MAXWLEN]; // good word collected so far
|
||||
trystate_T stack[MAXWLEN];
|
||||
char_u preword[MAXWLEN * 3]; // word found with proper case;
|
||||
char_u preword[MAXWLEN * 3] = { 0 }; // word found with proper case;
|
||||
// concatenation of prefix compound
|
||||
// words and split word. NUL terminated
|
||||
// when going deeper but not when coming
|
||||
@@ -4272,9 +4271,8 @@ static void suggest_trie_walk(suginfo_T *su, langp_T *lp, char_u *fword, bool so
|
||||
// For changing a composing character adjust
|
||||
// the score from SCORE_SUBST to
|
||||
// SCORE_SUBCOMP.
|
||||
if (enc_utf8
|
||||
&& utf_iscomposing(utf_ptr2char(tword + sp->ts_twordlen
|
||||
- sp->ts_tcharlen))
|
||||
if (utf_iscomposing(utf_ptr2char(tword + sp->ts_twordlen
|
||||
- sp->ts_tcharlen))
|
||||
&& utf_iscomposing(utf_ptr2char(fword
|
||||
+ sp->ts_fcharstart))) {
|
||||
sp->ts_score -= SCORE_SUBST - SCORE_SUBCOMP;
|
||||
@@ -5859,7 +5857,7 @@ static void spell_soundfold_sofo(slang_T *slang, char_u *inword, char_u *res)
|
||||
// 255, sl_sal the rest.
|
||||
for (s = inword; *s != NUL; ) {
|
||||
c = mb_cptr2char_adv((const char_u **)&s);
|
||||
if (enc_utf8 ? utf_class(c) == 0 : ascii_iswhite(c)) {
|
||||
if (utf_class(c) == 0) {
|
||||
c = ' ';
|
||||
} else if (c < 256) {
|
||||
c = slang->sl_sal_first[c];
|
||||
@@ -5936,9 +5934,10 @@ static void spell_soundfold_wsal(slang_T *slang, char_u *inword, char_u *res)
|
||||
const char_u *t = s;
|
||||
c = mb_cptr2char_adv((const char_u **)&s);
|
||||
if (slang->sl_rem_accents) {
|
||||
if (enc_utf8 ? utf_class(c) == 0 : ascii_iswhite(c)) {
|
||||
if (did_white)
|
||||
if (utf_class(c) == 0) {
|
||||
if (did_white) {
|
||||
continue;
|
||||
}
|
||||
c = ' ';
|
||||
did_white = true;
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user