Mercurial > hg > xemacs-beta
annotate lisp/setup-paths.el @ 5818:15b0715c204d
Avoid passing patterns to with charset property to FcNameUnparse.
Prevents crash reported by Raymond Toy.
| author | Stephen J. Turnbull <stephen@xemacs.org> |
|---|---|
| date | Sat, 18 Oct 2014 21:20:42 +0900 |
| parents | 308d34e9f07d |
| children | bbe4146603db |
| rev | line source |
|---|---|
| 428 | 1 ;;; setup-paths.el --- setup various XEmacs paths |
| 2 | |
| 3 ;; Copyright (C) 1985-1986, 1990, 1992-1997 Free Software Foundation, Inc. | |
| 4 ;; Copyright (c) 1993, 1994 Sun Microsystems, Inc. | |
| 5 ;; Copyright (C) 1995 Board of Trustees, University of Illinois | |
| 1330 | 6 ;; Copyright (C) 2003 Ben Wing. |
| 428 | 7 |
| 2456 | 8 ;; Author: Mike Sperber <mike@xemacs.orgx> |
| 428 | 9 ;; Maintainer: XEmacs Development Team |
| 10 ;; Keywords: internal, dumped | |
| 11 | |
| 12 ;; This file is part of XEmacs. | |
| 13 | |
|
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5115
diff
changeset
|
14 ;; XEmacs is free software: you can redistribute it and/or modify it |
|
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5115
diff
changeset
|
15 ;; under the terms of the GNU General Public License as published by the |
|
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5115
diff
changeset
|
16 ;; Free Software Foundation, either version 3 of the License, or (at your |
|
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5115
diff
changeset
|
17 ;; option) any later version. |
| 428 | 18 |
|
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5115
diff
changeset
|
19 ;; XEmacs is distributed in the hope that it will be useful, but WITHOUT |
|
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5115
diff
changeset
|
20 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5115
diff
changeset
|
21 ;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5115
diff
changeset
|
22 ;; for more details. |
| 428 | 23 |
| 24 ;; You should have received a copy of the GNU General Public License | |
|
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
5115
diff
changeset
|
25 ;; along with XEmacs. If not, see <http://www.gnu.org/licenses/>. |
| 428 | 26 |
| 27 ;;; Synched up with: Not in FSF. | |
| 28 | |
| 29 ;;; Commentary: | |
| 30 | |
| 31 ;; This file is dumped with XEmacs. | |
| 32 | |
| 776 | 33 ;; This file contains functions and variables that describe and construct |
| 34 ;; the various paths into the XEmacs hierarchy from a global viewpoint. | |
| 2456 | 35 |
| 36 ;; This file doesn't actually set any global variable, and doesn't | |
| 37 ;; contain any state---it just contains the functionality for | |
| 38 ;; searching directories and constructing paths. | |
| 428 | 39 |
| 40 ;; It requires find-paths.el and packages.el. | |
| 1330 | 41 |
| 42 ;;; Code: | |
| 43 | |
| 44 ;(setq debug-paths t) | |
| 45 | |
| 428 | 46 |
| 460 | 47 (defvar paths-core-load-path-depth 0 |
| 428 | 48 "Depth of load-path searches in core Lisp paths.") |
| 49 | |
| 452 | 50 (defvar paths-site-load-path-depth 1 |
| 51 "Depth of load-path searches in site Lisp paths.") | |
| 52 | |
| 460 | 53 (defvar paths-mule-load-path-depth 0 |
| 54 "Depth of load-path searches in Mule Lisp paths.") | |
| 55 | |
| 3813 | 56 (defvar paths-module-load-path-depth 1 |
| 57 "Depth of load-path searches in module paths.") | |
| 58 | |
| 428 | 59 (defvar paths-default-info-directories |
| 60 (mapcar (function | |
| 61 (lambda (dirlist) | |
| 62 (paths-construct-path | |
| 63 dirlist (char-to-string directory-sep-char)))) | |
| 64 '(("usr" "local" "info") | |
| 65 ("usr" "info") | |
| 66 ("usr" "local" "share" "info") | |
| 67 ("usr" "share" "info"))) | |
| 68 "Directories appended to the end of the info path by default.") | |
| 69 | |
| 1330 | 70 |
| 71 ;;; Basic utility functions. | |
| 72 | |
| 73 (defun paths-emacs-root-p (directory) | |
| 74 "Check if DIRECTORY is a plausible installation root." | |
| 75 (or | |
| 76 ;; installed | |
| 77 (paths-file-readable-directory-p (paths-construct-path (list directory | |
| 78 "lib" | |
| 79 (construct-emacs-version-name)))) | |
| 80 ;; in-place or windows-nt. windows-nt equivalent of --srcdir is | |
| 81 ;; BUILD_DIR in config.inc, and has no lisp/ or etc/ since symlinks | |
| 82 ;; don't exist. instead, xemacs.mak points configure-lisp-directory and | |
| 83 ;; configure-data-directory at the right places. | |
| 84 (and | |
| 1526 | 85 (or configure-exec-directory (paths-file-readable-directory-p (paths-construct-path (list directory "lib-src"))) (eq system-type 'windows-nt)) |
| 1330 | 86 (or configure-lisp-directory (paths-file-readable-directory-p (paths-construct-path (list directory "lisp")))) |
| 87 (or configure-data-directory (paths-file-readable-directory-p (paths-construct-path (list directory "etc"))))))) | |
| 88 | |
| 89 (defun paths-emacs-data-root-p (directory) | |
| 90 "Check if DIRECTORY is a plausible data installation root. | |
| 91 A data installation root is one containing data files that may be shared | |
| 2456 | 92 among multiple different versions of XEmacs, the packages in particular. |
| 93 This serves as an additional filter to narrow down the list of plausible | |
| 94 installation roots." | |
| 1330 | 95 (or |
| 96 ;; installed | |
| 97 (paths-file-readable-directory-p (paths-construct-path (list directory | |
| 4154 | 98 "share" |
| 1330 | 99 emacs-program-name))) |
| 100 (paths-file-readable-directory-p (paths-construct-path (list directory | |
| 4154 | 101 "share" |
| 1330 | 102 (construct-emacs-version-name)))) |
| 103 ;; in-place or windows-nt | |
| 104 (and | |
| 105 (paths-file-readable-directory-p (paths-construct-path (list directory "lisp"))) | |
| 3281 | 106 (paths-file-readable-directory-p (paths-construct-path (list directory "etc")))) |
| 1330 | 107 |
| 3281 | 108 ;; searching for a package directory |
| 109 (and | |
| 110 (string-match "win32" system-configuration) | |
| 111 (paths-file-readable-directory-p (paths-construct-path (list directory | |
| 112 "xemacs-packages")))))) | |
| 113 | |
| 114 (defun paths-find-invocation-roots (invocation-directory invocation-name root-p) | |
| 115 "Find the list of run-time roots of XEmacs. | |
| 2456 | 116 INVOCATION-DIRECTORY is a directory containing the XEmacs executable. |
| 3281 | 117 INVOCATION-NAME is the name of the executable itself |
| 118 ROOT-P is a function that tests whether a root is plausible." | |
| 1330 | 119 (let* ((executable-file-name (paths-chase-symlink |
| 120 (concat invocation-directory | |
| 121 invocation-name))) | |
| 122 (executable-directory (file-name-directory executable-file-name)) | |
| 123 (maybe-root-1 (file-name-as-directory | |
| 124 (paths-construct-path '("..") executable-directory))) | |
| 125 (maybe-root-2 (file-name-as-directory | |
| 126 (paths-construct-path '(".." "..") executable-directory)))) | |
| 3281 | 127 |
|
4919
9c6ea1581159
Remove a couple of XEmacs-specific duplicate functions, find-paths.el
Aidan Kehoe <kehoea@parhasard.net>
parents:
4154
diff
changeset
|
128 (delete-if-not root-p (list maybe-root-1 maybe-root-2)))) |
| 1330 | 129 |
| 2456 | 130 (defun paths-find-emacs-roots (invocation-directory |
| 131 invocation-name | |
| 132 root-p) | |
| 1330 | 133 "Find all plausible installation roots for XEmacs. |
| 134 This is a list of plausible directories in which to search for the important | |
| 135 directories used by XEmacs at run-time, for example `exec-directory', | |
| 136 `data-directory' and `lisp-directory'. | |
| 137 ROOT-P is a function that tests whether a root is plausible." | |
| 3281 | 138 (let* ((invocation-roots |
| 139 (paths-find-invocation-roots invocation-directory | |
| 140 invocation-name | |
| 141 root-p)) | |
| 1330 | 142 (potential-installation-roots |
|
5003
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
143 (delete-duplicates |
|
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
144 (append |
|
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
145 (and configure-exec-prefix-directory |
|
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
146 (list (file-name-as-directory |
|
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
147 configure-exec-prefix-directory))) |
|
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
148 (and configure-prefix-directory |
|
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
149 (list (file-name-as-directory |
|
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
150 configure-prefix-directory)))) |
|
5115
54700d784be9
Correct the #'delete-duplicates calls, setup-paths.el
Aidan Kehoe <kehoea@parhasard.net>
parents:
5003
diff
changeset
|
151 :test #'equal :from-end t)) |
| 1330 | 152 (installation-roots |
|
4919
9c6ea1581159
Remove a couple of XEmacs-specific duplicate functions, find-paths.el
Aidan Kehoe <kehoea@parhasard.net>
parents:
4154
diff
changeset
|
153 (remove-if-not root-p potential-installation-roots))) |
|
5003
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
154 (delete-duplicates (nconc invocation-roots installation-roots) |
|
5115
54700d784be9
Correct the #'delete-duplicates calls, setup-paths.el
Aidan Kehoe <kehoea@parhasard.net>
parents:
5003
diff
changeset
|
155 :test #'equal :from-end t))) |
| 1330 | 156 |
| 428 | 157 (defun paths-find-site-lisp-directory (roots) |
| 2456 | 158 "Find the site Lisp directory of the XEmacs hierarchy. |
| 159 ROOTS is a list of installation roots." | |
| 4108 | 160 (paths-find-site-directory roots (list "site-lisp") |
| 4092 | 161 nil nil |
| 428 | 162 configure-site-directory)) |
| 163 | |
| 164 (defun paths-find-site-module-directory (roots) | |
| 2456 | 165 "Find the site modules directory of the XEmacs hierarchy. |
| 166 ROOTS is a list of installation roots." | |
| 4108 | 167 (paths-find-site-directory roots (list "site-modules") |
| 4092 | 168 t nil |
| 428 | 169 configure-site-module-directory)) |
| 170 | |
| 171 (defun paths-find-lisp-directory (roots) | |
| 2456 | 172 "Find the main Lisp directory of the XEmacs hierarchy. |
| 173 ROOTS is a list of installation roots." | |
| 4108 | 174 (paths-find-version-directory roots (list "lisp") |
| 4092 | 175 nil nil |
| 428 | 176 configure-lisp-directory)) |
| 177 | |
| 460 | 178 (defun paths-find-mule-lisp-directory (roots &optional lisp-directory) |
| 2456 | 179 "Find the Mule Lisp directory of the XEmacs hierarchy. |
| 180 ROOTS is a list of installation roots." | |
| 460 | 181 ;; #### kludge |
| 182 (if lisp-directory | |
| 183 (let ((guess | |
| 184 (file-name-as-directory | |
| 185 (paths-construct-path (list lisp-directory "mule"))))) | |
| 186 (if (paths-file-readable-directory-p guess) | |
| 187 guess | |
| 4108 | 188 (paths-find-version-directory roots (list "mule-lisp") |
| 4092 | 189 nil nil |
| 460 | 190 configure-mule-lisp-directory))))) |
| 191 | |
| 428 | 192 (defun paths-find-module-directory (roots) |
| 2456 | 193 "Find the main modules directory of the XEmacs hierarchy. |
| 194 ROOTS is a list of installation roots." | |
| 4108 | 195 (paths-find-architecture-directory roots (list "modules") |
| 428 | 196 nil configure-module-directory)) |
| 197 | |
| 198 (defun paths-construct-load-path | |
| 199 (roots early-package-load-path late-package-load-path last-package-load-path | |
| 200 lisp-directory | |
| 460 | 201 &optional site-lisp-directory mule-lisp-directory) |
| 2456 | 202 "Construct the complete load path. |
| 203 ROOTS is the list of installation roots. | |
| 204 EARLY-PACKAGE-LOAD-PATH, LATE-PACKAGE-LOAD-PATH, and LAST-PACKAGE-LOAD-PATH | |
| 205 are the load paths for the package hierarchies. | |
| 206 SITE-LISP-DIRECTORY and MULE-LISP-DIRECTORY are optional directories to be | |
| 207 included in the load path---SITE-LISP-DIRECTORY for the obsolete site-specific | |
| 208 Lisp files, and MULE-LISP-DIRECTORY for the Mule Lisp files, which exist | |
| 209 only in Mule installations." | |
| 428 | 210 (let* ((envvar-value (getenv "EMACSLOADPATH")) |
| 211 (env-load-path | |
| 212 (and envvar-value | |
| 213 (paths-decode-directory-path envvar-value 'drop-empties))) | |
| 214 (site-lisp-load-path | |
| 215 (and site-lisp-directory | |
| 216 (paths-find-recursive-load-path (list site-lisp-directory) | |
| 452 | 217 paths-site-load-path-depth))) |
| 460 | 218 (mule-lisp-load-path |
| 219 (and mule-lisp-directory | |
| 220 (paths-find-recursive-load-path (list mule-lisp-directory) | |
| 221 paths-mule-load-path-depth))) | |
| 428 | 222 (lisp-load-path |
| 223 (and lisp-directory | |
| 224 (paths-find-recursive-load-path (list lisp-directory) | |
| 452 | 225 paths-core-load-path-depth)))) |
| 428 | 226 (append env-load-path |
| 227 early-package-load-path | |
| 228 site-lisp-load-path | |
| 229 late-package-load-path | |
| 460 | 230 mule-lisp-load-path |
| 428 | 231 lisp-load-path |
| 232 last-package-load-path))) | |
| 233 | |
| 234 (defun paths-construct-module-load-path | |
| 235 (root module-directory &optional site-module-directory) | |
| 236 "Construct the modules load path." | |
| 237 (let* ((envvar-value (getenv "EMACSMODULEPATH")) | |
| 238 (env-module-path | |
| 239 (and envvar-value | |
| 240 (paths-decode-directory-path envvar-value 'drop-empties))) | |
| 241 (site-module-load-path | |
| 242 (and site-module-directory | |
| 243 (paths-find-recursive-load-path (list site-module-directory) | |
| 452 | 244 paths-site-load-path-depth))) |
| 428 | 245 (module-load-path |
| 246 (and module-directory | |
| 247 (paths-find-recursive-load-path (list module-directory) | |
| 3813 | 248 paths-module-load-path-depth)))) |
| 2456 | 249 (append env-module-path |
| 428 | 250 site-module-load-path |
| 251 module-load-path))) | |
| 252 | |
| 2456 | 253 (defun paths-construct-info-path (roots |
| 254 early-package-hierarchies | |
| 255 late-package-hierarchies | |
| 256 last-package-hierarchies) | |
| 257 "Construct the info path. | |
| 258 ROOTS is the list of installation roots. | |
| 259 EARLY-PACKAGE-HIERARCHIES, LATE-PACKAGE-HIERARCHIES, and | |
| 260 LAST-PACKAGE-HIERARCHIES are lists of package hierarchy roots, | |
| 261 respectively." | |
| 428 | 262 (let ((info-path-envval (getenv "INFOPATH"))) |
|
5003
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
263 (delete-duplicates |
|
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
264 (nconc |
|
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
265 (append |
|
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
266 (let ((info-directory |
|
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
267 (paths-find-version-directory roots (list "info") |
|
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
268 nil nil |
|
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
269 configure-info-directory))) |
|
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
270 (and info-directory |
|
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
271 (list info-directory))) |
|
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
272 (packages-find-package-info-path early-package-hierarchies) |
|
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
273 (packages-find-package-info-path late-package-hierarchies) |
|
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
274 (packages-find-package-info-path last-package-hierarchies) |
|
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
275 (and info-path-envval |
|
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
276 (paths-decode-directory-path info-path-envval 'drop-empties))) |
|
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
277 (and (null info-path-envval) |
|
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
278 (delete-duplicates |
|
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
279 (nconc |
|
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
280 (paths-directories-which-exist configure-info-path) |
|
6b6b0f8ab749
#'union doesn't preserve relative order; use #'delete-duplicates instead.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4919
diff
changeset
|
281 (paths-directories-which-exist paths-default-info-directories)) |
|
5115
54700d784be9
Correct the #'delete-duplicates calls, setup-paths.el
Aidan Kehoe <kehoea@parhasard.net>
parents:
5003
diff
changeset
|
282 :test #'equal :from-end t))) |
|
54700d784be9
Correct the #'delete-duplicates calls, setup-paths.el
Aidan Kehoe <kehoea@parhasard.net>
parents:
5003
diff
changeset
|
283 :test #'equal :from-end t))) |
| 428 | 284 |
| 285 (defun paths-find-doc-directory (roots) | |
| 2456 | 286 "Find the documentation directory. |
| 287 ROOTS is the list of installation roots." | |
| 4108 | 288 (paths-find-architecture-directory roots (list "lib-src") nil configure-doc-directory)) |
| 428 | 289 |
| 290 (defun paths-find-exec-directory (roots) | |
| 2456 | 291 "Find the binary directory. |
| 292 ROOTS is the list of installation roots." | |
| 4108 | 293 (paths-find-architecture-directory roots (list "lib-src") |
| 428 | 294 nil configure-exec-directory)) |
| 295 | |
| 296 (defun paths-construct-exec-path (roots exec-directory | |
| 2456 | 297 early-package-hierarchies |
| 298 late-package-hierarchies | |
| 299 last-package-hierarchies) | |
| 300 "Find the binary path. | |
| 301 ROOTS is the list of installation roots. | |
| 302 EARLY-PACKAGE-HIERARCHIES, LATE-PACKAGE-HIERARCHIES, and | |
| 303 LAST-PACKAGE-HIERARCHIES are lists of package hierarchy roots, | |
| 304 respectively. | |
| 305 EXEC-DIRECTORY is the directory of architecture-dependent files that | |
| 306 come with XEmacs. | |
| 307 EARLY-PACKAGES, LATE-PACKAGES, and LAST-PACKAGES are lists of | |
| 308 package hierarchy roots, respectively." | |
| 428 | 309 (append |
| 310 (let ((path-envval (getenv "PATH"))) | |
| 311 (if path-envval | |
| 312 (paths-decode-directory-path path-envval 'drop-empties))) | |
| 2456 | 313 (packages-find-package-exec-path early-package-hierarchies) |
| 314 (packages-find-package-exec-path late-package-hierarchies) | |
| 428 | 315 (let ((emacspath-envval (getenv "EMACSPATH"))) |
| 316 (and emacspath-envval | |
| 317 (split-path emacspath-envval))) | |
| 318 (and exec-directory | |
| 319 (list exec-directory)) | |
| 2456 | 320 (packages-find-package-exec-path last-package-hierarchies))) |
| 428 | 321 |
| 322 (defun paths-find-data-directory (roots) | |
| 2456 | 323 "Find the data directory. |
| 324 ROOTS is the list of installation roots." | |
| 4108 | 325 (paths-find-version-directory roots (list "etc") nil "EMACSDATA" configure-data-directory)) |
| 428 | 326 |
| 327 (defun paths-construct-data-directory-list (data-directory | |
| 2456 | 328 early-package-hierarchies |
| 329 late-package-hierarchies | |
| 330 last-package-hierarchies) | |
| 331 "Construct the data path. | |
| 332 DATA-DIRECTORY is the data directory of the XEmacs installation. | |
| 333 EARLY-PACKAGE-HIERARCHIES, LATE-PACKAGE-HIERARCHIES, and | |
| 334 LAST-PACKAGE-HIERARCHIES are lists of package hierarchy roots, | |
| 335 respectively." | |
| 428 | 336 (append |
| 2456 | 337 (packages-find-package-data-path early-package-hierarchies) |
| 338 (packages-find-package-data-path late-package-hierarchies) | |
| 428 | 339 (list data-directory) |
| 2456 | 340 (packages-find-package-data-path last-package-hierarchies))) |
| 1330 | 341 |
| 428 | 342 ;;; setup-paths.el ends here |
