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.
diff --git a/src/spellfile.c b/src/spellfile.c
index f34d9ba..4b36442 100644
--- a/src/spellfile.c
+++ b/src/spellfile.c
@@ -260,6 +260,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
@@ -3182,6 +3184,7 @@
/*
* 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
@@ -3197,6 +3200,8 @@
return 0;
}
res = getdigits(pp);
+ if (res == 0)
+ res = ZERO_FLAG;
}
else
{
@@ -3343,6 +3348,8 @@
for (p = afflist; *p != NUL; )
{
n = getdigits(&p);
+ if (n == 0)
+ n = ZERO_FLAG;
if (n == flag)
return TRUE;
if (*p != NUL) /* skip over comma */