Package: gnome-utils Version: 2.14.0.dfsg-5 Severity: minor Tags: patch
I have patched the gnome-utils source to fix a bug with the "gnome-system-log" app for displaying system logs (called 'logview' in the source tree). At the moment if the program cannot either open or parse a file, it gives the error message "<filename> is not a log file". This is a bit unuseful if your file couldn't be opened for some other reason, eg permissions. The patch fixes this so that there are several different possible error messages. This fixes bug #349756 reported on bugs.gnome.org. I will also send a patch to the upstream maintainers. The patch is against the version on stable, 2.14.0. diff -ru o/gnome-utils-2.14.0.dfsg/logview/logrtns.c gnome-utils-2.14.0.dfsg/logview/logrtns.c --- o/gnome-utils-2.14.0.dfsg/logview/logrtns.c 2005-11-23 19:30:00.000000000 +0000 +++ gnome-utils-2.14.0.dfsg/logview/logrtns.c 2007-09-06 03:15:15.000000000 +0100 @@ -36,7 +36,7 @@ char *error_main = N_("One file or more could not be opened"); -static LogStats *log_stats_new (char *filename, gboolean show_error); +static int log_stats_new (LogStats **stats_ref, char *filename, gboolean show_error); /* File checking */ @@ -104,12 +104,13 @@ file_is_log (char *filename, gboolean show_error) { LogStats *stats; + int s; if (filename == NULL) return; - stats = log_stats_new (filename, show_error); - if (stats==NULL) + s = log_stats_new (&stats, filename, show_error); + if (s!=0) return FALSE; else { g_free (stats); @@ -299,11 +300,11 @@ /* log_stats_new Read the log and get some statistics from it. - Returns NULL if the file is not a log. + Returns an non-zero error code if it cannot open or parse the file. */ -static LogStats * -log_stats_new (char *filename, gboolean show_error) +static int +log_stats_new (LogStats** stats_ref, char *filename, gboolean show_error) { GnomeVFSResult result; GnomeVFSFileInfo *info; @@ -314,12 +315,12 @@ char *found_space; if (filename == NULL) - return NULL; + return 1; /* Read first line and check that it is text */ result = gnome_vfs_open (&handle, filename, GNOME_VFS_OPEN_READ); if (result != GNOME_VFS_OK) { - return NULL; + return 2; } info = gnome_vfs_file_info_new (); @@ -327,20 +328,20 @@ if (result != GNOME_VFS_OK || info->type != GNOME_VFS_FILE_TYPE_REGULAR) { gnome_vfs_file_info_unref (info); gnome_vfs_close (handle); - return NULL; + return -1; } result = gnome_vfs_read (handle, buff, sizeof(buff), &size); gnome_vfs_close (handle); if (result != GNOME_VFS_OK) { gnome_vfs_file_info_unref (info); - return NULL; + return -1; } found_space = g_strstr_len (buff, 1024, " "); if (found_space == NULL) { gnome_vfs_file_info_unref (info); - return NULL; + return -1; } stats = g_new (LogStats, 1); @@ -348,7 +349,8 @@ stats->file_size = info->size; gnome_vfs_file_info_unref (info); - return (stats); + *stats_ref = stats; + return (0); } Log * @@ -361,13 +363,14 @@ int i, size; GList *days; Log *log; + int err; - stats = log_stats_new (filename, show_error); - if (stats == NULL) { + err = log_stats_new (&stats, filename, show_error); + if (err != 0) { if (file_is_zipped (filename)) { zipped_name = g_strdup_printf ("%s#gzip:", filename); - stats = log_stats_new (filename, show_error); - if (stats == NULL) { + err = log_stats_new (&stats, filename, show_error); + if (err != 0) { opened = FALSE; } } else @@ -375,8 +378,17 @@ } if (opened == FALSE) { + switch( err ) { + case 2: + error_message = g_strdup_printf (_("File with no name")); + goto error; + case 1: + error_message = g_strdup_printf (_("Could not open file %s"), filename); + goto error; + default: error_message = g_strdup_printf (_("%s is not a log file."), filename); goto error; + } } log = g_new0 (Log, 1); @@ -475,7 +487,7 @@ void log_stats_reload (Log *log) { g_free (log->stats); - log->stats = log_stats_new (log->name, TRUE); + log_stats_new (&log->stats, log->name, TRUE); } /* log_read_new_lines */ ---end of patch--- -- System Information: Debian Release: 4.0 APT prefers stable APT policy: (500, 'stable') Architecture: i386 (i686) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.18jack-100907 Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) Versions of packages gnome-utils depends on: ii e2fslibs 1.39+1.40-WIP-2006.11.14+dfsg-2 ext2 filesystem libraries ii gconf2 2.16.1-1 GNOME configuration database syste ii libart-2 2.3.17-1 Library of functions for 2D graphi ii libatk1. 1.12.4-3 The ATK accessibility toolkit ii libaudio 0.2.6-6 Open-source version of SGI's audio ii libavahi 0.6.16-3etch1 Avahi client library ii libavahi 0.6.16-3etch1 Avahi common library ii libavahi 0.6.16-3etch1 Avahi glib integration library ii libbonob 2.14.0-3 Bonobo CORBA interfaces library ii libbonob 2.14.0-5 The Bonobo UI library ii libc6 2.3.6.ds1-13etch2 GNU C Library: Shared libraries ii libcairo 1.2.4-4 The Cairo 2D vector graphics libra ii libdbus- 1.0.2-1 simple interprocess messaging syst ii libesd0 0.2.36-3 Enlightened Sound Daemon - Shared ii libfontc 2.4.2-1.2 generic font configuration library ii libfreet 2.2.1-5+etch1 FreeType 2 font engine, shared lib ii libgconf 2.16.1-1 GNOME configuration database syste ii libgcryp 1.2.3-2 LGPL Crypto library - runtime libr ii libglade 1:2.6.0-4 library to load .glade files at ru ii libglib2 2.12.4-2 The GLib library of C routines ii libgnome 2.14.3-2 Utility library for loading .deskt ii libgnome 0.6.0-3 GNOME keyring services library ii libgnome 2.16.0-2 The GNOME 2 library - runtime file ii libgnome 2.14.0-2 A powerful object-oriented display ii libgnome 2.12.1-7 The GNOME 2.2 print architecture - ii libgnome 2.12.1-4 GNOME 2.2 print architecture User ii libgnome 2.14.1-2 The GNOME 2 libraries (User Interf ii libgnome 1:2.14.2-7 GNOME virtual file-system (runtime ii libgnutl 1.4.4-3 the GNU TLS library - runtime libr ii libgpg-e 1.4-1 library for common error values an ii libgtk2. 2.8.20-7 The GTK+ graphical user interface ii libhal1 0.5.8.1-9 Hardware Abstraction Layer - share ii libice6 1:1.0.1-2 X11 Inter-Client Exchange library ii libjpeg6 6b-13 The Independent JPEG Group's JPEG ii liborbit 1:2.14.3-0.2 libraries for ORBit2 - a CORBA ORB ii libpanel 2.14.3-5 library for GNOME 2 panel applets ii libpango 1.14.8-5 Layout and rendering of internatio ii libpng12 1.2.15~beta5-1 PNG library - runtime ii libpopt0 1.10-3 lib for parsing cmdline parameters ii libsm6 1:1.0.1-3 X11 Session Management library ii libstart 0.8-2 library for program launch feedbac ii libtasn1 0.3.6-2 Manage ASN.1 structures (runtime) ii libx11-6 2:1.0.3-7 X11 client-side library ii libxcurs 1.1.7-4 X cursor management library ii libxext6 1:1.0.1-2 X11 miscellaneous extension librar ii libxfixe 1:4.0.1-5 X11 miscellaneous 'fixes' extensio ii libxi6 1:1.0.1-4 X11 Input extension library ii libxiner 1:1.0.1-4.1 X11 Xinerama extension library ii libxml2 2.6.27.dfsg-1 GNOME XML library ii libxrand 2:1.1.0.2-5 X11 RandR extension library ii libxrend 1:0.9.1-3 X Rendering Extension client libra ii scrollke 0.3.14-13 A free electronic cataloging syste ii zlib1g 1:1.2.3-13 compression library - runtime Versions of packages gnome-utils recommends: ii gksu 2.0.0-1 graphical frontend to su -- no debconf information -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]