+;;;###autoload
+(defun make-display-table ()
+ "Return a new, empty display table."
+ (make-char-table 'display-table nil))
+
+(or standard-display-table
+ (setq standard-display-table (make-display-table)))
+
+;;; Display-table slot names. The property value says which slot.
+
+(put 'truncation 'display-table-slot 0)
+(put 'wrap 'display-table-slot 1)
+(put 'escape 'display-table-slot 2)
+(put 'control 'display-table-slot 3)
+(put 'selective-display 'display-table-slot 4)
+(put 'vertical-border 'display-table-slot 5)
+
+;;;###autoload
+(defun display-table-slot (display-table slot)
+ "Return the value of the extra slot in DISPLAY-TABLE named SLOT.
+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'."
+ (let ((slot-number
+ (if (numberp slot) slot
+ (or (get slot 'display-table-slot)
+ (error "Invalid display-table slot name: %s" slot)))))
+ (char-table-extra-slot display-table slot-number)))
+
+;;;###autoload
+(defun set-display-table-slot (display-table slot value)
+ "Set the value of the extra slot in DISPLAY-TABLE named SLOT to VALUE.
+SLOT may be a number from 0 to 5 inclusive, or a name (symbol).
+Valid symbols are `truncation', `wrap', `escape', `control',
+`selective-display', and `vertical-border'."
+ (let ((slot-number
+ (if (numberp slot) slot
+ (or (get slot 'display-table-slot)
+ (error "Invalid display-table slot name: %s" slot)))))
+ (set-char-table-extra-slot display-table slot-number value)))
+
+;;;###autoload
+(defun describe-display-table (dt)
+ "Describe the display table DT in a help buffer."