Hi, On Sat, 15 Apr 2006, Junio C Hamano wrote: > A somewhat related topic; I often set PAGER=cat when I do not > want the --[More]-- prompt and I thing many Emacs users do this. > It might also be good to detect it and omit piping in such a > case, but that is independent, so if you are going to do this as > well, please make it a separate patch. I was not quite sure if PAGER=cat could be taken as "user does not want any pager to be fork()ed", but you are probably right: PAGER=cat means that stdout is forwarded to stdout, i.e. we are better off not fork()ing and calling "cat": --- [PATCH] pager: do not fork a pager if PAGER=cat This helps debugging tremendously. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@xxxxxx> --- pager.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) 4a617a436bba9288cec5d3918d02c5b0e652df98 diff --git a/pager.c b/pager.c index 1364e15..86e93b3 100644 --- a/pager.c +++ b/pager.c @@ -5,9 +5,8 @@ #include "cache.h" * something different on Windows, for example. */ -static void run_pager(void) +static void run_pager(const char *prog) { - const char *prog = getenv("PAGER"); if (!prog) prog = "less"; setenv("LESS", "-S", 0); @@ -16,10 +15,11 @@ static void run_pager(void) void setup_pager(void) { + const char *prog = getenv("PAGER"); pid_t pid; int fd[2]; - if (!isatty(1)) + if (!isatty(1) || (prog != NULL && !strcmp(prog, "cat"))) return; if (pipe(fd) < 0) return; @@ -43,6 +43,6 @@ void setup_pager(void) close(fd[0]); close(fd[1]); - run_pager(); + run_pager(prog); exit(255); } -- 1.3.0.rc4.gb6b20-dirty - : send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html