Mercurial > emacs
changeset 8471:64c299dd51b8
(display_text_line): Use the face properties of the overlay arrow, if any.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sun, 07 Aug 1994 04:50:05 +0000 |
parents | 999e5521d05a |
children | 0d0b32e78a5b |
files | src/xdisp.c |
diffstat | 1 files changed, 22 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/xdisp.c Sun Aug 07 01:03:41 1994 +0000 +++ b/src/xdisp.c Sun Aug 07 04:50:05 1994 +0000 @@ -42,6 +42,8 @@ extern int interrupt_input; extern int command_loop_level; +extern Lisp_Object Qface; + /* Nonzero means print newline before next minibuffer message. */ int noninteractive_need_newline; @@ -2488,8 +2490,26 @@ if (len > width) len = width; - for (i = 0; i < len; i++) - leftmargin[i] = p[i]; + if (!NULL_INTERVAL_P (XSTRING (Voverlay_arrow_string)->intervals)) + { + /* If the arrow string has text props, obey them when displaying. */ + for (i = 0; i < len; i++) + { + int c = p[i]; + Lisp_Object face, ilisp; + int newface; + + XFASTINT (ilisp) = i; + face = Fget_text_property (ilisp, Qface, Voverlay_arrow_string); + newface = compute_glyph_face_1 (f, face, 0); + leftmargin[i] = FAST_MAKE_GLYPH (c, newface); + } + } + else + { + for (i = 0; i < len; i++) + leftmargin[i] = p[i]; + } /* Bug in SunOS 4.1.1 compiler requires this intermediate variable. */ arrow_end = (leftmargin - desired_glyphs->glyphs[vpos]) + len;