diff options
author | Martin Braun <martin.braun@ettus.com> | 2019-09-30 13:18:19 +0200 |
---|---|---|
committer | Brent Stapleton <brent.stapleton@ettus.com> | 2019-10-07 11:38:25 -0700 |
commit | 15b10f9e8e2e98be8717a347304202c7aa171125 (patch) | |
tree | d981d7aec8793421180bad620bbe39d47f87f4f6 /host/lib | |
parent | d33eb0efa8a90491a3f89e42c008f6602190714f (diff) | |
download | uhd-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.hpp | 55 |
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 */ |