This commit applies rustfmt with rust-lang/rust's default settings to files in src/libstd/sys *that are not involved in any currently open PR* to minimize merge conflicts. THe list of files involved in open PRs was determined by querying GitHub's GraphQL API with this script: https://gist.github.com/dtolnay/aa9c34993dc051a4f344d1b10e4487e8 With the list of files from the script in outstanding_files, the relevant commands were: $ find src/libstd/sys -name '*.rs' \ | xargs rustfmt --edition=2018 --unstable-features --skip-children $ rg libstd/sys outstanding_files | xargs git checkout -- Repeating this process several months apart should get us coverage of most of the rest of the files. To confirm no funny business: $ git checkout $THIS_COMMIT^ $ git show --pretty= --name-only $THIS_COMMIT \ | xargs rustfmt --edition=2018 --unstable-features --skip-children $ git diff $THIS_COMMIT # there should be no difference
26 lines
634 B
Rust
26 lines
634 B
Rust
use crate::ffi::CStr;
|
|
use crate::str;
|
|
|
|
use libc::c_int;
|
|
|
|
pub use crate::sys::cloudabi::shims::os::*;
|
|
|
|
pub fn errno() -> i32 {
|
|
extern "C" {
|
|
#[thread_local]
|
|
static errno: c_int;
|
|
}
|
|
|
|
unsafe { errno as i32 }
|
|
}
|
|
|
|
/// Gets a detailed string description for the given error number.
|
|
pub fn error_string(errno: i32) -> String {
|
|
// cloudlibc's strerror() is guaranteed to be thread-safe. There is
|
|
// thus no need to use strerror_r().
|
|
str::from_utf8(unsafe { CStr::from_ptr(libc::strerror(errno)) }.to_bytes()).unwrap().to_owned()
|
|
}
|
|
|
|
pub fn exit(code: i32) -> ! {
|
|
unsafe { libc::exit(code as c_int) }
|
|
}
|