summary refs log tree commit diff
path: root/bin/hilex.c
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2021-01-19 20:54:06 -0500
committerJune McEnroe <june@causal.agency>2021-01-19 20:54:06 -0500
commitab6181ade55645c10e94593505c30b968d2f5b9f (patch)
treeca71c7df9fc0d87faa7089750e361f465d725032 /bin/hilex.c
parentSupport BSD make syntax and match *.am (diff)
downloadsrc-ab6181ade55645c10e94593505c30b968d2f5b9f.tar.gz
src-ab6181ade55645c10e94593505c30b968d2f5b9f.zip
Don't use a pager if reading standard input
Diffstat (limited to 'bin/hilex.c')
-rw-r--r--bin/hilex.c7
1 files changed, 4 insertions, 3 deletions
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) {