index 4587fbbdb51e50c1e3e6e4c3476cdccd4ac59cee..fb7a1a625abf07b0d896a270286ee422a700c14c 100644 (file)
--- a/pager.c
+++ b/pager.c
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);
}
if (!isatty(1))
return;
+ if (!pager) {
+ if (!pager_program)
+ git_config(git_default_config);
+ pager = pager_program;
+ }
if (!pager)
pager = getenv("PAGER");
if (!pager)