[PATCH v2 0/4] Add refresh all buffers functionality

Ioan-Adrian Ratiu adi at adirat.com
Sat Sep 24 13:23:30 PDT 2016


Argh, so right after I posted this I found a bug: for every new window
in which you open the same notmuch-show buffer it creates a new buffer.

For example if from notmuch-search you open a thread "hello" in multiple
windows, each window will show a different "hello<1>" "hello<2>" etc
buffer instead of showing a single "hello" buffer for all windows.

I'm aware of this issue and I'll fix it in v3, however please if you
have time & feedback for v2 I'd greatly appreciate it.

Best wishes,
Ionel

On Sat, 24 Sep 2016, Ioan-Adrian Ratiu <adi at adirat.com> wrote:
> Changes since v1 (thank you Mark for your feedback):
>     * Major rewrite/simplification of the notmuch-show refresh patch to
>     support simultaneous refreshing multiple windows displaying a buffer
>     * Removed the notmuch-show-message-adjust () patch because it's not
>     needed after the above rewrite
>     * Rewrote notmuch-refresh-all-buffers () to use dolist instead of
>     while loop
>     * Minor commit message/metadata improvements
>
> This patch series adds a function to refresh all buffers, including an
> option to silently refresh them in the background i.e. to not show the
> newly refreshed buffer in any window.
>
> This is very useful for asynchronously updating all buffers when new
> mail arrives, using logic similar to the following (it's what I use):
>
> (setq process-connection-type nil)
>
> (defun done-index-sentinel (process event)
>   (notmuch-refresh-all-buffers t)
>   (message "Mail sync complete"))
>
> (defun done-sync-sentinel (process event)
>   (message "Indexing mail using notmuch")
>   (set-process-sentinel (start-process "notmuch" nil "notmuch" "new")
> 			'done-index-sentinel))
>
> (defun run-mail-sync ()
>   (message "Syncing mail in background")
>   (set-process-sentinel (start-process "mbsync" nil "mbsync" "gmail")
> 			  'done-sync-sentinel))
>
> (run-with-idle-timer 600 nil 'run-mail-sync)
>
> Ioan-Adrian Ratiu (4):
>   emacs: reuse buffer when refreshing searches
>   emacs: notmuch-show: refresh all windows showing a buffer
>   emacs: add refresh buffer optional no-display arg
>   emacs: notmuch-lib: add refresh all buffers function
>
>  emacs/notmuch-lib.el  | 22 +++++++++++++++++++---
>  emacs/notmuch-show.el | 19 +++++++++++++------
>  emacs/notmuch.el      | 24 ++++++++++++++++--------
>  3 files changed, 48 insertions(+), 17 deletions(-)
>
> -- 
> 2.10.0


More information about the notmuch mailing list