NAME
NextTagItem -- Iterate TagItem lists. (V36)
SYNOPSIS
next_tag = NextTagItem( tagItemPtr )
D0 A0
struct TagItem *NextTagItem( struct TagItem **tagItemPtr );
FUNCTION
Iterates through a (chained) array of TagItem structures,
skipping and chaining as dictated by system tags. TAG_SKIP
will cause it to skip the entry and the next, 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 at the end.
INPUTS
tagItemPtr - doubly-indirect reference to a TagItem structure.
The pointer will be changed to keep track of the
iteration.
RESULT
next_tag - Each TagItem in the array or chain of arrays that
should be processed according to system Tag values
(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;
...
}
}
}
NOTES
Do NOT use the value of *tagItemPtr, but rather use the pointer
returned by NextTagItem().
BUGS
SEE ALSO
utility/tagitem.h, GetTagData(), PackBoolTags(), FindTagItem()