From 42c4e481cd98bd392839144c9ac83e55e445a12a Mon Sep 17 00:00:00 2001 From: Aaron Turon Date: Mon, 9 Mar 2015 08:49:10 -0700 Subject: Stabilize std::path This commit stabilizes essentially all of the new `std::path` API. The API itself is changed in a couple of ways (which brings it in closer alignment with the RFC): * `.` components are now normalized away, unless they appear at the start of a path. This in turn effects the semantics of e.g. asking for the file name of `foo/` or `foo/.`, both of which yield `Some("foo")` now. This semantics is what the original RFC specified, and is also desirable given early experience rolling out the new API. * The `parent` function now succeeds if, and only if, the path has at least one non-root/prefix component. This change affects `pop` as well. * The `Prefix` component now involves a separate `PrefixComponent` struct, to better allow for keeping both parsed and unparsed prefix data. In addition, the `old_path` module is now deprecated. Closes #23264 [breaking-change] --- src/libstd/fs/mod.rs | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) (limited to 'src/libstd/fs') diff --git a/src/libstd/fs/mod.rs b/src/libstd/fs/mod.rs index 9f9163eb9e6..d8ee62ac239 100644 --- a/src/libstd/fs/mod.rs +++ b/src/libstd/fs/mod.rs @@ -571,18 +571,8 @@ pub fn create_dir(path: &P) -> io::Result<()> { pub fn create_dir_all(path: &P) -> io::Result<()> { let path = path.as_path(); if path.is_dir() { return Ok(()) } - match path.parent() { - Some(p) if p != path => try!(create_dir_all(p)), - _ => {} - } - // If the file name of the given `path` is blank then the creation of the - // parent directory will have taken care of the whole path for us, so we're - // good to go. - if path.file_name().is_none() { - Ok(()) - } else { - create_dir(path) - } + if let Some(p) = path.parent() { try!(create_dir_all(p)) } + create_dir(path) } /// Remove an existing, empty directory -- cgit 1.4.1-3-g733a5