aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard M. Stallman1994-08-07 04:50:05 +0000
committerRichard M. Stallman1994-08-07 04:50:05 +0000
commitc46283849483d6d1a0e54fd38fc2739999f1853f (patch)
treecbaf9620e89972bc8333af8285acd1ac386b8e1c /src
parent70fcd1c25dbdc65305fe74b009debcddf614f6ea (diff)
downloademacs-c46283849483d6d1a0e54fd38fc2739999f1853f.tar.gz
emacs-c46283849483d6d1a0e54fd38fc2739999f1853f.zip
(display_text_line): Use the face properties of the overlay arrow, if any.
Diffstat (limited to 'src')
-rw-r--r--src/xdisp.c24
1 files changed, 22 insertions, 2 deletions
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 ();
42extern int interrupt_input; 42extern int interrupt_input;
43extern int command_loop_level; 43extern int command_loop_level;
44 44
45extern Lisp_Object Qface;
46
45/* Nonzero means print newline before next minibuffer message. */ 47/* Nonzero means print newline before next minibuffer message. */
46 48
47int noninteractive_need_newline; 49int noninteractive_need_newline;
@@ -2488,8 +2490,26 @@ display_text_line (w, start, vpos, hpos, taboffset)
2488 2490
2489 if (len > width) 2491 if (len > width)
2490 len = width; 2492 len = width;
2491 for (i = 0; i < len; i++) 2493 if (!NULL_INTERVAL_P (XSTRING (Voverlay_arrow_string)->intervals))
2492 leftmargin[i] = p[i]; 2494 {
2495 /* If the arrow string has text props, obey them when displaying. */
2496 for (i = 0; i < len; i++)
2497 {
2498 int c = p[i];
2499 Lisp_Object face, ilisp;
2500 int newface;
2501
2502 XFASTINT (ilisp) = i;
2503 face = Fget_text_property (ilisp, Qface, Voverlay_arrow_string);
2504 newface = compute_glyph_face_1 (f, face, 0);
2505 leftmargin[i] = FAST_MAKE_GLYPH (c, newface);
2506 }
2507 }
2508 else
2509 {
2510 for (i = 0; i < len; i++)
2511 leftmargin[i] = p[i];
2512 }
2493 2513
2494 /* Bug in SunOS 4.1.1 compiler requires this intermediate variable. */ 2514 /* Bug in SunOS 4.1.1 compiler requires this intermediate variable. */
2495 arrow_end = (leftmargin - desired_glyphs->glyphs[vpos]) + len; 2515 arrow_end = (leftmargin - desired_glyphs->glyphs[vpos]) + len;