guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

343/376: Provide default pagers


From: Ludovic Courtès
Subject: 343/376: Provide default pagers
Date: Wed, 28 Jan 2015 22:06:04 +0000

civodul pushed a commit to tag 1.8
in repository guix.

commit c56bfbe863322fe9d5d5748681ebcc0de7780c02
Author: Eelco Dolstra <address@hidden>
Date:   Wed Dec 10 18:16:05 2014 +0100

    Provide default pagers
    
    Borrowed from systemd.
---
 src/libmain/shared.cc |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/libmain/shared.cc b/src/libmain/shared.cc
index 1d50346..8d06455 100644
--- a/src/libmain/shared.cc
+++ b/src/libmain/shared.cc
@@ -291,8 +291,9 @@ int handleExceptions(const string & programName, 
std::function<void()> fun)
 
 RunPager::RunPager()
 {
-    string pager = getEnv("PAGER");
-    if (!isatty(STDOUT_FILENO) || pager.empty()) return;
+    if (!isatty(STDOUT_FILENO)) return;
+    string pager = getEnv("PAGER", "default");
+    if (pager == "" || pager == "cat") return;
 
     /* Ignore SIGINT. The pager will handle it (and we'll get
        SIGPIPE). */
@@ -312,7 +313,11 @@ RunPager::RunPager()
             throw SysError("dupping stdin");
         if (!getenv("LESS"))
             setenv("LESS", "FRSXMK", 1);
-        execl("/bin/sh", "sh", "-c", pager.c_str(), NULL);
+        if (pager != "default")
+            execl("/bin/sh", "sh", "-c", pager.c_str(), NULL);
+        execlp("pager", "pager", NULL);
+        execlp("less", "less", NULL);
+        execlp("more", "more", NULL);
         throw SysError(format("executing ‘%1%’") % pager);
     });
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]