diff options
author | Damien Doligez <damien.doligez-inria.fr> | 2005-01-31 17:01:02 +0000 |
---|---|---|
committer | Damien Doligez <damien.doligez-inria.fr> | 2005-01-31 17:01:02 +0000 |
commit | 2575506299ebae0af0986a5e961393bfe343281a (patch) | |
tree | aae92aa28308c13e51c581cdd9dcf0d7f57d55f8 | |
parent | da987178c0e144695fa1721b57a5243bbbf4a050 (diff) | |
download | ocaml-2575506299ebae0af0986a5e961393bfe343281a.tar.gz |
PR#3451 empty basename -> .
git-svn-id: http://caml.inria.fr/svn/ocaml/version/3.08@6762 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r-- | stdlib/filename.ml | 13 | ||||
-rw-r--r-- | stdlib/filename.mli | 5 |
2 files changed, 12 insertions, 6 deletions
diff --git a/stdlib/filename.ml b/stdlib/filename.ml index 7d6887eaf4..afe19611ad 100644 --- a/stdlib/filename.ml +++ b/stdlib/filename.ml @@ -129,11 +129,14 @@ let concat dirname filename = else dirname ^ dir_sep ^ filename let basename name = - try - let p = rindex_dir_sep name + 1 in - String.sub name p (String.length name - p) - with Not_found -> - name + let raw_name = + try + let p = rindex_dir_sep name + 1 in + String.sub name p (String.length name - p) + with Not_found -> + name + in + if raw_name = "" then current_dir_name else raw_name let dirname name = try diff --git a/stdlib/filename.mli b/stdlib/filename.mli index 086775f5e9..ed63a45fd5 100644 --- a/stdlib/filename.mli +++ b/stdlib/filename.mli @@ -60,7 +60,10 @@ val basename : string -> string which is equivalent to [name]. Moreover, after setting the current directory to [dirname name] (with {!Sys.chdir}), references to [basename name] (which is a relative file name) - designate the same file as [name] before the call to {!Sys.chdir}. *) + designate the same file as [name] before the call to {!Sys.chdir}. + + The result is not specified if the argument is not a valid file name + (for example, under Unix if there is a NUL character in the string). *) val dirname : string -> string (** See {!Filename.basename}. *) |