#606 closed defect (fixed)
make-pathname always uses / separator char
Reported by: | Jim Ursetto | Owned by: | felix winkelmann |
---|---|---|---|
Priority: | major | Milestone: | 4.9.0 |
Component: | core libraries | Version: | 4.7.x |
Keywords: | Cc: | ||
Estimated difficulty: |
Description
Documentation says it uses the platform specific separator but it does not. You need a second (maybe expensive) pass through normalize-pathname. Is the documentation right or wrong? If wrong, what is the point of make-pathname?
Note: at least on mingw it still works to access a file with mixed or redundant pathname separators, so it may be ugly but the practical impact is unknown.
;; bad (make-pathname "foo" "bar") ; => "foo/bar" (make-pathname "foo\\" "bar") ; => "foo\\/bar" ;; good (normalize-pathname (make-pathname "foo" "bar") ; => "foo\\bar" (normalize-pathname (make-pathname "foo\\" "bar") ; => "foo\\bar"
Note: See
TracTickets for help on using
tickets.
I updated the manual entry and changed the code to allow both "/" and "\" as separators. It keeps the separators given in the arguments but inserts "/" where it has to.
(See experimental branch)