43 lines
1.4 KiB
Diff
43 lines
1.4 KiB
Diff
From ca48064339d58a9b5a87e005629d671fe663256b Mon Sep 17 00:00:00 2001
|
|
From: Carlos Garnacho <carlosg@gnome.org>
|
|
Date: Wed, 22 Jul 2015 20:19:20 +0200
|
|
Subject: [PATCH 2/4] libtracker-miner: Fallback to basename checks on hidden
|
|
files
|
|
|
|
When we receive DELETED events on files, the TrackerFileNotifier/
|
|
TrackerIndexingTree attempt to find out if its hidden and should
|
|
thus be ignored. However the g_file_query_info() evidently fails
|
|
at that time, with the file already deleted, so we think the file
|
|
is not hidden and the delete operation gets propagated to the
|
|
TrackerMineFS.
|
|
|
|
Fix this by resorting to basename checks as a last resort, so
|
|
we do the right thing even after the file is gone.
|
|
---
|
|
src/libtracker-common/tracker-file-utils.c | 9 +++++++++
|
|
1 file changed, 9 insertions(+)
|
|
|
|
diff --git a/src/libtracker-common/tracker-file-utils.c b/src/libtracker-common/tracker-file-utils.c
|
|
index 6fca87e..123d347 100644
|
|
--- a/src/libtracker-common/tracker-file-utils.c
|
|
+++ b/src/libtracker-common/tracker-file-utils.c
|
|
@@ -743,6 +743,15 @@ tracker_file_is_hidden (GFile *file)
|
|
/* Check if GIO says the file is hidden */
|
|
is_hidden = g_file_info_get_is_hidden (file_info);
|
|
g_object_unref (file_info);
|
|
+ } else {
|
|
+ gchar *basename;
|
|
+
|
|
+ /* Resort last to basename checks, this might happen on
|
|
+ * already deleted files.
|
|
+ */
|
|
+ basename = g_file_get_basename (file);
|
|
+ is_hidden = basename[0] == '.';
|
|
+ g_free (basename);
|
|
}
|
|
|
|
return is_hidden;
|
|
--
|
|
2.4.6
|
|
|