diff --git a/lisp/disp-table.el b/lisp/disp-table.el index d4ef6649669..5ecf667c333 100644 --- a/lisp/disp-table.el +++ b/lisp/disp-table.el @@ -24,15 +24,7 @@ ;;; Code: -(defun rope-to-vector (rope) - (let* ((len (/ (length rope) 2)) - (vector (make-vector len nil)) - (i 0)) - (while (< i len) - (aset vector i (rope-elt rope i)) - (setq i (1+ i))))) - -(defun describe-display-table (DT) +(defun describe-display-table (dt) "Describe the display table DT in a help buffer." (with-output-to-temp-buffer "*Help*" (princ "\nTruncation glyph: ") @@ -44,19 +36,17 @@ (princ "\nCtrl glyph: ") (prin1 (aref dt 259)) (princ "\nSelective display rope: ") - (prin1 (rope-to-vector (aref dt 260))) + (prin1 (aref dt 260)) (princ "\nCharacter display ropes:\n") (let ((vector (make-vector 256 nil)) (i 0)) (while (< i 256) - (aset vector i - (if (stringp (aref dt i)) - (rope-to-vector (aref dt i)) - (aref dt i))) + (aset vector i (aref dt i)) (setq i (1+ i))) (describe-vector vector)) (print-help-return-message))) +;;;###autoload (defun describe-current-display-table () "Describe the display table in use in the selected window and buffer." (interactive) @@ -65,9 +55,12 @@ buffer-display-table standard-display-table))) +;;;###autoload (defun make-display-table () + "Return a new, empty display table." (make-vector 261 nil)) +;;;###autoload (defun standard-display-8bit (l h) "Display characters in the range L to H literally." (while (<= l h) @@ -78,12 +71,14 @@ (aset standard-display-table l l)) (setq l (1+ l)))) +;;;###autoload (defun standard-display-ascii (c s) "Display character C using string S." (or standard-display-table (setq standard-display-table (make-vector 261 nil))) (aset standard-display-table c (apply 'make-rope (append s nil)))) +;;;###autoload (defun standard-display-g1 (c sc) "Display character C as character SC in the g1 character set." (or standard-display-table @@ -91,6 +86,7 @@ (aset standard-display-table c (make-rope (create-glyph (concat "\016" (char-to-string sc) "\017"))))) +;;;###autoload (defun standard-display-graphic (c gc) "Display character C as character GC in graphics character set." (or standard-display-table @@ -98,6 +94,7 @@ (aset standard-display-table c (make-rope (create-glyph (concat "\e(0" (char-to-string gc) "\e(B"))))) +;;;###autoload (defun standard-display-underline (c uc) "Display character C as character UC plus underlining." (or standard-display-table @@ -106,6 +103,7 @@ (make-rope (create-glyph (concat "\e[4m" (char-to-string uc) "\e[m"))))) ;; Allocate a glyph code to display by sending STRING to the terminal. +;;;###autoload (defun create-glyph (string) (if (= (length glyph-table) 65536) (error "No free glyph codes remain"))