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: Sat, 16 Apr 2005 14:19:26 -0400

Index: emacs/src/xdisp.c
diff -c emacs/src/xdisp.c:1.997 emacs/src/xdisp.c:1.998
*** emacs/src/xdisp.c:1.997     Fri Apr  8 07:45:59 2005
--- emacs/src/xdisp.c   Sat Apr 16 18:19:26 2005
***************
*** 567,578 ****
  
  static Lisp_Object Vmessages_buffer_name;
  
! /* Current, index 0, and last displayed echo area message.  Either
!    buffers from echo_buffers, or nil to indicate no message.  */
  
  Lisp_Object echo_area_buffer[2];
  
! /* The buffers referenced from echo_area_buffer.  */
  
  static Lisp_Object echo_buffer[2];
  
--- 567,587 ----
  
  static Lisp_Object Vmessages_buffer_name;
  
! /* Index 0 is the buffer that holds the current (desired) echo area message,
!    or nil if none is desired right now.
! 
!    Index 1 is the buffer that holds the previously displayed echo area 
message,
!    or nil to indicate no message.  This is normally what's on the screen now.
! 
!    These two can point to the same buffer.  That happens when the last
!    message output by the user (or made by echoing) has been displayed.  */
  
  Lisp_Object echo_area_buffer[2];
  
! /* Permanent pointers to the two buffers that are used for echo area
!    purposes.  Once the two buffers are made, and their pointers are
!    placed here, these two slots remain unchanged unless those buffers
!    need to be created afresh.  */
  
  static Lisp_Object echo_buffer[2];
  
***************
*** 7217,7226 ****
     WHICH > 0 means use echo_area_buffer[1].  If that is nil, choose a
     suitable buffer from echo_buffer[] and clear it.
  
-    If WHICH < 0, set echo_area_buffer[1] to echo_area_buffer[0], so
-    that the current message becomes the last displayed one, make
-    choose a suitable buffer for echo_area_buffer[0], and clear it.
- 
     Value is what FN returns.  */
  
  static int
--- 7226,7231 ----
***************
*** 7245,7261 ****
      this_one = 0, the_other = 1;
    else if (which > 0)
      this_one = 1, the_other = 0;
-   else
-     {
-       this_one = 0, the_other = 1;
-       clear_buffer_p = 1;
- 
-       /* We need a fresh one in case the current echo buffer equals
-        the one containing the last displayed echo area message.  */
-       if (!NILP (echo_area_buffer[this_one])
-         && EQ (echo_area_buffer[this_one], echo_area_buffer[the_other]))
-       echo_area_buffer[this_one] = Qnil;
-     }
  
    /* Choose a suitable buffer from echo_buffer[] is we don't
       have one.  */
--- 7250,7255 ----
***************
*** 7875,7881 ****
      = ((s && multibyte_p)
         || (STRINGP (string) && STRING_MULTIBYTE (string)));
  
!   with_echo_area_buffer (0, -1, set_message_1,
                         (EMACS_INT) s, string, nbytes, multibyte_p);
    message_buf_print = 0;
    help_echo_showing_p = 0;
--- 7869,7875 ----
      = ((s && multibyte_p)
         || (STRINGP (string) && STRING_MULTIBYTE (string)));
  
!   with_echo_area_buffer (0, 0, set_message_1,
                         (EMACS_INT) s, string, nbytes, multibyte_p);
    message_buf_print = 0;
    help_echo_showing_p = 0;
***************
*** 7907,7912 ****
--- 7901,7907 ----
  
    /* Insert new message at BEG.  */
    TEMP_SET_PT_BOTH (BEG, BEG_BYTE);
+   Ferase_buffer ();
  
    if (STRINGP (string))
      {
***************
*** 8123,8132 ****
    else if (!EQ (mini_window, selected_window))
      windows_or_buffers_changed++;
  
!   /* Last displayed message is now the current message.  */
    echo_area_buffer[1] = echo_area_buffer[0];
-   /* Inform read_char that we're not echoing.  */
-   echo_message_buffer = Qnil;
  
    /* Prevent redisplay optimization in redisplay_internal by resetting
       this_line_start_pos.  This is done because the mini-buffer now
--- 8118,8125 ----
    else if (!EQ (mini_window, selected_window))
      windows_or_buffers_changed++;
  
!   /* The current message is now also the last one displayed.  */
    echo_area_buffer[1] = echo_area_buffer[0];
  
    /* Prevent redisplay optimization in redisplay_internal by resetting
       this_line_start_pos.  This is done because the mini-buffer now




reply via email to

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