X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=pager.c;h=4921843577e42b774457a61277b9bc3441d3ab6b;hb=2e8af7e42b15d4f2d573329ea2593a19f45f18d3;hp=f19ddbc87df04f117cd5e39189c8322fd5f29d68;hpb=9b27ea95189b1f276c9f7e10df81fa1476a4ad4d;p=git.git diff --git a/pager.c b/pager.c index f19ddbc87..492184357 100644 --- a/pager.c +++ b/pager.c @@ -1,5 +1,6 @@ #include "cache.h" #include "run-command.h" +#include "sigchain.h" /* * This is split up from the rest of git so that we can do @@ -38,6 +39,13 @@ static void wait_for_pager(void) finish_command(&pager_process); } +static void wait_for_pager_signal(int signo) +{ + wait_for_pager(); + sigchain_pop(signo); + raise(signo); +} + void setup_pager(void) { const char *pager = getenv("GIT_PAGER"); @@ -75,6 +83,7 @@ void setup_pager(void) close(pager_process.in); /* this makes sure that the parent terminates after the pager */ + sigchain_push_common(wait_for_pager_signal); atexit(wait_for_pager); }