/* qdict_flatten(): For each nested QDict with key x, all fields with key y are moved to this QDict and their key is renamed to "x.y". For each nested QList with key x, the field at index y is moved to this QDict with the key "x.y" (i.e., the reverse of what qdict_array_split() does). This operation is applied recursively for nested QDicts and QLists.  */
void qdict_flatten(QDict *qdict)
/* qdict_flatten(): For each nested QDict with key x, all fields with key y are moved to this QDict and their key is renamed to "x.y". For each nested QList with key x, the field at index y is moved to this QDict with the key "x.y" (i.e., the reverse of what qdict_array_split() does). This operation is applied recursively for nested QDicts and QLists.  */
void qdict_flatten(QDict *qdict)
{
    qdict_flatten_qdict(qdict, qdict, NULL);
}