util: unify usage of on_tty() in util.c
This commit is contained in:
+1
-1
@@ -57,7 +57,7 @@ int pager_open(void) {
|
||||
if (!*pager || streq(pager, "cat"))
|
||||
return 0;
|
||||
|
||||
if (isatty(STDOUT_FILENO) <= 0)
|
||||
if (!on_tty())
|
||||
return 0;
|
||||
|
||||
/* Determine and cache number of columns before we spawn the
|
||||
|
||||
+11
-5
@@ -2175,28 +2175,25 @@ int read_one_char(FILE *f, char *ret, usec_t t, bool *need_nl) {
|
||||
}
|
||||
|
||||
int ask(char *ret, const char *replies, const char *text, ...) {
|
||||
bool on_tty;
|
||||
|
||||
assert(ret);
|
||||
assert(replies);
|
||||
assert(text);
|
||||
|
||||
on_tty = isatty(STDOUT_FILENO);
|
||||
|
||||
for (;;) {
|
||||
va_list ap;
|
||||
char c;
|
||||
int r;
|
||||
bool need_nl = true;
|
||||
|
||||
if (on_tty)
|
||||
if (on_tty())
|
||||
fputs(ANSI_HIGHLIGHT_ON, stdout);
|
||||
|
||||
va_start(ap, text);
|
||||
vprintf(text, ap);
|
||||
va_end(ap);
|
||||
|
||||
if (on_tty)
|
||||
if (on_tty())
|
||||
fputs(ANSI_HIGHLIGHT_OFF, stdout);
|
||||
|
||||
fflush(stdout);
|
||||
@@ -3820,6 +3817,15 @@ void columns_cache_reset(int signum) {
|
||||
cached_columns = 0;
|
||||
}
|
||||
|
||||
bool on_tty(void) {
|
||||
static int cached_on_tty = -1;
|
||||
|
||||
if (_unlikely_(cached_on_tty < 0))
|
||||
cached_on_tty = isatty(STDOUT_FILENO) > 0;
|
||||
|
||||
return cached_on_tty;
|
||||
}
|
||||
|
||||
int fd_lines(int fd) {
|
||||
struct winsize ws;
|
||||
zero(ws);
|
||||
|
||||
@@ -385,6 +385,7 @@ int status_welcome(void);
|
||||
int fd_columns(int fd);
|
||||
unsigned columns(void);
|
||||
void columns_cache_reset(int _unused_ signum);
|
||||
bool on_tty(void);
|
||||
|
||||
int fd_lines(int fd);
|
||||
unsigned lines(void);
|
||||
|
||||
Reference in New Issue
Block a user