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

Ioan-Adrian Ratiu adi at adirat.com
Sat Sep 24 14:02:57 PDT 2016


On Sat, 24 Sep 2016, Ioan-Adrian Ratiu <adi at adirat.com> wrote:
> 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.

This is really weird. I'm experiencing this bug even without my patches
so it's not a fault in my code. I've tried with both emacs 25.1 and the
latest emacs git rev, does anyone else experience this behaviour?

Am I missing something, is this an expected behaviour and not a bug?

>
> 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