From: Nguyễn Thái Ngọc Duy Date: Fri, 22 Apr 2016 13:01:34 +0000 (+0700) Subject: wt-status.c: split bisect detection out of wt_status_get_state() X-Git-Tag: v2.9.0-rc0~12^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f5d067a2b28143dca237712e5dae7738d563f85c;p=thirdparty%2Fgit.git wt-status.c: split bisect detection out of wt_status_get_state() And make it work with any given worktree, in preparation for (again) find_shared_symref(). read_and_strip_branch() is deleted because it's no longer used. Signed-off-by: Nguyễn Thái Ngọc Duy Signed-off-by: Junio C Hamano --- 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);