diff options
| author | Richard M. Stallman | 1994-08-07 04:50:05 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1994-08-07 04:50:05 +0000 |
| commit | c46283849483d6d1a0e54fd38fc2739999f1853f (patch) | |
| tree | cbaf9620e89972bc8333af8285acd1ac386b8e1c /src | |
| parent | 70fcd1c25dbdc65305fe74b009debcddf614f6ea (diff) | |
| download | emacs-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.c | 24 |
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 (); | |||
| 42 | extern int interrupt_input; | 42 | extern int interrupt_input; |
| 43 | extern int command_loop_level; | 43 | extern int command_loop_level; |
| 44 | 44 | ||
| 45 | extern Lisp_Object Qface; | ||
| 46 | |||
| 45 | /* Nonzero means print newline before next minibuffer message. */ | 47 | /* Nonzero means print newline before next minibuffer message. */ |
| 46 | 48 | ||
| 47 | int noninteractive_need_newline; | 49 | int 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; |