0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

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.
This commit is contained in:
Bram Moolenaar 2019-11-07 20:48:42 +01:00
parent 3b991527e8
commit 3d2a47c782
3 changed files with 15 additions and 3 deletions

View File

@ -260,6 +260,8 @@
* follow; never used in prefix tree */ * follow; never used in prefix tree */
#define BY_SPECIAL BY_FLAGS2 /* highest special byte value */ #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. */ /* Flags used in .spl file for soundsalike flags. */
#define SAL_F0LLOWUP 1 #define SAL_F0LLOWUP 1
#define SAL_COLLAPSE 2 #define SAL_COLLAPSE 2
@ -3182,6 +3184,7 @@ affitem2flag(
/* /*
* Get one affix name from "*pp" and advance the pointer. * 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. * Returns zero for an error, still advances the pointer then.
*/ */
static unsigned static unsigned
@ -3197,6 +3200,8 @@ get_affitem(int flagtype, char_u **pp)
return 0; return 0;
} }
res = getdigits(pp); res = getdigits(pp);
if (res == 0)
res = ZERO_FLAG;
} }
else else
{ {
@ -3343,6 +3348,8 @@ flag_in_afflist(int flagtype, char_u *afflist, unsigned flag)
for (p = afflist; *p != NUL; ) for (p = afflist; *p != NUL; )
{ {
n = getdigits(&p); n = getdigits(&p);
if (n == 0)
n = ZERO_FLAG;
if (n == flag) if (n == flag)
return TRUE; return TRUE;
if (*p != NUL) /* skip over comma */ if (*p != NUL) /* skip over comma */

View File

@ -290,9 +290,9 @@ func Test_zz_affix()
\ ]) \ ])
call LoadAffAndDic(g:test_data_aff7, g:test_data_dic7) 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", \ "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"]], \ ["bad", ["bar", "lead", "tail"]],
\ ["mee", ["meea1", "meea\xE9", "bar"]], \ ["mee", ["meea1", "meea\xE9", "bar"]],
@ -746,6 +746,9 @@ let g:test_data_aff7 = [
\"SFX 61003 Y 1", \"SFX 61003 Y 1",
\"SFX 61003 0 meat .", \"SFX 61003 0 meat .",
\"", \"",
\"SFX 0 Y 1",
\"SFX 0 0 zero .",
\"",
\"SFX 391 Y 1", \"SFX 391 Y 1",
\"SFX 391 0 a1 .", \"SFX 391 0 a1 .",
\"", \"",
@ -757,7 +760,7 @@ let g:test_data_aff7 = [
\ ] \ ]
let g:test_data_dic7 = [ let g:test_data_dic7 = [
\"1234", \"1234",
\"mee/391,111,9999", \"mee/0,391,111,9999",
\"bar/17,61003,123", \"bar/17,61003,123",
\"lead/2", \"lead/2",
\"tail/123", \"tail/123",

View File

@ -741,6 +741,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
2268,
/**/ /**/
2267, 2267,
/**/ /**/