Skip to content

Commit

Permalink
std: Use macros from libc instead of locally
Browse files Browse the repository at this point in the history
Helps cut down on #[cfg]!
  • Loading branch information
alexcrichton committed Feb 10, 2016
1 parent b37477c commit efb23db
Showing 1 changed file with 3 additions and 24 deletions.
27 changes: 3 additions & 24 deletions src/libstd/sys/unix/process.rs
Expand Up @@ -519,30 +519,9 @@ impl fmt::Debug for Command {
#[derive(PartialEq, Eq, Clone, Copy, Debug)]
pub struct ExitStatus(c_int);

#[cfg(any(target_os = "linux", target_os = "android",
target_os = "nacl"))]
mod status_imp {
pub fn WIFEXITED(status: i32) -> bool { (status & 0xff) == 0 }
pub fn WEXITSTATUS(status: i32) -> i32 { (status >> 8) & 0xff }
pub fn WTERMSIG(status: i32) -> i32 { status & 0x7f }
}

#[cfg(any(target_os = "macos",
target_os = "ios",
target_os = "freebsd",
target_os = "dragonfly",
target_os = "bitrig",
target_os = "netbsd",
target_os = "openbsd"))]
mod status_imp {
pub fn WIFEXITED(status: i32) -> bool { (status & 0x7f) == 0 }
pub fn WEXITSTATUS(status: i32) -> i32 { status >> 8 }
pub fn WTERMSIG(status: i32) -> i32 { status & 0o177 }
}

impl ExitStatus {
fn exited(&self) -> bool {
status_imp::WIFEXITED(self.0)
unsafe { libc::WIFEXITED(self.0) }
}

pub fn success(&self) -> bool {
Expand All @@ -551,15 +530,15 @@ impl ExitStatus {

pub fn code(&self) -> Option<i32> {
if self.exited() {
Some(status_imp::WEXITSTATUS(self.0))
Some(unsafe { libc::WEXITSTATUS(self.0) })
} else {
None
}
}

pub fn signal(&self) -> Option<i32> {
if !self.exited() {
Some(status_imp::WTERMSIG(self.0))
Some(unsafe { libc::WTERMSIG(self.0) })
} else {
None
}
Expand Down

0 comments on commit efb23db

Please sign in to comment.