rendered paste body
#define GETNEXT(iter, type, var) \
if (!err) \
{ \
if (dbus_message_iter_get_arg_type(&iter) == type) \
{ \
dbus_message_iter_get_basic(&iter, &var); \
dbus_message_iter_next(&iter); \
} \
else err = 1; \
}
if (!err && dbus_message_iter_get_arg_type(&sub2) == DBUS_TYPE_VARIANT)
{
dbus_message_iter_recurse(&sub2, &sub3);
if (!strcmp(key, "urgency"))
{
GETNEXT(sub3, DBUS_TYPE_BYTE, urgency);
}
else if (!strcmp(key, "category"))
{
GETNEXT(sub3, DBUS_TYPE_STRING, category);
}
else if (!strcmp(key, "desktop-entry"))
{
GETNEXT(sub3, DBUS_TYPE_STRING, desktop);
}
else if (!strcmp(key, "sound-file"))
{
GETNEXT(sub3, DBUS_TYPE_STRING, sound_file);
}
else if (!strcmp(key, "supress-sound"))
{
GETNEXT(sub3, DBUS_TYPE_BOOLEAN, suppress_sound);
}
else if (!strcmp(key, "x"))
{
GETNEXT(sub3, DBUS_TYPE_INT32, x);
}
else if (!strcmp(key, "y"))
{
GETNEXT(sub3, DBUS_TYPE_INT32, y);
}
// XXX read in image data
}