From: Jason A. Donenfeld Date: Wed, 12 Feb 2014 02:30:10 +0000 (+0100) Subject: pager: support SYSTEMD_LESS environment variable X-Git-Tag: v209~174 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=f366d58dc1fe51b300167446597750d29687c3c5 pager: support SYSTEMD_LESS environment variable This allows customization of the arguments used by less. The main motivation is that some folks might not like having --no-init on every invocation of less. --- diff --git a/man/journalctl.xml b/man/journalctl.xml index 3b05e80fc..18a1b9ef2 100644 --- a/man/journalctl.xml +++ b/man/journalctl.xml @@ -887,6 +887,10 @@ this to an empty string or the value cat is equivalent to passing . + $SYSTEMD_LESS + $SYSTEMD_LESS overrides the + default options passed to less + (FRSXMK). diff --git a/man/localectl.xml b/man/localectl.xml index 0950cce97..238757c2e 100644 --- a/man/localectl.xml +++ b/man/localectl.xml @@ -265,6 +265,10 @@ this to an empty string or the value cat is equivalent to passing . + $SYSTEMD_LESS + $SYSTEMD_LESS overrides the + default options passed to less + (FRSXMK). diff --git a/man/loginctl.xml b/man/loginctl.xml index 13105d4dc..ede869f39 100644 --- a/man/loginctl.xml +++ b/man/loginctl.xml @@ -486,6 +486,10 @@ this to an empty string or the value cat is equivalent to passing . + $SYSTEMD_LESS + $SYSTEMD_LESS overrides the + default options passed to less + (FRSXMK). diff --git a/man/machinectl.xml b/man/machinectl.xml index cabdbac96..2e7fa3bf8 100644 --- a/man/machinectl.xml +++ b/man/machinectl.xml @@ -311,6 +311,10 @@ this to an empty string or the value cat is equivalent to passing . + $SYSTEMD_LESS + $SYSTEMD_LESS overrides the + default options passed to less + (FRSXMK). diff --git a/man/systemctl.xml b/man/systemctl.xml index ed1bf4813..1b0f8e5e2 100644 --- a/man/systemctl.xml +++ b/man/systemctl.xml @@ -1479,6 +1479,10 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service equivalent to passing . + $SYSTEMD_LESS + $SYSTEMD_LESS overrides the + default options passed to less + (FRSXMK). diff --git a/man/systemd-analyze.xml b/man/systemd-analyze.xml index cbf59e0a1..54479e487 100644 --- a/man/systemd-analyze.xml +++ b/man/systemd-analyze.xml @@ -335,6 +335,10 @@ $ eog targets.svg equivalent to passing . + $SYSTEMD_LESS + $SYSTEMD_LESS overrides the + default options passed to less + (FRSXMK). diff --git a/man/timedatectl.xml b/man/timedatectl.xml index beda30485..be66993e1 100644 --- a/man/timedatectl.xml +++ b/man/timedatectl.xml @@ -239,6 +239,10 @@ this to an empty string or the value cat is equivalent to passing . + $SYSTEMD_LESS + $SYSTEMD_LESS overrides the + default options passed to less + (FRSXMK). diff --git a/src/shared/pager.c b/src/shared/pager.c index 72a29f228..55b13d6ff 100644 --- a/src/shared/pager.c +++ b/src/shared/pager.c @@ -84,14 +84,17 @@ int pager_open(bool jump_to_end) { /* In the child start the pager */ if (pager_pid == 0) { + const char* less_opts; dup2(fd[0], STDIN_FILENO); close_pipe(fd); + less_opts = getenv("SYSTEMD_LESS"); + if (!less_opts) + less_opts = "FRSXMK"; if (jump_to_end) - setenv("LESS", "FRSXMK+G", 1); - else - setenv("LESS", "FRSXMK", 1); + less_opts = strappenda(less_opts, " +G"); + setenv("LESS", less_opts, 1); /* Make sure the pager goes away when the parent dies */ if (prctl(PR_SET_PDEATHSIG, SIGTERM) < 0)