makeRelative
Jon Fairbairn
jon.fairbairn at cl.cam.ac.uk
Fri Sep 28 10:50:18 CEST 2012
Ian Lynagh <ian at well-typed.com> writes:
> On Wed, Sep 26, 2012 at 03:30:50PM +0100, Jon Fairbairn wrote:
>>
>> I have an application where I want to use relative paths in
>> symlinks […]
>>
>> So I want
>>
>> makeRelative "/var/www/this_server/foo/bar/" "/var/www/this_server/bob"
>>
>> to return "../../bob" […]
>>
>> On posix at least, this would permit isRelative (makeRelative a
>> b) always to be True, which is a pleasant property for it to
>> have.
>>
>> Is there any reason that System.FilePath.Posix.makeRelative should not
>> do this? I don’t know enough about non-posix filesystems to know
>> whether it even makes sense elsewhere.
>
> Coincidentally, I needed this yesterday
So evidently it is useful, and at least two people think it
should work this way :-)
> (in my case, I know that both paths are absolute).
I wrote something similar, but with calls to isAbsolute and use
of System.FilePath.makeRelative
> One thing I wasn't sure of is what to do about different drives on
> Windows. Perhaps it would actually need to return a Maybe FilePath?
That would be an API change. Instead the documentation could
still have a “where possible” clause, but add that it’s always
possible on Posix.
--
Jón Fairbairn Jon.Fairbairn at cl.cam.ac.uk
More information about the Libraries
mailing list