1
0
mirror of https://github.com/djcb/mu.git synced 2024-07-01 08:11:06 +02:00
Commit Graph

3501 Commits

Author SHA1 Message Date
mjn
42d589e663 * mu4e: minor documentation update
Updating documentation to mention the second default keybinding for
'mu4e-headers-mark-for-something, '*', which was introduced in commit
c581468ac3.
2014-08-21 04:11:39 +02:00
Jakub Sitnicki
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
Jakub Sitnicki
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
Jakub Sitnicki
ede481d4c0 mu: Test splicing child containers when there is only one thread
This test reproduces a regression introduced by commit 97101f1f82
("mu: Prune empty container when an only child gets promoted to the
root set").

When the results of a mu-find query contain only a one thread:

$ mu find --threads --fields 'd s' ''
Sat 09 Aug 2014 07:00:00 PM CEST [mu4e] Test Message
  `-> Sat 09 Aug 2014 08:30:00 PM CEST Re: [mu4e] Test Message

... and we narrow down the query in such a way that the root message
gets excluded, then a crash occurs:

$ mu find --threads --fields 'd s' '' date:2014-08-09/20:00..2014-08-09/21:00
**
ERROR:mu-container.c:117:mu_container_append_siblings: assertion failed: (c)
Aborted (core dumped)

Reported-by: Josiah Schwab <jschwab@gmail.com>
2014-08-15 10:10:39 +02:00
djcb
d4be790445 * mu4e: minor doc fixes 2014-08-11 23:20:27 +03:00
Dirk-Jan C. Binnema
c3a7e99934 Merge pull request #459 from anadrome/master
* mu4e: lightly copyedit the documentation and docstrings
2014-08-11 23:18:30 +03:00
djcb
3f077cc86d Revert "* bump version to 0.9.9.6"
This reverts commit ab58307fea.
2014-08-11 20:43:34 +03:00
mjn
c99ccf9a19 Lightly copyedit the documentation and docstrings 2014-08-08 13:18:29 +02:00
Dirk-Jan C. Binnema
daa46612ab Merge pull request #455 from jsitnicki/thread-sort
* Thread sorting by most recent message - rewrite for speed
2014-08-03 21:37:36 +03:00
Jakub Sitnicki
32f5c8b1f6 mu: Sort containers by comparing their subtree leaders
Traverse the container tree depth first and for each container find
the node in the subtree rooted at this container which comes first in
the descending sort order. Remember it as the subtree leader. Then,
while sorting siblings, compare their subtree leaders instead of the
sibling containers themselves.

IOW, make threads containing the newest message float to the top when
sorting by date in the descending order.

There is no significant performance degradation when sorting a
mailbox with ~16k messages:

$ mu find maildir:/INBOX | wc -l
16503

Current state:

$ perf stat --event=task-clock --repeat=10 -- \
  mu find maildir:/INBOX -n 1 -t > /dev/null

 Performance counter stats for 'mu find maildir:/INBOX -n 1 -t' (10 runs):

       1231.761588      task-clock (msec)         #    0.996 CPUs utilized            ( +-  1.02% )

       1.236209133 seconds time elapsed                                          ( +-  1.08% )

With patch applied:

$ perf stat --event=task-clock --repeat=10 -- \
  mu find maildir:/INBOX -n 1 -t > /dev/null

 Performance counter stats for 'mu find maildir:/INBOX -n 1 -t' (10 runs):

       1459.883316      task-clock (msec)         #    0.998 CPUs utilized            ( +-  0.72% )

       1.462540088 seconds time elapsed                                          ( +-  0.77% )

This implements https://github.com/djcb/mu/issues/164.
2014-07-15 07:25:51 +02:00
Jakub Sitnicki
619fb86885 mu: Update container's pointer to last sibling when converting from a list 2014-07-15 07:25:51 +02:00
Jakub Sitnicki
97101f1f82 mu: Prune empty container when an only child gets promoted to the root set 2014-07-15 07:25:51 +02:00
Jakub Sitnicki
f724f4a57d mu: Consider an empty container to be less than anything else
Reasoning being that, arguably, it is the least surprising thing to do.
2014-07-15 07:25:50 +02:00
Jakub Sitnicki
dc3be515af mu: Extract function for comparing two containers 2014-07-15 07:25:50 +02:00
Jakub Sitnicki
d93b8135a6 Revert "* bugfix for issue 164"
This reverts commit c7b28419ab.

The reverted change fails to sort threads correctly when there is an
empty container, serving as a parent to orphan messages, in the thread
tree as demonstrated by the test in commit f49296759e ("tests:
threads: Test if orphan message promotes its thread").

Also, the reverted commit introduces a performance hit. The time it
takes to sort threads has increased roughly by a factor of 4.

Current state:

$ perf stat --event=task-clock --repeat=10 -- \
  mu find maildir:/INBOX -n 1 -t > /dev/null

 Performance counter stats for 'mu find maildir:/INBOX -n 1 -t' (10 runs):

       4967.692519      task-clock (msec)         #    1.000 CPUs utilized            ( +-  0.14% )

       4.969247128 seconds time elapsed                                          ( +-  0.14% )

With the reverted patch applied:

$ perf stat --event=task-clock --repeat=10 -- \
  mu find maildir:/INBOX -n 1 -t > /dev/null

 Performance counter stats for 'mu find maildir:/INBOX -n 1 -t' (10 runs):

       1231.761588      task-clock (msec)         #    0.996 CPUs utilized            ( +-  1.02% )

       1.236209133 seconds time elapsed                                          ( +-  1.08% )

The benchmark was ran on a maildir with ~16k messages:

$ mu find maildir:/INBOX | wc -l
16503
2014-07-15 07:24:56 +02:00
Jakub Sitnicki
856a651d38 tests: threads: Test if grandchild message promotes only its subthread 2014-07-15 07:24:47 +02:00
Jakub Sitnicki
cbfe28b885 tests: threads: Test if grandchild message promotes its thread 2014-07-15 07:24:21 +02:00
Jakub Sitnicki
b0357a2d7a tests: threads: Test if child message doesn't promote its thread 2014-07-15 07:23:53 +02:00
Jakub Sitnicki
f49296759e tests: threads: Test if orphan message promotes its thread 2014-07-15 07:23:27 +02:00
Jakub Sitnicki
c5d4f7f338 tests: threads: Test if 2nd child message promotes its subthread 2014-07-15 07:22:53 +02:00
Jakub Sitnicki
22927a7dcf tests: threads: Test if 1st child message promotes its thread 2014-07-15 07:22:11 +02:00
Jakub Sitnicki
80a484dc3f tests: threads: Extract helper for checking thread info for each message 2014-07-15 07:19:25 +02:00
Jakub Sitnicki
4c4b9af762 tests: threads: Extract helpers for initializing and comparing thread info 2014-07-07 06:22:31 +02:00
Jakub Sitnicki
b7efa1e3e3 tests: threads: Use struct tinfo in all tests 2014-07-07 06:22:04 +02:00
djcb
ab58307fea * bump version to 0.9.9.6 2014-06-27 22:26:22 +03:00
Dirk-Jan C. Binnema
6d84ee323b Merge pull request #445 from thierryvolpiatto/master
* mu4e: kill composition buffer when quitting from reply prompt
2014-06-27 14:21:52 +03:00
Thierry Volpiatto
6319a5d53d Merge remote-tracking branch 'refs/remotes/upstream/master' 2014-06-27 10:00:24 +02:00
Dirk-Jan C. Binnema
bbfb81d73e Merge pull request #448 from thierryvolpiatto/wash_fns
* mu4e/mu4e-view.el (mu4e-view-fill-long-lines): New, bind it to M-q.
2014-06-27 10:40:10 +03:00
Thierry Volpiatto
fc04367e2e * mu4e/mu4e-view.el: Fix whitespaces in newline in previous commit, no code--change. 2014-06-27 07:37:15 +02:00
Thierry Volpiatto
76787707fe * mu4e/mu4e-view.el (mu4e-view-fill-long-lines): New, bind it to M-q. 2014-06-27 07:28:33 +02:00
Thierry Volpiatto
c202181123 Merge remote-tracking branch 'refs/remotes/upstream/master' 2014-06-18 15:35:52 +02:00
Thierry Volpiatto
2382abddf3 * mu4e/mu4e-compose.el (mu4e~compose-handler): Kill buffer on quit, transformed in defun*. 2014-06-18 15:33:55 +02:00
djcb
9f61a0387d * mu4e: add curl list to mailing lists 2014-06-16 21:47:36 +03:00
Thierry Volpiatto
a4201fe57a * mu4e/mu4e-main.el (mu4e-main-mode): `revert-buffer-function' should be local. 2014-06-16 21:47:04 +03:00
Thierry Volpiatto
66303262cd * mu4e/mu4e-main.el (mu4e-main-mode): `revert-buffer-function' should be local. 2014-06-08 08:24:25 +02:00
Dirk-Jan C. Binnema
f37c6f082e Merge pull request #439 from dkogan/master
* mu4e: mu4e-view-search-narrow now prompts user for input
2014-06-07 02:21:17 +03:00
Dima Kogan
986740c5a0 mu4e-view-search-narrow now prompts user for input 2014-06-06 15:08:37 -07:00
Dirk-Jan C. Binnema
293282cf76 Merge pull request #435 from davidcsterratt/master
* Potential fix for issue #433: make check fails on Scientific Linux 6
2014-06-05 22:05:19 +03:00
Dirk-Jan C. Binnema
a4da062845 Merge pull request #430 from taurgal/master
* mu4e: Add revert-buffer support to the mu4e main buffer
2014-06-05 22:01:52 +03:00
David C Sterratt
f0510fbf35 Potential fix for issue #433: make check fails on Scientific Linux 6 2014-06-05 14:07:13 +01:00
djcb
a36d4bd72f * mu4e: make sure there's always an ending newline 2014-06-02 08:42:05 +03:00
djcb
e954cb127b * mu-guile: add example 2014-06-02 08:36:56 +03:00
djcb
2575e6b0a8 * mu4e: unbreak address display, removing toggling 2014-05-24 18:16:34 -07:00
djcb
b30e06ad2a * mu4e: some doc updates 2014-05-24 18:15:43 -07:00
Bosché Aurélien
fe53c5a0f8 Added a missing ";; New" comment. 2014-05-24 19:38:14 +02:00
Bosché Aurélien
fdbc1d6f9a Automatically insert a date field in the new drafts headers.
So that one can see when a draft was composed when browsing the
draft maildir (instead of getting "None" in the Date column). Then one
can sort the drafts by date.
2014-05-24 19:30:13 +02:00
Bosché Aurélien
c426bc1621 Fixed the commented example at the end of the mu4e-main.el file.
Now queuing/unqueuing should work fine in any mu4e mode if one executes
those definitions.
2014-05-24 14:44:39 +02:00
Bosché Aurélien
44d44f1a0c Added the forgotten (mu4e-main-mode) 2014-05-24 12:22:47 +02:00
Bosché Aurélien
20e8c9963e Corrected a small bug 2014-05-22 22:49:02 +02:00
Bosché Aurélien
edfe1df20a Set revert-buffer-function in the right place 2014-05-21 22:06:57 +02:00