From 4bde4d4f3d859f7317ab080c9dafae56592aee06 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Mon, 28 May 2007 03:01:26 +0000 Subject: [PATCH] (redisplay_internal): Bind inhibit-point-motion-hooks to t around current_column call. --- src/ChangeLog | 5 +++++ src/xdisp.c | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 096a0eb63f2..dc8d4a38845 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2007-05-28 YAMAMOTO Mitsuharu + + * xdisp.c (redisplay_internal): Bind inhibit-point-motion-hooks to t + around current_column call. + 2007-05-24 Chong Yidong * xdisp.c (redisplay_window): If first window line is a diff --git a/src/xdisp.c b/src/xdisp.c index a50018f1596..156dc1aec6c 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -10836,7 +10836,7 @@ redisplay_internal (preserve_echo_area) int must_finish = 0; struct text_pos tlbufpos, tlendpos; int number_of_visible_frames; - int count; + int count, count1; struct frame *sf; int polling_stopped_here = 0; @@ -10974,6 +10974,10 @@ redisplay_internal (preserve_echo_area) update_mode_lines++; } + /* Avoid invocation of point motion hooks by `current_column' below. */ + count1 = SPECPDL_INDEX (); + specbind (Qinhibit_point_motion_hooks, Qt); + /* If %c is in the mode line, update it if needed. */ if (!NILP (w->column_number_displayed) /* This alternative quickly identifies a common case @@ -10985,6 +10989,8 @@ redisplay_internal (preserve_echo_area) != (int) current_column ())) /* iftc */ w->update_mode_line = Qt; + unbind_to (count1, Qnil); + FRAME_SCROLL_BOTTOM_VPOS (XFRAME (w->frame)) = -1; /* The variable buffer_shared is set in redisplay_window and -- 2.39.5