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;