x11: Fold xsettings-common.[ch] into xsettings-client.[ch]

This commit is contained in:
Benjamin Otte
2013-02-10 01:06:58 +01:00
parent 63f0797e70
commit bb4953f3e8
5 changed files with 105 additions and 178 deletions

View File

@ -25,6 +25,8 @@
#include "xsettings-client.h"
#include <glib.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
@ -574,3 +576,42 @@ xsettings_client_process_event (XSettingsClient *client,
return False;
}
int
xsettings_setting_equal (XSettingsSetting *setting_a,
XSettingsSetting *setting_b)
{
if (setting_a->type != setting_b->type)
return 0;
if (strcmp (setting_a->name, setting_b->name) != 0)
return 0;
switch (setting_a->type)
{
case XSETTINGS_TYPE_INT:
return setting_a->data.v_int == setting_b->data.v_int;
case XSETTINGS_TYPE_COLOR:
return (setting_a->data.v_color.red == setting_b->data.v_color.red &&
setting_a->data.v_color.green == setting_b->data.v_color.green &&
setting_a->data.v_color.blue == setting_b->data.v_color.blue &&
setting_a->data.v_color.alpha == setting_b->data.v_color.alpha);
case XSETTINGS_TYPE_STRING:
return strcmp (setting_a->data.v_string, setting_b->data.v_string) == 0;
}
return 0;
}
void
xsettings_setting_free (XSettingsSetting *setting)
{
if (setting->type == XSETTINGS_TYPE_STRING)
free (setting->data.v_string);
if (setting->name)
free (setting->name);
free (setting);
}