It's hopefully fixed in 1.725, except that somehow in the commit message, I wrote pjb where I should have written jcb. Oops. My "solution" to the "current-directory" thing was to rename it to "default-directory". [ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] You think you know when you can learn, are more sure when you can write, even more when you can teach, but certain when you can program. — Alan Perlis On 18 May 2010 06:32, Jean-Claude Beaudoin <jean.claude.beaudoin@gmail.com> wrote:
Here is a patch against 1.720 that fixes a weakness in merge-pathnames*. This was a show stopper in my system.
It seems that merge-pathnames* assumes that *default-pathname-defaults* has some interesting value to contribute which is not always the case. In my system and in a few others (clisp comes to mind) the usual value of *default-pathname-defaults* is #P"" which ends up giving
(pathname-directory *default-pathname-defaults*) => nil
Then, (append nil (cdr directory)) is probably not a "valid pathname directory". In clisp passing this not so "valid pathname directory" to make-pathname will result in a visit in the debugger...
I want also to insist again on the issue of accessing the process current directory. Assuming that *default-pathname-defaults* is a substitute for the process current directory is not portable ANSI Common Lisp code. The following definition is very likely to be wrong on at least one ANSI Common Lisp conforming implementation:
(defun current-directory () (truenamize (pathname-directory-pathname *default-pathname-defaults*)))
Cheers,
Jean-Claude Beaudoin