bisect: libify exit_if_skipped_commits to error_if_skipped* and its dependents

Since we want to get rid of git-bisect.sh, it would be necessary to
convert those exit() calls to return statements so that errors can be
reported.

Emulate try catch in C by converting `exit(<positive-value>)` to
`return <negative-value>`. Follow POSIX conventions to return
<negative-value> to indicate error.

Update all callers to handle the error returns.

Mentored-by: Christian Couder <chriscool@tuxfamily.org>
Mentored-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Pranit Bauva <pranit.bauva@gmail.com>
Signed-off-by: Tanushree Tumane <tanushreetumane@gmail.com>
Signed-off-by: Miriam Rubio <mirucam@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Pranit Bauva
2020-02-17 09:40:34 +01:00
committed by Junio C Hamano
parent 7613ec594a
commit ce58b5d8b1
2 changed files with 15 additions and 7 deletions

View File

@ -37,10 +37,13 @@ struct rev_list_info {
* commit has been found (and possibly checked out) and it
* should be tested.
* BISECT_FAILED error code: default error code.
* BISECT_ONLY_SKIPPED_LEFT error code: only skipped
* commits left to be tested.
*/
enum bisect_error {
BISECT_OK = 0,
BISECT_FAILED = -1
BISECT_FAILED = -1,
BISECT_ONLY_SKIPPED_LEFT = -2
};
enum bisect_error bisect_next_all(struct repository *r,