Michael Rappazzo <[email protected]> writes:
> + if (!porcelain) {
> + for (i = 0; worktrees[i]; i++) {
> + int path_len = strlen(worktrees[i]->path);
> + if (path_len > path_maxlen)
> + path_maxlen = path_len;
> + int sha1_len = strlen(
> +
> find_unique_abbrev(worktrees[i]->head_sha1, DEFAULT_ABBREV));
decl-after-stmt.
If I were doing this, I'd probably do something like the attached
using a small helper function to make the primary logic easier to
see.
The first hunk below is unrelated but was to fix an obvious style
breakage I happened to have noticed nearby.
Thanks.
builtin/worktree.c | 40 +++++++++++++++++++++++-----------------
1 file changed, 23 insertions(+), 17 deletions(-)
diff --git a/builtin/worktree.c b/builtin/worktree.c
index 268f9bf..3be8ec8 100644
--- a/builtin/worktree.c
+++ b/builtin/worktree.c
@@ -376,8 +376,8 @@ static void show_worktree_porcelain(struct worktree
*worktree)
}
printf("\n");
}
-static void show_worktree(
- struct worktree *worktree, int path_maxlen, int abbrev_len)
+
+static void show_worktree(struct worktree *worktree, int path_maxlen, int
abbrev_len)
{
struct strbuf sb = STRBUF_INIT;
int cur_path_len = strlen(worktree->path);
@@ -399,6 +399,22 @@ static void show_worktree(
strbuf_release(&sb);
}
+static void measure_widths(struct worktree **wt, int *abbrev, int *maxlen)
+{
+ int i;
+
+ for (i = 0; wt[i]; i++) {
+ int sha1_len;
+ int path_len = strlen(wt[i]->path);
+
+ if (path_len > *maxlen)
+ *maxlen = path_len;
+ sha1_len = strlen(find_unique_abbrev(wt[i]->head_sha1,
*abbrev));
+ if (sha1_len > *abbrev)
+ *abbrev = sha1_len;
+ }
+}
+
static int list(int ac, const char **av, const char *prefix)
{
int porcelain = 0;
@@ -413,21 +429,11 @@ static int list(int ac, const char **av, const char
*prefix)
usage_with_options(worktree_usage, options);
else {
struct worktree **worktrees = get_worktrees();
- int path_maxlen = 0;
- int abbrev = 0;
- int i;
-
- if (!porcelain) {
- for (i = 0; worktrees[i]; i++) {
- int path_len = strlen(worktrees[i]->path);
- if (path_len > path_maxlen)
- path_maxlen = path_len;
- int sha1_len = strlen(
-
find_unique_abbrev(worktrees[i]->head_sha1, DEFAULT_ABBREV));
- if (sha1_len > abbrev)
- abbrev = sha1_len;
- }
- }
+ int path_maxlen = 0, abbrev = DEFAULT_ABBREV, i;
+
+ if (!porcelain)
+ measure_widths(worktrees, &abbrev, &path_maxlen);
+
for (i = 0; worktrees[i]; i++) {
if (porcelain)
show_worktree_porcelain(worktrees[i]);
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html