Function: update-glyphless-char-display
update-glyphless-char-display is a byte-compiled function defined in
characters.el.gz.
Signature
(update-glyphless-char-display &optional VARIABLE VALUE)
Documentation
Make the setting of glyphless-char-display-control take effect.
This function updates the char-table glyphless-char-display,
and is intended to be used in the :set attribute of the
option glyphless-char-display.
Source Code
;; Defined in /usr/src/emacs/lisp/international/characters.el.gz
(aset char-acronym-table #xE007F "->|TAG") ; CANCEL TAG
(defun update-glyphless-char-display (&optional variable value)
"Make the setting of `glyphless-char-display-control' take effect.
This function updates the char-table `glyphless-char-display',
and is intended to be used in the `:set' attribute of the
option `glyphless-char-display'."
(when value
(set-default variable value))
(dolist (elt value)
(let ((target (car elt))
(method (cdr elt)))
(or (memq method '(zero-width thin-space empty-box acronym hex-code))
(error "Invalid glyphless character display method: %s" method))
(cond ((eq target 'c0-control)
(glyphless-set-char-table-range glyphless-char-display
#x00 #x1F method)
;; Users will not expect their newlines and TABs be
;; displayed as anything but themselves, so exempt those
;; two characters from c0-control.
(set-char-table-range glyphless-char-display #x9 nil)
(set-char-table-range glyphless-char-display #xa nil))
((eq target 'c1-control)
(glyphless-set-char-table-range glyphless-char-display
#x80 #x9F method))
((eq target 'variation-selectors)
(glyphless-set-char-table-range glyphless-char-display
#xFE00 #xFE0F method))
((eq target 'format-control)
(when unicode-category-table
(map-char-table
(lambda (char category)
(if (eq category 'Cf)
(let ((this-method method)
from to)
(if (consp char)
(setq from (car char) to (cdr char))
(setq from char to char))
(while (<= from to)
(when (/= from #xAD)
(if (eq method 'acronym)
(setq this-method
(aref char-acronym-table from)))
(set-char-table-range glyphless-char-display
from this-method))
(setq from (1+ from))))))
unicode-category-table)))
((eq target 'no-font)
(set-char-table-extra-slot glyphless-char-display 0 method))
(t
(error "Invalid glyphless character group: %s" target))))))