diff -Nru gnome-panel-2.22.1.2/applets/ChangeLog gnome-panel-2.22.1.3/applets/ChangeLog --- gnome-panel-2.22.1.2/applets/ChangeLog 2008-04-10 14:38:24.000000000 +0200 +++ gnome-panel-2.22.1.3/applets/ChangeLog 2008-04-15 22:58:02.000000000 +0200 @@ -1,3 +1,5 @@ +==================== 2.22.1.2 ==================== + ==================== 2.22.1.1 ==================== ==================== 2.22.1 ==================== diff -Nru /tmp/DZHjUsNVKq/gnome-panel-2.22.1.2/applets/clock/ChangeLog /tmp/2xli8pX9oP/gnome-panel-2.22.1.3/applets/clock/ChangeLog --- gnome-panel-2.22.1.2/applets/clock/ChangeLog 2008-04-10 14:38:24.000000000 +0200 +++ gnome-panel-2.22.1.3/applets/clock/ChangeLog 2008-04-15 22:58:01.000000000 +0200 @@ -1,3 +1,76 @@ +2008-04-11 Vincent Untz + + * system-timezone.c: (system_timezone_write_key_file), + (recursive_compare), (files_are_identical_inode), + (files_are_identical_content), + (system_timezone_read_etc_localtime_content), + (system_timezone_is_zone_file_valid), + (system_timezone_set_etc_timezone): s/unsigned int/gsize/ since it's + not the same on 64 bits machines. Fix bug #527441. + Thanks to Jan de Groot for debugging this. + +2008-04-11 Vincent Untz + + Add support for Arch Linux system timezone. + + * system-timezone.c: (system_timezone_read_etc_rc_conf), + (system_timezone_write_etc_rc_conf): new methods for config in Arch + Linux + Add the new methods to the list of methods. + +2008-04-11 Vincent Untz + + * system-timezone.c: add/clarify some comments + change the default order of methods to get the timezone. First look if + /etc/locatime is a symlink, since it's cheap. + (system_timezone_strip_path_if_valid): new, to strip the prefix path of + a timezone filename + (system_timezone_read_etc_localtime_softlink): use + system_timezone_strip_path_if_valid() to also strip "posix/" if this is + the case + (recursive_compare): now use system_timezone_strip_path_if_valid() + +2008-04-11 Vincent Untz + + * system-timezone.c: (recursive_compare): handle the case where the + found file is /usr/share/zoneinfo/posix/Europe/Paris (ie, strip the + "posix/" too) + (system_timezone_read_etc_localtime_content): plug leak + +2008-04-10 Vincent Untz + + Improve how the find entry is filled: always use the location name as a + start, and put the cursor at the end of the string so the user can + continue to type. Fix bug #527403 + Be more solid against cases where there's no Locations.xml + + * clock.c: (fill_location_tree): be more solid + (find_next_location): ditto + (find_entry_changed): ditto + (find_weather_code): ditto + (edit_clear): don't reset the state of the find window here, it's done + in run_find_location() + (run_find_location): improve the behavior of the find entry + +2008-04-10 Vincent Untz + + Do not create lots of new ClockLocation everytime we load the locations + from gconf, and try to re-use the old ones. + As a side-effect, it fixes a bug where you need to click twice on Set + to set the current location from a different timezone. + + * clock-location.[ch]: (clock_location_find_and_ref): new, find a + ClockLocation if it already exists, and ref it + (clock_location_make_current): do not do anything if the location is + already the current one + * clock.c: (location_start_element): try to find the location among + existing ones first, and then fallback on creating a new one + (run_prefs_edit_save): do not explicitly call locations_changed(), it + will be done later via gconf notification + (remove_tree_row): ditto + +==================== 2.22.1.2 ==================== + 2008-04-10 Vincent Untz * clock.c: (zone_combo_changed): add FIXME diff -Nru /tmp/DZHjUsNVKq/gnome-panel-2.22.1.2/applets/clock/clock.c /tmp/2xli8pX9oP/gnome-panel-2.22.1.3/applets/clock/clock.c --- gnome-panel-2.22.1.2/applets/clock/clock.c 2008-04-10 14:38:24.000000000 +0200 +++ gnome-panel-2.22.1.3/applets/clock/clock.c 2008-04-15 22:58:01.000000000 +0200 @@ -2208,7 +2208,11 @@ return; } - loc = clock_location_new (name, timezone, latitude, longitude, code, &prefs); + loc = clock_location_find_and_ref (cd->locations, name, timezone, + latitude, longitude, code); + if (!loc) + loc = clock_location_new (name, timezone, + latitude, longitude, code, &prefs); if (current && clock_location_is_current_timezone (loc)) clock_location_make_current (loc, NULL, NULL, NULL); @@ -3087,9 +3091,10 @@ clock_location_is_current (loc); cd->locations = g_list_append (cd->locations, loc); - locations_changed (cd); } + /* This will update everything related to locations to take into + * account the new location (via the gconf notification) */ save_cities_store (cd); edit_hide (edit_window, cd); @@ -3405,8 +3410,12 @@ G_CALLBACK (location_row_activated), cd); model = gweather_xml_load_locations (); - gtk_tree_view_set_model (tree, model); - g_object_unref (model); + + /* Can be NULL if libgweather is not correctly installed */ + if (model) { + gtk_tree_view_set_model (tree, model); + g_object_unref (model); + } } static void @@ -3416,23 +3425,41 @@ GtkWidget *name_entry = glade_xml_get_widget (cd->glade_xml, "edit-location-name-entry"); GtkWidget *window; const char *find; + const char *location; fill_location_tree (cd); window = glade_xml_get_widget (cd->glade_xml, "find-location-window"); /* prefill the find entry if it's empty */ find = gtk_entry_get_text (GTK_ENTRY (cd->find_location_entry)); - if (!find || !find[0]) { - const char *location; + location = gtk_entry_get_text (GTK_ENTRY (name_entry)); - location = gtk_entry_get_text (GTK_ENTRY (name_entry)); - gtk_entry_set_text (GTK_ENTRY (cd->find_location_entry), - location); + if (g_strcmp0 (find, location) != 0 || !find || !find[0]) { + GtkWidget *scroll = glade_xml_get_widget (cd->glade_xml, "find-location-scroll"); + GtkAdjustment *adjustment; + + /* If we autofill the entry, reset the state of the treeview + * first so that it looks like a brand new search */ + gtk_tree_view_collapse_all (GTK_TREE_VIEW (cd->location_tree)); + + adjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scroll)); + gtk_adjustment_set_value (adjustment, 0); + gtk_scrolled_window_set_vadjustment (GTK_SCROLLED_WINDOW (scroll), + adjustment); + + if (g_strcmp0 (find, location) != 0) + gtk_entry_set_text (GTK_ENTRY (cd->find_location_entry), + location); } + gtk_widget_grab_focus (cd->find_location_entry); + gtk_editable_set_position (GTK_EDITABLE (cd->find_location_entry), + -1); - gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (edit_window)); - gtk_window_present_with_time (GTK_WINDOW (window), gtk_get_current_event_time ()); + gtk_window_set_transient_for (GTK_WINDOW (window), + GTK_WINDOW (edit_window)); + gtk_window_present_with_time (GTK_WINDOW (window), + gtk_get_current_event_time ()); } static gboolean @@ -3507,6 +3534,10 @@ tree = GTK_TREE_VIEW (cd->location_tree); model = gtk_tree_view_get_model (tree); + /* Can happen if libgweather is not correctly installed */ + if (!model) + return; + entry = GTK_ENTRY (cd->find_location_entry); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree)); @@ -3551,6 +3582,9 @@ tree = GTK_TREE_VIEW (cd->location_tree); model = gtk_tree_view_get_model (tree); + /* Can happen if libgweather is not correctly installed */ + if (!model) + return; selection = gtk_tree_view_get_selection (tree); gtk_tree_model_get_iter_first (model, &iter); @@ -3596,8 +3630,6 @@ GtkWidget *lon_entry = glade_xml_get_widget (cd->glade_xml, "edit-location-longitude-entry"); GtkWidget *lat_combo = glade_xml_get_widget (cd->glade_xml, "edit-location-latitude-combo"); GtkWidget *lon_combo = glade_xml_get_widget (cd->glade_xml, "edit-location-longitude-combo"); - GtkWidget *scroll = glade_xml_get_widget (cd->glade_xml, "find-location-scroll"); - GtkAdjustment *adjustment; /* clear out the old data */ gtk_combo_box_set_active (GTK_COMBO_BOX (zone_combo), -1); @@ -3609,16 +3641,6 @@ gtk_combo_box_set_active (GTK_COMBO_BOX (lat_combo), -1); gtk_combo_box_set_active (GTK_COMBO_BOX (lon_combo), -1); - - /* reset the state of the find window */ - gtk_entry_set_text (GTK_ENTRY (cd->find_location_entry), ""); - - gtk_tree_view_collapse_all (GTK_TREE_VIEW (cd->location_tree)); - - adjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scroll)); - gtk_adjustment_set_value (adjustment, 0); - gtk_scrolled_window_set_vadjustment (GTK_SCROLLED_WINDOW (scroll), - adjustment); } static void @@ -3725,7 +3747,10 @@ data.distance = 1e6; data.location = NULL; - gtk_tree_model_foreach (GTK_TREE_MODEL (model), compare_location, &data); + /* Can be NULL if libgweather is not correctly installed */ + if (model) + gtk_tree_model_foreach (GTK_TREE_MODEL (model), + compare_location, &data); if (data.location) code = g_strdup (data.location->code); @@ -3828,12 +3853,11 @@ ClockLocation *loc = NULL; gtk_tree_model_get (model, iter, COL_CITY_LOC, &loc, -1); - - gtk_list_store_remove (cd->cities_store, iter); cd->locations = g_list_remove (cd->locations, loc); - locations_changed (cd); g_object_unref (loc); + /* This will update everything related to locations to take into + * account the removed location (via the gconf notification) */ save_cities_store (cd); } diff -Nru /tmp/DZHjUsNVKq/gnome-panel-2.22.1.2/applets/clock/clock-location.c /tmp/2xli8pX9oP/gnome-panel-2.22.1.3/applets/clock/clock-location.c --- gnome-panel-2.22.1.2/applets/clock/clock-location.c 2008-04-10 14:38:24.000000000 +0200 +++ gnome-panel-2.22.1.3/applets/clock/clock-location.c 2008-04-15 22:58:01.000000000 +0200 @@ -67,6 +67,34 @@ #define PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CLOCK_LOCATION_TYPE, ClockLocationPrivate)) ClockLocation * +clock_location_find_and_ref (GList *locations, + const gchar *name, + const gchar *timezone, + gfloat latitude, + gfloat longitude, + const gchar *code) +{ + GList *l; + ClockLocationPrivate *priv; + + for (l = locations; l != NULL; l = l->next) { + priv = PRIVATE (l->data); + + if (priv->latitude == latitude && + priv->longitude == longitude && + g_strcmp0 (priv->weather_code, code) == 0 && + g_strcmp0 (priv->timezone, timezone) == 0 && + g_strcmp0 (priv->name, name) == 0) + break; + } + + if (l != NULL) + return g_object_ref (CLOCK_LOCATION (l->data)); + else + return NULL; +} + +ClockLocation * clock_location_new (const gchar *name, const gchar *timezone, gfloat latitude, gfloat longitude, const gchar *code, WeatherPrefs *prefs) @@ -467,6 +495,12 @@ gchar *filename; MakeCurrentData *mcdata; + if (loc == current_location) { + if (destroy) + destroy (data); + return; + } + if (clock_location_is_current_timezone (loc)) { if (current_location) g_object_remove_weak_pointer (G_OBJECT (current_location), diff -Nru /tmp/DZHjUsNVKq/gnome-panel-2.22.1.2/applets/clock/clock-location.h /tmp/2xli8pX9oP/gnome-panel-2.22.1.3/applets/clock/clock-location.h --- gnome-panel-2.22.1.2/applets/clock/clock-location.h 2008-04-10 14:38:24.000000000 +0200 +++ gnome-panel-2.22.1.3/applets/clock/clock-location.h 2008-04-15 22:58:01.000000000 +0200 @@ -38,6 +38,13 @@ const gchar *code, WeatherPrefs *prefs); +ClockLocation *clock_location_find_and_ref (GList *locations, + const gchar *name, + const gchar *timezone, + gfloat latitude, + gfloat longitude, + const gchar *code); + gchar *clock_location_get_tzname (ClockLocation *loc); const gchar *clock_location_get_name (ClockLocation *loc); diff -Nru /tmp/DZHjUsNVKq/gnome-panel-2.22.1.2/applets/clock/gnome-clock-applet-mechanism-glue.h /tmp/2xli8pX9oP/gnome-panel-2.22.1.3/applets/clock/gnome-clock-applet-mechanism-glue.h --- gnome-panel-2.22.1.2/applets/clock/gnome-clock-applet-mechanism-glue.h 2008-04-10 14:54:45.000000000 +0200 +++ gnome-panel-2.22.1.3/applets/clock/gnome-clock-applet-mechanism-glue.h 2008-04-15 23:06:13.000000000 +0200 @@ -53,7 +53,7 @@ #endif /* !G_ENABLE_DEBUG */ -/* NONE:BOOLEAN,POINTER (/tmp/dbus-binding-tool-c-marshallers.4LF48T:1) */ +/* NONE:BOOLEAN,POINTER (/tmp/dbus-binding-tool-c-marshallers.PU0Z9T:1) */ extern void dbus_glib_marshal_gnome_clock_applet_mechanism_VOID__BOOLEAN_POINTER (GClosure *closure, GValue *return_value, guint n_param_values, @@ -97,7 +97,7 @@ } #define dbus_glib_marshal_gnome_clock_applet_mechanism_NONE__BOOLEAN_POINTER dbus_glib_marshal_gnome_clock_applet_mechanism_VOID__BOOLEAN_POINTER -/* NONE:INT64,POINTER (/tmp/dbus-binding-tool-c-marshallers.4LF48T:2) */ +/* NONE:INT64,POINTER (/tmp/dbus-binding-tool-c-marshallers.PU0Z9T:2) */ extern void dbus_glib_marshal_gnome_clock_applet_mechanism_VOID__INT64_POINTER (GClosure *closure, GValue *return_value, guint n_param_values, @@ -141,7 +141,7 @@ } #define dbus_glib_marshal_gnome_clock_applet_mechanism_NONE__INT64_POINTER dbus_glib_marshal_gnome_clock_applet_mechanism_VOID__INT64_POINTER -/* NONE:STRING,POINTER (/tmp/dbus-binding-tool-c-marshallers.4LF48T:3) */ +/* NONE:STRING,POINTER (/tmp/dbus-binding-tool-c-marshallers.PU0Z9T:3) */ extern void dbus_glib_marshal_gnome_clock_applet_mechanism_VOID__STRING_POINTER (GClosure *closure, GValue *return_value, guint n_param_values, @@ -185,7 +185,7 @@ } #define dbus_glib_marshal_gnome_clock_applet_mechanism_NONE__STRING_POINTER dbus_glib_marshal_gnome_clock_applet_mechanism_VOID__STRING_POINTER -/* NONE:POINTER (/tmp/dbus-binding-tool-c-marshallers.4LF48T:4) */ +/* NONE:POINTER (/tmp/dbus-binding-tool-c-marshallers.PU0Z9T:4) */ #define dbus_glib_marshal_gnome_clock_applet_mechanism_VOID__POINTER g_cclosure_marshal_VOID__POINTER #define dbus_glib_marshal_gnome_clock_applet_mechanism_NONE__POINTER dbus_glib_marshal_gnome_clock_applet_mechanism_VOID__POINTER diff -Nru /tmp/DZHjUsNVKq/gnome-panel-2.22.1.2/applets/clock/system-timezone.c /tmp/2xli8pX9oP/gnome-panel-2.22.1.3/applets/clock/system-timezone.c --- gnome-panel-2.22.1.2/applets/clock/system-timezone.c 2008-04-10 14:38:24.000000000 +0200 +++ gnome-panel-2.22.1.3/applets/clock/system-timezone.c 2008-04-15 22:58:01.000000000 +0200 @@ -41,9 +41,9 @@ */ /* To compile a test program, do: - * $ gcc -DSYSTZ_GET_TEST -Wall -o system-timezone-get `pkg-config --cflags --libs glib-2.0 gobject-2.0 gio-2.0` system-timezone.c + * $ gcc -DSYSTZ_GET_TEST -Wall -g -O0 -o system-timezone-get `pkg-config --cflags --libs glib-2.0 gobject-2.0 gio-2.0` system-timezone.c * or: - * $ gcc -DSYSTZ_SET_TEST -Wall -o system-timezone-set `pkg-config --cflags --libs glib-2.0 gobject-2.0 gio-2.0` system-timezone.c + * $ gcc -DSYSTZ_SET_TEST -Wall -g -O0 -o system-timezone-set `pkg-config --cflags --libs glib-2.0 gobject-2.0 gio-2.0` system-timezone.c * * You can then read the system timezone with: * $ system-timezone-get @@ -53,7 +53,9 @@ /* FIXME: it'd be nice to filter out the timezones that we might get when - * parsing config files that are not in zone.tab */ + * parsing config files that are not in zone.tab. Note that it's also wrong + * in some cases: eg, in tzdata2008b, Asia/Calcutta got renamed to + * Asia/Kolkata and the old name is not in zone.tab. */ #include #include @@ -69,6 +71,7 @@ #ifndef SYSTZ_SET_TEST #define ETC_TIMEZONE "/etc/timezone" #define ETC_TIMEZONE_MAJ "/etc/TIMEZONE" +#define ETC_RC_CONF "/etc/rc.conf" #define ETC_SYSCONFIG_CLOCK "/etc/sysconfig/clock" #define ETC_CONF_D_CLOCK "/etc/conf.d/clock" #define ETC_LOCALTIME "/etc/localtime" @@ -77,6 +80,7 @@ #define TEST_PREFIX "/tmp/systz-test" #define ETC_TIMEZONE TEST_PREFIX"/etc/timezone" #define ETC_TIMEZONE_MAJ TEST_PREFIX"/etc/TIMEZONE" +#define ETC_RC_CONF TEST_PREFIX"/etc/rc.conf" #define ETC_SYSCONFIG_CLOCK TEST_PREFIX"/etc/sysconfig/clock" #define ETC_CONF_D_CLOCK TEST_PREFIX"/etc/conf.d/clock" #define ETC_LOCALTIME TEST_PREFIX"/etc/localtime" @@ -303,14 +307,14 @@ * + However, most distributions also have the timezone setting * configured somewhere else. This might be better to read it from there. * + * Debian/Ubuntu/Gentoo (new): content of /etc/timezone * Fedora/Mandriva: the ZONE key in /etc/sysconfig/clock * openSUSE: the TIMEZONE key in /etc/sysconfig/clock - * Gentoo (old): the ZONE key in /etc/conf.d/clock - * Debian/Ubuntu/Gentoo (new): content of /etc/timezone * Solaris/OpenSolaris: the TZ key in /etc/TIMEZONE + * Arch Linux: the TIMEZONE key in /etc/rc.conf + * Gentoo (old): the ZONE key in /etc/conf.d/clock * * FIXME: reading the system-tools-backends, it seems there's this too: - * ArchLinux: the TIMEZONE key in /etc/rc.conf * Solaris: the TZ key in /etc/default/init * /etc/TIMEZONE seems to be a link to /etc/default/init * @@ -318,7 +322,7 @@ * */ -/* This works for Debian and derivatives (including Ubuntu) */ +/* This works for Debian and derivatives (including Ubuntu), and new Gentoo */ static char * system_timezone_read_etc_timezone (void) { @@ -443,14 +447,14 @@ const char *value, GError **error) { - GError *our_error; - char *content; - unsigned int len; - char *key_eq; - char **lines; - gboolean replaced; - gboolean retval; - int n; + GError *our_error; + char *content; + gsize len; + char *key_eq; + char **lines; + gboolean replaced; + gboolean retval; + int n; if (!g_file_test (filename, G_FILE_TEST_IS_REGULAR)) return TRUE; @@ -582,12 +586,50 @@ "TIMEZONE", tz, error); } +/* This works for Arch Linux */ +static char * +system_timezone_read_etc_rc_conf (void) +{ + return system_timezone_read_key_file (ETC_RC_CONF, + "TIMEZONE"); +} + +static gboolean +system_timezone_write_etc_rc_conf (const char *tz, + GError **error) +{ + return system_timezone_write_key_file (ETC_RC_CONF, + "TIMEZONE", tz, error); +} + /* * * First, getting the timezone. * */ +static char * +system_timezone_strip_path_if_valid (const char *filename) +{ + int skip; + + if (!filename || !g_str_has_prefix (filename, SYSTEM_ZONEINFODIR"/")) + return NULL; + + /* Timezone data files also live under posix/ and right/ for some + * reason. + * FIXME: make sure accepting those files is valid. I think "posix" is + * okay, not sure about "right" */ + if (g_str_has_prefix (filename, SYSTEM_ZONEINFODIR"/posix/")) + skip = strlen (SYSTEM_ZONEINFODIR"/posix/"); + else if (g_str_has_prefix (filename, SYSTEM_ZONEINFODIR"/right/")) + skip = strlen (SYSTEM_ZONEINFODIR"/right/"); + else + skip = strlen (SYSTEM_ZONEINFODIR"/"); + + return g_strdup (filename + skip); +} + /* Read the soft symlink from /etc/localtime */ static char * system_timezone_read_etc_localtime_softlink (void) @@ -598,31 +640,23 @@ if (!g_file_test (ETC_LOCALTIME, G_FILE_TEST_IS_SYMLINK)) return NULL; - tz = NULL; - file = g_file_read_link (ETC_LOCALTIME, NULL); - if (g_str_has_prefix (file, SYSTEM_ZONEINFODIR"/")) - tz = g_strdup (file + strlen (SYSTEM_ZONEINFODIR"/")); + tz = system_timezone_strip_path_if_valid (file); g_free (file); - if (!tz || tz[0] == '\0') { - g_free (tz); - tz = NULL; - } - return tz; } -typedef gboolean (*CompareFiles) (struct stat *a_stat, - struct stat *b_stat, - const char *a_content, - unsigned int a_content_len, - const char *b_filename); +typedef gboolean (*CompareFiles) (struct stat *a_stat, + struct stat *b_stat, + const char *a_content, + gsize a_content_len, + const char *b_filename); static char * recursive_compare (struct stat *localtime_stat, const char *localtime_content, - unsigned int localtime_content_len, + gsize localtime_content_len, char *file, CompareFiles compare_func) { @@ -637,7 +671,7 @@ localtime_content, localtime_content_len, file)) - return g_strdup (file + strlen (SYSTEM_ZONEINFODIR"/")); + return system_timezone_strip_path_if_valid (file); else return NULL; } else if (S_ISDIR (file_stat.st_mode)) { @@ -675,11 +709,11 @@ static gboolean -files_are_identical_inode (struct stat *a_stat, - struct stat *b_stat, - const char *a_content, - unsigned int a_content_len, - const char *b_filename) +files_are_identical_inode (struct stat *a_stat, + struct stat *b_stat, + const char *a_content, + gsize a_content_len, + const char *b_filename) { return (a_stat->st_ino == b_stat->st_ino); } @@ -706,15 +740,15 @@ } static gboolean -files_are_identical_content (struct stat *a_stat, - struct stat *b_stat, - const char *a_content, - unsigned int a_content_len, - const char *b_filename) -{ - char *b_content = NULL; - unsigned int b_content_len = -1; - int cmp; +files_are_identical_content (struct stat *a_stat, + struct stat *b_stat, + const char *a_content, + gsize a_content_len, + const char *b_filename) +{ + char *b_content = NULL; + gsize b_content_len = -1; + int cmp; if (a_stat->st_size != b_stat->st_size) return FALSE; @@ -738,9 +772,10 @@ static char * system_timezone_read_etc_localtime_content (void) { - struct stat stat_localtime; - char *localtime_content = NULL; - unsigned int localtime_content_len = -1; + struct stat stat_localtime; + char *localtime_content = NULL; + gsize localtime_content_len = -1; + char *retval; if (g_stat (ETC_LOCALTIME, &stat_localtime) != 0) return NULL; @@ -754,21 +789,33 @@ NULL)) return NULL; - return recursive_compare (&stat_localtime, - localtime_content, - localtime_content_len, - SYSTEM_ZONEINFODIR, - files_are_identical_content); + retval = recursive_compare (&stat_localtime, + localtime_content, + localtime_content_len, + SYSTEM_ZONEINFODIR, + files_are_identical_content); + + g_free (localtime_content); + + return retval; } typedef char * (*GetSystemTimezone) (void); +/* The order of the functions here define the priority of the methods used + * to find the timezone. First method has higher priority. */ static GetSystemTimezone get_system_timezone_methods[] = { + /* cheap and "more correct" than data from a config file */ + system_timezone_read_etc_localtime_softlink, + /* reading various config files */ system_timezone_read_etc_timezone, - system_timezone_read_etc_TIMEZONE, system_timezone_read_etc_sysconfig_clock, system_timezone_read_etc_sysconfig_clock_alt, + system_timezone_read_etc_TIMEZONE, + system_timezone_read_etc_rc_conf, + /* reading deprecated config files */ system_timezone_read_etc_conf_d_clock, - system_timezone_read_etc_localtime_softlink, + /* reading /etc/timezone directly. Expensive since we have to stat + * many files */ system_timezone_read_etc_localtime_hardlink, system_timezone_read_etc_localtime_content, NULL @@ -819,11 +866,11 @@ system_timezone_is_zone_file_valid (const char *zone_file, GError **error) { - GError *our_error; - GIOChannel *channel; - GIOStatus status; - char buffer[strlen (TZ_MAGIC)]; - unsigned int read; + GError *our_error; + GIOChannel *channel; + GIOStatus status; + char buffer[strlen (TZ_MAGIC)]; + gsize read; /* First, check the zone_file is properly rooted */ if (!g_str_has_prefix (zone_file, SYSTEM_ZONEINFODIR"/")) { @@ -878,9 +925,9 @@ system_timezone_set_etc_timezone (const char *zone_file, GError **error) { - GError *our_error; - char *content; - unsigned int len; + GError *our_error; + char *content; + gsize len; if (!system_timezone_is_zone_file_valid (zone_file, error)) return FALSE; @@ -924,11 +971,20 @@ typedef gboolean (*SetSystemTimezone) (const char *tz, GError **error); +/* The order here does not matter too much: we'll try to change all files + * that already have a timezone configured. It matters in case of error, + * since the process will be stopped and the last methods won't be called. + * So we use the same order as in get_system_timezone_methods */ static SetSystemTimezone set_system_timezone_methods[] = { + /* writing various config files if they exist and have the + * setting already present */ system_timezone_write_etc_timezone, - system_timezone_write_etc_TIMEZONE, system_timezone_write_etc_sysconfig_clock, system_timezone_write_etc_sysconfig_clock_alt, + system_timezone_write_etc_TIMEZONE, + system_timezone_write_etc_rc_conf, + /* writing deprecated config files if they exist and have the + * setting already present */ system_timezone_write_etc_conf_d_clock, NULL }; diff -Nru /tmp/DZHjUsNVKq/gnome-panel-2.22.1.2/applets/fish/ChangeLog /tmp/2xli8pX9oP/gnome-panel-2.22.1.3/applets/fish/ChangeLog --- gnome-panel-2.22.1.2/applets/fish/ChangeLog 2008-04-10 14:38:21.000000000 +0200 +++ gnome-panel-2.22.1.3/applets/fish/ChangeLog 2008-04-15 22:57:57.000000000 +0200 @@ -1,3 +1,5 @@ +==================== 2.22.1.2 ==================== + ==================== 2.22.1.1 ==================== ==================== 2.22.1 ==================== diff -Nru /tmp/DZHjUsNVKq/gnome-panel-2.22.1.2/applets/notification_area/ChangeLog /tmp/2xli8pX9oP/gnome-panel-2.22.1.3/applets/notification_area/ChangeLog --- gnome-panel-2.22.1.2/applets/notification_area/ChangeLog 2008-04-10 14:38:24.000000000 +0200 +++ gnome-panel-2.22.1.3/applets/notification_area/ChangeLog 2008-04-15 22:58:02.000000000 +0200 @@ -1,3 +1,5 @@ +==================== 2.22.1.2 ==================== + ==================== 2.22.1.1 ==================== ==================== 2.22.1 ==================== diff -Nru /tmp/DZHjUsNVKq/gnome-panel-2.22.1.2/applets/wncklet/ChangeLog /tmp/2xli8pX9oP/gnome-panel-2.22.1.3/applets/wncklet/ChangeLog --- gnome-panel-2.22.1.2/applets/wncklet/ChangeLog 2008-04-10 14:38:21.000000000 +0200 +++ gnome-panel-2.22.1.3/applets/wncklet/ChangeLog 2008-04-15 22:57:57.000000000 +0200 @@ -1,3 +1,5 @@ +==================== 2.22.1.2 ==================== + ==================== 2.22.1.1 ==================== ==================== 2.22.1 ==================== diff -Nru /tmp/DZHjUsNVKq/gnome-panel-2.22.1.2/ChangeLog /tmp/2xli8pX9oP/gnome-panel-2.22.1.3/ChangeLog --- gnome-panel-2.22.1.2/ChangeLog 2008-04-10 14:39:18.000000000 +0200 +++ gnome-panel-2.22.1.3/ChangeLog 2008-04-15 22:59:05.000000000 +0200 @@ -1,3 +1,22 @@ +2008-04-15 Vincent Untz + + * NEWS: + * README: + * configure.in: version 2.22.1.3 + +2008-04-10 Lucas Rocha + + * gnome-panel/gnome-panel.desktop.in.in: added three new + keys (X-GNOME-Autostart-Phase, X-GNOME-Provides, and + X-GNOME-Autostart-Notify) which are needed to make gnome-panel + work nicely with new gnome-session. Fixes bug #525052. + +2008-04-10 Vincent Untz + + * configure.in: post-release bump to 2.22.2. + +==================== 2.22.1.2 ==================== + 2008-04-10 Vincent Untz * NEWS: diff -Nru /tmp/DZHjUsNVKq/gnome-panel-2.22.1.2/configure /tmp/2xli8pX9oP/gnome-panel-2.22.1.3/configure --- gnome-panel-2.22.1.2/configure 2008-04-10 14:53:27.000000000 +0200 +++ gnome-panel-2.22.1.3/configure 2008-04-15 23:04:53.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61 for gnome-panel 2.22.1.2. +# Generated by GNU Autoconf 2.61 for gnome-panel 2.22.1.3. # # Report bugs to . # @@ -728,8 +728,8 @@ # Identity of this package. PACKAGE_NAME='gnome-panel' PACKAGE_TARNAME='gnome-panel' -PACKAGE_VERSION='2.22.1.2' -PACKAGE_STRING='gnome-panel 2.22.1.2' +PACKAGE_VERSION='2.22.1.3' +PACKAGE_STRING='gnome-panel 2.22.1.3' PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-panel' # Factoring default headers for most tests. @@ -1529,7 +1529,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures gnome-panel 2.22.1.2 to adapt to many kinds of systems. +\`configure' configures gnome-panel 2.22.1.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1603,7 +1603,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of gnome-panel 2.22.1.2:";; + short | recursive ) echo "Configuration of gnome-panel 2.22.1.3:";; esac cat <<\_ACEOF @@ -1771,7 +1771,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -gnome-panel configure 2.22.1.2 +gnome-panel configure 2.22.1.3 generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1785,7 +1785,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by gnome-panel $as_me 2.22.1.2, which was +It was created by gnome-panel $as_me 2.22.1.3, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ @@ -2477,7 +2477,7 @@ # Define the identity of the package. PACKAGE='gnome-panel' - VERSION='2.22.1.2' + VERSION='2.22.1.3' cat >>confdefs.h <<_ACEOF @@ -2644,7 +2644,7 @@ # change to C+1:0:0 # - If the interface is the same as the previous version, change to C:R+1:A -LIB_PANEL_APPLET_LT_VERSION=2:32:2 +LIB_PANEL_APPLET_LT_VERSION=2:33:2 { echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 @@ -28858,7 +28858,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by gnome-panel $as_me 2.22.1.2, which was +This file was extended by gnome-panel $as_me 2.22.1.3, which was generated by GNU Autoconf 2.61. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -28911,7 +28911,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -gnome-panel config.status 2.22.1.2 +gnome-panel config.status 2.22.1.3 configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff -Nru /tmp/DZHjUsNVKq/gnome-panel-2.22.1.2/configure.in /tmp/2xli8pX9oP/gnome-panel-2.22.1.3/configure.in --- gnome-panel-2.22.1.2/configure.in 2008-04-10 14:39:24.000000000 +0200 +++ gnome-panel-2.22.1.3/configure.in 2008-04-15 22:59:12.000000000 +0200 @@ -1,4 +1,4 @@ -AC_INIT([gnome-panel], [2.22.1.2], +AC_INIT([gnome-panel], [2.22.1.3], [http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-panel]) AM_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE([1.9 no-dist-gzip dist-bzip2]) @@ -14,7 +14,7 @@ # change to C+1:0:0 # - If the interface is the same as the previous version, change to C:R+1:A -LIB_PANEL_APPLET_LT_VERSION=2:32:2 +LIB_PANEL_APPLET_LT_VERSION=2:33:2 AC_SUBST(LIB_PANEL_APPLET_LT_VERSION) AM_MAINTAINER_MODE diff -Nru /tmp/DZHjUsNVKq/gnome-panel-2.22.1.2/debian/changelog /tmp/2xli8pX9oP/gnome-panel-2.22.1.3/debian/changelog --- gnome-panel-2.22.1.2/debian/changelog 2008-05-05 11:38:44.000000000 +0200 +++ gnome-panel-2.22.1.3/debian/changelog 2008-05-05 11:38:44.000000000 +0200 @@ -1,3 +1,30 @@ +gnome-panel (1:2.22.1.3-0ubuntu1) hardy-proposed; urgency=low + + * New upstream version: + Clock Applet + - Fix internal handling of locations to not create new locations all + the time. As a side-effect, this fixes the location not being + recognized as the current one when the user clicks "Set" + - Improve pre-filling of the find entry + - Be more solid against cases where there's no Locations.xml + - Better handling of some special cases when detecting the system timezone + - Fix memory leaks + - First look if /etc/localtime is a symbolic link when detecting the + current timezone instead of first parsing a few files + - Add support for Arch Linux system timezone + - Fix a crash in the system timezone reading/writing code on 64-bits + machines + Misc + - Add new keys to gnome-panel.desktop to also make it work with + gnome-session 2.23/2.24. The panel will still work with gnome-session + 2.22, of course. + * debian/patches/90_from_svn_fix_location_change_issue.patch: + - dropped, fixed in the new version + * debian/patches/91_from_svn_fix_type_use.patch: + - dropped, fixed in the new version + + -- Sebastien Bacher Mon, 05 May 2008 11:30:27 +0200 + gnome-panel (1:2.22.1.2-0ubuntu3) hardy; urgency=low * debian/patches/91_from_svn_fix_type_use.patch: diff -Nru /tmp/DZHjUsNVKq/gnome-panel-2.22.1.2/debian/patches/90_from_svn_fix_location_change_issue.patch /tmp/2xli8pX9oP/gnome-panel-2.22.1.3/debian/patches/90_from_svn_fix_location_change_issue.patch --- gnome-panel-2.22.1.2/debian/patches/90_from_svn_fix_location_change_issue.patch 2008-05-05 11:38:44.000000000 +0200 +++ gnome-panel-2.22.1.3/debian/patches/90_from_svn_fix_location_change_issue.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,109 +0,0 @@ ---- trunk/applets/clock/clock-location.h 2008/04/10 13:05:02 11046 -+++ trunk/applets/clock/clock-location.h 2008/04/10 16:25:30 11047 -@@ -38,6 +38,13 @@ - const gchar *code, - WeatherPrefs *prefs); - -+ClockLocation *clock_location_find_and_ref (GList *locations, -+ const gchar *name, -+ const gchar *timezone, -+ gfloat latitude, -+ gfloat longitude, -+ const gchar *code); -+ - gchar *clock_location_get_tzname (ClockLocation *loc); - - const gchar *clock_location_get_name (ClockLocation *loc); ---- trunk/applets/clock/clock-location.c 2008/04/10 13:05:02 11046 -+++ trunk/applets/clock/clock-location.c 2008/04/10 16:25:30 11047 -@@ -67,6 +67,34 @@ - #define PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CLOCK_LOCATION_TYPE, ClockLocationPrivate)) - - ClockLocation * -+clock_location_find_and_ref (GList *locations, -+ const gchar *name, -+ const gchar *timezone, -+ gfloat latitude, -+ gfloat longitude, -+ const gchar *code) -+{ -+ GList *l; -+ ClockLocationPrivate *priv; -+ -+ for (l = locations; l != NULL; l = l->next) { -+ priv = PRIVATE (l->data); -+ -+ if (priv->latitude == latitude && -+ priv->longitude == longitude && -+ g_strcmp0 (priv->weather_code, code) == 0 && -+ g_strcmp0 (priv->timezone, timezone) == 0 && -+ g_strcmp0 (priv->name, name) == 0) -+ break; -+ } -+ -+ if (l != NULL) -+ return g_object_ref (CLOCK_LOCATION (l->data)); -+ else -+ return NULL; -+} -+ -+ClockLocation * - clock_location_new (const gchar *name, const gchar *timezone, - gfloat latitude, gfloat longitude, - const gchar *code, WeatherPrefs *prefs) -@@ -467,6 +495,12 @@ - gchar *filename; - MakeCurrentData *mcdata; - -+ if (loc == current_location) { -+ if (destroy) -+ destroy (data); -+ return; -+ } -+ - if (clock_location_is_current_timezone (loc)) { - if (current_location) - g_object_remove_weak_pointer (G_OBJECT (current_location), ---- trunk/applets/clock/clock.c 2008/04/10 13:05:02 11046 -+++ trunk/applets/clock/clock.c 2008/04/10 16:25:30 11047 -@@ -2208,7 +2208,11 @@ - return; - } - -- loc = clock_location_new (name, timezone, latitude, longitude, code, &prefs); -+ loc = clock_location_find_and_ref (cd->locations, name, timezone, -+ latitude, longitude, code); -+ if (!loc) -+ loc = clock_location_new (name, timezone, -+ latitude, longitude, code, &prefs); - - if (current && clock_location_is_current_timezone (loc)) - clock_location_make_current (loc, NULL, NULL, NULL); -@@ -3087,9 +3091,10 @@ - clock_location_is_current (loc); - - cd->locations = g_list_append (cd->locations, loc); -- locations_changed (cd); - } - -+ /* This will update everything related to locations to take into -+ * account the new location (via the gconf notification) */ - save_cities_store (cd); - - edit_hide (edit_window, cd); -@@ -3828,12 +3833,11 @@ - ClockLocation *loc = NULL; - - gtk_tree_model_get (model, iter, COL_CITY_LOC, &loc, -1); -- -- gtk_list_store_remove (cd->cities_store, iter); - cd->locations = g_list_remove (cd->locations, loc); -- locations_changed (cd); - g_object_unref (loc); - -+ /* This will update everything related to locations to take into -+ * account the removed location (via the gconf notification) */ - save_cities_store (cd); - } - - diff -Nru /tmp/DZHjUsNVKq/gnome-panel-2.22.1.2/debian/patches/91_from_svn_fix_type_use.patch /tmp/2xli8pX9oP/gnome-panel-2.22.1.3/debian/patches/91_from_svn_fix_type_use.patch --- gnome-panel-2.22.1.2/debian/patches/91_from_svn_fix_type_use.patch 2008-05-05 11:38:44.000000000 +0200 +++ gnome-panel-2.22.1.3/debian/patches/91_from_svn_fix_type_use.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,130 +0,0 @@ -diff -Nur -x '*.orig' -x '*~' gnome-panel-2.22.1.2/applets/clock/system-timezone.c gnome-panel-2.22.1.2.new/applets/clock/system-timezone.c ---- gnome-panel-2.22.1.2/applets/clock/system-timezone.c 2008-04-10 14:38:24.000000000 +0200 -+++ gnome-panel-2.22.1.2.new/applets/clock/system-timezone.c 2008-04-11 19:19:19.000000000 +0200 -@@ -443,14 +443,14 @@ - const char *value, - GError **error) - { -- GError *our_error; -- char *content; -- unsigned int len; -- char *key_eq; -- char **lines; -- gboolean replaced; -- gboolean retval; -- int n; -+ GError *our_error; -+ char *content; -+ gsize len; -+ char *key_eq; -+ char **lines; -+ gboolean replaced; -+ gboolean retval; -+ int n; - - if (!g_file_test (filename, G_FILE_TEST_IS_REGULAR)) - return TRUE; -@@ -613,16 +613,16 @@ - return tz; - } - --typedef gboolean (*CompareFiles) (struct stat *a_stat, -- struct stat *b_stat, -- const char *a_content, -- unsigned int a_content_len, -- const char *b_filename); -+typedef gboolean (*CompareFiles) (struct stat *a_stat, -+ struct stat *b_stat, -+ const char *a_content, -+ gsize a_content_len, -+ const char *b_filename); - - static char * - recursive_compare (struct stat *localtime_stat, - const char *localtime_content, -- unsigned int localtime_content_len, -+ gsize localtime_content_len, - char *file, - CompareFiles compare_func) - { -@@ -675,11 +675,11 @@ - - - static gboolean --files_are_identical_inode (struct stat *a_stat, -- struct stat *b_stat, -- const char *a_content, -- unsigned int a_content_len, -- const char *b_filename) -+files_are_identical_inode (struct stat *a_stat, -+ struct stat *b_stat, -+ const char *a_content, -+ gsize a_content_len, -+ const char *b_filename) - { - return (a_stat->st_ino == b_stat->st_ino); - } -@@ -706,15 +706,15 @@ - } - - static gboolean --files_are_identical_content (struct stat *a_stat, -- struct stat *b_stat, -- const char *a_content, -- unsigned int a_content_len, -- const char *b_filename) --{ -- char *b_content = NULL; -- unsigned int b_content_len = -1; -- int cmp; -+files_are_identical_content (struct stat *a_stat, -+ struct stat *b_stat, -+ const char *a_content, -+ gsize a_content_len, -+ const char *b_filename) -+{ -+ char *b_content = NULL; -+ gsize b_content_len = -1; -+ int cmp; - - if (a_stat->st_size != b_stat->st_size) - return FALSE; -@@ -740,7 +740,7 @@ - { - struct stat stat_localtime; - char *localtime_content = NULL; -- unsigned int localtime_content_len = -1; -+ gsize localtime_content_len = -1; - - if (g_stat (ETC_LOCALTIME, &stat_localtime) != 0) - return NULL; -@@ -819,11 +819,11 @@ - system_timezone_is_zone_file_valid (const char *zone_file, - GError **error) - { -- GError *our_error; -- GIOChannel *channel; -- GIOStatus status; -- char buffer[strlen (TZ_MAGIC)]; -- unsigned int read; -+ GError *our_error; -+ GIOChannel *channel; -+ GIOStatus status; -+ char buffer[strlen (TZ_MAGIC)]; -+ gsize read; - - /* First, check the zone_file is properly rooted */ - if (!g_str_has_prefix (zone_file, SYSTEM_ZONEINFODIR"/")) { -@@ -878,9 +878,9 @@ - system_timezone_set_etc_timezone (const char *zone_file, - GError **error) - { -- GError *our_error; -- char *content; -- unsigned int len; -+ GError *our_error; -+ char *content; -+ gsize len; - - if (!system_timezone_is_zone_file_valid (zone_file, error)) - return FALSE; diff -Nru /tmp/DZHjUsNVKq/gnome-panel-2.22.1.2/doc/reference/panel-applet/ChangeLog /tmp/2xli8pX9oP/gnome-panel-2.22.1.3/doc/reference/panel-applet/ChangeLog --- gnome-panel-2.22.1.2/doc/reference/panel-applet/ChangeLog 2008-04-10 14:38:20.000000000 +0200 +++ gnome-panel-2.22.1.3/doc/reference/panel-applet/ChangeLog 2008-04-15 22:57:56.000000000 +0200 @@ -1,3 +1,5 @@ +==================== 2.22.1.2 ==================== + ==================== 2.22.1.1 ==================== ==================== 2.22.1 ==================== diff -Nru /tmp/DZHjUsNVKq/gnome-panel-2.22.1.2/gnome-panel/ChangeLog /tmp/2xli8pX9oP/gnome-panel-2.22.1.3/gnome-panel/ChangeLog --- gnome-panel-2.22.1.2/gnome-panel/ChangeLog 2008-04-10 14:38:20.000000000 +0200 +++ gnome-panel-2.22.1.3/gnome-panel/ChangeLog 2008-04-15 22:57:56.000000000 +0200 @@ -1,3 +1,5 @@ +==================== 2.22.1.2 ==================== + ==================== 2.22.1.1 ==================== ==================== 2.22.1 ==================== diff -Nru /tmp/DZHjUsNVKq/gnome-panel-2.22.1.2/gnome-panel/gnome-panel.desktop.in.in /tmp/2xli8pX9oP/gnome-panel-2.22.1.3/gnome-panel/gnome-panel.desktop.in.in --- gnome-panel-2.22.1.2/gnome-panel/gnome-panel.desktop.in.in 2008-04-10 14:38:20.000000000 +0200 +++ gnome-panel-2.22.1.3/gnome-panel/gnome-panel.desktop.in.in 2008-04-15 22:57:55.000000000 +0200 @@ -14,3 +14,6 @@ Categories=GNOME;GTK;Utility;Core; OnlyShowIn=GNOME; NoDisplay=true +X-GNOME-Autostart-Phase=Panel +X-GNOME-Provides=panel +X-GNOME-Autostart-Notify=true diff -Nru /tmp/DZHjUsNVKq/gnome-panel-2.22.1.2/help/ChangeLog /tmp/2xli8pX9oP/gnome-panel-2.22.1.3/help/ChangeLog --- gnome-panel-2.22.1.2/help/ChangeLog 2008-04-10 14:38:16.000000000 +0200 +++ gnome-panel-2.22.1.3/help/ChangeLog 2008-04-15 22:57:50.000000000 +0200 @@ -1,3 +1,5 @@ +==================== 2.22.1.2 ==================== + ==================== 2.22.1.1 ==================== ==================== 2.22.1 ==================== diff -Nru /tmp/DZHjUsNVKq/gnome-panel-2.22.1.2/idl/ChangeLog /tmp/2xli8pX9oP/gnome-panel-2.22.1.3/idl/ChangeLog --- gnome-panel-2.22.1.2/idl/ChangeLog 2008-04-10 14:38:24.000000000 +0200 +++ gnome-panel-2.22.1.3/idl/ChangeLog 2008-04-15 22:58:02.000000000 +0200 @@ -1,3 +1,5 @@ +==================== 2.22.1.2 ==================== + ==================== 2.22.1.1 ==================== ==================== 2.22.1 ==================== diff -Nru /tmp/DZHjUsNVKq/gnome-panel-2.22.1.2/libpanel-applet/ChangeLog /tmp/2xli8pX9oP/gnome-panel-2.22.1.3/libpanel-applet/ChangeLog --- gnome-panel-2.22.1.2/libpanel-applet/ChangeLog 2008-04-10 14:38:24.000000000 +0200 +++ gnome-panel-2.22.1.3/libpanel-applet/ChangeLog 2008-04-15 22:58:02.000000000 +0200 @@ -1,3 +1,5 @@ +==================== 2.22.1.2 ==================== + ==================== 2.22.1.1 ==================== ==================== 2.22.1 ==================== diff -Nru /tmp/DZHjUsNVKq/gnome-panel-2.22.1.2/NEWS /tmp/2xli8pX9oP/gnome-panel-2.22.1.3/NEWS --- gnome-panel-2.22.1.2/NEWS 2008-04-10 14:53:07.000000000 +0200 +++ gnome-panel-2.22.1.3/NEWS 2008-04-15 23:04:38.000000000 +0200 @@ -1,4 +1,30 @@ ================ +Version 2.22.1.3 +================ + + Clock Applet + + * Fix internal handling of locations to not create new locations all + the time. As a side-effect, this fixes the location not being + recognized as the current one when the user clicks "Set" (Vincent) + * Improve pre-filling of the find entry (Vincent) + * Be more solid against cases where there's no Locations.xml (Vincent) + * Better handling of some special cases when detecting the system + timezone (like /usr/share/zoneinfo/posix/Europe/Paris) (Vincent) + * Fix memory leaks (Vincent) + * First look if /etc/localtime is a symbolic link when detecting the + current timezone instead of first parsing a few files (Vincent) + * Add support for Arch Linux system timezone (Vincent) + * Fix a crash in the system timezone reading/writing code on 64-bits + machines (Vincent) + + Misc + + * Add new keys to gnome-panel.desktop to also make it work with + gnome-session 2.23/2.24. The panel will still work with gnome-session + 2.22, of course. (Lucas Rocha) + +================ Version 2.22.1.2 ================ diff -Nru /tmp/DZHjUsNVKq/gnome-panel-2.22.1.2/po/ChangeLog /tmp/2xli8pX9oP/gnome-panel-2.22.1.3/po/ChangeLog --- gnome-panel-2.22.1.2/po/ChangeLog 2008-04-10 14:38:42.000000000 +0200 +++ gnome-panel-2.22.1.3/po/ChangeLog 2008-04-15 22:58:26.000000000 +0200 @@ -1,3 +1,5 @@ +==================== 2.22.1.2 ==================== + ==================== 2.22.1.1 ==================== ==================== 2.22.1 ==================== diff -Nru /tmp/DZHjUsNVKq/gnome-panel-2.22.1.2/po/ka.po /tmp/2xli8pX9oP/gnome-panel-2.22.1.3/po/ka.po --- gnome-panel-2.22.1.2/po/ka.po 2008-04-10 14:38:42.000000000 +0200 +++ gnome-panel-2.22.1.3/po/ka.po 2008-04-15 22:58:26.000000000 +0200 @@ -4,7 +4,7 @@ msgstr "" "Project-Id-Version: ka\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-03-12 04:21+0100\n" +"POT-Creation-Date: 2008-04-11 01:40+0200\n" "PO-Revision-Date: 2008-03-12 22:00+0100\n" "Last-Translator: Vladimer Sichinava ვლადიმერ სიჭინავა \n" "Language-Team: Georgian \n" @@ -496,7 +496,9 @@ #: ../applets/clock/clock.schemas.in.h:29 msgid "If true, show date in a tooltip when the pointer is over the clock." -msgstr "თუ მონიშნულია, გამოსახე თარიღი კარნახის ფანჯარაში,როდესაც მიმთითებელი საათს ზევითაა." +msgstr "" +"თუ მონიშნულია, გამოსახე თარიღი კარნახის ფანჯარაში,როდესაც მიმთითებელი საათს " +"ზევითაა." #: ../applets/clock/clock.schemas.in.h:30 msgid "If true, show the temperature next to the weather icon." @@ -554,7 +556,9 @@ msgid "" "The use of this key was deprecated in GNOME 2.6 in favour of the 'format' " "key. The schema is retained for compatibility with older versions." -msgstr "GNOME 2.6 ვერსიიდან მოყოლებული, კლავიატურის ღილაკთა ეს კომბინაცია გაუქმებულია." +msgstr "" +"GNOME 2.6 ვერსიიდან მოყოლებული, კლავიატურის ღილაკთა ეს კომბინაცია " +"გაუქმებულია." #: ../applets/clock/clock.schemas.in.h:44 msgid "" @@ -589,7 +593,9 @@ #: ../applets/clock/clock.schemas.in.h:46 msgid "This key specifies the program to run in order to configure the time." -msgstr "მოცემული ღილაკი გამოიყენება დროის გასწორებისთვის საჭირო პროგრამის გამოსაძახებლად." +msgstr "" +"მოცემული ღილაკი გამოიყენება დროის გასწორებისთვის საჭირო პროგრამის " +"გამოსაძახებლად." #: ../applets/clock/clock.schemas.in.h:47 msgid "Time configuration tool" @@ -722,7 +728,9 @@ msgid "" "Click on the map to zoom and select the timezone of a city, or " "right click to zoom out." -msgstr "მაშტაბის გადიდებისთვის დააწკაპეთ რუქას და აირჩიეთ ქალაქი თავის დროის სარტყელთან ერთად, ან მარჯვენა წკაპი უკან დაბრუნებისთვის. " +msgstr "" +"მაშტაბის გადიდებისთვის დააწკაპეთ რუქას და აირჩიეთ ქალაქი თავის " +"დროის სარტყელთან ერთად, ან მარჯვენა წკაპი უკან დაბრუნებისთვის. " #: ../applets/clock/timezone.glade.h:5 msgid "Edit Timezones" @@ -983,8 +991,10 @@ msgstr "პიქტოგრამები თევზის ანიმაციაში" #: ../applets/fish/fish.schemas.in.h:4 -msgid "If true, the fish's animation will be displayed rotated on vertical panels." -msgstr "მონიშვნის შემთხვევაში, თევზის ანიმაცია 90%ით ამოტრიალდება პანელის მიმართ." +msgid "" +"If true, the fish's animation will be displayed rotated on vertical panels." +msgstr "" +"მონიშვნის შემთხვევაში, თევზის ანიმაცია 90%ით ამოტრიალდება პანელის მიმართ." #: ../applets/fish/fish.schemas.in.h:5 msgid "Pause per frame" @@ -1230,7 +1240,8 @@ msgid "" "The Window Selector shows a list of all windows in a menu and lets you " "browse them." -msgstr "ფანჯრების სიის მენუს სახით წარმოსახვა და მათი მენუს სახით დათვალიერება." +msgstr "" +"ფანჯრების სიის მენუს სახით წარმოსახვა და მათი მენუს სახით დათვალიერება." #: ../applets/wncklet/workspace-switcher.c:213 #: ../applets/wncklet/workspace-switcher.c:974 @@ -1252,7 +1263,8 @@ #: ../applets/wncklet/workspace-switcher.c:498 #, c-format -msgid "Error loading display_workspace_names value for Workspace Switcher: %s\n" +msgid "" +"Error loading display_workspace_names value for Workspace Switcher: %s\n" msgstr "" "დაიშვა შეცდომა display_workspace_names მნიშვნელობის ჩატვირთვისას სამუშაო " "გარემოთა გადამრთველისთვის: %s\n" @@ -1485,7 +1497,7 @@ #: ../gnome-panel/menu.c:1028 msgid "Add this as _drawer to panel" -msgstr "დაამატე პანელს როგორც ახალი უჯრა" +msgstr "პანელზე _დამატება ახალი უჯრის სახით" #: ../gnome-panel/menu.c:1035 msgid "Add this as _menu to panel" @@ -1788,7 +1800,7 @@ #: ../gnome-panel/panel-context-menu.c:201 msgid "_Add to Panel..." -msgstr "_დაამატე პანელს..." +msgstr "პ_ანელზე დამატება..." #: ../gnome-panel/panel-context-menu.c:222 msgid "_Delete This Panel" @@ -1882,7 +1894,8 @@ msgstr "შეუძლებელია დახმარების დოკუმენტის გაშვება" #: ../gnome-panel/panel-force-quit.c:76 -msgid "Click on a window to force the application to quit. To cancel press ." +msgid "" +"Click on a window to force the application to quit. To cancel press ." msgstr "" "პროგრამის გასათიშად მის ფანჯარაზე დააწკაპუნეთ,ან მოქმედების გასაუქმებლად " "დააჭირეთ ." @@ -1951,8 +1964,10 @@ msgstr "პროგრამების სიის ფართო ჩვენება \"პროგრამის გაშვება\" დიალოგ ფანჯარაში" #: ../gnome-panel/panel-general.schemas.in.h:8 -msgid "If true, autocompletion in the \"Run Application\" dialog is made available." -msgstr "თუ მონიშნულია, \"Run Application\" დიალოგ ფანჯარაში ავტოაკრეფვა იმუშავებს." +msgid "" +"If true, autocompletion in the \"Run Application\" dialog is made available." +msgstr "" +"თუ მონიშნულია, \"Run Application\" დიალოგ ფანჯარაში ავტოაკრეფვა იმუშავებს." #: ../gnome-panel/panel-general.schemas.in.h:9 msgid "" @@ -2058,10 +2073,12 @@ msgid "" "If true, a drawer will automatically be closed when the user clicks a " "launcher in it." -msgstr "თუ მონიშნულია, უჯრაში მყოფ ღილაკებზე დაწკაპვისას უჯრა მყისვე დაიკეტება." +msgstr "" +"თუ მონიშნულია, უჯრაში მყოფ ღილაკებზე დაწკაპვისას უჯრა მყისვე დაიკეტება." #: ../gnome-panel/panel-global.schemas.in.h:15 -msgid "If true, a launcher is highlighted when the user moves the pointer over it." +msgid "" +"If true, a launcher is highlighted when the user moves the pointer over it." msgstr "თუ მონიშნულია, ღილაკი ამონათდება თაგვით ზემოდან გადატარებისას." #: ../gnome-panel/panel-global.schemas.in.h:16 @@ -3359,7 +3376,8 @@ msgstr "მიუთითეთ ჩასატვირთი აპლეტის IID" #: ../libpanel-applet/panel-test-applets.c:35 -msgid "Specify a gconf location in which the applet preferences should be stored" +msgid "" +"Specify a gconf location in which the applet preferences should be stored" msgstr "" "მიუთითეთ gconf ადგილმდებარეობა, სადაც აპლეტის პარამეტრები უნდა იქნენ " "შენახულნი" @@ -3369,7 +3387,8 @@ msgstr "მიუთითეთ აპლეტის თავდაპირველი ზომა (პატარა, საშუალო, დიდი და ა.შ.)" #: ../libpanel-applet/panel-test-applets.c:37 -msgid "Specify the initial orientation of the applet (top, bottom, left or right)" +msgid "" +"Specify the initial orientation of the applet (top, bottom, left or right)" msgstr "მიუთითეთ აპლეტის საქყისი პოზიცია. (ზემოთ, ქვემოთ, მარჯვნივ მარცხნივ)" #: ../libpanel-applet/panel-test-applets.c:61 @@ -3417,4 +3436,3 @@ #: ../libpanel-applet/panel-test-applets.glade.h:5 msgid "_Prefs Dir:" msgstr "_პრეფიქსი მის:" - diff -Nru /tmp/DZHjUsNVKq/gnome-panel-2.22.1.2/README /tmp/2xli8pX9oP/gnome-panel-2.22.1.3/README --- gnome-panel-2.22.1.2/README 2008-04-10 14:39:00.000000000 +0200 +++ gnome-panel-2.22.1.3/README 2008-04-15 22:58:41.000000000 +0200 @@ -1,4 +1,4 @@ -gnome-panel 2.22.1.2 +gnome-panel 2.22.1.3 ==================== This package is free software and is part of the GNOME 2.0 project.