X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fshared%2Fpager.c;h=8dddf24f4c7816ba7e739016563f4c92b282cca2;hb=9f26c90cb50c45d4549c4dd569917b4ac143b94d;hp=6799787e85b0cf7d339e23d553b328b6fbd9d3ab;hpb=f89a3b6f5bf695186e7b9e6cc63993b1272e7569;p=elogind.git diff --git a/src/shared/pager.c b/src/shared/pager.c index 6799787e8..8dddf24f4 100644 --- a/src/shared/pager.c +++ b/src/shared/pager.c @@ -44,7 +44,7 @@ _noreturn_ static void pager_fallback(void) { _exit(EXIT_SUCCESS); } -int pager_open(void) { +int pager_open(bool jump_to_end) { int fd[2]; const char *pager; pid_t parent_pid; @@ -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 @@ -85,7 +85,10 @@ int pager_open(void) { dup2(fd[0], STDIN_FILENO); close_pipe(fd); - setenv("LESS", "FRSX", 0); + if (jump_to_end) + setenv("LESS", "FRSXMK+G", 1); + else + setenv("LESS", "FRSXMK", 1); /* Make sure the pager goes away when the parent dies */ if (prctl(PR_SET_PDEATHSIG, SIGTERM) < 0)