emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/xdisp.c


From: Richard M. Stallman
Subject: [Emacs-diffs] Changes to emacs/src/xdisp.c
Date: Tue, 23 Jul 2002 15:31:18 -0400

Index: emacs/src/xdisp.c
diff -c emacs/src/xdisp.c:1.772 emacs/src/xdisp.c:1.773
*** emacs/src/xdisp.c:1.772     Tue Jul 23 00:48:25 2002
--- emacs/src/xdisp.c   Tue Jul 23 15:31:18 2002
***************
*** 690,695 ****
--- 690,714 ----
    MOVE_NEWLINE_OR_CR
  };
  
+ /* This counter is used to clear the face cache every once in a while
+    in redisplay_internal.  It is incremented for each redisplay.
+    Every CLEAR_FACE_CACHE_COUNT full redisplays, the face cache is
+    cleared.  */
+ 
+ #define CLEAR_FACE_CACHE_COUNT        500
+ static int clear_face_cache_count;
+ 
+ /* Record the previous terminal frame we displayed.  */
+ 
+ static struct frame *previous_terminal_frame;
+ 
+ /* Non-zero while redisplay_internal is in progress.  */
+ 
+ int redisplaying_p;
+ 
+ /* Non-zero while redisplay is updating the display.  */
+ 
+ int redisplay_updating_p;
  
  
  /* Function prototypes.  */
***************
*** 1503,1510 ****
  
    /* If face attributes have been changed since the last redisplay,
       free realized faces now because they depend on face definitions
!      that might have changed.  */
!   if (face_change_count)
      {
        face_change_count = 0;
        free_all_realized_faces (Qnil);
--- 1522,1530 ----
  
    /* If face attributes have been changed since the last redisplay,
       free realized faces now because they depend on face definitions
!      that might have changed.  Don't free faces while there might be 
!      desired matrices pending which reference these faces.  */
!   if (face_change_count && !redisplay_updating_p)
      {
        face_change_count = 0;
        free_all_realized_faces (Qnil);
***************
*** 8288,8310 ****
  #endif /* GLYPH_DEBUG */
  
  
- /* This counter is used to clear the face cache every once in a while
-    in redisplay_internal.  It is incremented for each redisplay.
-    Every CLEAR_FACE_CACHE_COUNT full redisplays, the face cache is
-    cleared.  */
- 
- #define CLEAR_FACE_CACHE_COUNT        500
- static int clear_face_cache_count;
- 
- /* Record the previous terminal frame we displayed.  */
- 
- static struct frame *previous_terminal_frame;
- 
- /* Non-zero while redisplay_internal is in progress.  */
- 
- int redisplaying_p;
- 
- 
  /* Value is non-zero if all changes in window W, which displays
     current_buffer, are in the text between START and END.  START is a
     buffer position, END is given as a distance from Z.  Used in
--- 8308,8313 ----
***************
*** 8515,8520 ****
--- 8518,8524 ----
   retry:
    pause = 0;
    reconsider_clip_changes (w, current_buffer);
+   redisplay_updating_p = 0;
  
    /* If new fonts have been loaded that make a glyph matrix adjustment
       necessary, do it.  */
***************
*** 9003,9009 ****
  
        /* Compare desired and current matrices, perform output.  */
      update:
! 
        /* If fonts changed, display again.  */
        if (fonts_changed_p)
        goto retry;
--- 9007,9014 ----
  
        /* Compare desired and current matrices, perform output.  */
      update:
!       redisplay_updating_p = 1;
!       
        /* If fonts changed, display again.  */
        if (fonts_changed_p)
        goto retry;
***************
*** 9128,9135 ****
    if (windows_or_buffers_changed && !pause)
      goto retry;
  
!  end_of_redisplay:;
! 
    unbind_to (count, Qnil);
  }
  
--- 9133,9140 ----
    if (windows_or_buffers_changed && !pause)
      goto retry;
  
!  end_of_redisplay:
!   redisplay_updating_p = 0;
    unbind_to (count, Qnil);
  }
  



reply via email to

[Prev in Thread] Current Thread [Next in Thread]