UIOP:UNIX-NAMESTRING loses UNC path information on Allegro
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ASDF |
Invalid
|
Undecided
|
Unassigned |
Bug Description
CL-USER> #P"\\\\
#P"\\\\
CL-USER> (describe *)
; No value
#P"\\\\
PATHNAME. It has these slots:
EXCL::HOST "host"
EXCL::DEVICE "share"
DIRECTORY (:ABSOLUTE "path" "to")
EXCL::NAME "file"
TYPE "ext"
EXCL::VERSION :UNSPECIFIC
NAMESTRING "\\\\host\
EXCL::HASH NIL
EXCL:
EXCL::PLIST NIL
CL-USER> (uiop:unix-
"/path/to/file.ext"
;; I was expecting "//host/
CL-USER> (lisp-implement
"9.0 [64-bit Windows] (Aug 13, 2014 17:16)"
("lisp_build 66")
Here is the docsctring for UNIX-NAMESTRING:
"Given a non-wild PATHNAME, return a Unix-style namestring for it.
If the PATHNAME is NIL or a STRING, return it unchanged.
This only considers the DIRECTORY, NAME and TYPE components of the pathname.
This is a portable solution for representing relative pathnames,
But unless you are running on a Unix system, it is not a general solution
to representing native pathnames.
An error is signaled if the argument is not NULL, a STRING or a PATHNAME,
or if it is a PATHNAME but some of its components are not recognized."
So I'm afraid UIOP:UNIX- NAMESTRING is simply the wrong function to do what you want.
I will close this as INVALID, unless you would like to turn it into a feature request for a new function that WILL do what you want. If so, please add a comment with a specification for the function you would like to see.