(define-char-code-property): Workaround for bug#52945

* lisp/international/mule-cmds.el (define-char-code-property): Ignore
requests to re-setup lazy loading after the char-table is already loaded.
This commit is contained in:
Stefan Monnier 2022-01-02 02:25:55 -05:00
parent efb1c7ec37
commit 9156e10927

View file

@ -2936,8 +2936,14 @@ See also the documentation of `get-char-code-property' and
(or (stringp table)
(error "Not a char-table nor a file name: %s" table)))
(if (stringp table) (setq table (purecopy table)))
(setf (alist-get name char-code-property-alist) table)
(put name 'char-code-property-documentation (purecopy docstring)))
(if (and (stringp table)
(char-table-p (alist-get name char-code-property-alist)))
;; The table is already setup and we're apparently trying to
;; undo that, probably because `charprop.el' is being re-loaded.
;; Just skip it, in order to work around a recursive load (bug#52945).
nil
(setf (alist-get name char-code-property-alist) table)
(put name 'char-code-property-documentation (purecopy docstring))))
(defvar char-code-property-table
(make-char-table 'char-code-property-table)