X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ffilesys.lisp;h=3bf1a5ae860d9820cf6a95106d206eb2e4c6c823;hb=15d6e7c9a2c3234f95dfe278046fa2fee1b0c007;hp=1d243d88ba9e3626bbfce96255c55c9a40c9a8ea;hpb=531b03cfcbc4071c5283309f05d9186e051e5513;p=sbcl.git diff --git a/src/code/filesys.lisp b/src/code/filesys.lisp index 1d243d8..3bf1a5a 100644 --- a/src/code/filesys.lisp +++ b/src/code/filesys.lisp @@ -375,7 +375,10 @@ (defaults-directory (%pathname-directory defaults)) (prefix-len (length defaults-directory)) (result-directory - (cond ((and (> prefix-len 1) + (cond ((null pathname-directory) '(:relative)) + ((eq (car pathname-directory) :relative) + pathname-directory) + ((and (> prefix-len 1) (>= (length pathname-directory) prefix-len) (compare-component (subseq pathname-directory 0 prefix-len) @@ -387,8 +390,7 @@ ;; We are an absolute pathname, so we can just use it. pathname-directory) (t - ;; We are a relative directory. So we lose. - (lose))))) + (bug "Bad fallthrough in ~S" 'unparse-unix-enough))))) (strings (unparse-unix-directory-list result-directory))) (let* ((pathname-type (%pathname-type pathname)) (type-needed (and pathname-type