From: Junio C Hamano Date: Mon, 25 Jul 2016 21:13:37 +0000 (-0700) Subject: Merge branch 'rs/worktree-use-strbuf-absolute-path' X-Git-Tag: v2.10.0-rc0~92 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/fc08d2d4add543b88d7e1573cb4be01adedfed00?ds=inline;hp=-c Merge branch 'rs/worktree-use-strbuf-absolute-path' Code simplification. * rs/worktree-use-strbuf-absolute-path: worktree: use strbuf_add_absolute_path() directly --- fc08d2d4add543b88d7e1573cb4be01adedfed00 diff --combined worktree.c index e2a94e0476,6b4f5f3e6d..b819baf0cd --- a/worktree.c +++ b/worktree.c @@@ -80,7 -80,7 +80,7 @@@ static struct worktree *get_main_worktr int is_bare = 0; int is_detached = 0; - strbuf_addstr(&worktree_path, absolute_path(get_git_common_dir())); + strbuf_add_absolute_path(&worktree_path, get_git_common_dir()); is_bare = !strbuf_strip_suffix(&worktree_path, "/.git"); if (is_bare) strbuf_strip_suffix(&worktree_path, "/."); @@@ -125,7 -125,7 +125,7 @@@ static struct worktree *get_linked_work strbuf_rtrim(&worktree_path); if (!strbuf_strip_suffix(&worktree_path, "/.git")) { strbuf_reset(&worktree_path); - strbuf_addstr(&worktree_path, absolute_path(".")); + strbuf_add_absolute_path(&worktree_path, "."); strbuf_strip_suffix(&worktree_path, "/."); } @@@ -153,19 -153,21 +153,19 @@@ done static void mark_current_worktree(struct worktree **worktrees) { - struct strbuf git_dir = STRBUF_INIT; - struct strbuf path = STRBUF_INIT; + char *git_dir = xstrdup(absolute_path(get_git_dir())); int i; - strbuf_addstr(&git_dir, absolute_path(get_git_dir())); for (i = 0; worktrees[i]; i++) { struct worktree *wt = worktrees[i]; - strbuf_addstr(&path, absolute_path(get_worktree_git_dir(wt))); - wt->is_current = !fspathcmp(git_dir.buf, path.buf); - strbuf_reset(&path); - if (wt->is_current) + const char *wt_git_dir = get_worktree_git_dir(wt); + + if (!fspathcmp(git_dir, absolute_path(wt_git_dir))) { + wt->is_current = 1; break; + } } - strbuf_release(&git_dir); - strbuf_release(&path); + free(git_dir); } struct worktree **get_worktrees(void) @@@ -187,7 -189,7 +187,7 @@@ if (dir) { while ((d = readdir(dir)) != NULL) { struct worktree *linked = NULL; - if (!strcmp(d->d_name, ".") || !strcmp(d->d_name, "..")) + if (is_dot_or_dotdot(d->d_name)) continue; if ((linked = get_linked_worktree(d->d_name))) {