]> git.notmuchmail.org Git - notmuch/blobdiff - lib/thread.cc
lib/thread: add macro for debug printing of threading
[notmuch] / lib / thread.cc
index e961c76bf37a8d3cbee2a4041da48ef92340b03a..6d15c49b761b2fc81e36a1f2adfd8e6c07dff4e7 100644 (file)
 #include <gmime/gmime.h>
 #include <glib.h> /* GHashTable */
 
+#ifdef DEBUG_THREADING
+#define THREAD_DEBUG(format, ...) fprintf(stderr, format " (%s).\n", ##__VA_ARGS__, __location__)
+#else
+#define THREAD_DEBUG(format, ...) do {} while (0) /* ignored */
+#endif
+
 #define EMPTY_STRING(s) ((s)[0] == '\0')
 
 struct _notmuch_thread {
@@ -429,6 +435,12 @@ _resolve_thread_relationships (notmuch_thread_t *thread)
            _notmuch_message_list_add_message (thread->toplevel_list, message);
     }
 
+    /* XXX this could be made conditional on messages being inserted
+     * (out of order) in later passes
+     */
+    thread->toplevel_list = _notmuch_message_sort_subtrees (thread, thread->toplevel_list);
+
+
     /* XXX: After scanning through the entire list looking for parents
      * via "In-Reply-To", we should do a second pass that looks at the
      * list of messages IDs in the "References" header instead. (And