pager: do not fork a pager if PAGER is set to empty.

This skips an extra pipe, and helps debugging tremendously.

[jc: PAGER=cat is a questionable hack and should be done as a separate
patch. ]

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
diff --git a/pager.c b/pager.c
index 1364e15..e5ba273 100644
--- a/pager.c
+++ b/pager.c
@@ -5,22 +5,24 @@
  * something different on Windows, for example.
  */
 
-static void run_pager(void)
+static void run_pager(const char *pager)
 {
-	const char *prog = getenv("PAGER");
-	if (!prog)
-		prog = "less";
-	setenv("LESS", "-S", 0);
-	execlp(prog, prog, NULL);
+	execlp(pager, pager, NULL);
 }
 
 void setup_pager(void)
 {
 	pid_t pid;
 	int fd[2];
+	const char *pager = getenv("PAGER");
 
 	if (!isatty(1))
 		return;
+	if (!pager)
+		pager = "less";
+	else if (!*pager)
+		return;
+
 	if (pipe(fd) < 0)
 		return;
 	pid = fork();
@@ -43,6 +45,7 @@
 	close(fd[0]);
 	close(fd[1]);
 
-	run_pager();
+	setenv("LESS", "-S", 0);
+	run_pager(pager);
 	exit(255);
 }