X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=pager.c;h=fb7a1a625abf07b0d896a270286ee422a700c14c;hb=b52e985a4f824128d01220473b04057a4876060d;hp=4587fbbdb51e50c1e3e6e4c3476cdccd4ac59cee;hpb=e0d68cd5d95fc15342db38c211f71efe5bcfbe94;p=git.git diff --git a/pager.c b/pager.c index 4587fbbdb..fb7a1a625 100644 --- a/pager.c +++ b/pager.c @@ -7,6 +7,16 @@ static void run_pager(const char *pager) { + /* + * Work around bug in "less" by not starting it until we + * have real input + */ + fd_set in; + + FD_ZERO(&in); + FD_SET(0, &in); + select(1, &in, NULL, &in, NULL); + execlp(pager, pager, NULL); execl("/bin/sh", "sh", "-c", pager, NULL); } @@ -19,6 +29,11 @@ void setup_pager(void) if (!isatty(1)) return; + if (!pager) { + if (!pager_program) + git_config(git_default_config); + pager = pager_program; + } if (!pager) pager = getenv("PAGER"); if (!pager)