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:
parent
910f60b165
commit
8d3ef98911
1 changed files with 32 additions and 38 deletions
70
src/xdisp.c
70
src/xdisp.c
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue