Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
Bug in Filename.basename?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2007-09-05 (12:37)
From: Brian Hurt <bhurt@j...>
Subject: Re: [Caml-list] Bug in Filename.basename?
Erik de Castro Lopo wrote:

>Richard Jones wrote:
>>I think the OCaml one is what I'd reasonably expect actually.
>>The GNU documentation for basename says:
>>  `basename' removes any leading directory components from NAME.
>>and a/b/c/ are leading directory components.
>The word "leading" in the above is at best, ambiguous.
>Regardless of what the documentation says, the behaviour of Ocaml's
>basename function is different from the basename program (from the
>GNU coreutils package) on my Linux system.
Interesting point from the Linux basename man page:

>        There  are  two  different  versions  of basename() - the POSIX 
> version
>        described above, and the GNU version one gets after
>          #define _GNU_SOURCE
>          #include <string.h>
>        The GNU version never modifies its  argument,  and  returns  
> the  empty
>        string  when  path has a trailing slash, and in particular also 
> when it
>        is "/".  There is no GNU version of dirname().

So there seems to be some confusion, even at Gnu, as to what the proper 
behavior of this function should be.