Commit 94a36062 authored by Eli Zaretskii's avatar Eli Zaretskii
Browse files

Fix bootstrap broken by changes related to OS X file-name encoding

* lisp/international/ucs-normalize.el (eval-when-compile): Make
sure char-code-property-alist includes elements that allow access
to 'decomposition' and 'canonical-combining-class' Unicode
properties, as compiling ucs-normalize.el requires that.
* lisp/loadup.el (featurep 'ns): Load ucs-normalize and ns-win
only of charprop.el was already loaded.

* src/ ($(lispsource)/international/ucs-normalize.elc):
New order-only dependency.
parent b2b84b16
......@@ -176,6 +176,13 @@
(setq decomposition-pair-to-composition nil)
(defvar non-starter-decompositions nil)
(setq non-starter-decompositions nil)
;; This file needs to access these 2 Unicode properties, but when we
;; compile it during bootstrap, charprop.el was not built yet, and
;; therefore is not yet loaded into bootstrap-emacs, so
;; char-code-property-alist is nil, and get-char-code-property
;; always returns nil, something the code here doesn't like.
(define-char-code-property 'decomposition "uni-decomposition.el")
(define-char-code-property 'canonical-combining-class "uni-combining.el")
(let ((char 0) ccc decomposition)
(lambda (start-end)
......@@ -276,8 +276,12 @@
(if (featurep 'ns)
(load "term/common-win")
(load "international/ucs-normalize")
(load "term/ns-win")))
;; Don't load ucs-normalize.el unless uni-*.el files were
;; already produced, because it needs uni-*.el files that might
;; not be built early enough during bootstrap.
(when (load-history-filename-element "charprop\\.el")
(load "international/ucs-normalize")
(load "term/ns-win"))))
(if (fboundp 'x-create-frame)
;; Do it after loading term/foo-win.el since the value of the
;; mouse-wheel-*-event vars depends on those files being loaded or not.
......@@ -486,6 +486,11 @@ $(srcdir)/macuvs.h $(lispsource)/international/charprop.el: \
bootstrap-emacs$(EXEEXT) FORCE
$(MAKE) -C ../admin/unidata all EMACS="../$(bootstrap_exe)"
## We require charprop.el to exist before ucs-normalize.el is
## byte-compiled, because ucs-normalize.el needs to load 2 uni-*.el files.
$(lispsource)/international/ucs-normalize.elc: | \
lispintdir = ${lispsource}/international
${lispintdir}/cp51932.el ${lispintdir}/eucjp-ms.el: FORCE
${MAKE} -C ../admin/charsets $(notdir $@)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment