GSList *data = NULL, item; for (item = g_slist_first(setting->value.value.as_list); item; item = item->next) { switch (setting->info.for_list.list_of_type) { case BERYL_SETTING_TYPE_STRING: data = g_slist_append(data, ((BerylSettingValue *)item->data)->value.as_string); break; default: break; }; };