Commit Graph

17 Commits

Author SHA1 Message Date
67f74d44b0 cosmetic 2015-10-07 10:34:55 +03:00
ace922317f threader: try to handle pathless messages 2014-10-13 09:56:39 +03:00
99f08c50c4 mu-threader: debugging for some reported problem in find_or_create 2014-10-11 14:04:17 +03:00
c9cb27be11 mu: Make mu_container_splice_grandchildren() do only one thing
Don't kill the resultant childless container when promoting its
children. This unifies the behavior of mu_container_splice_*()
functions.
2014-08-15 10:11:21 +02:00
bb0cc542b8 mu: Prune empty containers from the root set after splicing their children
When the root set contains only one empty container with one child
first promote the child container to the root set and only then
remove the empty parent container so that the root set never goes
empty.

Also make mu_container_splice_children() do only one thing, that is
promote one container's children to be another container's siblings.
The resultant childless container is no longer removed by this
function.

Fixes #460.
2014-08-15 10:10:39 +02:00
97101f1f82 mu: Prune empty container when an only child gets promoted to the root set 2014-07-15 07:25:51 +02:00
0364433cc1 * minor 2013-12-01 20:21:44 +02:00
855e81db99 * update copyright years 2013-03-30 11:32:07 +02:00
a0d8d4f5da * use Abdo's threading improvements 2012-12-28 12:50:29 +02:00
27a80dcb67 * handle the no-matches-found case correctly 2012-12-25 20:33:02 +02:00
5d63663ac6 * back out the threading patch for now, it gives errors
ERROR:mu-container.c:182:mu_container_append_children: assertion failed: (c != child)
2012-12-23 01:14:00 +02:00
2f9dd78bb0 * add query flags (which match msgiterflags) to mu_query_run, update callers 2012-12-16 15:08:34 +02:00
cbbb23c13f * Fixes for the threading algorithm (thanks to Abdó Roig)
The problem was that once a container got a parent, it did not change it anymore
  due to the child_elligible condition, but the parent might have been assigned
  from an incomplete References sequence.

  Now, we make sure the last reference gets to be the message's parent (following
  the JWZ's algorithm), reparenting the message if necessary. This makes sense, as
  the last parent-child relationship (between last ref and the message) is the
  most reliable piece of info here.

  Instead of child_elligible, we now only check that the new parent is not a
  descendant of the current message, to prevent making a loop. Everything else is
  fine, as it only moves a subtree around.
2012-12-09 13:48:22 +02:00
11ecc65109 * update (C) years 2012-10-24 11:42:57 +03:00
8ad01e4aa8 * lib: threading: pre-sort the threaded results, add some more comments 2012-10-17 17:59:33 +03:00
7fe594fb2a * cosmetics 2012-09-17 17:42:56 +03:00
46f10cfde9 * refactoring: split src/ into mu/ and lib/ 2012-05-21 09:25:53 +03:00