Extensions to the IFF format
 
 
 

PATH defines the search path for includes.

INCL is an include block.

EOVC is the end-of-variable-length-chunk marker.

GEND is the end-of-group marker.

Syntax:

	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).

WarningFor compatibility with the previous version of the IFF parser GEND is still followed by sz_Unknown (and EOVC sz_Unknown if the file is a fifo).

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.