is set, treat it as a negation flag.
for (j = 0; j < n_features; j++)
{
OTF_Tag feature = features[j];
+ int negate = 0;
if (feature == 0)
continue;
+ if (((unsigned) feature) & 0x80000000)
+ {
+ feature = (OTF_Tag) (((unsigned) feature) & 0x7FFFFFFF);
+ negate = 1;
+ }
for (i = 0; i < LangSys->FeatureCount; i++)
if (feature_list->Feature[LangSys->FeatureIndex[i]].FeatureTag
== feature)
- break;
+ {
+ if (negate)
+ return 0;
+ break;
+ }
if (i == LangSys->FeatureCount)
return 0;
}