mirror of
https://github.com/AuxXxilium/eudev.git
synced 2025-03-07 13:34:49 +07:00
util: unify usage of on_tty() in util.c
This commit is contained in:
parent
28917d7dc7
commit
8481248b9f
2
TODO
2
TODO
@ -19,6 +19,8 @@ F18:
|
||||
|
||||
Features:
|
||||
|
||||
* drop --follow from systemctl
|
||||
|
||||
* don't show cgroup in "systemctl status" if empty/non-existant, especially for foreign .mount units
|
||||
|
||||
* timedated: export boolean that clarifies whether NTP is even available
|
||||
|
@ -178,7 +178,7 @@ static void draw_progress(uint64_t p, usec_t *last_usec) {
|
||||
unsigned n, i, j, k;
|
||||
usec_t z, x;
|
||||
|
||||
if (!isatty(STDOUT_FILENO))
|
||||
if (!on_tty())
|
||||
return;
|
||||
|
||||
z = now(CLOCK_MONOTONIC);
|
||||
@ -212,7 +212,7 @@ static void draw_progress(uint64_t p, usec_t *last_usec) {
|
||||
static void flush_progress(void) {
|
||||
unsigned n, i;
|
||||
|
||||
if (!isatty(STDOUT_FILENO))
|
||||
if (!on_tty())
|
||||
return;
|
||||
|
||||
n = (3 * columns()) / 4;
|
||||
|
@ -400,21 +400,6 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
static bool on_tty(void) {
|
||||
static int t = -1;
|
||||
|
||||
/* Note that this is invoked relatively early, before we start
|
||||
* the pager. That means the value we return reflects whether
|
||||
* we originally were started on a tty, not if we currently
|
||||
* are. But this is intended, since we want colour and so on
|
||||
* when run in our own pager. */
|
||||
|
||||
if (_unlikely_(t < 0))
|
||||
t = isatty(STDOUT_FILENO) > 0;
|
||||
|
||||
return t;
|
||||
}
|
||||
|
||||
static int generate_new_id128(void) {
|
||||
sd_id128_t id;
|
||||
int r;
|
||||
@ -697,7 +682,7 @@ static int setup_keys(void) {
|
||||
goto finish;
|
||||
}
|
||||
|
||||
if (isatty(STDOUT_FILENO)) {
|
||||
if (on_tty()) {
|
||||
fprintf(stderr,
|
||||
"\n"
|
||||
"The new key pair has been generated. The " ANSI_HIGHLIGHT_ON "secret sealing key" ANSI_HIGHLIGHT_OFF " has been written to\n"
|
||||
@ -719,7 +704,7 @@ static int setup_keys(void) {
|
||||
|
||||
printf("/%llx-%llx\n", (unsigned long long) n, (unsigned long long) arg_interval);
|
||||
|
||||
if (isatty(STDOUT_FILENO)) {
|
||||
if (on_tty()) {
|
||||
char tsb[FORMAT_TIMESPAN_MAX], *hn;
|
||||
|
||||
fprintf(stderr,
|
||||
@ -982,8 +967,6 @@ int main(int argc, char *argv[]) {
|
||||
goto finish;
|
||||
}
|
||||
|
||||
on_tty();
|
||||
|
||||
if (!arg_no_pager && !arg_follow)
|
||||
pager_open();
|
||||
|
||||
|
@ -50,26 +50,9 @@ static enum transport {
|
||||
static bool arg_ask_password = true;
|
||||
static const char *arg_host = NULL;
|
||||
|
||||
static bool on_tty(void) {
|
||||
static int t = -1;
|
||||
|
||||
/* Note that this is invoked relatively early, before we start
|
||||
* the pager. That means the value we return reflects whether
|
||||
* we originally were started on a tty, not if we currently
|
||||
* are. But this is intended, since we want colour and so on
|
||||
* when run in our own pager. */
|
||||
|
||||
if (_unlikely_(t < 0))
|
||||
t = isatty(STDOUT_FILENO) > 0;
|
||||
|
||||
return t;
|
||||
}
|
||||
|
||||
static void pager_open_if_enabled(void) {
|
||||
|
||||
/* Cache result before we open the pager */
|
||||
on_tty();
|
||||
|
||||
if (arg_no_pager)
|
||||
return;
|
||||
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -132,26 +132,8 @@ static bool private_bus = false;
|
||||
static int daemon_reload(DBusConnection *bus, char **args);
|
||||
static void halt_now(enum action a);
|
||||
|
||||
static bool on_tty(void) {
|
||||
static int t = -1;
|
||||
|
||||
/* Note that this is invoked relatively early, before we start
|
||||
* the pager. That means the value we return reflects whether
|
||||
* we originally were started on a tty, not if we currently
|
||||
* are. But this is intended, since we want colour and so on
|
||||
* when run in our own pager. */
|
||||
|
||||
if (_unlikely_(t < 0))
|
||||
t = isatty(STDOUT_FILENO) > 0;
|
||||
|
||||
return t;
|
||||
}
|
||||
|
||||
static void pager_open_if_enabled(void) {
|
||||
|
||||
/* Cache result before we open the pager */
|
||||
on_tty();
|
||||
|
||||
if (arg_no_pager)
|
||||
return;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user