diff options
| author | Glenn Morris | 2013-11-25 20:06:23 -0500 |
|---|---|---|
| committer | Glenn Morris | 2013-11-25 20:06:23 -0500 |
| commit | 624780f09dd117edbe8b2b71be44622fc7002f91 (patch) | |
| tree | 268725fa70a8295b1c621646a7ad82eea11176f1 | |
| parent | 3f73284a46437b46bbd79f2594c3bcefde83a2e8 (diff) | |
| download | emacs-624780f09dd117edbe8b2b71be44622fc7002f91.tar.gz emacs-624780f09dd117edbe8b2b71be44622fc7002f91.zip | |
Preload leim-list.el
* Makefile.in (abs_builddir): New, set by configure.
(buildlisppath): Add leim/.
(epaths-force-w32): Set BLD.
* lisp/loadup.el: Load leim-list.el when found.
* lisp/startup.el (normal-top-level): Skip re-loading leim/leim-list.el.
* nt/epaths.nt (PATH_DUMPLOADSEARCH): Add leim/.
* src/callproc.c (init_callproc): Don't assume PATH_DUMPLOADSEARCH
is a single directory.
* src/epaths.in (PATH_DUMPLOADSEARCH): Add leim/.
Fixes: debbugs:4789
| -rw-r--r-- | ChangeLog | 7 | ||||
| -rw-r--r-- | Makefile.in | 18 | ||||
| -rw-r--r-- | lisp/ChangeLog | 6 | ||||
| -rw-r--r-- | lisp/loadup.el | 22 | ||||
| -rw-r--r-- | lisp/startup.el | 19 | ||||
| -rw-r--r-- | nt/ChangeLog | 4 | ||||
| -rw-r--r-- | nt/epaths.nt | 10 | ||||
| -rw-r--r-- | src/ChangeLog | 7 | ||||
| -rw-r--r-- | src/callproc.c | 8 | ||||
| -rw-r--r-- | src/epaths.in | 8 |
10 files changed, 75 insertions, 34 deletions
| @@ -1,3 +1,10 @@ | |||
| 1 | 2013-11-26 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | Preload leim-list.el. | ||
| 4 | * Makefile.in (abs_builddir): New, set by configure. | ||
| 5 | (buildlisppath): Add leim/. | ||
| 6 | (epaths-force-w32): Set BLD. | ||
| 7 | |||
| 1 | 2013-11-21 Paul Eggert <eggert@cs.ucla.edu> | 8 | 2013-11-21 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 9 | ||
| 3 | Fix some dependency problems that cause unnecessary recompiles. | 10 | Fix some dependency problems that cause unnecessary recompiles. |
diff --git a/Makefile.in b/Makefile.in index 1848c41a1e3..969a22419a0 100644 --- a/Makefile.in +++ b/Makefile.in | |||
| @@ -164,6 +164,7 @@ bitmapdir=@bitmapdir@ | |||
| 164 | # We use $(srcdir) explicitly in dependencies so as not to depend on VPATH. | 164 | # We use $(srcdir) explicitly in dependencies so as not to depend on VPATH. |
| 165 | srcdir=@srcdir@ | 165 | srcdir=@srcdir@ |
| 166 | abs_srcdir=@abs_srcdir@ | 166 | abs_srcdir=@abs_srcdir@ |
| 167 | abs_builddir=@abs_builddir@ | ||
| 167 | # MinGW CPPFLAGS may use this. | 168 | # MinGW CPPFLAGS may use this. |
| 168 | abs_top_srcdir=@abs_top_srcdir@ | 169 | abs_top_srcdir=@abs_top_srcdir@ |
| 169 | 170 | ||
| @@ -213,13 +214,16 @@ locallisppath=@locallisppath@ | |||
| 213 | # The default is ${locallisppath}:${standardlisppath}. | 214 | # The default is ${locallisppath}:${standardlisppath}. |
| 214 | lisppath=@lisppath@ | 215 | lisppath=@lisppath@ |
| 215 | 216 | ||
| 216 | # Where Emacs will search for its lisp files while | 217 | # Where Emacs will search for its lisp files while building. |
| 217 | # building. This is only used during the process of | 218 | # This is only used during the process of compiling Emacs, |
| 218 | # compiling Emacs, to help Emacs find its lisp files | 219 | # to help Emacs find its lisp files before they've been installed |
| 219 | # before they've been installed in their final location. | 220 | # in their final location. |
| 220 | # This should be a colon-separated list of directories. | 221 | # This should be a colon-separated list of directories. |
| 221 | # Normally it points to the lisp/ directory in the sources. | 222 | # Normally it points to the lisp/ directory in the sources and |
| 222 | buildlisppath=${abs_srcdir}/lisp | 223 | # the leim/ directory in the build tree. |
| 224 | # NB lread.c relies on lisp/ being first here. | ||
| 225 | # TODO generate leim in srcdir also, prebuild in tarfiles. | ||
| 226 | buildlisppath=${abs_srcdir}/lisp:${abs_builddir}/leim | ||
| 223 | 227 | ||
| 224 | # Where to install the other architecture-independent | 228 | # Where to install the other architecture-independent |
| 225 | # data files distributed with Emacs (like the tutorial, | 229 | # data files distributed with Emacs (like the tutorial, |
| @@ -337,6 +341,7 @@ msys_sed_sh_escape=sed -e 's/[];$$*.^[]/\\\\&/g' | |||
| 337 | # '/foo/bar'). | 341 | # '/foo/bar'). |
| 338 | epaths-force-w32: FRC | 342 | epaths-force-w32: FRC |
| 339 | @(w32srcdir=`${srcdir}/build-aux/msys-to-w32 "${srcdir}"`; \ | 343 | @(w32srcdir=`${srcdir}/build-aux/msys-to-w32 "${srcdir}"`; \ |
| 344 | w32blddir=`${srcdir}/build-aux/msys-to-w32 .`; \ | ||
| 340 | w32prefix=`${srcdir}/build-aux/msys-to-w32 "${prefix}" N`; \ | 345 | w32prefix=`${srcdir}/build-aux/msys-to-w32 "${prefix}" N`; \ |
| 341 | w32prefixpattern=`echo "${w32prefix}" | ${msys_sed_sh_escape}` ; \ | 346 | w32prefixpattern=`echo "${w32prefix}" | ${msys_sed_sh_escape}` ; \ |
| 342 | w32locallisppath=`${srcdir}/build-aux/msys-to-w32 "${locallisppath}" N ":" "\\;" | ${msys_w32prefix_subst}` ; \ | 347 | w32locallisppath=`${srcdir}/build-aux/msys-to-w32 "${locallisppath}" N ":" "\\;" | ${msys_w32prefix_subst}` ; \ |
| @@ -344,6 +349,7 @@ epaths-force-w32: FRC | |||
| 344 | -e 's;\(#.*PATH_SITELOADSEARCH\).*$$;\1 "'"$${w32locallisppath}"'";' \ | 349 | -e 's;\(#.*PATH_SITELOADSEARCH\).*$$;\1 "'"$${w32locallisppath}"'";' \ |
| 345 | -e '/^.*#/s/@VER@/${version}/g' \ | 350 | -e '/^.*#/s/@VER@/${version}/g' \ |
| 346 | -e '/^.*#/s/@CFG@/${configuration}/g' \ | 351 | -e '/^.*#/s/@CFG@/${configuration}/g' \ |
| 352 | -e '/^.*#/s|@BLD@|$${w32blddir}|g' \ | ||
| 347 | -e "/^.*#/s|@SRC@|$${w32srcdir}|g") && \ | 353 | -e "/^.*#/s|@SRC@|$${w32srcdir}|g") && \ |
| 348 | ${srcdir}/build-aux/move-if-change epaths.h.$$$$ src/epaths.h | 354 | ${srcdir}/build-aux/move-if-change epaths.h.$$$$ src/epaths.h |
| 349 | 355 | ||
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6f5519e8803..fd41ed84d64 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2013-11-26 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | Preload leim-list.el. (Bug#4789) | ||
| 4 | * loadup.el: Load leim-list.el when found. | ||
| 5 | * startup.el (normal-top-level): Skip re-loading leim/leim-list.el. | ||
| 6 | |||
| 1 | 2013-11-25 Bozhidar Batsov <bozhidar@batsov.com> | 7 | 2013-11-25 Bozhidar Batsov <bozhidar@batsov.com> |
| 2 | 8 | ||
| 3 | * emacs-lisp/bytecomp.el (byte-compile-form): Fix a typo. | 9 | * emacs-lisp/bytecomp.el (byte-compile-form): Fix a typo. |
diff --git a/lisp/loadup.el b/lisp/loadup.el index 98e3b877144..fe4fe1fe571 100644 --- a/lisp/loadup.el +++ b/lisp/loadup.el | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | ;;; loadup.el --- load up standardly loaded Lisp files for Emacs | 1 | ;;; loadup.el --- load up standardly loaded Lisp files for Emacs |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1985-1986, 1992, 1994, 2001-2013 Free Software | 3 | ;; Copyright (C) 1985-1986, 1992, 1994, 2001-2013 |
| 4 | ;; Foundation, Inc. | 4 | ;; Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ;; Maintainer: FSF | 6 | ;; Maintainer: FSF |
| 7 | ;; Keywords: internal | 7 | ;; Keywords: internal |
| @@ -98,6 +98,8 @@ | |||
| 98 | (load "env") | 98 | (load "env") |
| 99 | (load "format") | 99 | (load "format") |
| 100 | (load "bindings") | 100 | (load "bindings") |
| 101 | ;; This sets temporary-file-directory, used by eg | ||
| 102 | ;; auto-save-file-name-transforms in files.el. | ||
| 101 | (load "cus-start") | 103 | (load "cus-start") |
| 102 | (load "window") ; Needed here for `replace-buffer-in-windows'. | 104 | (load "window") ; Needed here for `replace-buffer-in-windows'. |
| 103 | (setq load-source-file-function 'load-with-code-conversion) | 105 | (setq load-source-file-function 'load-with-code-conversion) |
| @@ -278,12 +280,16 @@ | |||
| 278 | (load "vc/ediff-hook") | 280 | (load "vc/ediff-hook") |
| 279 | (if (not (eq system-type 'ms-dos)) (load "tooltip")) | 281 | (if (not (eq system-type 'ms-dos)) (load "tooltip")) |
| 280 | 282 | ||
| 281 | ;If you want additional libraries to be preloaded and their | 283 | ;; This file doesn't exist when building a development version of Emacs |
| 282 | ;doc strings kept in the DOC file rather than in core, | 284 | ;; from the repository. It is generated just after temacs is built. |
| 283 | ;you may load them with a "site-load.el" file. | 285 | (load "leim-list.el" t) |
| 284 | ;But you must also cause them to be scanned when the DOC file | 286 | |
| 285 | ;is generated. | 287 | ;; If you want additional libraries to be preloaded and their |
| 286 | ;For other systems, you must edit ../src/Makefile.in. | 288 | ;; doc strings kept in the DOC file rather than in core, |
| 289 | ;; you may load them with a "site-load.el" file. | ||
| 290 | ;; But you must also cause them to be scanned when the DOC file | ||
| 291 | ;; is generated. | ||
| 292 | ;; For other systems, you must edit ../src/Makefile.in. | ||
| 287 | (load "site-load" t) | 293 | (load "site-load" t) |
| 288 | 294 | ||
| 289 | ;; Make sure default-directory is unibyte when dumping. This is | 295 | ;; Make sure default-directory is unibyte when dumping. This is |
diff --git a/lisp/startup.el b/lisp/startup.el index 88ec1f359eb..0b1c55b36a0 100644 --- a/lisp/startup.el +++ b/lisp/startup.el | |||
| @@ -499,18 +499,23 @@ It is the default value of the variable `top-level'." | |||
| 499 | ;; available input methods. | 499 | ;; available input methods. |
| 500 | (let ((tail load-path) | 500 | (let ((tail load-path) |
| 501 | (lispdir (expand-file-name "../lisp" data-directory)) | 501 | (lispdir (expand-file-name "../lisp" data-directory)) |
| 502 | ;; For out-of-tree builds, leim-list is generated in the build dir. | 502 | ;; For out-of-tree builds, leim-list is generated in the build dir. |
| 503 | ;;; (leimdir (expand-file-name "../leim" doc-directory)) | 503 | (leimdir (expand-file-name "../leim" doc-directory)) |
| 504 | dir) | 504 | dir) |
| 505 | (while tail | 505 | (while tail |
| 506 | (setq dir (car tail)) | 506 | (setq dir (car tail)) |
| 507 | (let ((default-directory dir)) | 507 | (let ((default-directory dir)) |
| 508 | (load (expand-file-name "subdirs.el") t t t)) | 508 | (load (expand-file-name "subdirs.el") t t t)) |
| 509 | ;; Do not scan standard directories that won't contain a leim-list.el. | 509 | ;; Do not scan standard directories that won't contain a leim-list.el. |
| 510 | ;; http://lists.gnu.org/archive/html/emacs-devel/2009-10/msg00502.html | 510 | ;; http://lists.gnu.org/archive/html/emacs-devel/2009-10/msg00502.html |
| 511 | (or (string-match (concat "\\`" lispdir) dir) | 511 | ;; Also skip leim/leim-list.el, since we preloaded that one. |
| 512 | (let ((default-directory dir)) | 512 | (or (string-prefix-p lispdir dir) |
| 513 | (load (expand-file-name "leim-list.el") t t t))) | 513 | ;; Not supposed to be subdirs.el in leim, but someone |
| 514 | ;; might have added one and be keeping their own leim-list | ||
| 515 | ;; files in subdirs of leim. | ||
| 516 | (string-equal leimdir dir) | ||
| 517 | (let ((default-directory dir)) | ||
| 518 | (load (expand-file-name "leim-list.el") t t t))) | ||
| 514 | ;; We don't use a dolist loop and we put this "setq-cdr" command at | 519 | ;; We don't use a dolist loop and we put this "setq-cdr" command at |
| 515 | ;; the end, because the subdirs.el files may add elements to the end | 520 | ;; the end, because the subdirs.el files may add elements to the end |
| 516 | ;; of load-path and we want to take it into account. | 521 | ;; of load-path and we want to take it into account. |
diff --git a/nt/ChangeLog b/nt/ChangeLog index 1b766f0f349..61a84995bc6 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2013-11-26 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * epaths.nt (PATH_DUMPLOADSEARCH): Add leim/. | ||
| 4 | |||
| 1 | 2013-11-12 Dani Moncayo <dmoncayo@gmail.com> | 5 | 2013-11-12 Dani Moncayo <dmoncayo@gmail.com> |
| 2 | 6 | ||
| 3 | * msysconfig.sh: Remove. | 7 | * msysconfig.sh: Remove. |
diff --git a/nt/epaths.nt b/nt/epaths.nt index 6e297476528..553d80c2e5e 100644 --- a/nt/epaths.nt +++ b/nt/epaths.nt | |||
| @@ -12,8 +12,7 @@ | |||
| 12 | the host system (e.g., i686-pc-mingw32), and @SRC@ by the root of | 12 | the host system (e.g., i686-pc-mingw32), and @SRC@ by the root of |
| 13 | the Emacs source tree used to build Emacs. */ | 13 | the Emacs source tree used to build Emacs. */ |
| 14 | /* | 14 | /* |
| 15 | Copyright (C) 1993, 1995, 1997, 1999, 2001-2013 Free Software | 15 | Copyright (C) 1993, 1995, 1997, 1999, 2001-2013 Free Software Foundation, Inc. |
| 16 | Foundation, Inc. | ||
| 17 | 16 | ||
| 18 | This file is part of GNU Emacs. | 17 | This file is part of GNU Emacs. |
| 19 | 18 | ||
| @@ -51,10 +50,11 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 51 | #define PATH_SITELOADSEARCH "%emacs_dir%/share/emacs/@VER@/site-lisp;%emacs_dir%/share/emacs/site-lisp" | 50 | #define PATH_SITELOADSEARCH "%emacs_dir%/share/emacs/@VER@/site-lisp;%emacs_dir%/share/emacs/site-lisp" |
| 52 | 51 | ||
| 53 | /* Like PATH_LOADSEARCH, but used only during the build process | 52 | /* Like PATH_LOADSEARCH, but used only during the build process |
| 54 | when Emacs is dumping. Configure (using "make epaths-force") sets | 53 | when Emacs is dumping. Configure (using "make epaths-force-w32") sets |
| 55 | this to $buildlisppath, which normally has the value: <srcdir>/lisp. | 54 | this to $buildlisppath, which normally has the value: |
| 55 | <srcdir>/lisp;<builddir>/leim. | ||
| 56 | */ | 56 | */ |
| 57 | #define PATH_DUMPLOADSEARCH "@SRC@/lisp" | 57 | #define PATH_DUMPLOADSEARCH "@SRC@/lisp;@BLD@/leim" |
| 58 | 58 | ||
| 59 | /* The extra search path for programs to invoke. This is appended to | 59 | /* The extra search path for programs to invoke. This is appended to |
| 60 | whatever the PATH environment variable says to set the Lisp | 60 | whatever the PATH environment variable says to set the Lisp |
diff --git a/src/ChangeLog b/src/ChangeLog index bf4392d519d..9a32c174d8f 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,10 @@ | |||
| 1 | 2013-11-26 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | Preload leim-list.el. | ||
| 4 | * epaths.in (PATH_DUMPLOADSEARCH): Add leim/. | ||
| 5 | * callproc.c (init_callproc): Don't assume PATH_DUMPLOADSEARCH | ||
| 6 | is a single directory. | ||
| 7 | |||
| 1 | 2013-11-25 Paul Eggert <eggert@cs.ucla.edu> | 8 | 2013-11-25 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 9 | ||
| 3 | bool-vector-subsetp is now the normal direction (Bug#15912). | 10 | bool-vector-subsetp is now the normal direction (Bug#15912). |
diff --git a/src/callproc.c b/src/callproc.c index dfe315ab8db..b44f680b352 100644 --- a/src/callproc.c +++ b/src/callproc.c | |||
| @@ -1607,16 +1607,16 @@ init_callproc (void) | |||
| 1607 | if (data_dir == 0) | 1607 | if (data_dir == 0) |
| 1608 | { | 1608 | { |
| 1609 | Lisp_Object tem, tem1, srcdir; | 1609 | Lisp_Object tem, tem1, srcdir; |
| 1610 | Lisp_Object lispdir = Fcar (decode_env_path (0, PATH_DUMPLOADSEARCH, 0)); | ||
| 1611 | |||
| 1612 | srcdir = Fexpand_file_name (build_string ("../src/"), lispdir); | ||
| 1610 | 1613 | ||
| 1611 | srcdir = Fexpand_file_name (build_string ("../src/"), | ||
| 1612 | build_unibyte_string (PATH_DUMPLOADSEARCH)); | ||
| 1613 | tem = Fexpand_file_name (build_string ("GNU"), Vdata_directory); | 1614 | tem = Fexpand_file_name (build_string ("GNU"), Vdata_directory); |
| 1614 | tem1 = Ffile_exists_p (tem); | 1615 | tem1 = Ffile_exists_p (tem); |
| 1615 | if (!NILP (Fequal (srcdir, Vinvocation_directory)) || NILP (tem1)) | 1616 | if (!NILP (Fequal (srcdir, Vinvocation_directory)) || NILP (tem1)) |
| 1616 | { | 1617 | { |
| 1617 | Lisp_Object newdir; | 1618 | Lisp_Object newdir; |
| 1618 | newdir = Fexpand_file_name (build_string ("../etc/"), | 1619 | newdir = Fexpand_file_name (build_string ("../etc/"), lispdir); |
| 1619 | build_unibyte_string (PATH_DUMPLOADSEARCH)); | ||
| 1620 | tem = Fexpand_file_name (build_string ("GNU"), newdir); | 1620 | tem = Fexpand_file_name (build_string ("GNU"), newdir); |
| 1621 | tem1 = Ffile_exists_p (tem); | 1621 | tem1 = Ffile_exists_p (tem); |
| 1622 | if (!NILP (tem1)) | 1622 | if (!NILP (tem1)) |
diff --git a/src/epaths.in b/src/epaths.in index 1f5701e5337..02e755935c4 100644 --- a/src/epaths.in +++ b/src/epaths.in | |||
| @@ -1,7 +1,6 @@ | |||
| 1 | /* Hey Emacs, this is -*- C -*- code! */ | 1 | /* Hey Emacs, this is -*- C -*- code! */ |
| 2 | /* | 2 | /* |
| 3 | Copyright (C) 1993, 1995, 1997, 1999, 2001-2013 Free Software | 3 | Copyright (C) 1993, 1995, 1997, 1999, 2001-2013 Free Software Foundation, Inc. |
| 4 | Foundation, Inc. | ||
| 5 | 4 | ||
| 6 | This file is part of GNU Emacs. | 5 | This file is part of GNU Emacs. |
| 7 | 6 | ||
| @@ -42,9 +41,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 42 | 41 | ||
| 43 | /* Like PATH_LOADSEARCH, but used only during the build process | 42 | /* Like PATH_LOADSEARCH, but used only during the build process |
| 44 | when Emacs is dumping. Configure (using "make epaths-force") sets | 43 | when Emacs is dumping. Configure (using "make epaths-force") sets |
| 45 | this to $buildlisppath, which normally has the value: <srcdir>/lisp. | 44 | this to $buildlisppath, which normally has the value: |
| 45 | <srcdir>/lisp:<builddir>/leim. | ||
| 46 | */ | 46 | */ |
| 47 | #define PATH_DUMPLOADSEARCH "../lisp" | 47 | #define PATH_DUMPLOADSEARCH "../lisp:../leim" |
| 48 | 48 | ||
| 49 | /* The extra search path for programs to invoke. This is appended to | 49 | /* The extra search path for programs to invoke. This is appended to |
| 50 | whatever the PATH environment variable says to set the Lisp | 50 | whatever the PATH environment variable says to set the Lisp |