mirror of
https://github.com/Dasharo/systemd.git
synced 2026-03-06 15:02:31 -08:00
terminal-util: introduce isatty_safe that rejects EBADF
This commit is contained in:
@@ -54,6 +54,18 @@ static volatile int cached_on_dev_null = -1;
|
||||
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;
|
||||
|
||||
|
||||
@@ -86,6 +86,8 @@
|
||||
/* 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);
|
||||
|
||||
Reference in New Issue
Block a user