aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJim Blandy1994-09-19 17:28:37 +0000
committerJim Blandy1994-09-19 17:28:37 +0000
commita45e35e17336f766e1ef2fe79a95e703d5d184b3 (patch)
tree9be051267b2e44c310196b5fdb845776fe4dc02d /src
parente39322d99f0b85a4325d7004e37d4d0723684c55 (diff)
downloademacs-a45e35e17336f766e1ef2fe79a95e703d5d184b3.tar.gz
emacs-a45e35e17336f766e1ef2fe79a95e703d5d184b3.zip
Add a new element to display tables controlling side-by-side
window borders. * buffer.c (syms_of_buffer): Update doc string for `buffer-display-table'. * disptab.h (DISP_TABLE_SIZE): Bump to 262. (DISP_BORDER_GLYPH): New accessor macro. * xdisp.c (display_text_line): Consult the display table when building side-by-side window borders.
Diffstat (limited to 'src')
-rw-r--r--src/buffer.c6
-rw-r--r--src/disptab.h3
-rw-r--r--src/xdisp.c5
3 files changed, 10 insertions, 4 deletions
diff --git a/src/buffer.c b/src/buffer.c
index e132f77da93..4239851b226 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -2776,7 +2776,7 @@ The display table is a vector created with `make-display-table'.\n\
2776The first 256 elements control how to display each possible text character.\n\ 2776The first 256 elements control how to display each possible text character.\n\
2777Each value should be a vector of characters or nil;\n\ 2777Each value should be a vector of characters or nil;\n\
2778nil means display the character in the default fashion.\n\ 2778nil means display the character in the default fashion.\n\
2779The remaining five elements control the display of\n\ 2779The remaining six elements control the display of\n\
2780 the end of a truncated screen line (element 256, a single character);\n\ 2780 the end of a truncated screen line (element 256, a single character);\n\
2781 the end of a continued line (element 257, a single character);\n\ 2781 the end of a continued line (element 257, a single character);\n\
2782 the escape character used to display character codes in octal\n\ 2782 the escape character used to display character codes in octal\n\
@@ -2784,7 +2784,9 @@ The remaining five elements control the display of\n\
2784 the character used as an arrow for control characters (element 259,\n\ 2784 the character used as an arrow for control characters (element 259,\n\
2785 a single character);\n\ 2785 a single character);\n\
2786 the decoration indicating the presence of invisible lines (element 260,\n\ 2786 the decoration indicating the presence of invisible lines (element 260,\n\
2787 a vector of characters).\n\ 2787 a vector of characters);\n\
2788 the character used to draw the border between side-by-side windows\n\
2789 (element 261, a single character).;\n\
2788If this variable is nil, the value of `standard-display-table' is used.\n\ 2790If this variable is nil, the value of `standard-display-table' is used.\n\
2789Each window can have its own, overriding display table."); 2791Each window can have its own, overriding display table.");
2790#endif 2792#endif
diff --git a/src/disptab.h b/src/disptab.h
index 235f6bf24fb..d22e52034c4 100644
--- a/src/disptab.h
+++ b/src/disptab.h
@@ -19,12 +19,13 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
19 19
20/* Access the slots of a display-table, according to their purpose. */ 20/* Access the slots of a display-table, according to their purpose. */
21 21
22#define DISP_TABLE_SIZE 261 22#define DISP_TABLE_SIZE 262
23#define DISP_TRUNC_GLYPH(dp) ((dp)->contents[256]) 23#define DISP_TRUNC_GLYPH(dp) ((dp)->contents[256])
24#define DISP_CONTINUE_GLYPH(dp) ((dp)->contents[257]) 24#define DISP_CONTINUE_GLYPH(dp) ((dp)->contents[257])
25#define DISP_ESCAPE_GLYPH(dp) ((dp)->contents[258]) 25#define DISP_ESCAPE_GLYPH(dp) ((dp)->contents[258])
26#define DISP_CTRL_GLYPH(dp) ((dp)->contents[259]) 26#define DISP_CTRL_GLYPH(dp) ((dp)->contents[259])
27#define DISP_INVIS_VECTOR(dp) ((dp)->contents[260]) 27#define DISP_INVIS_VECTOR(dp) ((dp)->contents[260])
28#define DISP_BORDER_GLYPH(dp) ((dp)->contents[261])
28#define DISP_CHAR_VECTOR(dp, c) ((dp)->contents[c]) 29#define DISP_CHAR_VECTOR(dp, c) ((dp)->contents[c])
29 30
30extern struct Lisp_Vector *window_display_table (); 31extern struct Lisp_Vector *window_display_table ();
diff --git a/src/xdisp.c b/src/xdisp.c
index 6f22c38f4d1..1ce0c58ae0d 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -2504,7 +2504,10 @@ display_text_line (w, start, vpos, hpos, taboffset)
2504 them when the scroll bar windows are flickering around to be 2504 them when the scroll bar windows are flickering around to be
2505 reconfigured. */ 2505 reconfigured. */
2506 *p1++ = (FRAME_HAS_VERTICAL_SCROLL_BARS (f) 2506 *p1++ = (FRAME_HAS_VERTICAL_SCROLL_BARS (f)
2507 ? ' ' : '|'); 2507 ? ' '
2508 : (dp && INTEGERP (DISP_BORDER_GLYPH (dp))
2509 ? DISP_BORDER_GLYPH (dp)
2510 : '|'));
2508 } 2511 }
2509 desired_glyphs->used[vpos] = max (desired_glyphs->used[vpos], 2512 desired_glyphs->used[vpos] = max (desired_glyphs->used[vpos],
2510 p1 - desired_glyphs->glyphs[vpos]); 2513 p1 - desired_glyphs->glyphs[vpos]);