rpms/gnome-utils/F-8 logview-versions-crash.patch, NONE, 1.1 logview-versions-format.patch, NONE, 1.1 gnome-utils.spec, 1.157, 1.158
Matthias Clasen (mclasen)
fedora-extras-commits at redhat.com
Fri Nov 16 22:29:25 UTC 2007
- Previous message (by thread): rpms/poker3d-data/F-7 copyright, NONE, 1.1 poker3d-data.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Next message (by thread): rpms/gscan2pdf/F-7 .cvsignore, 1.10, 1.11 gscan2pdf.spec, 1.19, 1.20 sources, 1.10, 1.11
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: mclasen
Update of /cvs/extras/rpms/gnome-utils/F-8
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv14252
Modified Files:
gnome-utils.spec
Added Files:
logview-versions-crash.patch logview-versions-format.patch
Log Message:
fix handling of versions
logview-versions-crash.patch:
--- NEW FILE logview-versions-crash.patch ---
diff -up gnome-utils-2.20.0.1/logview/log_repaint.c.versions gnome-utils-2.20.0.1/logview/log_repaint.c
--- gnome-utils-2.20.0.1/logview/log_repaint.c.versions 2007-11-16 13:29:00.000000000 -0500
+++ gnome-utils-2.20.0.1/logview/log_repaint.c 2007-11-16 13:29:43.000000000 -0500
@@ -226,6 +226,8 @@ logview_update_version_bar (LogviewWindo
else
recent = log;
+ g_signal_handler_block (logview->version_selector, logview->version_changed_id);
+
for (i=5; i>-1; i--)
gtk_combo_box_remove_text (GTK_COMBO_BOX (logview->version_selector), i);
@@ -241,6 +243,8 @@ logview_update_version_bar (LogviewWindo
gtk_combo_box_set_active (GTK_COMBO_BOX (logview->version_selector),
log->current_version);
+ g_signal_handler_unblock (logview->version_selector, logview->version_changed_id);
+
} else {
gtk_widget_hide (logview->version_bar);
}
diff -up gnome-utils-2.20.0.1/logview/logview.h.versions gnome-utils-2.20.0.1/logview/logview.h
--- gnome-utils-2.20.0.1/logview/logview.h.versions 2007-11-16 13:27:55.000000000 -0500
+++ gnome-utils-2.20.0.1/logview/logview.h 2007-11-16 13:28:05.000000000 -0500
@@ -55,6 +55,7 @@ struct _LogviewWindow {
Log *curlog;
int original_fontsize, fontsize;
+ gulong version_changed_id;
};
struct _LogviewWindowClass {
diff -up gnome-utils-2.20.0.1/logview/logview.c.versions gnome-utils-2.20.0.1/logview/logview.c
--- gnome-utils-2.20.0.1/logview/logview.c.versions 2007-11-16 13:28:13.000000000 -0500
+++ gnome-utils-2.20.0.1/logview/logview.c 2007-11-16 13:28:52.000000000 -0500
@@ -432,6 +432,9 @@ logview_version_selector_changed (GtkCom
g_assert (LOGVIEW_IS_WINDOW (logview));
+ if (!log)
+ return;
+
selected = gtk_combo_box_get_active (version_selector);
if (selected == log->current_version)
@@ -903,7 +906,7 @@ logview_init (LogviewWindow *logview)
logview->version_bar = gtk_hbox_new (FALSE, 0);
gtk_container_set_border_width (GTK_CONTAINER (logview->version_bar), 3);
logview->version_selector = gtk_combo_box_new_text ();
- g_signal_connect (G_OBJECT (logview->version_selector), "changed",
+ logview->version_changed_id = g_signal_connect (G_OBJECT (logview->version_selector), "changed",
G_CALLBACK (logview_version_selector_changed), logview);
label = gtk_label_new (_("Version: "));
logview-versions-format.patch:
--- NEW FILE logview-versions-format.patch ---
diff -up gnome-utils-2.20.0.1/logview/logrtns.c.versions2 gnome-utils-2.20.0.1/logview/logrtns.c
--- gnome-utils-2.20.0.1/logview/logrtns.c.versions2 2007-11-16 13:35:29.000000000 -0500
+++ gnome-utils-2.20.0.1/logview/logrtns.c 2007-11-16 16:16:12.000000000 -0500
@@ -26,6 +26,7 @@
#endif
#include <gtk/gtk.h>
#include <glib/gi18n.h>
+#include <glib/gstdio.h>
#include <string.h>
#include <stdlib.h>
#include "logview.h"
@@ -251,12 +252,13 @@ log_read_dates (gchar **buffer_lines, ti
while (newdate == NULL && !done) {
i++;
date_string = string_get_date_string (buffer_lines[i]);
- if (date_string == NULL)
+ if (date_string == NULL) {
if (i==n-1) {
done = TRUE;
break;
} else
continue;
+ }
newdate = string_get_date (buffer_lines[i]);
if (newdate == NULL && i==n-1)
@@ -355,6 +357,26 @@ log_stats_new (char *filename, gboolean
return (stats);
}
+typedef struct {
+ char *path;
+ time_t mtime;
+} FileTime;
+
+static gint sort_file_time (gconstpointer a, gconstpointer b)
+{
+ const FileTime *at = a;
+ const FileTime *bt = b;
+
+ return bt->mtime - at->mtime;
+}
+
+static void
+free_file_time (FileTime *ft)
+{
+ g_free (ft->path);
+ g_free (ft);
+}
+
Log *
log_open (char *filename, gboolean show_error)
{
@@ -365,7 +387,11 @@ log_open (char *filename, gboolean show_
int i, size;
GList *days;
Log *log;
-
+ GDir *dir;
+ gchar *dirname, *basename, *path;
+ const gchar *name, *p;
+ GList *list, *l;
+
stats = log_stats_new (filename, show_error);
if (stats == NULL) {
if (file_is_zipped (filename)) {
@@ -382,7 +408,6 @@ log_open (char *filename, gboolean show_
error_message = g_strdup_printf (_("%s is not a log file."), filename);
goto error;
}
-
log = g_new0 (Log, 1);
if (log == NULL) {
error_message = g_strdup (_("Not enough memory."));
@@ -429,20 +454,54 @@ log_open (char *filename, gboolean show_
log->versions = 0;
log->current_version = 0;
log->parent_log = NULL;
- for (i=1; i<5; i++) {
- gchar *older_name;
- older_name = g_strdup_printf ("%s.%d", log->name, i);
- log->older_logs[i] = log_open (older_name, FALSE);
- g_free (older_name);
- if (log->older_logs[i] != NULL) {
- log->older_logs[i]->parent_log = log;
- log->older_logs[i]->current_version = i;
- log->versions++;
- }
- else
- break;
+
+ /* check for versions like cron-20071108 */
+ dirname = g_path_get_dirname (log->name);
+ basename = g_path_get_basename (log->name);
+ dir = g_dir_open (dirname, 0, NULL);
+ if (dir) {
+ list = NULL;
+ while ((name = g_dir_read_name (dir))) {
+ FileTime *file;
+ struct stat buf;
+
+ if (!g_str_has_prefix (name, basename))
+ continue;
+
+ p = name + strlen (basename);
+ if (*p != '.' && *p != '-')
+ continue;
+
+ file = g_new (FileTime, 1);
+ file->path = g_build_filename (dirname, name, NULL);
+
+ g_stat (file->path, &buf);
+ file->mtime = buf.st_mtime;
+
+ list = g_list_prepend (list, file);
+ }
+
+ list = g_list_sort (list, sort_file_time);
+
+ for (l = list, i = 1; l && i < 5; l = l->next, i++) {
+ FileTime *ft = l->data;
+
+ log->older_logs[i] = log_open (ft->path, FALSE);
+ if (log->older_logs[i] != NULL) {
+ log->older_logs[i]->parent_log = log;
+ log->older_logs[i]->current_version = i;
+ log->versions++;
+ }
+ }
+
+ g_list_foreach (list, free_file_time, NULL);
+ g_list_free (list);
+ g_dir_close (dir);
}
+ g_free (dirname);
+ g_free (basename);
+
return log;
error:
Index: gnome-utils.spec
===================================================================
RCS file: /cvs/extras/rpms/gnome-utils/F-8/gnome-utils.spec,v
retrieving revision 1.157
retrieving revision 1.158
diff -u -r1.157 -r1.158
--- gnome-utils.spec 19 Oct 2007 15:59:52 -0000 1.157
+++ gnome-utils.spec 16 Nov 2007 22:28:52 -0000 1.158
@@ -10,7 +10,7 @@
Name: gnome-utils
Version: 2.20.0.1
-Release: 2%{?dist}
+Release: 3%{?dist}
Epoch: 1
Summary: GNOME utility programs
@@ -22,6 +22,10 @@
Patch0: logview-close-crash.patch
Patch1: logview-scroll-crash.patch
+# http://bugzilla.gnome.org/show_bug.cgi?id=497489
+Patch2: logview-versions-crash.patch
+# http://bugzilla.gnome.org/show_bug.cgi?id=497490
+Patch3: logview-versions-format.patch
BuildRequires: gnome-doc-utils >= %{gnome_doc_utils_version}
BuildRequires: glib2-devel >= %{glib2_version}
@@ -77,6 +81,8 @@
%setup -q
%patch0 -p1 -b .logview-close
%patch1 -p1 -b .logview-scroll
+%patch2 -p1 -b .versions-crash
+%patch3 -p1 -b .versions-format
# Hide from menus
pushd gsearchtool
@@ -236,6 +242,10 @@
%changelog
+* Fri Nov 16 2007 Matthias Clasen <mclasen at redhat.com> - 2.20.0.1-3
+- Don't crash when multiple versions are present (#386511)
+- Make gnome-system-log pick up the versioning of rsyslog
+
* Thu Oct 18 2007 Matthias Clasen <mclasen at redhat.com> - 2.20.0.1-2
- Fix some crashes when scrolling (#321701)
- Previous message (by thread): rpms/poker3d-data/F-7 copyright, NONE, 1.1 poker3d-data.spec, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Next message (by thread): rpms/gscan2pdf/F-7 .cvsignore, 1.10, 1.11 gscan2pdf.spec, 1.19, 1.20 sources, 1.10, 1.11
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list