~didrocks/lightdm/packaging-cleanup

« back to all changes in this revision

Viewing changes to utils/lightdm-set-defaults.c

  • Committer: Tarmac
  • Author(s): Christopher James Halse Rogers
  • Date: 2013-06-19 21:22:32 UTC
  • mfrom: (1613.1.3 unity)
  • Revision ID: tarmac-20130619212232-blgy4wo05mccuu97
Fixes for lightdm-set-defaults.

‘lightdm-set-defaults --remove --foo=bar’ will no longer add a key ‘foo=bar’ if there is not already a foo key.

‘lightdm-set-defaults --remove --foo=bar’ will no longer leave an invalid ‘foo=’ key.

Approved by Robert Ancell, PS Jenkins bot.

Show diffs side-by-side

added added

removed removed

Lines of Context:
99
99
              const gchar *key_name,
100
100
              GKeyFile    *keyfile)
101
101
{
102
 
    gboolean success = TRUE;
103
102
        
104
 
    if (!(default_value) || (strlen(default_value) < 1)) {
 
103
    if (remove) {
 
104
        if (g_strcmp0 (default_value, new_value) == 0) {
 
105
            g_debug ("Remove %s as default value for %s", default_value, key_name);
 
106
            if (!g_key_file_remove_key (keyfile, key_group, key_name, NULL))
 
107
                return (2);
 
108
            return(0);
 
109
        }
 
110
        g_debug ("Can't remove: %s is not the default value for %s", default_value, key_name);
 
111
        return(4);
 
112
    }
 
113
    else if (!(default_value) || (strlen(default_value) < 1)) {
105
114
        g_debug ("No existing valid value for %s. Set to %s", key_name, new_value);
106
115
        g_key_file_set_string (keyfile, key_group, key_name, new_value);
107
116
    }
108
117
    else {
109
 
        if (remove) {
110
 
            if (g_strcmp0 (default_value, new_value) == 0) {
111
 
                g_debug ("Remove %s as default value for %s", default_value, key_name);
112
 
                g_key_file_set_string (keyfile, key_group, key_name, "");
113
 
                if (!success)
114
 
                    return(2);
115
 
                return(0);
116
 
            }
117
 
            g_debug ("Can't remove: %s is not the default value for %s", default_value, key_name);
118
 
            return(4);
119
 
        }
 
118
        g_debug ("Found existing default value(%s) for %s", default_value, key_name);
 
119
        if (keep_old)
 
120
            g_debug ("keep-old mode: keep previous default value");
120
121
        else {
121
 
            g_debug ("Found existing default value(%s) for %s", default_value, key_name);
122
 
            if (keep_old)
123
 
                g_debug ("keep-old mode: keep previous default value");
124
 
            else {
125
 
                g_debug ("Update to %s for %s", new_value, key_name);
126
 
                g_key_file_set_string (keyfile, key_group, key_name, new_value);
127
 
            }
 
122
            g_debug ("Update to %s for %s", new_value, key_name);
 
123
            g_key_file_set_string (keyfile, key_group, key_name, new_value);
128
124
        }
129
125
    }
130
 
    if (!success)
131
 
        return(2);
132
126
    return(0);
133
127
}
134
128