mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:8.1.2268: spell file flag zero is not recognized
Problem: Spell file flag zero is not recognized.
Solution: Use -1 as an error value, so that zero can be used as a valid flag
number.
3d2a47c782
This commit is contained in:
parent
3e2f7baf21
commit
805a577f71
@ -265,6 +265,8 @@
|
||||
// follow; never used in prefix tree
|
||||
#define BY_SPECIAL BY_FLAGS2 // highest special byte value
|
||||
|
||||
#define ZERO_FLAG 65009 // used when flag is zero: "0"
|
||||
|
||||
// Flags used in .spl file for soundsalike flags.
|
||||
#define SAL_F0LLOWUP 1
|
||||
#define SAL_COLLAPSE 2
|
||||
@ -2783,6 +2785,7 @@ static unsigned affitem2flag(int flagtype, char_u *item, char_u *fname, int lnum
|
||||
}
|
||||
|
||||
// Get one affix name from "*pp" and advance the pointer.
|
||||
// Returns ZERO_FLAG for "0".
|
||||
// Returns zero for an error, still advances the pointer then.
|
||||
static unsigned get_affitem(int flagtype, char_u **pp)
|
||||
{
|
||||
@ -2794,6 +2797,9 @@ static unsigned get_affitem(int flagtype, char_u **pp)
|
||||
return 0;
|
||||
}
|
||||
res = getdigits_int(pp, true, 0);
|
||||
if (res == 0) {
|
||||
res = ZERO_FLAG;
|
||||
}
|
||||
} else {
|
||||
res = mb_ptr2char_adv((const char_u **)pp);
|
||||
if (flagtype == AFT_LONG || (flagtype == AFT_CAPLONG
|
||||
@ -2915,10 +2921,15 @@ static bool flag_in_afflist(int flagtype, char_u *afflist, unsigned flag)
|
||||
int digits = getdigits_int(&p, true, 0);
|
||||
assert(digits >= 0);
|
||||
n = (unsigned int)digits;
|
||||
if (n == flag)
|
||||
if (n == 0) {
|
||||
n = ZERO_FLAG;
|
||||
}
|
||||
if (n == flag) {
|
||||
return true;
|
||||
if (*p != NUL) // skip over comma
|
||||
++p;
|
||||
}
|
||||
if (*p != NUL) { // skip over comma
|
||||
p++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -283,9 +283,9 @@ func Test_zz_affix()
|
||||
\ ])
|
||||
|
||||
call LoadAffAndDic(g:test_data_aff7, g:test_data_dic7)
|
||||
call RunGoodBad("meea1 meea\xE9 bar prebar barmeat prebarmeat leadprebar lead tail leadtail leadmiddletail",
|
||||
call RunGoodBad("meea1 meezero meea\xE9 bar prebar barmeat prebarmeat leadprebar lead tail leadtail leadmiddletail",
|
||||
\ "bad: mee meea2 prabar probarmaat middle leadmiddle middletail taillead leadprobar",
|
||||
\ ["bar", "barmeat", "lead", "meea1", "meea\xE9", "prebar", "prebarmeat", "tail"],
|
||||
\ ["bar", "barmeat", "lead", "meea1", "meea\xE9", "meezero", "prebar", "prebarmeat", "tail"],
|
||||
\ [
|
||||
\ ["bad", ["bar", "lead", "tail"]],
|
||||
\ ["mee", ["meea1", "meea\xE9", "bar"]],
|
||||
@ -713,6 +713,9 @@ let g:test_data_aff7 = [
|
||||
\"SFX 61003 Y 1",
|
||||
\"SFX 61003 0 meat .",
|
||||
\"",
|
||||
\"SFX 0 Y 1",
|
||||
\"SFX 0 0 zero .",
|
||||
\"",
|
||||
\"SFX 391 Y 1",
|
||||
\"SFX 391 0 a1 .",
|
||||
\"",
|
||||
@ -724,7 +727,7 @@ let g:test_data_aff7 = [
|
||||
\ ]
|
||||
let g:test_data_dic7 = [
|
||||
\"1234",
|
||||
\"mee/391,111,9999",
|
||||
\"mee/0,391,111,9999",
|
||||
\"bar/17,61003,123",
|
||||
\"lead/2",
|
||||
\"tail/123",
|
||||
|
Loading…
Reference in New Issue
Block a user