Subject: bug#10472: [PATCH] realpath: fix problems with // handling

From: Pádraig Brady <[email-masked]>
Date: Wed, 14 Mar 2012 09:12:57 +0000

On 03/14/2012 04:07 AM, Eric Blake wrote:
> On 03/13/2012 09:15 PM, Eric Blake wrote:
>>> Also doesn't path_prefix() need the same adjustment,
>>> so as to verify --relative-base in the same way?
>>
>> Yes, it looks like it.
> 
> In fact, I found another bug, this time present also on Linux:
> 
> $ realpath --relative-base=/ --relative-to=/ /
> /

This may be a local issue?
$ src/realpath --relative-base=/ --relative-to=/ /
.

> 
> when it should really output '.' (since '/' relative to itself is '.',
> and ALL files are below '/' [except when '//' is special]).  Likewise:
> 
> $ realpath --relative-base=/usr/local --relative-to=/usr \
>     /usr /usr/local/lib
> /usr
> /usr/local/lib
> 
> when it should really output '/usr' (absolute, since it is not a child
> of /usr/local) and 'local/lib' (which is a file below /usr/local, and an
> output name relative to /usr).

Well that was by design. I.E. --relative-base is a guard,
which if either --relative-to or the specified paths go higher,
an absolute name will be output.

cheers,
Pádraig.