The crypto toggle previously worked using an argument to `notmuch-show' and various other functions and relied on killing and re-creating the notmuch-show-mode buffer. Various other pseudo-buffer-local variables were present based on an ad-hoc scheme. Replace the ad-hoc scheme with real buffer-local variables and then update `notmuch-show-refresh-view' to erase and re-paint rather than kill and re-create. Update the crypto switch accordingly. Add two other toggles: - whether non-matching messages are available, - the indentation of message contents. Both of these default to the current behaviour. A wart in the first patch is the handling of the `notmuch-show-process-crypto' default. It is set based on `notmuch-crypto-process-mime', but the users choice of setting for that variable may not have been applied at the point where `notmuch-show-process-crypto' inherits it. My inclination is to remove `notmuch-crypto-process-mime' altogether (declared it an obsolete variable) and allow users to set a default for `notmuch-show-process-crypto' directly, but that is not done in this patchset while awaiting feedback. `notmuch-crypto-process-mime' is used only in notmuch-show.el, so the setting really belongs there with an appropriate name. David Edmondson (3): emacs: Rework crypto switch toggle. emacs: Allow `notmuch-show-mode' to display only matching messages. emacs: Allow the indentation of content to be toggled. emacs/notmuch-show.el | 143 +++++++++++++++++++++++++++++-------------------- emacs/notmuch.el | 7 +-- 2 files changed, 87 insertions(+), 63 deletions(-) -- 1.7.8.3