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: Kim F . Storm
Subject: [Emacs-diffs] Changes to emacs/src/xdisp.c
Date: Thu, 13 Jan 2005 05:09:24 -0500

Index: emacs/src/xdisp.c
diff -c emacs/src/xdisp.c:1.961 emacs/src/xdisp.c:1.962
*** emacs/src/xdisp.c:1.961     Wed Jan 12 05:06:46 2005
--- emacs/src/xdisp.c   Thu Jan 13 09:36:01 2005
***************
*** 15978,16031 ****
  
  
  DEFUN ("format-mode-line", Fformat_mode_line, Sformat_mode_line,
!        1, 5, 0,
!        doc: /* Return the mode-line of selected window as a string.
! First arg FORMAT specifies the mode line format (see `mode-line-format' for
! details) to use.  Second (optional) arg WINDOW specifies the window to
! use as the context for the formatting (default is the selected window).
! 
! If third (optional) arg NO-PROPS is non-nil, the value string has
! no text properties.  The fourth (optional) arg BUFFER specifies
! which buffer to use (default, the current buffer).
  
! Fifth (optional) arg FACE specifies the face property to put
  on all characters for which no face is specified.
  t means whatever face the window's mode line currently uses
  \(either `mode-line' or `mode-line-inactive', depending).
! nil means the default is no face property.  */)
!   (format, window, no_props, buffer, face)
!      Lisp_Object format, window, no_props, buffer, face;
  {
    struct it it;
    int len;
    struct window *w;
    struct buffer *old_buffer = NULL;
!   enum face_id face_id;
  
    if (NILP (window))
      window = selected_window;
    CHECK_WINDOW (window);
    w = XWINDOW (window);
  
!   if (EQ (face, Qt))
!     face = (EQ (window, selected_window) ? Qmode_line : Qmode_line_inactive);
  
    if (!NILP (face))
      {
!       Lisp_Object tem = Fget (face, Qface);
!       if (INTEGERP (tem))
!       face_id = XINT (tem);
!       else
!       {
!         face = Qnil;
!         face_id = DEFAULT_FACE_ID;
!       }
      }
  
!   if (NILP (buffer))
!     buffer = w->buffer;
! 
!   CHECK_BUFFER (buffer);
  
    if (XBUFFER (buffer) != current_buffer)
      {
--- 15978,16032 ----
  
  
  DEFUN ("format-mode-line", Fformat_mode_line, Sformat_mode_line,
!        1, 4, 0,
!        doc: /* Format a string out of a mode line format specification.
! First arg FORMAT specifies the mode line format (see `mode-line-format'
! for details) to use.
  
! Optional second arg FACE specifies the face property to put
  on all characters for which no face is specified.
  t means whatever face the window's mode line currently uses
  \(either `mode-line' or `mode-line-inactive', depending).
! nil means the default is no face property.
! If FACE is an integer, the value string has no text properties.
! 
! Optional third and fourth args WINDOW and BUFFER specify the window
! and buffer to use as the context for the formatting (defaults
! are the selected window and the window's buffer).  */)
!   (format, face, window, buffer)
!      Lisp_Object format, face, window, buffer;
  {
    struct it it;
    int len;
    struct window *w;
    struct buffer *old_buffer = NULL;
!   int face_id = -1;
!   int no_props = INTEGERP (face);
  
    if (NILP (window))
      window = selected_window;
    CHECK_WINDOW (window);
    w = XWINDOW (window);
  
!   if (NILP (buffer))
!     buffer = w->buffer;
!   CHECK_BUFFER (buffer);
! 
!   if (NILP (format))
!     return build_string ("");
! 
!   if (no_props)
!     face = Qnil;
  
    if (!NILP (face))
      {
!       if (EQ (face, Qt))
!       face = (EQ (window, selected_window) ? Qmode_line : 
Qmode_line_inactive);
!       face_id = lookup_named_face (XFRAME (WINDOW_FRAME (w)), face, 0, 0);
      }
  
!   if (face_id < 0)
!     face_id = DEFAULT_FACE_ID;
  
    if (XBUFFER (buffer) != current_buffer)
      {
***************
*** 16033,16052 ****
        set_buffer_internal_1 (XBUFFER (buffer));
      }
  
-   if (NILP (format) || EQ (format, Qt))
-     face_id = (NILP (format)
-              ? CURRENT_MODE_LINE_FACE_ID (w)
-              : HEADER_LINE_FACE_ID);
- 
    init_iterator (&it, w, -1, -1, NULL, face_id);
  
!   if (NILP (no_props))
      {
        mode_line_string_face = face;
- 
        mode_line_string_face_prop
!       = (NILP (mode_line_string_face) ? Qnil
!          : Fcons (Qface, Fcons (mode_line_string_face, Qnil)));
  
        /* We need a dummy last element in mode_line_string_list to
         indicate we are building the propertized mode-line string.
--- 16034,16046 ----
        set_buffer_internal_1 (XBUFFER (buffer));
      }
  
    init_iterator (&it, w, -1, -1, NULL, face_id);
  
!   if (!no_props)
      {
        mode_line_string_face = face;
        mode_line_string_face_prop
!       = (NILP (face) ? Qnil : Fcons (Qface, Fcons (face, Qnil)));
  
        /* We need a dummy last element in mode_line_string_list to
         indicate we are building the propertized mode-line string.
***************
*** 16069,16075 ****
    if (old_buffer)
      set_buffer_internal_1 (old_buffer);
  
!   if (NILP (no_props))
      {
        Lisp_Object str;
        mode_line_string_list = Fnreverse (mode_line_string_list);
--- 16063,16069 ----
    if (old_buffer)
      set_buffer_internal_1 (old_buffer);
  
!   if (!no_props)
      {
        Lisp_Object str;
        mode_line_string_list = Fnreverse (mode_line_string_list);




reply via email to

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