Zach Beane has pointed out to me that cmucl doesn't merge the pathname with *default-pathname-defaults* as required in CLHS 19.2.3.

In particular, OPEN, ENSURE-DIRECTORIES-EXIST, FILE-AUTHOR, and DELETE-FILE don't merge.  This is now fixed in cvs.

I'm too lazy to make a patch for 20a for this (if you really want one, speak up!) so I offer the following fix for this issue.

(fwrappers:define-fwrapper force-merge-pathname (filename &rest options)
  (setf filename (merge-pathnames filename))
  (fwrappers::call-next-function))

(fwrappers:fwrap 'open #'force-merge-pathname)
(fwrappers:fwrap 'ensure-directories-exist #'force-merge-pathname)
(fwrappers:fwrap 'file-author #'force-merge-pathname)
(fwrappers:fwrap 'delete-file #'force-merge-pathname)

(This is pretty neat.  I've never used fwrappers before, even though they've been there for years now.)

Ray