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