[tracker/hierarchical-indexing] TrackerMinerFiles: do not monitor child dirs of IndexSingleDirectories.



commit d21427b98afc075e0d35b8f10cbcb22a5e0663de
Author: Carlos Garnacho <carlos lanedo com>
Date:   Fri Feb 19 12:49:43 2010 +0100

    TrackerMinerFiles: do not monitor child dirs of IndexSingleDirectories.
    
    Direct child dirs were being added a monitor, even if the crawler didn't
    get in there.

 src/tracker-miner-fs/tracker-miner-files.c |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)
---
diff --git a/src/tracker-miner-fs/tracker-miner-files.c b/src/tracker-miner-fs/tracker-miner-files.c
index 4fcd3e8..91049be 100644
--- a/src/tracker-miner-fs/tracker-miner-files.c
+++ b/src/tracker-miner-fs/tracker-miner-files.c
@@ -1310,6 +1310,7 @@ miner_files_monitor_directory (TrackerMinerFS *fs,
                                GFile          *file)
 {
 	TrackerMinerFiles *mf;
+	GSList *list;
 
 	mf = TRACKER_MINER_FILES (fs);
 
@@ -1317,6 +1318,22 @@ miner_files_monitor_directory (TrackerMinerFS *fs,
 		return FALSE;
 	}
 
+	/* We don't want child directories inside IndexSingleDirectories
+	 * to have a monitor added.
+	 */
+	for (list = mf->private->index_single_directories; list; list = list->next) {
+		gboolean is_child = FALSE;
+		GFile *dir;
+
+		dir = g_file_new_for_path (list->data);
+		is_child = g_file_has_prefix (file, dir);
+		g_object_unref (dir);
+
+		if (is_child) {
+			return FALSE;
+		}
+	}
+
 	/* Fallback to the check directory routine, since we don't
 	 * monitor anything we don't process.
 	 */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]