aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib
diff options
context:
space:
mode:
authorMartin Braun <martin.braun@ettus.com>2019-09-30 13:18:19 +0200
committerBrent Stapleton <brent.stapleton@ettus.com>2019-10-07 11:38:25 -0700
commit15b10f9e8e2e98be8717a347304202c7aa171125 (patch)
treed981d7aec8793421180bad620bbe39d47f87f4f6 /host/lib
parentd33eb0efa8a90491a3f89e42c008f6602190714f (diff)
downloaduhd-15b10f9e8e2e98be8717a347304202c7aa171125.tar.gz
uhd-15b10f9e8e2e98be8717a347304202c7aa171125.tar.bz2
uhd-15b10f9e8e2e98be8717a347304202c7aa171125.zip
lib: utils: Add is_a_tty()
This is a portable version of POSIX's isatty(). Windows has its own version, called _isatty(). UHD thus gains its own, portable version. The underscores aren't beautiful, but they're necessary so we can distinguish the POSIX version from the UHD version.
Diffstat (limited to 'host/lib')
-rw-r--r--host/lib/include/uhdlib/utils/isatty.hpp55
1 files changed, 55 insertions, 0 deletions
diff --git a/host/lib/include/uhdlib/utils/isatty.hpp b/host/lib/include/uhdlib/utils/isatty.hpp
new file mode 100644
index 000000000..1ae2c8de4
--- /dev/null
+++ b/host/lib/include/uhdlib/utils/isatty.hpp
@@ -0,0 +1,55 @@
+//
+// Copyright 2019 Ettus Research, a National Instruments Brand
+//
+// SPDX-License-Identifier: GPL-3.0-or-later
+//
+
+#ifndef INCLUDED_UHDLIB_UTILS_ISATTY_HPP
+#define INCLUDED_UHDLIB_UTILS_ISATTY_HPP
+
+#include <uhd/config.hpp>
+
+namespace uhd {
+
+#ifdef UHD_PLATFORM_WIN32
+
+# include <io.h>
+
+ /*! Portable version of isatty()
+ *
+ * We call it is_a_tty() to distinguish from the from the POSIX version.
+ * Also, we simply return a Boolean since the Windows version doesn't set
+ * errno.
+ */
+ bool is_a_tty(const int fd)
+ {
+ return _isatty(fd);
+ }
+
+#elif _POSIX_C_SOURCE >= _200112L
+
+# include <unistd.h>
+
+ /*! Portable version of isatty()
+ *
+ * We call it is_a_tty() to distinguish from the from the POSIX version.
+ * Also, we simply return a Boolean since the Windows version doesn't set
+ * errno.
+ */
+ bool is_a_tty(const int fd)
+ {
+ return isatty(fd);
+ }
+
+#else
+
+ bool is_a_tty(const int fd)
+ {
+ return false;
+ }
+
+#endif
+
+} /* namespace uhd */
+
+#endif /* INCLUDED_UHDLIB_UTILS_ISATTY_HPP */