chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
util: unify usage of on_tty() in util.c
[elogind.git]
/
src
/
shared
/
util.c
diff --git
a/src/shared/util.c
b/src/shared/util.c
index 462b541b41d6d7560b9ec0b792eb1f801633079b..527a5800fec407d6cc096f66d22dc22cbfa6d7cf 100644
(file)
--- a/
src/shared/util.c
+++ b/
src/shared/util.c
@@
-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, ...) {
}
int ask(char *ret, const char *replies, const char *text, ...) {
- bool on_tty;
assert(ret);
assert(replies);
assert(text);
assert(ret);
assert(replies);
assert(text);
- on_tty = isatty(STDOUT_FILENO);
-
for (;;) {
va_list ap;
char c;
int r;
bool need_nl = true;
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);
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);
fputs(ANSI_HIGHLIGHT_OFF, stdout);
fflush(stdout);
@@
-3820,6
+3817,15
@@
void columns_cache_reset(int signum) {
cached_columns = 0;
}
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);
int fd_lines(int fd) {
struct winsize ws;
zero(ws);