PATH defines the search path for includes.
EOVC is the end-of-variable-length-chunk marker.
GEND is the end-of-group marker.
PATH # <directory names>
INCL # <file names>
EOVC szUnknown
GEND 0
PATH and INCL are data chunks and thus inherit alignment.
EOVC and GEND are use in fifo files since the chunk and group sizes can not be random accessed. Creating groups or chunks with unspecified size on a fifo will give something like:
FORM sz_Fifo TYPE ; start of form
BLCK sz_Fifo data ; block 1
EOVC sz_Unknown ; end of block 1
.... ;
BLCK sz_Fifo data ; block 2
EOVC sz_Unknown ; end of block 2
GEND 0 ; no more block in this FORM
EOVC is a block/group end marker, while GEND is understood as a request to close the current group, going up one level.
Using unknown sizes when writing a seekable file will produce a very similar structure except that no EOVC is written. This is very useful when parsing a file under construction since the end of group can be detected w/o any random access to the group header. The size field of GEND is set to zero to allow other standard IFF parsers to skip it silently. The EOVC’s size field value will produce an error if read by a standard parser (w/o fifo extensions).
Since there is no reliable way of skipping a block of unknown length it is STRONGLY RECOMMENDED that writer and reader of a fifo agree on the file’s content.
Note that the implemented parser is smart enough to locate EOVCs in a file, but the skipping process is slow due to intensive read and compares. And again, this can NOT be considered 100% reliable.