From ab6181ade55645c10e94593505c30b968d2f5b9f Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Tue, 19 Jan 2021 20:54:06 -0500 Subject: Don't use a pager if reading standard input --- bin/hilex.c | 7 ++++--- bin/man1/hilex.1 | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'bin') diff --git a/bin/hilex.c b/bin/hilex.c index 9fa0b5a9..4952c7ad 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 -- cgit 1.4.1