In package-admin-find-top-directory:
(while path-list
(if (equal (substring (car path-list) -16) "xemacs-packages/")
(setq top-dir (car path-list)))
(setq path-list (cdr path-list))))
((eq type 'mule)
(while path-list
(if (equal (substring (car path-list) -14) "mule-packages/")
(setq top-dir (car path-list)))
(setq path-list (cdr path-list)))))))
But on win32, the path-list returned has '\\' as path separator. So that
just can't match. Possible fix attached.
Other related questions:
- what is the status of 'mule' packages wrt to 21.5+Mule? I guess
mule-ucs and mule-base packages are not needed anymore (integrated). But
what about the others (locale, latin-unity ...) and what about their
location? Shouldn't they move into xemacs-packages/ in 21.5 since Mule
is considered to be the default?
--
Fabrice
C:\>diff -u xemacs\xemacs-21.5\lisp\package-admin.el
xemacs\xemacs-21.5\lisp\package-admin.el
--- xemacs\xemacs-21.5\lisp\package-admin.el Mon Mar 24 17:43:55 2003
+++ xemacs\xemacs-21.5\lisp\package-admin.el Wed Apr 09 10:29:54 2003
@@ -170,21 +170,21 @@
;; First, check the environment var.
(if env-value
(let ((path-list (paths-decode-directory-path env-value 'drop-empties)))
(cond ((eq type 'std)
(while path-list
- (if (equal (substring (car path-list) -16)
"xemacs-packages/")
+ (if (string-match "xemacs-packages[/\\]$" (car path-list))
(setq top-dir (car path-list)))
(setq path-list (cdr path-list))))
((eq type 'mule)
(while path-list
- (if (equal (substring (car path-list) -14) "mule-packages/")
+ (if (string-match "mule-packages[/\\]$" (car path-list))
(setq top-dir (car path-list)))
(setq path-list (cdr path-list)))))))
;; Wasn't in the environment, try `user-init-directory' if
;; USER-DIR is non-nil.
(if (and user-dir
(not top-dir))
(cond ((eq type 'std)
(setq top-dir (file-name-as-directory
(expand-file-name "xemacs-packages"
user-init-directory))))
((eq type 'mule)
@@ -195,14 +195,14 @@
(let ((path-list (nth 1 (packages-find-packages
emacs-data-roots
(packages-compute-package-locations user-init-d
irectory)))))
(cond ((eq type 'std)
(while path-list
- (if (equal (substring (car path-list) -16)
"xemacs-packages/")
+ (if (string-match "xemacs-packages[/\\]$" (car path-list))
(setq top-dir (car path-list)))
(setq path-list (cdr path-list))))
((eq type 'mule)
(while path-list
- (if (equal (substring (car path-list) -14) "mule-packages/")
+ (if (string-match "mule-packages[/\\]$" (car path-list))
(setq top-dir (car path-list)))
(setq path-list (cdr path-list)))))))
;; Now return either the directory or nil.