Switch to side-by-side view

--- a/src/index/fsindexer.h
+++ b/src/index/fsindexer.h
@@ -83,13 +83,49 @@
     };
 
  private:
+
+    class PurgeCandidateRecorder {
+    public:
+	PurgeCandidateRecorder() 
+	    : dorecord(false) {}
+	void setRecord(bool onoff) 
+	{
+	    dorecord = onoff;
+	}
+	void record(const string& udi)
+	{
+	    // This test does not need to be protected: the value is set at
+	    // init and never changed.
+	    if (!dorecord)
+		return;
+#ifdef IDX_THREADS
+	    PTMutexLocker locker(mutex);
+#endif
+	    udis.push_back(udi);
+	}
+	const vector<string>& getCandidates() 
+	{
+	    return udis;
+	}
+    private:
+#ifdef IDX_THREADS
+	PTMutexInit mutex;
+#endif
+	bool dorecord;
+	std::vector<std::string> udis;
+    };
+
     FsTreeWalker m_walker;
     RclConfig   *m_config;
     Rcl::Db     *m_db;
     string       m_reason;
     DbIxStatusUpdater *m_updater;
+    // Top/start directories list
     std::vector<std::string> m_tdl;
+    // Store for missing filters and associated mime types
     FIMissingStore *m_missing;
+    // Recorder for files that may need subdoc purging.
+    PurgeCandidateRecorder m_purgeCandidates;
 
     // The configuration can set attribute fields to be inherited by
     // all files in a file system area. Ie: set "rclaptg = thunderbird"