Skip to content

Commit

Permalink
Auto merge of rust-lang#77090 - rust-lang:revert-76110-convert-openop…
Browse files Browse the repository at this point in the history
…tions-cint, r=dtolnay

Revert "Function to convert OpenOptions to c_int"

Reverts rust-lang#76110. This broke Rust's stability guarantees.

Closes rust-lang#77089.

r? `@joshtriplett`
  • Loading branch information
bors committed Sep 23, 2020
2 parents 33aa8be + 15f08d6 commit a6008fa
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 35 deletions.
29 changes: 0 additions & 29 deletions library/std/src/sys/unix/ext/fs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -348,31 +348,6 @@ pub trait OpenOptionsExt {
/// ```
#[stable(feature = "open_options_ext", since = "1.10.0")]
fn custom_flags(&mut self, flags: i32) -> &mut Self;

/// Get the flags as [`libc::c_int`].
///
/// This method allows the reuse of the OpenOptions as flags argument for [`libc::open`].
///
/// [`libc::c_int`]: https://docs.rs/libc/*/libc/type.c_int.html
/// [`libc::open`]: https://docs.rs/libc/*/libc/fn.open.html
///
/// # Examples
///
/// ```no_run
/// # #![feature(rustc_private)]
/// #![feature(open_options_ext_as_flags)]
/// extern crate libc;
/// use std::ffi::CString;
/// use std::fs::OpenOptions;
/// use std::os::unix::fs::OpenOptionsExt;
///
/// let mut options = OpenOptions::new();
/// options.write(true).read(true);
/// let file_name = CString::new("foo.txt").unwrap();
/// let file = unsafe { libc::open(file_name.as_c_str().as_ptr(), options.as_flags().unwrap()) };
/// ```
#[unstable(feature = "open_options_ext_as_flags", issue = "76801")]
fn as_flags(&self) -> io::Result<libc::c_int>;
}

#[stable(feature = "fs_ext", since = "1.1.0")]
Expand All @@ -386,10 +361,6 @@ impl OpenOptionsExt for OpenOptions {
self.as_inner_mut().custom_flags(flags);
self
}

fn as_flags(&self) -> io::Result<libc::c_int> {
self.as_inner().as_flags()
}
}

/// Unix-specific extensions to [`fs::Metadata`].
Expand Down
6 changes: 0 additions & 6 deletions library/std/src/sys/unix/fs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -656,12 +656,6 @@ impl OpenOptions {
self.mode = mode as mode_t;
}

pub fn as_flags(&self) -> io::Result<c_int> {
let access_mode = self.get_access_mode()?;
let creation_mode = self.get_creation_mode()?;
Ok(creation_mode | access_mode | self.custom_flags)
}

fn get_access_mode(&self) -> io::Result<c_int> {
match (self.read, self.write, self.append) {
(true, false, false) => Ok(libc::O_RDONLY),
Expand Down

0 comments on commit a6008fa

Please sign in to comment.