summaryrefslogtreecommitdiffstats
path: root/third_party/rust/termion/src/sys/unix/tty.rs
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/termion/src/sys/unix/tty.rs')
-rw-r--r--third_party/rust/termion/src/sys/unix/tty.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/third_party/rust/termion/src/sys/unix/tty.rs b/third_party/rust/termion/src/sys/unix/tty.rs
new file mode 100644
index 0000000000..2be9363470
--- /dev/null
+++ b/third_party/rust/termion/src/sys/unix/tty.rs
@@ -0,0 +1,17 @@
+use std::{fs, io};
+use std::os::unix::io::AsRawFd;
+
+use super::libc;
+
+
+/// Is this stream a TTY?
+pub fn is_tty<T: AsRawFd>(stream: &T) -> bool {
+ unsafe { libc::isatty(stream.as_raw_fd()) == 1 }
+}
+
+/// Get the TTY device.
+///
+/// This allows for getting stdio representing _only_ the TTY, and not other streams.
+pub fn get_tty() -> io::Result<fs::File> {
+ fs::OpenOptions::new().read(true).write(true).open("/dev/tty")
+}