Strange hunspell behavior

I have this affix file

SFX A e o/C e

SFX B e i/C e

SFX C o l o
SFX C i n i
SFX C e r e

And this dictionary file


Now, I expect Writer to recognize these words: ble, blr, blo, bll, bli, bln

But something strange happens, the recognized words are only: ble, blr, blo, bll, as the third flag, B, is not taken into consideration.

Moreover, if I switch the last two flags (having ble/CBA), then only these words are recognized: ble, blr, bli, bln, as if A is not taken into consideration.

I have the last LibreOffice package (but the same error occurs also with 5.3):

Version: (x64)
Build ID: 747b5d0ebf89f41c860ec2a39efd7cb15b54f2d8
CPU threads: 4; OS: Windows 10.0 Build 18363; UI render: default; VCL: win; 
Locale: en-US (it_IT); UI-Language: en-US
Calc: threaded

Am I missing some functions of hunspell that prevents successive application of a flag if the one that precedes it is twofolded?

Thank you

Update: this error occurs even without the C flag (bla/AB and bla/BA)

Update 2: also by putting the C flag in the last position (bla/ABC and bla/BAC) the error remains, and the inflections produced by the C rule are correctly recognized.


SFX B e i/C e


SFX A e o/C e

really correct syntax for Hunspell dictionaries? Never seen such an approach.

Also, note that only the third line of SFX C will work for ble and will make ble → blr, the other two lines are for blo and bli as the initial word, they will make blo → bll and bli → bln respectively.

It’s called twofold stripping, it’s what differs hunspell from aspell/ispell, that is the possibility to apply another flag after the first one.

Search for “twofold suffix stripping”: hunspell(4) - Linux man page

Another question is, aside from the wrong functioning of the speller in Writer, why inverting the A flag with the B one, also the recognized inflections changes. As if Writer applies the twofold prefix only on the first flag.

I think it has something to do with the way I indicate the flags…

This one is not working (dictionary: aver/ẋ1):


FLAG long

SFX ẋ1 Y 1
SFX ẋ1 er aré/gāĪ4I4 aver

PFX gā Y 1
PFX gā 0 g .

SFX Ī4 Y 1
SFX Ī4 0 -u .

SFX I4 Y 1
SFX I4 0 u .

Instead this one works (dictionary: aver/x):


SFX x Y 1
SFX x er aré/gIi aver

PFX g Y 1
PFX g 0 g .

SFX I 0 -u .

SFX i Y 1
SFX i 0 u .

The long flag allows higher values of characters, but the documentation doesn’t suggest that it allows more than one character. I normally use A, B, C and so on to keep the flags simple and in order.