changeset 21310:d5dab6049412

(display_text_line): Handle overlay-arrow correctly.
author Richard M. Stallman <rms@gnu.org>
date Sun, 29 Mar 1998 01:25:20 +0000
parents dfa28803a4aa
children a5d6b18d63e5
files src/xdisp.c
diffstat 1 files changed, 18 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/src/xdisp.c	Sat Mar 28 21:56:57 1998 +0000
+++ b/src/xdisp.c	Sun Mar 29 01:25:20 1998 +0000
@@ -4025,32 +4025,30 @@
 
       if (len > width)
 	len = width;
-#ifdef HAVE_FACES
-      if (!NULL_INTERVAL_P (XSTRING (Voverlay_arrow_string)->intervals))
+
+      /* If the arrow string has text props, obey them when displaying.  */
+      for (i = 0, i_byte = 0; i < len; )
 	{
-	  /* If the arrow string has text props, obey them when displaying.  */
-	  for (i = 0, i_byte = 0; i < len; )
+	  int c;
+	  Lisp_Object face, ilisp;
+	  int newface;
+	  int idx = i;
+
+	  if (STRING_MULTIBYTE (Voverlay_arrow_string))
+	    FETCH_STRING_CHAR_ADVANCE (c, Voverlay_arrow_string, i, i_byte);
+	  else
+	    c = XSTRING (Voverlay_arrow_string)->data[i++];
+
+	  XSETFASTINT (ilisp, i);
+#ifdef HAVE_FACES
+	  if (FRAME_WINDOW_P (f))
 	    {
-	      int c;
-	      Lisp_Object face, ilisp;
-	      int newface;
-
-	      if (STRING_MULTIBYTE (Voverlay_arrow_string))
-		FETCH_STRING_CHAR_ADVANCE (c, Voverlay_arrow_string, i, i_byte);
-	      else
-		c = XSTRING (Voverlay_arrow_string)->data[i++];
-
-	      XSETFASTINT (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);
+	      c = FAST_MAKE_GLYPH (c, newface);
 	    }
-	}
-      else
 #endif /* HAVE_FACES */
-	{
-	  for (i = 0; i < len; i++)
-	    leftmargin[i] = p[i];
+	  leftmargin[idx] = c;
 	}
 
       /* Bug in SunOS 4.1.1 compiler requires this intermediate variable.  */