From: Raymond T. <rt...@us...> - 2009-01-26 17:50:32
|
Update of /cvsroot/maxima/maxima/src In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv571/src Modified Files: init-cl.lisp Log Message: share-subdirs-list doesn't work on Windows with clisp. So, don't try to search on windows and use the default list. Added a new function to give the default list and updated share-subdirs-list to use it when running on windows, or if there's no version to search the share directory. This is a workaround. We really need to fix this if we're going to search the share directory. Index: init-cl.lisp =================================================================== RCS file: /cvsroot/maxima/maxima/src/init-cl.lisp,v retrieving revision 1.132 retrieving revision 1.133 diff -u -d -r1.132 -r1.133 --- init-cl.lisp 25 Jan 2009 21:53:22 -0000 1.132 +++ init-cl.lisp 26 Jan 2009 17:50:25 -0000 1.133 @@ -282,30 +282,33 @@ #+(or clisp ecl) (defun share-subdirs-list () - (let* ((share-root (pathname (concatenate 'string *maxima-sharedir* "/"))) - (dir-list (directory (merge-pathnames (make-pathname :directory '(:relative :wild-inferiors)) - share-root)))) - ;; dir-list contains all of the directories. Remove stuff we - ;; don't want like CVS directories. Anything else? - (setf dir-list (delete-if #'(lambda (x) - ;; Remove CVS directories - (or (equal x share-root) - (equal "CVS" (car (last (pathname-directory x)))))) - dir-list)) - ;; Now just want the part after the *maxima-sharedir*, and we want - ;; strings. - (setf dir-list - (mapcar #'(lambda (x) - (let ((dir (make-pathname :directory (butlast (pathname-directory x)) - :name (car (last (pathname-directory x)))))) - (enough-namestring dir share-root))) - dir-list)) - ;; Sort in alphabetical order - (sort dir-list #'string-lessp))) + ;; This doesn't work yet on windows. Give up in that case and use + ;; the default list. + (if (string= *autoconf-win32* "true") + (default-share-subdirs-list) + (let* ((share-root (pathname (concatenate 'string *maxima-sharedir* "/"))) + (dir-list (directory (merge-pathnames (make-pathname :directory '(:relative :wild-inferiors)) + share-root)))) + ;; dir-list contains all of the directories. Remove stuff we + ;; don't want like CVS directories. Anything else? + (setf dir-list (delete-if #'(lambda (x) + ;; Remove CVS directories + (or (equal x share-root) + (equal "CVS" (car (last (pathname-directory x)))))) + dir-list)) + ;; Now just want the part after the *maxima-sharedir*, and we want + ;; strings. + (setf dir-list + (mapcar #'(lambda (x) + (let ((dir (make-pathname :directory (butlast (pathname-directory x)) + :name (car (last (pathname-directory x)))))) + (enough-namestring dir share-root))) + dir-list)) + ;; Sort in alphabetical order + (sort dir-list #'string-lessp)))) -#-(or cmu clisp ecl) -(defun share-subdirs-list () +(defun default-share-subdirs-list () ;; Default implementation. Eventually this should go away. '("affine" "algebra" @@ -377,6 +380,10 @@ "utils" "vector")) +#-(or cmu clisp ecl) +(defun share-subdirs-list () + (default-share-subdirs-list)) + (defun set-pathnames () (let ((maxima-prefix-env (maxima-getenv "MAXIMA_PREFIX")) (maxima-layout-autotools-env (maxima-getenv "MAXIMA_LAYOUT_AUTOTOOLS")) |