From 7c37b681b26d35c1cdf100297e04aaf326f93196 Mon Sep 17 00:00:00 2001 From: Fabian Boehm Date: Mon, 10 Apr 2023 19:49:50 +0200 Subject: [PATCH] Expose out_is_redirected to rust --- fish-rust/src/builtins/shared.rs | 9 ++++++++- fish-rust/src/ffi.rs | 4 ++++ src/io.h | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/fish-rust/src/builtins/shared.rs b/fish-rust/src/builtins/shared.rs index 988473b36..98b8783fd 100644 --- a/fish-rust/src/builtins/shared.rs +++ b/fish-rust/src/builtins/shared.rs @@ -89,14 +89,21 @@ pub struct io_streams_t { streams: *mut builtins_ffi::io_streams_t, pub out: output_stream_t, pub err: output_stream_t, + pub out_is_redirected: bool, } impl io_streams_t { pub fn new(mut streams: Pin<&mut builtins_ffi::io_streams_t>) -> io_streams_t { let out = output_stream_t(streams.as_mut().get_out().unpin()); let err = output_stream_t(streams.as_mut().get_err().unpin()); + let out_is_redirected = streams.as_mut().get_out_redirected(); let streams = streams.unpin(); - io_streams_t { streams, out, err } + io_streams_t { + streams, + out, + err, + out_is_redirected, + } } pub fn ffi_pin(&mut self) -> Pin<&mut builtins_ffi::io_streams_t> { diff --git a/fish-rust/src/ffi.rs b/fish-rust/src/ffi.rs index 84a9dc7a1..6d317891f 100644 --- a/fish-rust/src/ffi.rs +++ b/fish-rust/src/ffi.rs @@ -25,6 +25,8 @@ include_cpp! { #include "fallback.h" #include "fds.h" #include "flog.h" + #include "function.h" + #include "highlight.h" #include "io.h" #include "parse_constants.h" #include "parser.h" @@ -108,6 +110,8 @@ include_cpp! { generate!("function_get_annotated_definition") generate!("function_is_copy") generate!("function_exists") + + generate!("colorize_shell") } impl parser_t { diff --git a/src/io.h b/src/io.h index 15d48cc2b..8386aa997 100644 --- a/src/io.h +++ b/src/io.h @@ -512,6 +512,7 @@ struct io_streams_t : noncopyable_t { output_stream_t &get_out() { return out; }; output_stream_t &get_err() { return err; }; io_streams_t(const io_streams_t &) = delete; + bool get_out_redirected() { return out_is_redirected; }; }; #endif