NAME FilterTagChanges -- Eliminate TagItems which specify no change. (V36) SYNOPSIS FilterTagChanges( changeList, oldValues, apply) A0 A1 D0 void FilterTagChanges( struct tagitem *changelist, struct tagitem *oldvalues, long apply ); FUNCTION Eliminate items from a "change list" that specify values already in effect in existing list. Optionally update the existing list if the Boolean 'Apply' is true. The elimination is done by changing the ti_Tag field to TAG_IGNORE. So, this function may change the input tag list(s). INPUTS changeList - specification of new tag-value pairs. oldValues - a list of existing tag item pairs. apply - Boolean specification as to whether the values in oldValues are to be updated to the values in changeList. RESULT None. EXAMPLE Assume you have an attribute list for an object (oldValues) which looks like this: ATTR_Size, "large", ATTR_Color, "orange", ATTR_Shape, "square", If you receive a new TagList containing some changes (changeList), which looks like this: ATTR_Size, "large", ATTR_Shape, "triangle" If you call FilterTagChanges(), changeList will be modified to contain only those attributes which are different from the oldValues. All other tagitems will have their tag-values set to TAG_IGNORE. The resulting changeList will become: TAG_IGNORE, "large", ATTR_Shape, "triangle" If apply was set to TRUE, oldValues would be: ATTR_Size, "large" ATTR_Color, "orange" ATTR_Shape, "triangle" BUGS SEE ALSO