- psMetadataItemAllocV: - re-wrote 'comment' portion to use psStringCopy - re-wrote 'name' portion to use vnsprintf to predict formatted string length - added psListAlloc to META_MULTI creation - value passed to META_MULTI must be NULL (type info is not available) - psMetadataAddItem: the logic was wrong for MULTI and REPLACE, or perhaps the SDRS was unclear: - if there is no existing entry, the entry is added simply - if the existing entry is MULTI, the new entry is added as a node of MULTI - it does not make sense for both the new and old entries to be of type MULTI - allow replacement of the existing multi with new multi (not implemented) - if both are MULTI && !REPLACE: error - if new entry is MULTI, existing entry becomes node of the new multi. schematically: hash --> existing <-- list becomes hash --> new -> list -> existing <- list - if REPLACE is set, drop the old one first? - behavior same if DUPLICATE is set or not - if DUPLICATE is set, create a new multi, make both existing and new entries nodes of that new multi: hash --> existing <-- list becomes hash --> multi -> list -> existing <- list list -> new <- list - if REPLACE is set, remove the old entry, add new value - note: this adjusts the order. we might need to be more careful.