diff --git a/wt-status.c b/wt-status.c index ce5080c1a2..0032ef5f6f 100644 --- a/wt-status.c +++ b/wt-status.c @@ -1296,11 +1296,6 @@ got_nothing: return NULL; } -static char *read_and_strip_branch(const char *path) -{ - return get_branch(NULL, path); -} - struct grab_1st_switch_cbdata { struct strbuf buf; unsigned char nsha1[20]; @@ -1393,6 +1388,19 @@ int wt_status_check_rebase(const struct worktree *wt, return 1; } +int wt_status_check_bisect(const struct worktree *wt, + struct wt_status_state *state) +{ + struct stat st; + + if (!stat(worktree_git_path(wt, "BISECT_LOG"), &st)) { + state->bisect_in_progress = 1; + state->branch = get_branch(wt, "BISECT_START"); + return 1; + } + return 0; +} + void wt_status_get_state(struct wt_status_state *state, int get_detached_from) { @@ -1408,10 +1416,7 @@ void wt_status_get_state(struct wt_status_state *state, state->cherry_pick_in_progress = 1; hashcpy(state->cherry_pick_head_sha1, sha1); } - if (!stat(git_path("BISECT_LOG"), &st)) { - state->bisect_in_progress = 1; - state->branch = read_and_strip_branch("BISECT_START"); - } + wt_status_check_bisect(NULL, state); if (!stat(git_path_revert_head(), &st) && !get_sha1("REVERT_HEAD", sha1)) { state->revert_in_progress = 1; diff --git a/wt-status.h b/wt-status.h index c4ddcad27d..2ca93f6957 100644 --- a/wt-status.h +++ b/wt-status.h @@ -104,6 +104,8 @@ void wt_status_collect(struct wt_status *s); void wt_status_get_state(struct wt_status_state *state, int get_detached_from); int wt_status_check_rebase(const struct worktree *wt, struct wt_status_state *state); +int wt_status_check_bisect(const struct worktree *wt, + struct wt_status_state *state); void wt_shortstatus_print(struct wt_status *s); void wt_porcelain_print(struct wt_status *s);