diff options
author | William Jon McCann <mccann@jhu.edu> | 2007-04-16 18:04:17 +0000 |
---|---|---|
committer | William Jon McCann <mccann@src.gnome.org> | 2007-04-16 18:04:17 +0000 |
commit | 495faa41d19bacf1a7a6af633eecfd7e715a7954 (patch) | |
tree | 917639c50c8732a16daee27ed4cf495d0d79af67 /common | |
parent | ed62ae807b516b8906a714afde5fde6bf09ad0cc (diff) | |
download | gdm-495faa41d19bacf1a7a6af633eecfd7e715a7954.tar.gz |
Return FALSE if no default is given in the key and key doesn't exist in
2007-04-16 William Jon McCann <mccann@jhu.edu>
* common/gdm-common-config.c: (gdm_common_config_parse_key_string),
(gdm_common_config_get_int),
(gdm_common_config_get_translated_string),
(gdm_common_config_get_string), (gdm_common_config_get_boolean):
* common/gdm-common-config.h:
Return FALSE if no default is given in the key and key doesn't
exist in the file.
* daemon/gdm-daemon-config.c:
(gdm_daemon_config_get_value_int_per_display),
(gdm_daemon_config_get_value_bool_per_display),
(gdm_daemon_config_get_value_string_per_display),
(gdm_daemon_config_key_to_string_per_display),
(gdm_daemon_config_key_to_string), (gdm_daemon_config_to_string):
* daemon/gdm-daemon-config.h:
Fix handling of per display keys.
* daemon/gdm-xdmcp-manager.c:
(gdm_xdmcp_manager_set_willing_script),
(gdm_xdmcp_manager_set_property), (gdm_xdmcp_manager_get_property):
Fix missing property.
* daemon/gdm.c: (gdm_start_first_unborn_local),
(gdm_final_cleanup), (custom_cmd_no_restart),
(gdm_cleanup_children), (mainloop_sig_callback), (main),
(gdm_handle_message), (handle_flexi_server),
(sup_handle_auth_local), (sup_handle_attached_servers),
(sup_handle_get_server_details), (sup_handle_flexi_xserver),
(sup_handle_flexi_xnest), (sup_handle_get_config),
(sup_handle_query_logout_action),
(sup_handle_query_custom_cmd_labels), (sup_handle_all_servers),
(sup_handle_get_server_list), (sup_handle_get_custom_config_file),
(sup_handle_greeterpids),
(sup_handle_query_custom_cmd_no_restart_status),
(sup_handle_set_logout_action),
(sup_handle_set_safe_logout_action), (sup_handle_query_vt),
(sup_handle_set_vt), (gdm_handle_user_message):
Break up the monolithic gdm_handle_user_message function so it
can be read more easily.
* daemon/slave.c: (check_for_interruption):
* daemon/verify-pam.c: (gdm_verify_user), (gdm_verify_setup_user):
Update for changed daemon_config arguments.
svn path=/trunk/; revision=4838
Diffstat (limited to 'common')
-rw-r--r-- | common/gdm-common-config.c | 138 | ||||
-rw-r--r-- | common/gdm-common-config.h | 5 |
2 files changed, 66 insertions, 77 deletions
diff --git a/common/gdm-common-config.c b/common/gdm-common-config.c index e4b10bc4..2bcc034a 100644 --- a/common/gdm-common-config.c +++ b/common/gdm-common-config.c @@ -47,12 +47,16 @@ gdm_common_config_parse_key_string (const char *keystring, char *tmp2; gboolean ret; + g_return_val_if_fail (keystring != NULL, FALSE); + ret = FALSE; g = k = v = l = NULL; split1 = split2 = NULL; + g_debug ("Attempting to parse key string: %s", keystring); + split1 = g_strsplit (keystring, "/", 2); - if (split1 == NULL) { + if (split1 == NULL || split1 [0] == NULL || split1 [1] == NULL) { goto out; } @@ -192,11 +196,14 @@ gdm_common_config_get_int (GKeyFile *config, int *value, GError **error) { - char *group; - char *key; - char *default_value; - int val; - GError *local_error; + char *group; + char *key; + char *default_value; + int val; + GError *local_error; + gboolean ret; + + ret = FALSE; group = key = default_value = NULL; if (! gdm_common_config_parse_key_string (keystring, &group, &key, NULL, &default_value)) @@ -210,11 +217,15 @@ gdm_common_config_get_int (GKeyFile *config, if (local_error != NULL) { /* use the default */ if (default_value != NULL) { + ret = TRUE; + g_error_free (local_error); val = atoi (default_value); } else { val = 0; + g_propagate_error (error, local_error); } - g_propagate_error (error, local_error); + } else { + ret = TRUE; } *value = val; @@ -223,7 +234,7 @@ gdm_common_config_get_int (GKeyFile *config, g_free (group); g_free (default_value); - return TRUE; + return ret; } gboolean @@ -238,6 +249,9 @@ gdm_common_config_get_translated_string (GKeyFile *config, char *val; const char * const *langs; int i; + gboolean ret; + + ret = FALSE; val = NULL; @@ -263,7 +277,12 @@ gdm_common_config_get_translated_string (GKeyFile *config, if (val == NULL) { /* use the default */ - val = g_strdup (default_value); + if (default_value != NULL) { + val = g_strdup (default_value); + ret = TRUE; + } + } else { + ret = TRUE; } *value = val; @@ -272,7 +291,7 @@ gdm_common_config_get_translated_string (GKeyFile *config, g_free (group); g_free (default_value); - return TRUE; + return ret; } gboolean @@ -281,11 +300,14 @@ gdm_common_config_get_string (GKeyFile *config, char **value, GError **error) { - char *group; - char *key; - char *default_value; - char *val; - GError *local_error; + char *group; + char *key; + char *default_value; + char *val; + GError *local_error; + gboolean ret; + + ret = FALSE; group = key = default_value = NULL; if (! gdm_common_config_parse_key_string (keystring, &group, &key, NULL, &default_value)) { @@ -304,52 +326,15 @@ gdm_common_config_get_string (GKeyFile *config, &local_error); if (local_error != NULL) { /* use the default */ - val = g_strdup (default_value); - g_propagate_error (error, local_error); - } - - *value = val; - - g_free (key); - g_free (group); - g_free (default_value); - - return TRUE; -} - -gboolean -gdm_common_config_get_string_list (GKeyFile *config, - const char *keystring, - char ***value, - gsize *length, - GError **error) -{ - char *group; - char *key; - char *default_value; - char **val; - GError *local_error; - - group = key = default_value = NULL; - if (! gdm_common_config_parse_key_string (keystring, &group, &key, NULL, &default_value)) { - g_set_error (error, - G_KEY_FILE_ERROR, - G_KEY_FILE_ERROR_PARSE, - "Unable to parse key: %s", - keystring); - return FALSE; - } - - local_error = NULL; - val = g_key_file_get_string_list (config, - group, - key, - length, - &local_error); - if (local_error != NULL) { - /* use the default */ - val = g_strsplit (default_value, ";", -1); - g_propagate_error (error, local_error); + if (default_value != NULL) { + val = g_strdup (default_value); + ret = TRUE; + g_error_free (local_error); + } else { + g_propagate_error (error, local_error); + } + } else { + ret = TRUE; } *value = val; @@ -358,7 +343,7 @@ gdm_common_config_get_string_list (GKeyFile *config, g_free (group); g_free (default_value); - return TRUE; + return ret; } gboolean @@ -372,6 +357,9 @@ gdm_common_config_get_boolean (GKeyFile *config, char *default_value; gboolean val; GError *local_error; + gboolean ret; + + ret = FALSE; group = key = default_value = NULL; if (! gdm_common_config_parse_key_string (keystring, &group, &key, NULL, &default_value)) @@ -384,17 +372,23 @@ gdm_common_config_get_boolean (GKeyFile *config, &local_error); if (local_error != NULL) { /* use the default */ - if (default_value != NULL && - (default_value[0] == 'T' || - default_value[0] == 't' || - default_value[0] == 'Y' || - default_value[0] == 'y' || - atoi (default_value) != 0)) { - val = TRUE; + if (default_value != NULL) { + if ((default_value[0] == 'T' || + default_value[0] == 't' || + default_value[0] == 'Y' || + default_value[0] == 'y' || + atoi (default_value) != 0)) { + val = TRUE; + } else { + val = FALSE; + } + ret = TRUE; + g_error_free (local_error); } else { - val = FALSE; + g_propagate_error (error, local_error); } - g_propagate_error (error, local_error); + } else { + ret = TRUE; } *value = val; @@ -403,7 +397,7 @@ gdm_common_config_get_boolean (GKeyFile *config, g_free (group); g_free (default_value); - return TRUE; + return ret; } void diff --git a/common/gdm-common-config.h b/common/gdm-common-config.h index 9e541814..b03ed46e 100644 --- a/common/gdm-common-config.h +++ b/common/gdm-common-config.h @@ -42,11 +42,6 @@ gboolean gdm_common_config_get_translated_string (GKeyFile *config, const char *keystring, char **value, GError **error); -gboolean gdm_common_config_get_string_list (GKeyFile *config, - const char *keystring, - char ***value, - gsize *length, - GError **error); gboolean gdm_common_config_get_int (GKeyFile *config, const char *keystring, int *value, |