worktree.c: add find_worktree()
[gitweb.git] / worktree.c
index f4a4f3809298023250e51b780687c0305e67cef6..0782e00983d5a0dbcbeefa222d21352aa54dc7cc 100644 (file)
@@ -214,6 +214,21 @@ const char *get_worktree_git_dir(const struct worktree *wt)
                return git_common_path("worktrees/%s", wt->id);
 }
 
+struct worktree *find_worktree(struct worktree **list,
+                              const char *prefix,
+                              const char *arg)
+{
+       char *path;
+
+       arg = prefix_filename(prefix, strlen(prefix), arg);
+       path = xstrdup(real_path(arg));
+       for (; *list; list++)
+               if (!fspathcmp(path, real_path((*list)->path)))
+                       break;
+       free(path);
+       return *list;
+}
+
 int is_worktree_being_rebased(const struct worktree *wt,
                              const char *target)
 {