;;; 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)))
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)))