> You can see that both calls have come via redisplay(); > the difference is > their callers. (Of course both runs of the hook are > unnecessary, they have > been carried out because windows_or_buffers_changed = 1.) > > Normally, windows_or_buffers_changed gets cleared near the > end of redisplay_internal. Did the first call to > redisplay_internal do that? > If not, why not? > > If it did that, where did it get set again before the second > call to redisplay?
Well, debugging gets a bit weird here. I had to debug it from a second X session, rather than in the same X session in which the debugged emacs is displayed. Otherwise, having the watchpoint seemed to interfere with the sequence of events somehow, and the first break in update_menu_bar() never occurred. Anyhow, with the usual breakpoints wherever the hook is run, and mouse-1 at point in the selected-frame where the buffer is shown in the other frame, I get: (gdb) watch windows_or_buffers_changed Hardware watchpoint 6: windows_or_buffers_changed (gdb) c Continuing. Hardware watchpoint 6: windows_or_buffers_changed Old value = 0 New value = 1 0x001b0868 in modify_overlay (buf=0x481c00, start=27, end=27) at buffer.c:3654 (gdb) list 3649 we must do other windows. */ 3650 if (buf != XBUFFER (XWINDOW (selected_window)->buffer)) 3651 windows_or_buffers_changed = 1; 3652 /* If multiple windows show this buffer, we must do other windows. */ 3653 else if (buffer_shared > 1) 3654 windows_or_buffers_changed = 1; 3655 /* If we modify an overlay at the end of the buffer, we cannot 3656 be sure that window end is still valid. */ 3657 else if (end >= ZV && start <= ZV) 3658 windows_or_buffers_changed = 1; (gdb) p buffer_shared $1 = 2 (gdb) where #0 0x001b0868 in modify_overlay (buf=0x481c00, start=27, end=27) at buffer.c:3654 #1 0x001b0f9c in Fmove_overlay (overlay=5796370, beg=216, end=216, buffer=4725764) at buffer.c:3744 #2 0x0024ab58 in Ffuncall (nargs=4, args=0xffbedaf8) at eval.c:2992 #3 0x002a2cb8 in Fbyte_code (bytestr=3724931, vector=3724948, maxdepth=32) at bytecode.c:679 #4 0x0024b5b8 in funcall_lambda (fun=3724876, nargs=4, arg_vector=0xffbeddc4) at eval.c:3169 #5 0x0024ad30 in Ffuncall (nargs=5, args=0xffbeddc0) at eval.c:3028 #6 0x002a2cb8 in Fbyte_code (bytestr=3725379, vector=3725396, maxdepth=48) at bytecode.c:679 #7 0x0024b5b8 in funcall_lambda (fun=3725324, nargs=2, arg_vector=0xffbee094) at eval.c:3169 #8 0x0024ad30 in Ffuncall (nargs=3, args=0xffbee090) at eval.c:3028 #9 0x002a2cb8 in Fbyte_code (bytestr=3724235, vector=3724252, maxdepth=40) at bytecode.c:679 #10 0x0024b5b8 in funcall_lambda (fun=3724196, nargs=1, arg_vector=0xffbee384) at eval.c:3169 #11 0x0024ad30 in Ffuncall (nargs=2, args=0xffbee380) at eval.c:3028 #12 0x00243528 in Fcall_interactively (function=7566081, record_flag=4687873, keys=4747268) at callint.c:880 #13 0x00190a7c in Fcommand_execute (cmd=7566081, record_flag=4687873, keys=4687873, special=4687873) at keyboard.c:9797 #14 0x0017b290 in command_loop_1 () at keyboard.c:1790 #15 0x00246eb4 in internal_condition_case (bfun=0x17910c <command_loop_1>, handlers=4752009, hfun=0x178734 <cmd_error>) at eval.c:1469 #16 0x00178dd8 in command_loop_2 () at keyboard.c:1326 #17 0x00246644 in internal_catch (tag=4746241, func=0x178dac <command_loop_2>, arg=4687873) at eval.c:1210 #18 0x00178d50 in command_loop () at keyboard.c:1305 #19 0x00178280 in recursive_edit_1 () at keyboard.c:1003 #20 0x001784e0 in Frecursive_edit () at keyboard.c:1064 #21 0x001760a4 in main (argc=2, argv=0xffbeecb4) at emacs.c:1794 Lisp Backtrace: "move-overlay" (0x587212) "mouse-move-drag-overlay" (0x587212) "mouse-drag-track" (0x67e525) "mouse-drag-region" (0x67e525) "call-interactively" (0x737301) (gdb) c Continuing. Breakpoint 5, update_menu_bar (f=0x6d9200, save_match_data=0, hooks_run=0) at xdisp.c:9195 (gdb) where #0 update_menu_bar (f=0x6d9200, save_match_data=0, hooks_run=0) at xdisp.c:9195 #1 0x000806ac in prepare_menu_bars () at xdisp.c:9073 #2 0x00085810 in redisplay_internal (preserve_echo_area=1) at xdisp.c:10902 #3 0x0008745c in redisplay_preserve_echo_area (from_where=6) at xdisp.c:11512 #4 0x001809cc in tracking_off (old_value=4687873) at keyboard.c:3474 #5 0x0024bf70 in unbind_to (count=27, value=4687873) at eval.c:3337 #6 0x00180a80 in Ftrack_mouse (args=3725805) at keyboard.c:3499 #7 0x00248fe8 in Feval (form=3725797) at eval.c:2260 #8 0x00244430 in Fprogn (args=3725789) at eval.c:435 #9 0x0024b554 in funcall_lambda (fun=3725773, nargs=0, arg_vector=0xffbeddc4) at eval.c:3162 #10 0x0024ae14 in Ffuncall (nargs=1, args=0xffbeddc0) at eval.c:3039 #11 0x002a2cb8 in Fbyte_code (bytestr=3725379, vector=3725396, maxdepth=48) at bytecode.c:679 #12 0x0024b5b8 in funcall_lambda (fun=3725324, nargs=2, arg_vector=0xffbee094) at eval.c:3169 #13 0x0024ad30 in Ffuncall (nargs=3, args=0xffbee090) at eval.c:3028 #14 0x002a2cb8 in Fbyte_code (bytestr=3724235, vector=3724252, maxdepth=40) at bytecode.c:679 #15 0x0024b5b8 in funcall_lambda (fun=3724196, nargs=1, arg_vector=0xffbee384) at eval.c:3169 #16 0x0024ad30 in Ffuncall (nargs=2, args=0xffbee380) at eval.c:3028 #17 0x00243528 in Fcall_interactively (function=7566081, record_flag=4687873, keys=4747268) at callint.c:880 #18 0x00190a7c in Fcommand_execute (cmd=7566081, record_flag=4687873, keys=4687873, special=4687873) at keyboard.c:9797 #19 0x0017b290 in command_loop_1 () at keyboard.c:1790 #20 0x00246eb4 in internal_condition_case (bfun=0x17910c <command_loop_1>, handlers=4752009, hfun=0x178734 <cmd_error>) at eval.c:1469 #21 0x00178dd8 in command_loop_2 () at keyboard.c:1326 #22 0x00246644 in internal_catch (tag=4746241, func=0x178dac <command_loop_2>, arg=4687873) at eval.c:1210 #23 0x00178d50 in command_loop () at keyboard.c:1305 #24 0x00178280 in recursive_edit_1 () at keyboard.c:1003 #25 0x001784e0 in Frecursive_edit () at keyboard.c:1064 #26 0x001760a4 in main (argc=2, argv=0xffbeecb4) at emacs.c:1794 Lisp Backtrace: "track-mouse" (0x38d9ed) 0x38d9cd Lisp type 5 "mouse-drag-track" (0x67e525) "mouse-drag-region" (0x67e525) "call-interactively" (0x737301) (gdb) c Continuing. Breakpoint 5, update_menu_bar (f=0x6d9200, save_match_data=0, hooks_run=0) at xdisp.c:9195 (gdb) where #0 update_menu_bar (f=0x6d9200, save_match_data=0, hooks_run=0) at xdisp.c:9195 #1 0x000806ac in prepare_menu_bars () at xdisp.c:9073 #2 0x00085810 in redisplay_internal (preserve_echo_area=0) at xdisp.c:10902 #3 0x00083ecc in redisplay () at xdisp.c:10491 #4 0x0017dba4 in read_char (commandflag=1, nmaps=2, maps=0xffbee3d8, prev_event=4687873, used_mouse_menu=0xffbee52c, end_time=0x0) at keyboard.c:2555 #5 0x0018dd50 in read_key_sequence (keybuf=0xffbee6d8, bufsize=30, prompt=4687873, dont_downcase_last=0, can_return_switch_frame=1, fix_current_buffer=1) at keyboard.c:8902 #6 0x00179668 in command_loop_1 () at keyboard.c:1535 #7 0x00246eb4 in internal_condition_case (bfun=0x17910c <command_loop_1>, handlers=4752009, hfun=0x178734 <cmd_error>) at eval.c:1469 #8 0x00178dd8 in command_loop_2 () at keyboard.c:1326 #9 0x00246644 in internal_catch (tag=4746241, func=0x178dac <command_loop_2>, arg=4687873) at eval.c:1210 #10 0x00178d50 in command_loop () at keyboard.c:1305 #11 0x00178280 in recursive_edit_1 () at keyboard.c:1003 #12 0x001784e0 in Frecursive_edit () at keyboard.c:1064 #13 0x001760a4 in main (argc=2, argv=0xffbeecb4) at emacs.c:1794 (gdb) c Continuing. Hardware watchpoint 6: windows_or_buffers_changed Old value = 1 New value = 0 redisplay_internal (preserve_echo_area=0) at xdisp.c:11409 (gdb) where #0 redisplay_internal (preserve_echo_area=0) at xdisp.c:11409 #1 0x00083ecc in redisplay () at xdisp.c:10491 #2 0x0017dba4 in read_char (commandflag=1, nmaps=2, maps=0xffbee3d8, prev_event=4687873, used_mouse_menu=0xffbee52c, end_time=0x0) at keyboard.c:2555 #3 0x0018dd50 in read_key_sequence (keybuf=0xffbee6d8, bufsize=30, prompt=4687873, dont_downcase_last=0, can_return_switch_frame=1, fix_current_buffer=1) at keyboard.c:8902 #4 0x00179668 in command_loop_1 () at keyboard.c:1535 #5 0x00246eb4 in internal_condition_case (bfun=0x17910c <command_loop_1>, handlers=4752009, hfun=0x178734 <cmd_error>) at eval.c:1469 #6 0x00178dd8 in command_loop_2 () at keyboard.c:1326 #7 0x00246644 in internal_catch (tag=4746241, func=0x178dac <command_loop_2>, arg=4687873) at eval.c:1210 #8 0x00178d50 in command_loop () at keyboard.c:1305 #9 0x00178280 in recursive_edit_1 () at keyboard.c:1003 #10 0x001784e0 in Frecursive_edit () at keyboard.c:1064 #11 0x001760a4 in main (argc=2, argv=0xffbeecb4) at emacs.c:1794 (gdb) c Continuing. The first break in update_menu_bar() isn't quite the same C or Lisp backtrace as before, although possibly that is because the sequence of events was slightly different (since I did not have to move the mouse from the debugged emacs to the debugging emacs). Otherwise, it seems the same as before where the sequence is (a) set windows_or_buffers_changed while evaling Lisp, (b) run hook while redisplay while tracking the mouse, (c) run hook while redisplay at top-level, (d) reset windows_or_buffers_changed while redisplay at top-level. In trying to anwswer your question as to why redisplay_internal() did not reset windows_or_buffers_changed, I tried breakpoints in various places in redisplay_internal() and redisplay(). This proved difficult, as it was not easy to put a breakpoint where it would not repeatedly be triggered. In the end, I did not use any extra breakpoints, but the same breakpoints and mouse-1 as with the above backtrace gave me: Hardware watchpoint 6: windows_or_buffers_changed Old value = 0 New value = 1 0x001b0868 in modify_overlay (buf=0x481c00, start=34, end=34) at buffer.c:3654 (gdb) list 3649 we must do other windows. */ 3650 if (buf != XBUFFER (XWINDOW (selected_window)->buffer)) 3651 windows_or_buffers_changed = 1; 3652 /* If multiple windows show this buffer, we must do other windows. */ 3653 else if (buffer_shared > 1) 3654 windows_or_buffers_changed = 1; 3655 /* If we modify an overlay at the end of the buffer, we cannot 3656 be sure that window end is still valid. */ 3657 else if (end >= ZV && start <= ZV) 3658 windows_or_buffers_changed = 1; (gdb) p buffer_shared $5 = 2 (gdb) where #0 0x001b0868 in modify_overlay (buf=0x481c00, start=34, end=34) at buffer.c:3654 #1 0x001b0f9c in Fmove_overlay (overlay=5796370, beg=272, end=272, buffer=4725764) at buffer.c:3744 #2 0x0024ab58 in Ffuncall (nargs=4, args=0xffbedaf8) at eval.c:2992 #3 0x002a2cb8 in Fbyte_code (bytestr=3724931, vector=3724948, maxdepth=32) at bytecode.c:679 #4 0x0024b5b8 in funcall_lambda (fun=3724876, nargs=4, arg_vector=0xffbeddc4) at eval.c:3169 #5 0x0024ad30 in Ffuncall (nargs=5, args=0xffbeddc0) at eval.c:3028 #6 0x002a2cb8 in Fbyte_code (bytestr=3725379, vector=3725396, maxdepth=48) at bytecode.c:679 #7 0x0024b5b8 in funcall_lambda (fun=3725324, nargs=2, arg_vector=0xffbee094) at eval.c:3169 #8 0x0024ad30 in Ffuncall (nargs=3, args=0xffbee090) at eval.c:3028 #9 0x002a2cb8 in Fbyte_code (bytestr=3724235, vector=3724252, maxdepth=40) at bytecode.c:679 #10 0x0024b5b8 in funcall_lambda (fun=3724196, nargs=1, arg_vector=0xffbee384) at eval.c:3169 #11 0x0024ad30 in Ffuncall (nargs=2, args=0xffbee380) at eval.c:3028 #12 0x00243528 in Fcall_interactively (function=7566081, record_flag=4687873, keys=4747268) at callint.c:880 #13 0x00190a7c in Fcommand_execute (cmd=7566081, record_flag=4687873, keys=4687873, special=4687873) at keyboard.c:9797 #14 0x0017b290 in command_loop_1 () at keyboard.c:1790 #15 0x00246eb4 in internal_condition_case (bfun=0x17910c <command_loop_1>, handlers=4752009, hfun=0x178734 <cmd_error>) at eval.c:1469 #16 0x00178dd8 in command_loop_2 () at keyboard.c:1326 #17 0x00246644 in internal_catch (tag=4746241, func=0x178dac <command_loop_2>, arg=4687873) at eval.c:1210 #18 0x00178d50 in command_loop () at keyboard.c:1305 #19 0x00178280 in recursive_edit_1 () at keyboard.c:1003 #20 0x001784e0 in Frecursive_edit () at keyboard.c:1064 #21 0x001760a4 in main (argc=2, argv=0xffbeecb4) at emacs.c:1794 Lisp Backtrace: "move-overlay" (0x587212) "mouse-move-drag-overlay" (0x587212) "mouse-drag-track" (0x553c05) "mouse-drag-region" (0x553c05) "call-interactively" (0x737301) (gdb) c Continuing. Breakpoint 5, update_menu_bar (f=0x6d9200, save_match_data=0, hooks_run=0) at xdisp.c:9195 (gdb) where #0 update_menu_bar (f=0x6d9200, save_match_data=0, hooks_run=0) at xdisp.c:9195 #1 0x000806ac in prepare_menu_bars () at xdisp.c:9073 #2 0x00085810 in redisplay_internal (preserve_echo_area=1) at xdisp.c:10902 #3 0x0008745c in redisplay_preserve_echo_area (from_where=6) at xdisp.c:11512 #4 0x001809cc in tracking_off (old_value=4687873) at keyboard.c:3474 #5 0x0024bf70 in unbind_to (count=27, value=4687873) at eval.c:3337 #6 0x00180a80 in Ftrack_mouse (args=3725805) at keyboard.c:3499 #7 0x00248fe8 in Feval (form=3725797) at eval.c:2260 #8 0x00244430 in Fprogn (args=3725789) at eval.c:435 #9 0x0024b554 in funcall_lambda (fun=3725773, nargs=0, arg_vector=0xffbeddc4) at eval.c:3162 #10 0x0024ae14 in Ffuncall (nargs=1, args=0xffbeddc0) at eval.c:3039 #11 0x002a2cb8 in Fbyte_code (bytestr=3725379, vector=3725396, maxdepth=48) at bytecode.c:679 #12 0x0024b5b8 in funcall_lambda (fun=3725324, nargs=2, arg_vector=0xffbee094) at eval.c:3169 #13 0x0024ad30 in Ffuncall (nargs=3, args=0xffbee090) at eval.c:3028 #14 0x002a2cb8 in Fbyte_code (bytestr=3724235, vector=3724252, maxdepth=40) at bytecode.c:679 #15 0x0024b5b8 in funcall_lambda (fun=3724196, nargs=1, arg_vector=0xffbee384) at eval.c:3169 #16 0x0024ad30 in Ffuncall (nargs=2, args=0xffbee380) at eval.c:3028 #17 0x00243528 in Fcall_interactively (function=7566081, record_flag=4687873, keys=4747268) at callint.c:880 #18 0x00190a7c in Fcommand_execute (cmd=7566081, record_flag=4687873, keys=4687873, special=4687873) at keyboard.c:9797 #19 0x0017b290 in command_loop_1 () at keyboard.c:1790 #20 0x00246eb4 in internal_condition_case (bfun=0x17910c <command_loop_1>, handlers=4752009, hfun=0x178734 <cmd_error>) at eval.c:1469 #21 0x00178dd8 in command_loop_2 () at keyboard.c:1326 #22 0x00246644 in internal_catch (tag=4746241, func=0x178dac <command_loop_2>, arg=4687873) at eval.c:1210 #23 0x00178d50 in command_loop () at keyboard.c:1305 #24 0x00178280 in recursive_edit_1 () at keyboard.c:1003 #25 0x001784e0 in Frecursive_edit () at keyboard.c:1064 #26 0x001760a4 in main (argc=2, argv=0xffbeecb4) at emacs.c:1794 Lisp Backtrace: "track-mouse" (0x38d9ed) 0x38d9cd Lisp type 5 "mouse-drag-track" (0x553c05) "mouse-drag-region" (0x553c05) "call-interactively" (0x737301) (gdb) c Continuing. Hardware watchpoint 6: windows_or_buffers_changed Old value = 1 New value = 0 redisplay_internal (preserve_echo_area=1) at xdisp.c:11409 (gdb) where #0 redisplay_internal (preserve_echo_area=1) at xdisp.c:11409 #1 0x0008745c in redisplay_preserve_echo_area (from_where=6) at xdisp.c:11512 #2 0x001809cc in tracking_off (old_value=4687873) at keyboard.c:3474 #3 0x0024bf70 in unbind_to (count=27, value=4687873) at eval.c:3337 #4 0x00180a80 in Ftrack_mouse (args=3725805) at keyboard.c:3499 #5 0x00248fe8 in Feval (form=3725797) at eval.c:2260 #6 0x00244430 in Fprogn (args=3725789) at eval.c:435 #7 0x0024b554 in funcall_lambda (fun=3725773, nargs=0, arg_vector=0xffbeddc4) at eval.c:3162 #8 0x0024ae14 in Ffuncall (nargs=1, args=0xffbeddc0) at eval.c:3039 #9 0x002a2cb8 in Fbyte_code (bytestr=3725379, vector=3725396, maxdepth=48) at bytecode.c:679 #10 0x0024b5b8 in funcall_lambda (fun=3725324, nargs=2, arg_vector=0xffbee094) at eval.c:3169 #11 0x0024ad30 in Ffuncall (nargs=3, args=0xffbee090) at eval.c:3028 #12 0x002a2cb8 in Fbyte_code (bytestr=3724235, vector=3724252, maxdepth=40) at bytecode.c:679 #13 0x0024b5b8 in funcall_lambda (fun=3724196, nargs=1, arg_vector=0xffbee384) at eval.c:3169 #14 0x0024ad30 in Ffuncall (nargs=2, args=0xffbee380) at eval.c:3028 #15 0x00243528 in Fcall_interactively (function=7566081, record_flag=4687873, keys=4747268) at callint.c:880 #16 0x00190a7c in Fcommand_execute (cmd=7566081, record_flag=4687873, keys=4687873, special=4687873) at keyboard.c:9797 #17 0x0017b290 in command_loop_1 () at keyboard.c:1790 #18 0x00246eb4 in internal_condition_case (bfun=0x17910c <command_loop_1>, handlers=4752009, hfun=0x178734 <cmd_error>) at eval.c:1469 #19 0x00178dd8 in command_loop_2 () at keyboard.c:1326 #20 0x00246644 in internal_catch (tag=4746241, func=0x178dac <command_loop_2>, arg=4687873) at eval.c:1210 #21 0x00178d50 in command_loop () at keyboard.c:1305 #22 0x00178280 in recursive_edit_1 () at keyboard.c:1003 #23 0x001784e0 in Frecursive_edit () at keyboard.c:1064 #24 0x001760a4 in main (argc=2, argv=0xffbeecb4) at emacs.c:1794 Lisp Backtrace: "track-mouse" (0x38d9ed) 0x38d9cd Lisp type 5 "mouse-drag-track" (0x553c05) "mouse-drag-region" (0x553c05) "call-interactively" (0x737301) (gdb) c Continuing. Hardware watchpoint 6: windows_or_buffers_changed Old value = 0 New value = 1 0x001b0868 in modify_overlay (buf=0x481c00, start=34, end=34) at buffer.c:3654 (gdb) where #0 0x001b0868 in modify_overlay (buf=0x481c00, start=34, end=34) at buffer.c:3654 #1 0x001b14b0 in Fdelete_overlay (overlay=5796370) at buffer.c:3818 #2 0x0024aaa4 in Ffuncall (nargs=2, args=0xffbeddc0) at eval.c:2982 #3 0x002a2cb8 in Fbyte_code (bytestr=3725379, vector=3725396, maxdepth=48) at bytecode.c:679 #4 0x0024b5b8 in funcall_lambda (fun=3725324, nargs=2, arg_vector=0xffbee094) at eval.c:3169 #5 0x0024ad30 in Ffuncall (nargs=3, args=0xffbee090) at eval.c:3028 #6 0x002a2cb8 in Fbyte_code (bytestr=3724235, vector=3724252, maxdepth=40) at bytecode.c:679 #7 0x0024b5b8 in funcall_lambda (fun=3724196, nargs=1, arg_vector=0xffbee384) at eval.c:3169 #8 0x0024ad30 in Ffuncall (nargs=2, args=0xffbee380) at eval.c:3028 #9 0x00243528 in Fcall_interactively (function=7566081, record_flag=4687873, keys=4747268) at callint.c:880 #10 0x00190a7c in Fcommand_execute (cmd=7566081, record_flag=4687873, keys=4687873, special=4687873) at keyboard.c:9797 #11 0x0017b290 in command_loop_1 () at keyboard.c:1790 #12 0x00246eb4 in internal_condition_case (bfun=0x17910c <command_loop_1>, handlers=4752009, hfun=0x178734 <cmd_error>) at eval.c:1469 #13 0x00178dd8 in command_loop_2 () at keyboard.c:1326 #14 0x00246644 in internal_catch (tag=4746241, func=0x178dac <command_loop_2>, arg=4687873) at eval.c:1210 #15 0x00178d50 in command_loop () at keyboard.c:1305 #16 0x00178280 in recursive_edit_1 () at keyboard.c:1003 #17 0x001784e0 in Frecursive_edit () at keyboard.c:1064 #18 0x001760a4 in main (argc=2, argv=0xffbeecb4) at emacs.c:1794 Lisp Backtrace: "delete-overlay" (0x587212) "mouse-drag-track" (0x553c05) "mouse-drag-region" (0x553c05) "call-interactively" (0x737301) (gdb) c Continuing. Breakpoint 5, update_menu_bar (f=0x6d9200, save_match_data=0, hooks_run=0) at xdisp.c:9195 (gdb) where #0 update_menu_bar (f=0x6d9200, save_match_data=0, hooks_run=0) at xdisp.c:9195 #1 0x000806ac in prepare_menu_bars () at xdisp.c:9073 #2 0x00085810 in redisplay_internal (preserve_echo_area=0) at xdisp.c:10902 #3 0x00083ecc in redisplay () at xdisp.c:10491 #4 0x0017dba4 in read_char (commandflag=1, nmaps=2, maps=0xffbee3d8, prev_event=4687873, used_mouse_menu=0xffbee52c, end_time=0x0) at keyboard.c:2555 #5 0x0018dd50 in read_key_sequence (keybuf=0xffbee6d8, bufsize=30, prompt=4687873, dont_downcase_last=0, can_return_switch_frame=1, fix_current_buffer=1) at keyboard.c:8902 #6 0x00179668 in command_loop_1 () at keyboard.c:1535 #7 0x00246eb4 in internal_condition_case (bfun=0x17910c <command_loop_1>, handlers=4752009, hfun=0x178734 <cmd_error>) at eval.c:1469 #8 0x00178dd8 in command_loop_2 () at keyboard.c:1326 #9 0x00246644 in internal_catch (tag=4746241, func=0x178dac <command_loop_2>, arg=4687873) at eval.c:1210 #10 0x00178d50 in command_loop () at keyboard.c:1305 #11 0x00178280 in recursive_edit_1 () at keyboard.c:1003 #12 0x001784e0 in Frecursive_edit () at keyboard.c:1064 #13 0x001760a4 in main (argc=2, argv=0xffbeecb4) at emacs.c:1794 (gdb) c Continuing. Hardware watchpoint 6: windows_or_buffers_changed Old value = 1 New value = 0 redisplay_internal (preserve_echo_area=0) at xdisp.c:11409 (gdb) where #0 redisplay_internal (preserve_echo_area=0) at xdisp.c:11409 #1 0x00083ecc in redisplay () at xdisp.c:10491 #2 0x0017dba4 in read_char (commandflag=1, nmaps=2, maps=0xffbee3d8, prev_event=4687873, used_mouse_menu=0xffbee52c, end_time=0x0) at keyboard.c:2555 #3 0x0018dd50 in read_key_sequence (keybuf=0xffbee6d8, bufsize=30, prompt=4687873, dont_downcase_last=0, can_return_switch_frame=1, fix_current_buffer=1) at keyboard.c:8902 #4 0x00179668 in command_loop_1 () at keyboard.c:1535 #5 0x00246eb4 in internal_condition_case (bfun=0x17910c <command_loop_1>, handlers=4752009, hfun=0x178734 <cmd_error>) at eval.c:1469 #6 0x00178dd8 in command_loop_2 () at keyboard.c:1326 #7 0x00246644 in internal_catch (tag=4746241, func=0x178dac <command_loop_2>, arg=4687873) at eval.c:1210 #8 0x00178d50 in command_loop () at keyboard.c:1305 #9 0x00178280 in recursive_edit_1 () at keyboard.c:1003 #10 0x001784e0 in Frecursive_edit () at keyboard.c:1064 #11 0x001760a4 in main (argc=2, argv=0xffbeecb4) at emacs.c:1794 (gdb) c This time, the sequence is (a) set windows_or_buffers_changed while evaling Lisp, (b) run hook while redisplay while tracking the mouse, (c) reset windows_or_buffers_changed while tracking the mouse, (d) set windows_or_buffers_changed, (e) run hook while redisplay at top-level. Does this help any? _______________________________________________ emacs-pretest-bug mailing list emacs-pretest-bug@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug