diff --git a/asdf.lisp b/asdf.lisp index 530468b89c9211daed98d955d602f5ff834f6dcc..19812e352a1cda9d8106e8085dd9703f6ae0bd76 100644 --- a/asdf.lisp +++ b/asdf.lisp @@ -542,7 +542,15 @@ actually-existing directory." "Converts the non-wild pathname designator PATHSPEC to directory form." (cond ((stringp pathspec) - (pathname (concatenate 'string pathspec "/"))) + (pathname + (let ((lastchar (aref pathspec (1- (length pathspec))))) + (cond ((or (eql lastchar #\;) (eql lastchar #\/)) pathspec) + ((find #\; pathspec) + (concatenate 'string pathspec ";")) + (t + ;; guess it's a string that's not a logical + ;; pathname string + (concatenate 'string pathspec "/")))))) ((not (pathnamep pathspec)) (error "Invalid pathname designator ~S" pathspec)) ((wild-pathname-p pathspec)