[PATCH] emacs: tweak error buffer handling

Mark Walters markwalters1009 at gmail.com
Wed Dec 26 14:27:39 PST 2012


On Tue, 25 Dec 2012, Tomi Ollila <tomi.ollila at iki.fi> wrote:
> On Sat, Dec 22 2012, Mark Walters <markwalters1009 at gmail.com> wrote:
>
>> view-mode-enter changed between emacs 23 and emacs 24: the current
>> code makes the error buffer disappear in emacs 24 on quitting it (ie
>> pressing q) but this just kills the buffer without closing the split
>> window in emacs 23.
>>
>> This patch makes the error buffer window disappear in emacs 23
>> too. Since the view-mode-enter function changed we have to test for
>> version and do the correct thing in each case.
>> ---
>>
>> This seems to work but I have only tested on 23.4 and 24.2
>
> I run emacs 23.1.1 to get the documentation of view-mode-enter
> there. So, this patch instructs to delete WINDOW when exiting
> view mode...
>
> Documentation of pop-to-buffer says:
>
> "Select buffer BUFFER-OR-NAME in some window, preferably a different one."
>
> What if pop-up-windows's value is nil -- the content of current window
> is replaced with this view stuff -- and when exiting view mode, the
> window will be deleted ? What happens with emacs 24 in this case ?

Hi 

You are quite right there are problems here under emacs 23: if you
already have a split window when the error occurs in one part the error
is displayed in the other window and then on exit that (previously
existing) window is closed.

What do people think should happen on an error? I, personally, don't
like taking over an existing window, and Jamie liked some of the errors
(eg non-fatal `locked database' tagging errors) to be shown in the
mini-buffer.

I also think it is going to be difficult to get this right: emacs 23 and
24 are different and there are also some user configuration variable
that affect what happens.

Best wishes

Mark



>
> Tomi
>
>> Best wishes
>>
>> Mark
>>
>>
>>
>>  emacs/notmuch-lib.el |    8 +++++---
>>  1 files changed, 5 insertions(+), 3 deletions(-)
>>
>> diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el
>> index 77a591d..0407f8a 100644
>> --- a/emacs/notmuch-lib.el
>> +++ b/emacs/notmuch-lib.el
>> @@ -324,15 +324,17 @@ the user dismisses it."
>>  
>>    (let ((buf (get-buffer-create "*Notmuch errors*")))
>>      (with-current-buffer buf
>> -      (view-mode-enter nil #'kill-buffer)
>> +      (pop-to-buffer buf)
>> +      (view-mode-enter (when (< emacs-major-version 24)
>> +			   (cons (selected-window) (cons nil t)))
>> +		       #'kill-buffer)
>>        (let ((inhibit-read-only t))
>>  	(goto-char (point-max))
>>  	(unless (bobp)
>>  	  (insert "\n"))
>>  	(insert msg)
>>  	(unless (bolp)
>> -	  (insert "\n"))))
>> -    (pop-to-buffer buf)))
>> +	  (insert "\n"))))))
>>  
>>  (defun notmuch-check-async-exit-status (proc msg)
>>    "If PROC exited abnormally, pop up an error buffer and signal an error.
>> -- 
>> 1.7.9.1
>>
>> _______________________________________________
>> notmuch mailing list
>> notmuch at notmuchmail.org
>> http://notmuchmail.org/mailman/listinfo/notmuch


More information about the notmuch mailing list