The XVaCreateNestedList
function allocates memory and copies its arguments into a single list
pointer, which may be used as a value for arguments requiring a list value.
Any entries are copied as specified. Data passed by reference is not copied;
the caller must ensure data remains valid for the lifetime of the nested
list. The list should be freed using XFree when it is no longer needed.