[PATCH] 21.4 find packages in ../xemacs-packages at run-time
Vin Shelton
acs at xemacs.org
Tue Dec 27 10:16:26 EST 2005
On 12/27/05, Michael Sperber <sperber at informatik.uni-tuebingen.de> wrote:
>
> Vin Shelton <acs at xemacs.org> writes:
>
> > (Of course my concern about something like this is why I asked for
> > your help to start with.) Can you please explain what kinds of
> > confusion and problems you mean?
>
> The problem is that many people (including me) appeared to have
> ../xemacs-packages directories with something other than a package
> hierarchy. (Typically, a checked-out CVS or something.)
Here's the latest patch, searching only for xemacs-packages under
Windows or cygwin. I'm still planning to commit this to 21.4 by the
end of the week.
BTW, Mike, can you please investigate the EMACSPACKAGEPATH problem
that I've referred to:
> the problem I observed, where EMACSPACKAGEPATH is treated
> differently on 21.4 and 21.5 still exists. 21.4 looks under
> $EMACSPACKAGEPATH/xemacs-packages for packages, but 21.5 looks only
> under EMACSPACKAGEPATH.
I believe this problem has kept the 21.5 version of this patch from
working. That is, after applying the 21-5 version of this patch,
`paths-find-emacs-roots' locates the root of the package tree, but the
sub-directories of $root/xemacs-packages do not get added to
load-path.
Here's a simple test case:
mkdir -p foo/xemacs-packages
cd foo/xemacs-packages
<unpack packages here>
cd -
EMACSPACKAGEPATH=$PWD/foo xemacs-21.5 -vanilla
will not find the packages unpacked under foo/xemacs-packages. The
same test under 21.4 will find those packages. I think it's desirable
to have the behavior consistent between the 2 versions so installed
packages can be shared.
If you don't want to look into this yourself, just point me in the
right direction and I will investigate.
Thank you,
Vin
--
Whoever you are, no matter how lonely,
the world offers itself to your imagination,
calls to you like the wild geese, harsh and exciting--
over and over announcing your place
in the family of things. Mary Oliver
-------------- next part --------------
Index: lisp/ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/ChangeLog,v
retrieving revision 1.266.2.88
diff -a -u -u -0 -r1.266.2.88 ChangeLog
--- lisp/ChangeLog 2005/12/07 01:16:46 1.266.2.88
+++ lisp/ChangeLog 2005/12/26 22:26:30
@@ -0,0 +1,9 @@
+2005-12-26 Vin Shelton <acs at xemacs.org>
+
+ * find-paths.el:
+ * find-paths.el (paths-emacs-root-p): Add search for package root.
+ * find-paths.el (paths-find-emacs-root): Replaced with
+ paths-find-invocation-roots, which returns a list of roots.
+ * find-paths.el (paths-find-invocation-roots): New.
+ * find-paths.el (paths-find-emacs-roots): Call paths-find-invocation-roots.
+
Index: lisp/find-paths.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/find-paths.el,v
retrieving revision 1.19.2.2
diff -a -u -u -0 -r1.19.2.2 find-paths.el
--- lisp/find-paths.el 2002/08/20 11:34:41 1.19.2.2
+++ lisp/find-paths.el 2005/12/26 22:26:30
@@ -111 +111,6 @@
- (paths-file-readable-directory-p (paths-construct-path (list directory "etc"))))))
+ (paths-file-readable-directory-p (paths-construct-path (list directory "etc"))))
+
+ ;; searching for a package directory on Windows
+ (and
+ (string-match "win32\\|cygwin" system-configuration)
+ (paths-file-readable-directory-p (paths-construct-path (list directory "xemacs-packages"))))))
@@ -126,3 +131,4 @@
-(defun paths-find-emacs-root
- (invocation-directory invocation-name)
- "Find the run-time root of XEmacs."
+(defun paths-find-invocation-roots (invocation-directory invocation-name)
+ "Find the list of run-time roots of XEmacs.
+INVOCATION-DIRECTORY is a directory containing the XEmacs executable.
+INVOCATION-NAME is the name of the executable itself."
@@ -137,4 +143,3 @@
- (or (and (paths-emacs-root-p maybe-root-1)
- maybe-root-1)
- (and (paths-emacs-root-p maybe-root-2)
- maybe-root-2))))
+
+ (paths-filter #'paths-emacs-root-p
+ (list maybe-root-1 maybe-root-2))))
@@ -304,5 +309,2 @@
- (let* ((potential-invocation-root
- (paths-find-emacs-root invocation-directory invocation-name))
- (invocation-roots
- (and potential-invocation-root
- (list potential-invocation-root)))
+ (let* ((invocation-roots
+ (paths-find-invocation-roots invocation-directory invocation-name))
More information about the XEmacs-Beta
mailing list