]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix bootstrap broken by changes related to OS X file-name encoding
authorEli Zaretskii <eliz@gnu.org>
Fri, 25 Dec 2015 11:23:17 +0000 (13:23 +0200)
committerEli Zaretskii <eliz@gnu.org>
Fri, 25 Dec 2015 11:23:17 +0000 (13:23 +0200)
* 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/Makefile.in ($(lispsource)/international/ucs-normalize.elc):
New order-only dependency.

lisp/international/ucs-normalize.el
lisp/loadup.el
src/Makefile.in

index 6f2fb2856da3d533a45fb01eda0fb041f6cb7f8e..de3c54534bde0f9ddac4583bd1e8af5c497845b7 100644 (file)
     (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)
     (mapc
      (lambda (start-end)
index dda433e4eaffae608849de2e6f91f768155535c4..a58d04223eababdc2afbd0d778b8d9669e28b727 100644 (file)
 (if (featurep 'ns)
     (progn
       (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.
index 4fee1bea883b0f5471e7fd47bccd84bf7d4841b4..8357655af3bd82fb9375ae98ae71b54ca7bd192d 100644 (file)
@@ -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: | \
+  $(lispsource)/international/charprop.el
+
 lispintdir = ${lispsource}/international
 ${lispintdir}/cp51932.el ${lispintdir}/eucjp-ms.el: FORCE
        ${MAKE} -C ../admin/charsets $(notdir $@)