summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>2007-05-28 03:01:26 +0000
committerYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>2007-05-28 03:01:26 +0000
commit4bde4d4f3d859f7317ab080c9dafae56592aee06 (patch)
treed325aeb3b385bc21741e3fd1524429788c4948c4 /src
parent4a5084796e38f2634fa17e010f5a8042061d2197 (diff)
(redisplay_internal): Bind inhibit-point-motion-hooks to t
around current_column call.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/xdisp.c8
2 files changed, 12 insertions, 1 deletions
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 <mituharu@math.s.chiba-u.ac.jp>
+
+ * xdisp.c (redisplay_internal): Bind inhibit-point-motion-hooks to t
+ around current_column call.
+
2007-05-24 Chong Yidong <cyd@stupidchicken.com>
* 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