Extract the header insertion code from mu4e--view-gnus-display-mime into
a new mu4e--view-insert-headers function.
Add a fallback label in mu4e--view-gnus-insert-header for fields not in
mu4e-header-info, such as :user-agent.
Two problems:
1) In mu4e--in-headers-context we went through the whole dance of
finding the headers buffer even if we were already there. That's
unnecessary and incidentally makes it impossible to go back from the
"Found ..." line in the headers-buf to the previous one.
Fixes#2913
2) We didn't handle the case where there _is_ no headers window, such as
when in single-window mode.
Don't make clickable links when displaying in html mode already, since
in that case the html-render handles it, and we shouldn't mess up the
display.
As discussed in issue #2094.
A new major version. Not so much has changed since the last of the 1.12
series, 1.12.15, but a bunch of small fixes and:
- updated requirements:
- require C++20
- require meson 1.3.2
- require glib & friend: 2.80
- require xapian 1.4.22
- emacs 28.1 (for mu4e)
- warn for deprecated guile (use scm)
- a number of code-cleanups since we can use C++20 now
- indexing: substantial speed-up of the clean-up phase
- scm: support the --eval command-line option
- mu4e: improve message rendering; get rid of some the unnecessary
body-part mime indication noise
- mu4e: allow including received patches when replying, see
mu4e-compose-reply-include-mime-types
NEWS.org has more details.
mu4e-compose-reply-include-mime-types specifies the mime-types for
message attachments that should be included in replies, with the default
set to "text/x-patch" -- i.e., patches are included in replies, so you
can comment on them.
As mentioned in #2896.
Remove mu4e--view-in-headers context and the functions that use it;
instead ensure that the functions (in mu4e-headers) handle any context
switching if needed.
This allows for removing a lot of mu4e-view-... wrappers for
mu4e-headers functions. function aliases are provided for backward
compat.
Make the message-rendering slightly less messy
Of course, It still is a bit messy, partly because e're bending over
gnu's message rendering backwards.
But it removes the MIME-buttons. If you want them back, use "M b".
Update the mime-handling so we can still get things even with the
MIME-buttons disabled.
With the ~--eval~ option you can evaluate an expression in mu/scm
environment. For example:
$ mu scm --eval \
'(format #t "found ~d match(es)\n" (length (mfind "hello")))'
found 7173 match(es)
Add command-line parameter and implement.
This change adds a new cleanup mode that avoids cleanup having
re-traverse the directories the index pass just looked at.
Additionally, we efficiently query the Xapian database by walking the
term list instead of doing multiple point-wise path lookups.
I'd noticed that most of my time in mu's cleanup pass consisted of
B-tree lookups in Xapian (one 8KB pread64 at a time). The point
lookups forced Xapian to traverse from the root of the B-tree to the
leaf for every single message. Additionally, in order to join on the
message path, we had to do *another* B-tree traversal after locating
each message term. Now we just walk the terms in order, which is much
more efficient, as we touch each B-tree node only once.
On my system, with 1371861 total messages, the total time of mu
index (no lazy check):
--nocleanup: 3.6s
incremental cleanup: 4.2s (0.6s in cleanup)
legacy cleanup: 5.2s (1.6s in cleanup)
With the new mode, we save 1.0s of the 1.6s cleanup, so we're
~63% faster.
But the incremental cleanup works even better with lazy checking.
If I enable --lazy-check, dirty only my INBOX (360778 messages), and
run index, I get:
--nocleanup: 0.9s
incremental cleanup: 1.1s (0.2s in cleanup)
legacy cleanup: 2.5s (1.6s in cleanup)
We save 1.4s out of 1.6s for ~88% speedup.
This change also fixes a timestamp bug: we should be storing
the *start* time of the index pass in metadata, not the end time, so
that on the next index pass, we notice messages that arrived between
the two times.
All tests pass. You can set the environment variable
MU_NO_INCREMENTAL_CLEANUP to use the legacy cleanup path instead.
mu4e-main-hide-personal-addresses can now also be number, which
indicates the maximum number of personal addresses to show in the main
view.
Remove the 'user-mail-address' tip, perhaps it annoyed more than it
helped?
Instead of macros, we using C++20 concepts to define the helpers to deal with
bitops on enum-class conveniently.
x# Please enter the commit message for your changes. Lines starting