Merge branch 'rs/worktree-use-strbuf-absolute-path'
authorJunio C Hamano <gitster@pobox.com>
Mon, 25 Jul 2016 21:13:37 +0000 (14:13 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 25 Jul 2016 21:13:37 +0000 (14:13 -0700)
Code simplification.

* rs/worktree-use-strbuf-absolute-path:
worktree: use strbuf_add_absolute_path() directly

1  2 
worktree.c
diff --combined worktree.c
index e2a94e04768b7484285ed2aa84259c6818b2cd02,6b4f5f3e6dc99379311622f7f7900f56cc706e78..b819baf0cda97c9b596e83d8146f1b42891efb01
@@@ -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)
        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))) {