aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ttwhy/scoped_attributes.cppm12
1 files changed, 9 insertions, 3 deletions
diff --git a/ttwhy/scoped_attributes.cppm b/ttwhy/scoped_attributes.cppm
index c68ab01..080bca7 100644
--- a/ttwhy/scoped_attributes.cppm
+++ b/ttwhy/scoped_attributes.cppm
@@ -56,9 +56,15 @@ namespace ttwhy
export struct scoped_attributes
{
explicit scoped_attributes(int file_descriptor)
- : m_file_descriptor{::dup(file_descriptor)}
- , m_attributes{read_attributes(file_descriptor)}
- {}
+ : m_file_descriptor{-1}
+ , m_attributes{}
+ {
+ if (isatty(file_descriptor))
+ {
+ m_file_descriptor = dup(file_descriptor);
+ m_attributes = read_attributes(m_file_descriptor);
+ }
+ }
scoped_attributes(scoped_attributes const &) = delete;