Of course, the value of EXTRACTOR_METATYPE_RESERVED would be even better (zero would be the natural value for something like this).
But then it's a lexical problem. If I see something marked as “reserved” I read “do not ever try to use this label”. Since already libextractor uses EXTRACTOR_METATYPE_RESERVED with the meaning of EXTRACTOR_METATYPE_NONE, would it not make sense to rename EXTRACTOR_METATYPE_RESERVED to EXTRACTOR_METATYPE_NONE and tell the user that there is nothing “reserved” about it? By instinct if I see a label named EXTRACTOR_METATYPE_RESERVED I might think that there are cases in which libextractor marks a metatype with EXTRACTOR_METATYPE_RESERVED, expecting me to treat is as an opaque label. Instead, EXTRACTOR_METATYPE_NONE to be usable requires libextractor never to mark anything publicly with it (or throw it as a return value). Since apparently this is the case, a comment similar to the one I had left in the patch would also be useful (“used by libextractor only internally; available to the user for marking an enum EXTRACTOR_MetaType as not carrying any meaningful value”). --madmurphy