[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Quilt-dev] [PATCH] fix pager if you press ^C
From: |
Bert Wesarg |
Subject: |
[Quilt-dev] [PATCH] fix pager if you press ^C |
Date: |
Wed, 25 Nov 2009 20:10:39 +0100 |
This adopts more pager clean-up handling from git. Which traps also for some
common signals.
Signed-off-by: Bert Wesarg <address@hidden>
---
I don't know why, but the fifo will be removed twice, but the second time
will fail, obviously. Therefore I ignore the error messages.
If someone with more signal handling expertise can look into this. I would be
thankful.
quilt/scripts/patchfns.in | 23 +++++++++++++++++++++--
1 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/quilt/scripts/patchfns.in b/quilt/scripts/patchfns.in
index eabeef7..6a2b885 100644
--- a/quilt/scripts/patchfns.in
+++ b/quilt/scripts/patchfns.in
@@ -989,6 +989,23 @@ quilt_command()
QUILT_COMMAND="" bash $BASH_OPTS -c "${SUBDIR:+cd $SUBDIR;} .
$QUILT_DIR/$command" "quilt $command" "$@"
}
+declare pager_fifo pager_fifo_dir pager_pid
+
+wait_for_pager()
+{
+ exec >&-
+ wait $pager_pid
+ rm $pager_fifo 2>/dev/null
+ rmdir $pager_fifo_dir 2>/dev/null
+}
+
+wait_for_pager_signal()
+{
+ remove_exit_handler wait_for_pager
+ wait_for_pager
+ trap - INT HUP TERM QUIT PIPE
+}
+
# Spawn pager process and redirect the rest of our output to it
setup_pager()
{
@@ -1007,13 +1024,15 @@ setup_pager()
# need temporary files here. Alternatively, in recent versions of
# bash, a coprocess could be used instead.
- local pager_fifo_dir pager_fifo
pager_fifo_dir="$(gen_tempfile -d)"
pager_fifo="$pager_fifo_dir/0"
mkfifo -m 600 "$pager_fifo"
$QUILT_PAGER < "$pager_fifo" &
+ pager_pid=$!
exec > "$pager_fifo"
- add_exit_handler "exec >&-; rm $pager_fifo; rmdir $pager_fifo_dir; wait"
+
+ trap wait_for_pager_signal INT HUP TERM QUIT PIPE
+ add_exit_handler wait_for_pager
}
#
--
tg: (8c3585b..) bw/fix-pager-exit (depends on: master)
- [Quilt-dev] [PATCH 1/2] re-activate exit handler multiplexer, Bert Wesarg, 2009/11/18
- [Quilt-dev] [PATCH v3 2/2] pager support like git, Bert Wesarg, 2009/11/18
- [Quilt-dev] Re: [PATCH v3 2/2] pager support like git, Andreas Gruenbacher, 2009/11/20
- [Quilt-dev] Re: [PATCH v3 2/2] pager support like git, Andreas Gruenbacher, 2009/11/25
- [Quilt-dev] Re: [PATCH v3 2/2] pager support like git, Bert Wesarg, 2009/11/25
- [Quilt-dev] Re: [PATCH v3 2/2] pager support like git, Andreas Gruenbacher, 2009/11/25
- [Quilt-dev] Re: [PATCH v3 2/2] pager support like git, Bert Wesarg, 2009/11/25
- [Quilt-dev] [PATCH] fix pager if you press ^C,
Bert Wesarg <=
- [Quilt-dev] Re: [PATCH] fix pager if you press ^C, Andreas Gruenbacher, 2009/11/25