about summary refs log tree commit diff
path: root/src/libstd/sys
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2015-03-13 01:00:02 +0000
committerbors <bors@rust-lang.org>2015-03-13 01:00:02 +0000
commit79dd393a4f144fa5e6f81c720c782de3175810d7 (patch)
tree06bfba9dd93f962fec59a068dcc218dfbc07db76 /src/libstd/sys
parentc9b03c24ec346e6405883032094f47805ef9c43e (diff)
parent42c4e481cd98bd392839144c9ac83e55e445a12a (diff)
downloadrust-79dd393a4f144fa5e6f81c720c782de3175810d7.tar.gz
rust-79dd393a4f144fa5e6f81c720c782de3175810d7.zip
Auto merge of #23229 - aturon:stab-path, r=alexcrichton
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` method is now `without_file` and succeeds if, and only
  if, `file_name` is `Some(_)`. That means, in particular, that it fails
  for a path like `foo/../`. This change affects `pop` as well.

In addition, the `old_path` module is now deprecated.

[breaking-change]

r? @alexcrichton 
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 328c536e188..9a89b290980 100644
--- a/src/libstd/sys/common/mod.rs
+++ b/src/libstd/sys/common/mod.rs
@@ -15,7 +15,10 @@ use prelude::v1::*;
 use sys::{last_error, retry};
 use ffi::CString;
 use num::Int;
+
+#[allow(deprecated)]
 use old_path::BytesContainer;
+
 use collections;
 
 #[macro_use] pub mod helper_thread;
@@ -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 d5469eb82ef..df0e8de3ff1 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 8de2fe1336f..b464ba70911 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 prelude::v1::*;
 
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 5e6fcc66407..a218fb26fda 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 119ff3dbcc8..e465ecaa5f6 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::*;