NAME NextTagItem -- iterate through a tag list. (V36) SYNOPSIS tag = NextTagItem(tagItemPtr); D0 A0 struct TagItem *NextTagItem(struct TagItem **); FUNCTION Iterates through a tag list, skipping and chaining as dictated by system tags. TAG_SKIP will cause it to skip the entry and a number of following tags as specified in ti_Data. TAG_IGNORE ignores that single entry, and TAG_MORE has a pointer to another array of tags (and terminates the current array!). TAG_DONE also terminates the current array. Each call returns either the next tagitem you should examine, or NULL when the end of the list has been reached. INPUTS tagItemPtr - doubly-indirect reference to a TagItem structure. The pointer will be changed to keep track of the iteration. RESULTS nextTag - each TagItem in the array or chain of arrays that should be processed according to system tag values defined in <utility/tagitem.h>) is returned in turn with successive calls. EXAMPLE Iterate(struct TagItem *tags); { struct TagItem *tstate; struct TagItem *tag; tstate = tags; while (tag = NextTagItem(&tstate)) { switch (tag->ti_Tag) { case TAG1: ... break; case TAG2: ... break; ... } } } WARNING Do NOT use the value of *tagItemPtr, but rather use the pointer returned by NextTagItem(). SEE ALSO <utility/tagitem.h>, GetTagData(), PackBoolTags(), FindTagItem()