chg: send SIGPIPE to server immediately when pager exits (issue5278)
If the user press 'q' to leave the 'less' pager, it is expected to end the
hg process immediately. We currently rely on SIGPIPE for this behavior. But
SIGPIPE won't arrive if we don't write anything (like doing heavy
computation, reading from network etc). If that happens, the user will feel
that the hg process just hangs.
The patch address the issue by adding a SIGCHLD signal handler and sends
SIGPIPE to the server as soon as the pager exits.
This is also an issue with hg's pager implementation.
APE=/sys/src/ape
<$APE/config
PYTHON=python
PYTHONBIN=/rc/bin
SH=ape/psh
PURE=--pure
ROOT=../..
# This is slightly underhanded; Plan 9 does not support GNU gettext nor
# does it support dynamically loaded extension modules. We work around
# this by calling build_py and build_scripts directly; this avoids
# additional platform hacks in setup.py.
build:VQ:
@{
cd $ROOT
$SH -c '$PYTHON setup.py $PURE build_py build_scripts'
}
clean:VQ:
@{
cd $ROOT
$SH -c '$PYTHON setup.py $PURE clean --all'
}
install:VQ: build
@{
cd $ROOT
$SH -c '$PYTHON setup.py $PURE install \
--install-scripts $PYTHONBIN \
--skip-build \
--force'
}
mkdir -p /lib/mercurial/hgrc.d
dircp hgrc.d /lib/mercurial/hgrc.d/
cp 9diff /rc/bin/