gnome-control-center r8509 - trunk/capplets/display
- From: jensg svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-control-center r8509 - trunk/capplets/display
- Date: Tue, 19 Feb 2008 20:01:13 +0000 (GMT)
Author: jensg
Date: Tue Feb 19 20:01:13 2008
New Revision: 8509
URL: http://svn.gnome.org/viewvc/gnome-control-center?rev=8509&view=rev
Log:
2008-02-19 Jens Granseuer <jensgr gmx net>
* main.c: (create_dialog), (save_to_gconf): escape strange hostnames
that we want to use as GConf keys (see bug #517259 for a similar issue
in gnome-settings-daemon)
Modified:
trunk/capplets/display/ChangeLog
trunk/capplets/display/main.c
Modified: trunk/capplets/display/main.c
==============================================================================
--- trunk/capplets/display/main.c (original)
+++ trunk/capplets/display/main.c Tue Feb 19 20:01:13 2008
@@ -588,6 +588,7 @@
char *resolution;
char *str;
char hostname[HOST_NAME_MAX + 1];
+ char *host_escaped;
dialog = gtk_dialog_new_with_buttons (_("Screen Resolution Preferences"),
NULL,
@@ -630,7 +631,10 @@
/* If we previously set the resolution specifically for this hostname, default
to it on */
client = gconf_client_get_default ();
- key = g_strconcat ("/desktop/gnome/screen/", hostname, "/0/resolution",NULL);
+
+ host_escaped = gconf_escape_key (hostname, -1);
+ key = g_strconcat ("/desktop/gnome/screen/", host_escaped, "/0/resolution", NULL);
+ g_free (host_escaped);
resolution = gconf_client_get_string (client, key, NULL);
g_free (key);
g_object_unref (client);
@@ -757,15 +761,14 @@
{
GConfClient *client;
gboolean res;
-#ifdef HOST_NAME_MAX
char hostname[HOST_NAME_MAX + 1];
-#else
- char hostname[256];
-#endif
- char *path, *key, *str;
+ char *path, *key, *str, *host_escaped;
int i;
- gethostname (hostname, sizeof (hostname));
+ if (gethostname (hostname, sizeof (hostname)) != 0)
+ return;
+
+ host_escaped = gconf_escape_key (hostname, -1);
client = gconf_client_get_default ();
@@ -774,11 +777,11 @@
for (i = 0; i < info->n_screens; i++)
{
key = g_strdup_printf ("/desktop/gnome/screen/%s/%d/resolution",
- hostname, i);
+ host_escaped, i);
gconf_client_unset (client, key, NULL);
g_free (key);
key = g_strdup_printf ("/desktop/gnome/screen/%s/%d/rate",
- hostname, i);
+ host_escaped, i);
gconf_client_unset (client, key, NULL);
g_free (key);
}
@@ -787,13 +790,15 @@
if (save_computer)
{
path = g_strconcat ("/desktop/gnome/screen/",
- hostname,
+ host_escaped,
"/",
NULL);
}
else
path = g_strdup ("/desktop/gnome/screen/default/");
+ g_free (host_escaped);
+
for (i = 0; i < info->n_screens; i++)
{
struct ScreenInfo *screen_info = &info->screens[i];
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]