X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fsystemctl.c;h=4f4ee961726ed7a6595bab372cc21f2294771e4d;hb=2c4b304e64ca674e1a79a7e5c83a996a03611a17;hp=5d2efbe95f8709026b7c1ff6044fdafc3af898e4;hpb=4c00bf25614779a58ca57dfe8e2c477c926c5c2b;p=elogind.git diff --git a/src/systemctl.c b/src/systemctl.c index 5d2efbe95..4f4ee9617 100644 --- a/src/systemctl.c +++ b/src/systemctl.c @@ -118,6 +118,12 @@ static void pager_open(void); static bool on_tty(void) { static int t = -1; + /* Note that this is invoked relatively early, before we start + * the pager. That means the value we return reflects whether + * we originally were started on a tty, not if we currently + * are. But this is intended, since we want color, and so on + * when run in our own pager. */ + if (_unlikely_(t < 0)) t = isatty(STDOUT_FILENO) > 0; @@ -5336,7 +5342,14 @@ static void pager_open(void) { execlp(pager, pager, NULL); execl("/bin/sh", "sh", "-c", pager, NULL); } else { - execlp("sensible-pager", "sensible-pager", NULL); + /* Debian's alternatives command for pagers is + * called 'pager'. Note that we do not call + * sensible-pagers here, since that is just a + * shell script that implements a logic that + * is similar to this one anyway, but is + * Debian-specific. */ + execlp("pager", "pager", NULL); + execlp("less", "less", NULL); execlp("more", "more", NULL); }