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.
New action mu4e-action-retag-message that reads tag changes from the user and
modifies the corresponding header (X-Keywords, X-Label, etc) on the message.
Now, mark commands with region on headers view,
target of the first email is reflected in the rest of email.
```
Date From Subject
--------------------------------------------
2012-12-05 Github ...
2012-12-05 Yahoo! ...
2012-12-05 Work ...
refiling to
Date From Subject
--------------------------------------------
r -> /github 2012-12-05 Github ...
r -> /github 2012-12-05 Yahoo! ...
r -> /github 2012-12-05 Work ...
```
In this patch, change target in region email.
```
Date From Subject
--------------------------------------------
r -> /github 2012-12-05 Github ...
r -> /yahoo 2012-12-05 Yahoo! ...
r -> /work 2012-12-05 Work ...
```
Autoload functions `mu4e' and `mu4e~compose-mail' and the definition of
the mail-user-agent `mu4e-user-agent'. The last to are required so
that `compose-mail' can be used without explicitly loading mu4e.
Also require `mu4e' in mu4e-compose.el (after providing mu4e-compose
to avoid a circular dependencies). This is required because the
autoload definitions only cause mu4e-compose but not mu4e to be loaded
when using `compose-mail', but if mu4e isn't loaded various handlers
are not loaded (and possibly there are other problems if mu4e is not
fully loaded).
Without this `mail-user-agent' cannot be set to `mu4e-user-agent'
through customize, as the custom type expects a function. Not sure
whether this function is actually ever used; if it is then returning
the symbol is probably the correct thing to do, as other such
functions suggest.