www.delorie.com/gnu/docs/elisp-manual-21/elisp_661.html   search  
 
Buy the book!


GNU Emacs Lisp Reference Manual

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

38.17.1 Display Table Format

A display table is actually a char-table (see section 6.6 Char-Tables) with display-table as its subtype.

Function: make-display-table
This creates and returns a display table. The table initially has nil in all elements.

The ordinary elements of the display table are indexed by character codes; the element at index c says how to display the character code c. The value should be nil or a vector of glyph values (see section 38.17.3 Glyphs). If an element is nil, it says to display that character according to the usual display conventions (see section 38.16 Usual Display Conventions).

If you use the display table to change the display of newline characters, the whole buffer will be displayed as one long "line."

The display table also has six "extra slots" which serve special purposes. Here is a table of their meanings; nil in any slot means to use the default for that slot, as stated below.

0
The glyph for the end of a truncated screen line (the default for this is `$'). See section 38.17.3 Glyphs. Newer Emacs versions, on some platforms, display arrows to indicate truncation--the display table has no effect in these situations.
1
The glyph for the end of a continued line (the default is `\'). Newer Emacs versions, on some platforms, display curved arrows to indicate truncation--the display table has no effect in these situations.
2
The glyph for indicating a character displayed as an octal character code (the default is `\').
3
The glyph for indicating a control character (the default is `^').
4
A vector of glyphs for indicating the presence of invisible lines (the default is `...'). See section 38.6 Selective Display.
5
The glyph used to draw the border between side-by-side windows (the default is `|'). See section 28.2 Splitting Windows. This takes effect only when there are no scroll bars; if scroll bars are supported and in use, a scroll bar separates the two windows.

For example, here is how to construct a display table that mimics the effect of setting ctl-arrow to a non-nil value:

 
(setq disptab (make-display-table))
(let ((i 0))
  (while (< i 32)
    (or (= i ?\t) (= i ?\n)
        (aset disptab i (vector ?^ (+ i 64))))
    (setq i (1+ i)))
  (aset disptab 127 (vector ?^ ??)))

Function: display-table-slot display-table slot
This function returns the value of the extra slot slot of display-table. The argument slot may be a number from 0 to 5 inclusive, or a slot name (symbol). Valid symbols are truncation, wrap, escape, control, selective-display, and vertical-border.

Function: set-display-table-slot display-table slot value
This function stores value in the extra slot slot of display-table. The argument slot may be a number from 0 to 5 inclusive, or a slot name (symbol). Valid symbols are truncation, wrap, escape, control, selective-display, and vertical-border.

Function: describe-display-table display-table
This function displays a description of the display table display-table in a help buffer.

Command: describe-current-display-table
This command displays a description of the current display table in a help buffer.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

  webmaster   donations   bookstore     delorie software   privacy  
  Copyright 2003   by The Free Software Foundation     Updated Jun 2003