summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2022-01-02 02:25:55 -0500
committerStefan Monnier <monnier@iro.umontreal.ca>2022-01-02 02:25:55 -0500
commit9156e109270b837b0b4f5740c305531754e72cf6 (patch)
tree9e19c09d9b379990fe6fb3fa90b437092e975a7a
parentefb1c7ec379430f560c5b801969ae43023c52734 (diff)
downloademacs-9156e109270b837b0b4f5740c305531754e72cf6.tar.gz
(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.
-rw-r--r--lisp/international/mule-cmds.el10
1 files changed, 8 insertions, 2 deletions
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el
index 7fd1430c03b..28be35d65d2 100644
--- a/lisp/international/mule-cmds.el
+++ b/lisp/international/mule-cmds.el
@@ -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)