diff options
| author | Eli Zaretskii | 2015-12-25 13:23:17 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2015-12-25 13:23:17 +0200 |
| commit | 94a3606243d3923ac457aeff33f3ce82b65ef6cd (patch) | |
| tree | 22c510879eebd1e466485acac9e33154f59ff408 | |
| parent | b2b84b166a7ac454850ab4832ef40a41dce74cf7 (diff) | |
| download | emacs-94a3606243d3923ac457aeff33f3ce82b65ef6cd.tar.gz emacs-94a3606243d3923ac457aeff33f3ce82b65ef6cd.zip | |
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/Makefile.in ($(lispsource)/international/ucs-normalize.elc):
New order-only dependency.
| -rw-r--r-- | lisp/international/ucs-normalize.el | 7 | ||||
| -rw-r--r-- | lisp/loadup.el | 8 | ||||
| -rw-r--r-- | src/Makefile.in | 5 |
3 files changed, 18 insertions, 2 deletions
diff --git a/lisp/international/ucs-normalize.el b/lisp/international/ucs-normalize.el index 6f2fb2856da..de3c54534bd 100644 --- a/lisp/international/ucs-normalize.el +++ b/lisp/international/ucs-normalize.el | |||
| @@ -176,6 +176,13 @@ | |||
| 176 | (setq decomposition-pair-to-composition nil) | 176 | (setq decomposition-pair-to-composition nil) |
| 177 | (defvar non-starter-decompositions nil) | 177 | (defvar non-starter-decompositions nil) |
| 178 | (setq non-starter-decompositions nil) | 178 | (setq non-starter-decompositions nil) |
| 179 | ;; This file needs to access these 2 Unicode properties, but when we | ||
| 180 | ;; compile it during bootstrap, charprop.el was not built yet, and | ||
| 181 | ;; therefore is not yet loaded into bootstrap-emacs, so | ||
| 182 | ;; char-code-property-alist is nil, and get-char-code-property | ||
| 183 | ;; always returns nil, something the code here doesn't like. | ||
| 184 | (define-char-code-property 'decomposition "uni-decomposition.el") | ||
| 185 | (define-char-code-property 'canonical-combining-class "uni-combining.el") | ||
| 179 | (let ((char 0) ccc decomposition) | 186 | (let ((char 0) ccc decomposition) |
| 180 | (mapc | 187 | (mapc |
| 181 | (lambda (start-end) | 188 | (lambda (start-end) |
diff --git a/lisp/loadup.el b/lisp/loadup.el index dda433e4eaf..a58d04223ea 100644 --- a/lisp/loadup.el +++ b/lisp/loadup.el | |||
| @@ -276,8 +276,12 @@ | |||
| 276 | (if (featurep 'ns) | 276 | (if (featurep 'ns) |
| 277 | (progn | 277 | (progn |
| 278 | (load "term/common-win") | 278 | (load "term/common-win") |
| 279 | (load "international/ucs-normalize") | 279 | ;; Don't load ucs-normalize.el unless uni-*.el files were |
| 280 | (load "term/ns-win"))) | 280 | ;; already produced, because it needs uni-*.el files that might |
| 281 | ;; not be built early enough during bootstrap. | ||
| 282 | (when (load-history-filename-element "charprop\\.el") | ||
| 283 | (load "international/ucs-normalize") | ||
| 284 | (load "term/ns-win")))) | ||
| 281 | (if (fboundp 'x-create-frame) | 285 | (if (fboundp 'x-create-frame) |
| 282 | ;; Do it after loading term/foo-win.el since the value of the | 286 | ;; Do it after loading term/foo-win.el since the value of the |
| 283 | ;; mouse-wheel-*-event vars depends on those files being loaded or not. | 287 | ;; mouse-wheel-*-event vars depends on those files being loaded or not. |
diff --git a/src/Makefile.in b/src/Makefile.in index 4fee1bea883..8357655af3b 100644 --- a/src/Makefile.in +++ b/src/Makefile.in | |||
| @@ -486,6 +486,11 @@ $(srcdir)/macuvs.h $(lispsource)/international/charprop.el: \ | |||
| 486 | bootstrap-emacs$(EXEEXT) FORCE | 486 | bootstrap-emacs$(EXEEXT) FORCE |
| 487 | $(MAKE) -C ../admin/unidata all EMACS="../$(bootstrap_exe)" | 487 | $(MAKE) -C ../admin/unidata all EMACS="../$(bootstrap_exe)" |
| 488 | 488 | ||
| 489 | ## We require charprop.el to exist before ucs-normalize.el is | ||
| 490 | ## byte-compiled, because ucs-normalize.el needs to load 2 uni-*.el files. | ||
| 491 | $(lispsource)/international/ucs-normalize.elc: | \ | ||
| 492 | $(lispsource)/international/charprop.el | ||
| 493 | |||
| 489 | lispintdir = ${lispsource}/international | 494 | lispintdir = ${lispsource}/international |
| 490 | ${lispintdir}/cp51932.el ${lispintdir}/eucjp-ms.el: FORCE | 495 | ${lispintdir}/cp51932.el ${lispintdir}/eucjp-ms.el: FORCE |
| 491 | ${MAKE} -C ../admin/charsets $(notdir $@) | 496 | ${MAKE} -C ../admin/charsets $(notdir $@) |