Yes, I knew about the per-drive current directory… Could you give an example what the file:// URLs look like when they contain a drive letter?
For context, my goal looking at this was to make Path instances able to output a string representation of themselves that is useable independently of a FileSystem. A good example would be inside a configuration file committed in git, so that has to work whatever the system the working copy resides on, but that we can assume will contain nothing too system-specific. The URL path could be a nice example too. On 13 October 2016 at 18:15, Ben Coman <[email protected]> wrote: > Its awkward to deal with. Some notes here... > https://pharo.fogbugz.com/default.asp?13094#154946 > > > On Fri, Oct 14, 2016 at 12:05 AM, Damien Pollet <[email protected]> > wrote: > >> I explored a bit more and I'm stumped. Fixing it for Unix is easy, but it >> breaks Windows paths, because those use their first element to store the >> drive name (c: d: etc) which shouldn't be preceded by a /. >> >> I'm starting to think the Absolute/Relative dichotomy is either wrong or >> incomplete and we need windows-specific subclasses. Doesn't it feel strange >> that we can pass strings with different syntax and assumptions to Path >> class >> from: and get instances from the same classes? >> >> On 8 October 2016 at 19:21, Damien Pollet <[email protected]> >> wrote: >> >>> It's a breaking change and I don't know if there's a way to do it with >>> proper deprecation… my hope is that there are not many users of it, but I >>> haven't checked yet. Any opinions among users of FileSystem? >>> >>> On 8 October 2016 at 19:12, stepharo <[email protected]> wrote: >>> >>>> So damien what is the solution? >>>> >>>> >>>> >>>> Le 7/10/16 à 18:18, Damien Pollet a écrit : >>>> >>>> Path >> printString returns a self-evaluating representation, which is >>>> fine. Its symmetric is thus Compiler >> evaluate: aString. >>>> >>>> (Path from: aString) parses the unix/url representation of a path and >>>> results in a Path instance. As far as I understand, #fullName should be the >>>> symmetric of that, so that we always have (modulo syntactic normalization, >>>> maybe) : >>>> >>>> (Path from: aString) fullName = aString >>>> >>>> Note that there's an edge case with the empty string that is wrong (at >>>> least it should be confusing to unix guys): >>>> >>>> Path from: ''. "Path root" >>>> >>>> Usually the absolute path for the root of the filesystem is explicitly >>>> noted '/', and an empty path is equivalent to '.' >>>> >>>> -- >>>> Damien Pollet >>>> type less, do more [ | ] http://people.untyped.org/damien.pollet >>>> >>>> >>>> >>> >>> >>> -- >>> Damien Pollet >>> type less, do more [ | ] http://people.untyped.org/damien.pollet >>> >> >> >> >> -- >> Damien Pollet >> type less, do more [ | ] http://people.untyped.org/damien.pollet >> > > -- Damien Pollet type less, do more [ | ] http://people.untyped.org/damien.pollet
