util: fix the check for non-C99 compilers (
issue4605)
histedit: fix rollup prompting for a commit message (
issue4606)
Commit
090da03361c5 broke histedit's rollup by causing it to open the editor.
Turns out I missed a spot where the rollup option was read.
This fixes that and adjusts the test to catch this case.
test-hook.t: don't directly use redirect to /dev/null in hook for Windows
This goes with
57f1dbc99631. External hooks are run in cmd.exe, which doesn't
know about /dev/null, but sh can handle it.
mq: avoid silent failure when single patch doesn't apply (
issue4604)
The error-handling here is quite byzantine. self._apply raises an
AbortNoCleanup, but self.apply was swallowing the exception and
returns 2. In self.push, we catch all exceptions.. and cleanup. We try
to print a message to clean up.. but that relies on having a
top-of-stack.
Instead, we re-raise the abort in self.apply, and avoid cleanup on
AbortNoCleanup in self.push by adding a trivial new except clause. We
also modernize the now-visible abort message.
pushkey: flush pending data before running a pre-pushkey hook (
issue4607)
The pre-pushkey hook will likely validate the pushkey based on element
previously changed in the same transaction. We need to make theses data
available for the hook.
pushkey: use hook arguments from transaction when one exists
When pushkey is called during a transaction, we include its 'hookargs' when
running the pre-pushkey hooks. Having more data cannot hurt, especially the
transaction ID.
util.h: also sniff for C99 before trying to use stdbool.h (
issue4605)
stdbool.h isn't required until C99. Sigh.