;;; Package versioning
(defvar packages-package-list nil
- "database of loaded packages and version numbers")
+ "Database of loaded packages and version numbers")
(defvar packages-hierarchy-depth 1
"Depth of package hierarchies.")
(defvar package-locations
(list
- (list (paths-construct-path '("~" ".xemacs"))
+ (list (paths-construct-path '("~" ".xemacs" "mule-packages"))
+ 'early #'(lambda () (featurep 'mule)))
+ (list (paths-construct-path '("~" ".xemacs" "xemacs-packages"))
'early #'(lambda () t))
(list "site-packages" 'late #'(lambda () t))
(list "infodock-packages" 'late #'(lambda () (featurep 'infodock)))
(list "mule-packages" 'late #'(lambda () (featurep 'mule)))
- (list "xemacs-packages" 'late #'(lambda () t))
- (list "packages" 'late #'(lambda () t)))
+ (list "xemacs-packages" 'late #'(lambda () t)))
"Locations of the various package directories.
This is a list each of whose elements describes one directory.
A directory description is a three-element list.
(let ((info (if (and attributes (floatp (car attributes)))
(list :version (car attributes))
attributes)))
- (remassq name packages-package-list)
(setq packages-package-list
- (cons (cons name info) packages-package-list))))
+ (cons (cons name info) (remassq name packages-package-list)))))
(defun package-require (name version)
(let ((pkg (assq name packages-package-list)))
"dumped-lisp.el"
"dumped-pkg-lisp.el"
"version.el"
- "very-early-lisp.el"
- "Installation.el")
+ "very-early-lisp.el")
"Lisp packages that should not be byte compiled.")
(member 'crypt-find-file-hook find-file-hooks)))
;; Compression involved.
(if nosuffix
- ":.gz:.Z"
- ".elc:.elc.gz:elc.Z:.el:.el.gz:.el.Z::.gz:.Z"))
+ '("" ".gz" ".Z")
+ '(".elc" ".elc.gz" "elc.Z" ".el" ".el.gz" ".el.Z" "" ".gz" ".Z")))
(t
;; No compression.
(if nosuffix
""
- ".elc:.el:")))
- 4)))
+ '(".elc" ".el" "")))))))
(and interactive-call
(if result
(message "Library is file %s" result)
"Locate a file in a search path DIR-LIST (a list of directories).
If no DIR-LIST is supplied, it defaults to `data-directory-list'.
This function is basically a wrapper over `locate-file'."
- (unless dir-list
- (setq dir-list data-directory-list))
- (locate-file name dir-list))
+ (locate-file name (or dir-list data-directory-list)))
;; Path setup
SUFFIXES is a list of names of package subdirectories to look for."
(let ((directories
(apply
- #'append
+ #'nconc
(mapcar #'(lambda (package)
(mapcar #'(lambda (suffix)
(file-name-as-directory (concat package suffix)))