about summary refs log tree commit diff
path: root/src/libstd/sys
diff options
context:
space:
mode:
authorAaron Turon <aturon@mozilla.com>2015-03-09 08:49:10 -0700
committerAaron Turon <aturon@mozilla.com>2015-03-12 16:38:58 -0700
commit42c4e481cd98bd392839144c9ac83e55e445a12a (patch)
tree9b630066fe5ee9a68f31f65f4a09be0f8a47faad /src/libstd/sys
parentf899513a30165946a75ff7f515ab37a226e72172 (diff)
downloadrust-42c4e481cd98bd392839144c9ac83e55e445a12a.tar.gz
rust-42c4e481cd98bd392839144c9ac83e55e445a12a.zip
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]
Diffstat (limited to 'src/libstd/sys')
-rw-r--r--src/libstd/sys/common/mod.rs4
-rw-r--r--src/libstd/sys/unix/fs.rs2
-rw-r--r--src/libstd/sys/unix/process.rs2
-rw-r--r--src/libstd/sys/windows/backtrace.rs1
-rw-r--r--src/libstd/sys/windows/ext.rs8
-rw-r--r--src/libstd/sys/windows/fs.rs2
-rw-r--r--src/libstd/sys/windows/process.rs2
7 files changed, 17 insertions, 4 deletions
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<Inner> {
 }
 
 #[doc(hidden)]
+#[allow(deprecated)]
 pub trait ProcessConfig<K: BytesContainer, V: BytesContainer> {
     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::*;