From: Richard M. Stallman Date: Sun, 7 Aug 1994 04:50:05 +0000 (+0000) Subject: (display_text_line): Use the face properties of the overlay arrow, if any. X-Git-Tag: emacs-19.34~7382 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=c46283849483d6d1a0e54fd38fc2739999f1853f;p=emacs.git (display_text_line): Use the face properties of the overlay arrow, if any. --- diff --git a/src/xdisp.c b/src/xdisp.c index 1e1ae928f8f..571db0fc91d 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -42,6 +42,8 @@ extern void set_frame_menubar (); 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 @@ display_text_line (w, start, vpos, hpos, taboffset) 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;