static volatile int cached_color_mode = _COLOR_INVALID;
static volatile int cached_underline_enabled = -1;
+bool isatty_safe(int fd) {
+ assert(fd >= 0);
+
+ if (isatty(fd))
+ return true;
+
+ /* Be resilient if we're working on stdio, since they're set up by parent process. */
+ assert(errno != EBADF || IN_SET(fd, STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO));
+
+ return false;
+}
+
int chvt(int vt) {
_cleanup_close_ int fd = -EBADF;
/* Set cursor to top left corner and clear screen */
#define ANSI_HOME_CLEAR "\x1B[H\x1B[2J"
+bool isatty_safe(int fd);
+
int reset_terminal_fd(int fd, bool switch_to_text);
int reset_terminal(const char *name);
int set_terminal_cursor_position(int fd, unsigned int row, unsigned int column);