summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Finke <jens@triq.net>2004-01-14 20:22:04 +0000
committerJens Finke <jens@src.gnome.org>2004-01-14 20:22:04 +0000
commit05f051931ee4ef69c06db8c1d118d8cb1b40a563 (patch)
tree8b610217ce556360ddbd9709b8e1a3160cbb3dd3
parent0c883f8896aaae99f5ee28db378a7c875b450d3a (diff)
downloadeog-05f051931ee4ef69c06db8c1d118d8cb1b40a563.tar.gz
Deal with uri == NULL. Fixes bug #130726 partly, at least doesn't crash
2004-01-14 Jens Finke <jens@triq.net> * shell/main.c (sort_files): Deal with uri == NULL. Fixes bug #130726 partly, at least doesn't crash anymore.
-rw-r--r--ChangeLog5
-rw-r--r--shell/main.c27
2 files changed, 22 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 30e8da2e..b2047cb5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-01-14 Jens Finke <jens@triq.net>
+
+ * shell/main.c (sort_files): Deal with uri == NULL. Fixes bug
+ #130726 partly, at least doesn't crash anymore.
+
2003-11-06 Breda McColgan <Breda.McColgan@sun.com>
* help/C/eog.xml: Updated for GNOME 2.4.2
diff --git a/shell/main.c b/shell/main.c
index 83fba9f9..def278ed 100644
--- a/shell/main.c
+++ b/shell/main.c
@@ -170,18 +170,23 @@ sort_files (GList *files, GList **file_list, GList **dir_list, GList **error_lis
for (it = files; it != NULL; it = it->next) {
GnomeVFSURI *uri;
- GnomeVFSResult result;
+ GnomeVFSResult result = GNOME_VFS_OK;
char *filename;
uri = make_canonical_uri ((char*)it->data);
- result = gnome_vfs_get_file_info_uri (uri, info,
- GNOME_VFS_FILE_INFO_DEFAULT |
- GNOME_VFS_FILE_INFO_FOLLOW_LINKS);
-
- filename = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE);
-
- if (result != GNOME_VFS_OK)
+ if (uri != NULL) {
+ result = gnome_vfs_get_file_info_uri (uri, info,
+ GNOME_VFS_FILE_INFO_DEFAULT |
+ GNOME_VFS_FILE_INFO_FOLLOW_LINKS);
+
+ filename = gnome_vfs_uri_to_string (uri, GNOME_VFS_URI_HIDE_NONE);
+ }
+ else {
+ filename = g_strdup ((char*) it->data);
+ }
+
+ if (result != GNOME_VFS_OK || uri == NULL)
*error_list = g_list_append (*error_list, filename);
else {
if (info->type == GNOME_VFS_FILE_TYPE_REGULAR)
@@ -191,8 +196,10 @@ sort_files (GList *files, GList **file_list, GList **dir_list, GList **error_lis
else
*error_list = g_list_append (*error_list, filename);
}
-
- gnome_vfs_uri_unref (uri);
+
+ if (uri != NULL) {
+ gnome_vfs_uri_unref (uri);
+ }
gnome_vfs_file_info_clear (info);
}