void ixp_pstrings(IxpMsg *msg, uint16_t *num, char *strings, uint max);
Packs or unpacks an array of UTF-8 encoded strings. The packed
representation consists of a 16-bit element count followed by an array
of strings as packed by ixp_pstring(3). The unpacked representation is
an array of nul-terminated character arrays.
If msg->mode is MsgPack, *num strings in the array pointed to by
strings are packed into the buffer at msg->pos. If msg->mode is
MsgUnpack, *num is loaded with the number of strings unpacked, the
array at *strings is loaded with pointers to the unpacked strings, and
(*strings) must be freed by the user. In either case, msg->pos is
advanced by the number of bytes read or written. If the action would
advance msg->pos beyond msg->end, msg->pos is still advanced, but no
other action is taken. If *num is greater than max, msg->pos is set
beyond msg->end and no other action is taken.
IxpMsg, ixp_pstring, ixp_pdata