diff options
| author | Richard M. Stallman | 1995-02-24 18:49:48 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1995-02-24 18:49:48 +0000 |
| commit | 376b0e59540adfb3a56368046b5c8cfdff7cd76b (patch) | |
| tree | 580f1f39ac1291aef54d2329e027b45536c8eca8 | |
| parent | fd46fd176e34b3fb94639613b764f5d698cf465d (diff) | |
| download | emacs-376b0e59540adfb3a56368046b5c8cfdff7cd76b.tar.gz emacs-376b0e59540adfb3a56368046b5c8cfdff7cd76b.zip | |
(display_string, display_text_line):
Display table overrides ordinary display even for \t, \n, etc.
| -rw-r--r-- | src/xdisp.c | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/src/xdisp.c b/src/xdisp.c index e800c42d754..9c9dbe878a6 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -2540,8 +2540,15 @@ display_text_line (w, start, vpos, hpos, taboffset) | |||
| 2540 | p = &FETCH_CHAR (pos); | 2540 | p = &FETCH_CHAR (pos); |
| 2541 | } | 2541 | } |
| 2542 | c = *p++; | 2542 | c = *p++; |
| 2543 | if (c >= 040 && c < 0177 | 2543 | /* Let a display table override all standard display methods. */ |
| 2544 | && (dp == 0 || !VECTORP (DISP_CHAR_VECTOR (dp, c)))) | 2544 | if (dp != 0 && VECTORP (DISP_CHAR_VECTOR (dp, c))) |
| 2545 | { | ||
| 2546 | p1 = copy_part_of_rope (f, p1, leftmargin, | ||
| 2547 | XVECTOR (DISP_CHAR_VECTOR (dp, c))->contents, | ||
| 2548 | XVECTOR (DISP_CHAR_VECTOR (dp, c))->size, | ||
| 2549 | current_face); | ||
| 2550 | } | ||
| 2551 | else if (c >= 040 && c < 0177) | ||
| 2545 | { | 2552 | { |
| 2546 | if (p1 >= leftmargin) | 2553 | if (p1 >= leftmargin) |
| 2547 | *p1 = MAKE_GLYPH (f, c, current_face); | 2554 | *p1 = MAKE_GLYPH (f, c, current_face); |
| @@ -2617,13 +2624,6 @@ display_text_line (w, start, vpos, hpos, taboffset) | |||
| 2617 | #endif | 2624 | #endif |
| 2618 | break; | 2625 | break; |
| 2619 | } | 2626 | } |
| 2620 | else if (dp != 0 && VECTORP (DISP_CHAR_VECTOR (dp, c))) | ||
| 2621 | { | ||
| 2622 | p1 = copy_part_of_rope (f, p1, leftmargin, | ||
| 2623 | XVECTOR (DISP_CHAR_VECTOR (dp, c))->contents, | ||
| 2624 | XVECTOR (DISP_CHAR_VECTOR (dp, c))->size, | ||
| 2625 | current_face); | ||
| 2626 | } | ||
| 2627 | else if (c < 0200 && ctl_arrow) | 2627 | else if (c < 0200 && ctl_arrow) |
| 2628 | { | 2628 | { |
| 2629 | if (p1 >= leftmargin) | 2629 | if (p1 >= leftmargin) |
| @@ -3734,8 +3734,14 @@ display_string (w, vpos, string, length, hpos, truncate, | |||
| 3734 | else if (c == 0) | 3734 | else if (c == 0) |
| 3735 | break; | 3735 | break; |
| 3736 | 3736 | ||
| 3737 | if (c >= 040 && c < 0177 | 3737 | if (dp != 0 && VECTORP (DISP_CHAR_VECTOR (dp, c))) |
| 3738 | && (dp == 0 || !VECTORP (DISP_CHAR_VECTOR (dp, c)))) | 3738 | { |
| 3739 | p1 = copy_part_of_rope (f, p1, start, | ||
| 3740 | XVECTOR (DISP_CHAR_VECTOR (dp, c))->contents, | ||
| 3741 | XVECTOR (DISP_CHAR_VECTOR (dp, c))->size, | ||
| 3742 | 0); | ||
| 3743 | } | ||
| 3744 | else if (c >= 040 && c < 0177) | ||
| 3739 | { | 3745 | { |
| 3740 | if (p1 >= start) | 3746 | if (p1 >= start) |
| 3741 | *p1 = c; | 3747 | *p1 = c; |
| @@ -3751,13 +3757,6 @@ display_string (w, vpos, string, length, hpos, truncate, | |||
| 3751 | } | 3757 | } |
| 3752 | while ((p1 - start + hscroll - (hscroll > 0)) % tab_width); | 3758 | while ((p1 - start + hscroll - (hscroll > 0)) % tab_width); |
| 3753 | } | 3759 | } |
| 3754 | else if (dp != 0 && VECTORP (DISP_CHAR_VECTOR (dp, c))) | ||
| 3755 | { | ||
| 3756 | p1 = copy_part_of_rope (f, p1, start, | ||
| 3757 | XVECTOR (DISP_CHAR_VECTOR (dp, c))->contents, | ||
| 3758 | XVECTOR (DISP_CHAR_VECTOR (dp, c))->size, | ||
| 3759 | 0); | ||
| 3760 | } | ||
| 3761 | else if (c < 0200 && ! NILP (buffer_defaults.ctl_arrow)) | 3760 | else if (c < 0200 && ! NILP (buffer_defaults.ctl_arrow)) |
| 3762 | { | 3761 | { |
| 3763 | if (p1 >= start) | 3762 | if (p1 >= start) |