mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-24 07:20:37 +00:00
(display_mode_element): Don't let mode_line_proptrans_alist
grow without limit. Move recently used elements to the front.
This commit is contained in:
parent
a2c060f6b4
commit
adb63af12a
15
src/xdisp.c
15
src/xdisp.c
@ -13695,15 +13695,28 @@ display_mode_element (it, depth, field_width, precision, elt, props, risky)
|
||||
|
||||
aelt = Fassoc (elt, mode_line_proptrans_alist);
|
||||
if (! NILP (aelt) && !NILP (Fequal (props, XCDR (aelt))))
|
||||
elt = XCAR (aelt);
|
||||
{
|
||||
mode_line_proptrans_alist
|
||||
= Fcons (aelt, Fdelq (aelt, mode_line_proptrans_alist));
|
||||
elt = XCAR (aelt);
|
||||
}
|
||||
else
|
||||
{
|
||||
Lisp_Object tem;
|
||||
|
||||
elt = Fcopy_sequence (elt);
|
||||
Fset_text_properties (make_number (0), Flength (elt),
|
||||
props, elt);
|
||||
/* Add this item to mode_line_proptrans_alist. */
|
||||
mode_line_proptrans_alist
|
||||
= Fcons (Fcons (elt, props),
|
||||
mode_line_proptrans_alist);
|
||||
/* Truncate mode_line_proptrans_alist
|
||||
to at most 50 elements. */
|
||||
tem = Fnthcdr (make_number (50),
|
||||
mode_line_proptrans_alist);
|
||||
if (! NILP (tem))
|
||||
XSETCDR (tem, Qnil);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user