driver: Use atty
instead of rolling our own
Rationale: - `atty` is widely used in the Rust ecosystem - We already use it (in `rustc_errors` and other places) - We shouldn't be rolling our own TTY detector when there's a widely-used, well-tested package that we can use
This commit is contained in:
parent
0406441664
commit
8c43160744
@ -3652,6 +3652,7 @@ dependencies = [
|
||||
name = "rustc_driver"
|
||||
version = "0.0.0"
|
||||
dependencies = [
|
||||
"atty",
|
||||
"libc",
|
||||
"rustc_ast",
|
||||
"rustc_ast_pretty",
|
||||
|
@ -9,6 +9,7 @@ crate-type = ["dylib"]
|
||||
|
||||
[dependencies]
|
||||
libc = "0.2"
|
||||
atty = "0.2"
|
||||
tracing = { version = "0.1.18" }
|
||||
tracing-subscriber = { version = "0.2.13", default-features = false, features = ["fmt", "env-filter", "smallvec", "parking_lot", "ansi"] }
|
||||
tracing-tree = "0.1.6"
|
||||
|
@ -546,43 +546,12 @@ pub fn and_then<F: FnOnce() -> Compilation>(self, next: F) -> Compilation {
|
||||
#[derive(Copy, Clone)]
|
||||
pub struct RustcDefaultCalls;
|
||||
|
||||
// FIXME remove these and use winapi 0.3 instead
|
||||
// Duplicates: bootstrap/compile.rs, librustc_errors/emitter.rs
|
||||
#[cfg(unix)]
|
||||
fn stdout_isatty() -> bool {
|
||||
unsafe { libc::isatty(libc::STDOUT_FILENO) != 0 }
|
||||
atty::is(atty::Stream::Stdout)
|
||||
}
|
||||
|
||||
#[cfg(windows)]
|
||||
fn stdout_isatty() -> bool {
|
||||
use winapi::um::consoleapi::GetConsoleMode;
|
||||
use winapi::um::processenv::GetStdHandle;
|
||||
use winapi::um::winbase::STD_OUTPUT_HANDLE;
|
||||
|
||||
unsafe {
|
||||
let handle = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
let mut out = 0;
|
||||
GetConsoleMode(handle, &mut out) != 0
|
||||
}
|
||||
}
|
||||
|
||||
// FIXME remove these and use winapi 0.3 instead
|
||||
#[cfg(unix)]
|
||||
fn stderr_isatty() -> bool {
|
||||
unsafe { libc::isatty(libc::STDERR_FILENO) != 0 }
|
||||
}
|
||||
|
||||
#[cfg(windows)]
|
||||
fn stderr_isatty() -> bool {
|
||||
use winapi::um::consoleapi::GetConsoleMode;
|
||||
use winapi::um::processenv::GetStdHandle;
|
||||
use winapi::um::winbase::STD_ERROR_HANDLE;
|
||||
|
||||
unsafe {
|
||||
let handle = GetStdHandle(STD_ERROR_HANDLE);
|
||||
let mut out = 0;
|
||||
GetConsoleMode(handle, &mut out) != 0
|
||||
}
|
||||
atty::is(atty::Stream::Stderr)
|
||||
}
|
||||
|
||||
fn handle_explain(registry: Registry, code: &str, output: ErrorOutputType) {
|
||||
|
Loading…
Reference in New Issue
Block a user