diff options
author | June McEnroe <june@causal.agency> | 2021-01-19 20:54:06 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2021-01-19 20:54:06 -0500 |
commit | 399db92745bcbaa8a9345eed26848d39dc3ea220 (patch) | |
tree | 15cb5030d879b9b86f022fe0fe6e90a0f3fb665c /bin | |
parent | Support BSD make syntax and match *.am (diff) | |
download | src-399db92745bcbaa8a9345eed26848d39dc3ea220.tar.gz src-399db92745bcbaa8a9345eed26848d39dc3ea220.zip |
Don't use a pager if reading standard input
Diffstat (limited to '')
-rw-r--r-- | bin/hilex.c | 7 | ||||
-rw-r--r-- | bin/man1/hilex.1 | 3 |
2 files changed, 6 insertions, 4 deletions
diff --git a/bin/hilex.c b/bin/hilex.c index 93401d95..59c1f12d 100644 --- a/bin/hilex.c +++ b/bin/hilex.c @@ -121,10 +121,10 @@ enum Option { typedef void Header(const char *opts[]); typedef void Output(const char *opts[], enum Class class, const char *text); -static bool tty; +static bool pager; static void ansiHeader(const char *opts[]) { (void)opts; - if (!(tty = isatty(STDOUT_FILENO))) return; + if (!pager) return; const char *shell = getenv("SHELL"); const char *pager = getenv("PAGER"); if (!shell) shell = "/bin/sh"; @@ -152,7 +152,7 @@ static void ansiHeader(const char *opts[]) { static void ansiFooter(const char *opts[]) { (void)opts; - if (!tty) return; + if (!pager) return; int status; fclose(stdout); wait(&status); @@ -365,6 +365,7 @@ int main(int argc, char *argv[]) { path = argv[optind]; file = fopen(path, "r"); if (!file) err(EX_NOINPUT, "%s", path); + pager = isatty(STDOUT_FILENO); } if (!name) { diff --git a/bin/man1/hilex.1 b/bin/man1/hilex.1 index e07695a3..ffa20bcf 100644 --- a/bin/man1/hilex.1 +++ b/bin/man1/hilex.1 @@ -65,7 +65,8 @@ input lexer if one cannot be inferred. .Bl -tag -width Ds .It Cm ansi Output ANSI terminal control sequences. -If standard output is a terminal, +If standard output is a terminal +and standard input is not being read, output is piped to .Ev PAGER with |