diff --git a/ChangeLog b/ChangeLog index bbb58ca612..f698631700 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2004-03-01 Morten Welinder + * gtk/gtkfilesystemunix.c (filename_get_info): Only stat when + needed. + * gtk/gtkfilesystemmodel.c (file_model_node_is_visible): Simplify semantics and check for errors. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index bbb58ca612..f698631700 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,5 +1,8 @@ 2004-03-01 Morten Welinder + * gtk/gtkfilesystemunix.c (filename_get_info): Only stat when + needed. + * gtk/gtkfilesystemmodel.c (file_model_node_is_visible): Simplify semantics and check for errors. diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index bbb58ca612..f698631700 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,5 +1,8 @@ 2004-03-01 Morten Welinder + * gtk/gtkfilesystemunix.c (filename_get_info): Only stat when + needed. + * gtk/gtkfilesystemmodel.c (file_model_node_is_visible): Simplify semantics and check for errors. diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index bbb58ca612..f698631700 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,5 +1,8 @@ 2004-03-01 Morten Welinder + * gtk/gtkfilesystemunix.c (filename_get_info): Only stat when + needed. + * gtk/gtkfilesystemmodel.c (file_model_node_is_visible): Simplify semantics and check for errors. diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index bbb58ca612..f698631700 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,5 +1,8 @@ 2004-03-01 Morten Welinder + * gtk/gtkfilesystemunix.c (filename_get_info): Only stat when + needed. + * gtk/gtkfilesystemmodel.c (file_model_node_is_visible): Simplify semantics and check for errors. diff --git a/gtk/gtkfilesystemunix.c b/gtk/gtkfilesystemunix.c index 2becd2dfeb..77649316fa 100644 --- a/gtk/gtkfilesystemunix.c +++ b/gtk/gtkfilesystemunix.c @@ -1358,10 +1358,15 @@ filename_get_info (const gchar *filename, { GtkFileInfo *info; struct stat statbuf; + gboolean do_stat = (types & (GTK_FILE_INFO_IS_FOLDER | + GTK_FILE_INFO_IS_HIDDEN | + GTK_FILE_INFO_MODIFICATION_TIME | + GTK_FILE_INFO_SIZE)); /* If stat fails, try to fall back to lstat to catch broken links */ - if (stat (filename, &statbuf) != 0 && + if (do_stat && + stat (filename, &statbuf) != 0 && lstat (filename, &statbuf) != 0) { gchar *filename_utf8 = g_filename_to_utf8 (filename, -1, NULL, NULL, NULL);