1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-31 09:20:54 -08:00

(Fformat_mode_line): Fix last change. Remove NO_PROPS arg

(specify 0 for FACE instead). Reorder arg list.  Doc fix.
This commit is contained in:
Kim F. Storm 2005-01-13 09:36:01 +00:00
parent 910f60b165
commit 8d3ef98911

View file

@ -15978,54 +15978,55 @@ store_mode_line_string (string, lisp_string, copy_string, field_width, precision
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).
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.
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
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. */)
(format, window, no_props, buffer, face)
Lisp_Object format, window, no_props, buffer, face;
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;
enum face_id face_id;
int face_id = -1;
int no_props = INTEGERP (face);
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 (buffer))
buffer = w->buffer;
CHECK_BUFFER (buffer);
if (NILP (format))
return build_string ("");
if (no_props)
face = Qnil;
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 (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 (NILP (buffer))
buffer = w->buffer;
CHECK_BUFFER (buffer);
if (face_id < 0)
face_id = DEFAULT_FACE_ID;
if (XBUFFER (buffer) != current_buffer)
{
@ -16033,20 +16034,13 @@ nil means the default is no face property. */)
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))
if (!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)));
= (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,7 +16063,7 @@ nil means the default is no face property. */)
if (old_buffer)
set_buffer_internal_1 (old_buffer);
if (NILP (no_props))
if (!no_props)
{
Lisp_Object str;
mode_line_string_list = Fnreverse (mode_line_string_list);