X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ftarget-pathname.lisp;h=f57d5b30d3ab5da4810e5d02adfc762391a98d67;hb=ad92fc1a3459fbe6b2473fed5916e71c8be4aa27;hp=f39c28523b5eefe9e1aebfcd46b0f02844bc6172;hpb=8c685e1fee08b4d1d9ef43b8d2784ac283c94096;p=sbcl.git diff --git a/src/code/target-pathname.lisp b/src/code/target-pathname.lisp index f39c285..f57d5b3 100644 --- a/src/code/target-pathname.lisp +++ b/src/code/target-pathname.lisp @@ -459,7 +459,7 @@ the operating system native pathname conventions." (if (and (eq dir :back) results (not (member (car results) - '(:back :wild-inferiors)))) + '(:back :wild-inferiors :relative :absolute)))) (pop results) (push dir results)))) (dolist (dir (maybe-diddle-case dir2 diddle-case)) @@ -1302,7 +1302,7 @@ PARSE-NAMESTRING." is not alphanumeric or hyphen:~% ~S" :args (list ch) :namestring word :offset i)))) - (coerce word 'base-string))) + (coerce word 'string))) ; why not simple-string? ;;; Given a logical host or string, return a logical host. If ERROR-P ;;; is NIL, then return NIL when no such host exists. @@ -1551,13 +1551,15 @@ PARSE-NAMESTRING." (version-supplied (not (or (null version) (eq version :unspecific))))) (when name - (when (and (null type) (position #\. name :start 1)) + (when (and (null type) + (typep name 'string) + (position #\. name :start 1)) (error "too many dots in the name: ~S" pathname)) (strings (unparse-logical-piece name))) (when type-supplied (unless name (error "cannot specify the type without a file: ~S" pathname)) - (when (typep type 'simple-string) + (when (typep type 'string) (when (position #\. type) (error "type component can't have a #\. inside: ~S" pathname))) (strings ".")