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/sys/common/mod.rs | 4 ++++ src/libstd/sys/unix/fs.rs | 2 ++ src/libstd/sys/unix/process.rs | 2 +- src/libstd/sys/windows/backtrace.rs | 1 + src/libstd/sys/windows/ext.rs | 8 ++++++-- src/libstd/sys/windows/fs.rs | 2 ++ src/libstd/sys/windows/process.rs | 2 +- 7 files changed, 17 insertions(+), 4 deletions(-) (limited to 'src/libstd/sys') diff --git a/src/libstd/sys/common/mod.rs b/src/libstd/sys/common/mod.rs index 5054f72ea98..dc4ad209251 100644 --- a/src/libstd/sys/common/mod.rs +++ b/src/libstd/sys/common/mod.rs @@ -16,7 +16,10 @@ use prelude::v1::*; use sys::{last_error, retry}; use ffi::CString; use num::Int; + +#[allow(deprecated)] use old_path::BytesContainer; + use collections; pub mod backtrace; @@ -120,6 +123,7 @@ pub trait FromInner { } #[doc(hidden)] +#[allow(deprecated)] pub trait ProcessConfig { fn program(&self) -> &CString; fn args(&self) -> &[CString]; diff --git a/src/libstd/sys/unix/fs.rs b/src/libstd/sys/unix/fs.rs index 3d490380bfd..f23619955e2 100644 --- a/src/libstd/sys/unix/fs.rs +++ b/src/libstd/sys/unix/fs.rs @@ -10,6 +10,8 @@ //! Blocking posix-based file I/O +#![allow(deprecated)] // this module itself is essentially deprecated + use prelude::v1::*; use ffi::{CString, CStr}; diff --git a/src/libstd/sys/unix/process.rs b/src/libstd/sys/unix/process.rs index 62a1799de94..79bdaafa52e 100644 --- a/src/libstd/sys/unix/process.rs +++ b/src/libstd/sys/unix/process.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -#![allow(deprecated)] +#![allow(deprecated)] // this module itself is essentially deprecated use prelude::v1::*; use self::Req::*; diff --git a/src/libstd/sys/windows/backtrace.rs b/src/libstd/sys/windows/backtrace.rs index 51cf3032423..4f3f6b0858c 100644 --- a/src/libstd/sys/windows/backtrace.rs +++ b/src/libstd/sys/windows/backtrace.rs @@ -23,6 +23,7 @@ //! this takes the route of using StackWalk64 in order to walk the stack. #![allow(dead_code)] +#![allow(deprecated)] // for old path for dynamic lib use dynamic_lib::DynamicLibrary; use ffi::CStr; diff --git a/src/libstd/sys/windows/ext.rs b/src/libstd/sys/windows/ext.rs index b30aec08439..1d63da813c9 100644 --- a/src/libstd/sys/windows/ext.rs +++ b/src/libstd/sys/windows/ext.rs @@ -122,7 +122,7 @@ impl AsRawSocket for net::UdpSocket { fn as_raw_socket(&self) -> Socket { *self.as_inner().socket().as_inner() } } -// Windows-specific extensions to `OsString`. +/// Windows-specific extensions to `OsString`. pub trait OsStringExt { /// Create an `OsString` from a potentially ill-formed UTF-16 slice of 16-bit code units. /// @@ -137,8 +137,12 @@ impl OsStringExt for OsString { } } -// Windows-specific extensions to `OsStr`. +/// Windows-specific extensions to `OsStr`. pub trait OsStrExt { + /// Re-encode an `OsStr` as a wide character sequence, + /// i.e. potentially ill-formed UTF-16. + /// + /// This is lossless. Note that the encoding does not include a final null. fn encode_wide(&self) -> EncodeWide; } diff --git a/src/libstd/sys/windows/fs.rs b/src/libstd/sys/windows/fs.rs index 309d6c9dc48..6818880a4de 100644 --- a/src/libstd/sys/windows/fs.rs +++ b/src/libstd/sys/windows/fs.rs @@ -10,6 +10,8 @@ //! Blocking Windows-based file I/O +#![allow(deprecated)] // this module itself is essentially deprecated + use libc::{self, c_int}; use mem; diff --git a/src/libstd/sys/windows/process.rs b/src/libstd/sys/windows/process.rs index ca3ed54eb03..c9ef88d15dd 100644 --- a/src/libstd/sys/windows/process.rs +++ b/src/libstd/sys/windows/process.rs @@ -8,7 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -#![allow(deprecated)] +#![allow(deprecated)] // this module itself is essentially deprecated use prelude::v1::*; -- cgit 1.4.1-3-g733a5