]> code.delx.au - gnu-emacs/commitdiff
(redisplay_internal): Bind inhibit-point-motion-hooks to t
authorYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Mon, 28 May 2007 03:01:26 +0000 (03:01 +0000)
committerYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Mon, 28 May 2007 03:01:26 +0000 (03:01 +0000)
around current_column call.

src/ChangeLog
src/xdisp.c

index 096a0eb63f2f7a2d0b1047ee4baf432f5961474b..dc8d4a38845f1957029dba45b3eb60c80d1c34c6 100644 (file)
@@ -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
index a50018f159646fdd56a5d875ed2f9f2914fd8f6b..156dc1aec6c83783e36feedc99a27c2689e03a15 100644 (file)
@@ -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