From: Duy Nguyen Date: Thu, 21 Apr 2016 08:19:48 GMT Subject: Re: [PATCH v2 04/12] worktree.c: mark current worktree Message-ID: In-Reply-To: On Thu, Apr 21, 2016 at 2:20 PM, Eric Sunshine wrote: > On Wed, Apr 20, 2016 at 9:24 AM, Nguyễn Thái Ngọc Duy wrote: >> Signed-off-by: Nguyễn Thái Ngọc Duy >> --- >> diff --git a/worktree.c b/worktree.c >> @@ -178,6 +182,18 @@ struct worktree **get_worktrees(void) >> } >> ALLOC_GROW(list, counter + 1, alloc); >> list[counter] = NULL; >> + >> + strbuf_addstr(&git_dir, absolute_path(get_git_dir())); >> + for (i = 0; i < counter; i++) { >> + struct worktree *wt = list[i]; >> + strbuf_addstr(&path, absolute_path(get_worktree_git_dir(wt))); >> + wt->is_current = !strcmp_icase(git_dir.buf, path.buf); > > Can you talk a bit about why this uses 'icase'? Should it be > respecting cache.h:ignore_case? It does.That function (in dir.c) is just one-liner return ignore_case ? strcasecmp(a, b) : strcmp(a, b); I admit though, the naming does not make that clear. >> + strbuf_reset(&path); >> + if (wt->is_current) >> + break; >> + } >> + strbuf_release(&git_dir); >> + strbuf_release(&path); > > Minor: Would it make sense to place this new code in its own function > -- say, mark_current_worktree() -- to keep get_worktrees() from > becoming overlong? Good idea. Will do. -- Duy