[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#6454: 24.0.50; kill-buffer switches current-buffer
From: |
Helmut Eller |
Subject: |
bug#6454: 24.0.50; kill-buffer switches current-buffer |
Date: |
Mon, 21 Jun 2010 16:25:01 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) |
* martin rudalics [2010-06-21 12:46+0200] writes:
>> Below are two patches. The first essentially adds a save-excursion
>> around the whole function.
>>
>> The second patch adds a function run_hook_in_buffer. It iterates over
>> the functions in the hook and for each function explicitly sets the
>> buffer before calling it. I had to introduce a new macro
>> DO_HOOK_FUNCTIONS which is a big hammer for this, but I couldn't find a
>> better way.
>
> Thanks. I applied them here and will run them for a while to see
> whether and what they change. BTW run_window_scroll_functions in
> xdisp.c has
>
> run_hook_with_args_2 (Qwindow_scroll_functions, window,
> make_number (CHARPOS (startp)));
> SET_TEXT_POS_FROM_MARKER (startp, w->start);
> /* In case the hook functions switch buffers. */
> if (current_buffer != XBUFFER (w->buffer))
> set_buffer_internal_1 (XBUFFER (w->buffer));
>
> so with your patch this is probably no more needed?
>
> Now, when a function run by a hook wants to change the current buffer it
> cannot do so any more. Admittedly this was unreliable before so we
> probably won't lose much ...
My run_hook_in_buffer is (static) in buffer.c and only used by
Fkill_buffer. The refactoring in eval.c was only needed to make it
possible to iterate over the functions of a hook. It shouldn't affect
other things (modulo bugs that I introduced).
I guess unintended buffer switching could be a problem with many hooks,
but it's not clear if/when it's fix-worthy.
Helmut
- bug#6454: 24.0.50; kill-buffer switches current-buffer, (continued)
bug#6454: 24.0.50; kill-buffer switches current-buffer, martin rudalics, 2010/06/19
- bug#6454: 24.0.50; kill-buffer switches current-buffer, Helmut Eller, 2010/06/20
- bug#6454: 24.0.50; kill-buffer switches current-buffer, martin rudalics, 2010/06/20
- bug#6454: 24.0.50; kill-buffer switches current-buffer, Helmut Eller, 2010/06/20
- bug#6454: 24.0.50; kill-buffer switches current-buffer, martin rudalics, 2010/06/21
- bug#6454: 24.0.50; kill-buffer switches current-buffer,
Helmut Eller <=
- bug#6454: 24.0.50; kill-buffer switches current-buffer, martin rudalics, 2010/06/21
- bug#6454: 24.0.50; kill-buffer switches current-buffer, Helmut Eller, 2010/06/21
- bug#6454: 24.0.50; kill-buffer switches current-buffer, martin rudalics, 2010/06/21
bug#6454: 24.0.50; kill-buffer switches current-buffer, Stefan Monnier, 2010/06/24