From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: ZheNing Hu via GitGitGadget <gitgitgadget@gmail.com>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>,
Christian Couder <christian.couder@gmail.com>,
Hariom Verma <hariom18599@gmail.com>,
Bagas Sanjaya <bagasdotme@gmail.com>, Jeff King <peff@peff.net>,
Eric Sunshine <sunshine@sunshineco.com>,
Philip Oakley <philipoakley@iee.email>,
ZheNing Hu <adlternative@gmail.com>
Subject: Re: [PATCH 5/5] [GSOC] ref-filter: add %(rest) atom
Date: Thu, 22 Jul 2021 10:11:02 +0200 [thread overview]
Message-ID: <874kcmvjr6.fsf@evledraar.gmail.com> (raw)
In-Reply-To: <75eb2f6740eb5845afcb7d31956cc5b3e3957f97.1626939557.git.gitgitgadget@gmail.com>
On Thu, Jul 22 2021, ZheNing Hu via GitGitGadget wrote:
> + } else if (atom_type == ATOM_REST) {
> + if (ref->rest)
> + v->s = xstrdup(ref->rest);
> + else
> + v->s = xstrdup("");
> + continue;
> } else
> continue;
Another light reading nit, maybe more readable as:
} else if (atom_type == ATOM_REST && ref->rest) {
...
} else if (atom_type == ATOM_REST) {
...
}
continue;
But we can't do that "continue" at the end because there's two cases
where we don't continue, I wondered if elimanting that special case
would make it easier, patch below. Probably not worth it & feel free to
ignore:
ref-filter.c | 63 +++++++++++++++++++++++++-----------------------------------
1 file changed, 26 insertions(+), 37 deletions(-)
diff --git a/ref-filter.c b/ref-filter.c
index 81e77b13ad2..189244fed6f 100644
--- a/ref-filter.c
+++ b/ref-filter.c
@@ -1890,18 +1890,26 @@ static int populate_value(struct ref_array_item *ref, struct strbuf *err)
name++;
}
- if (atom_type == ATOM_REFNAME)
+ if (atom_type == ATOM_REFNAME) {
refname = get_refname(atom, ref);
- else if (atom_type == ATOM_WORKTREEPATH) {
- if (ref->kind == FILTER_REFS_BRANCHES)
- v->s = get_worktree_path(atom, ref);
+ if (!deref)
+ v->s = xstrdup(refname);
else
- v->s = xstrdup("");
- continue;
- }
- else if (atom_type == ATOM_SYMREF)
+ v->s = xstrfmt("%s^{}", refname);
+ free((char *)refname);
+ } else if (atom_type == ATOM_WORKTREEPATH &&
+ ref->kind == FILTER_REFS_BRANCHES) {
+ v->s = get_worktree_path(atom, ref);
+ } else if (atom_type == ATOM_WORKTREEPATH) {
+ v->s = xstrdup("");
+ } else if (atom_type == ATOM_SYMREF) {
refname = get_symref(atom, ref);
- else if (atom_type == ATOM_UPSTREAM) {
+ if (!deref)
+ v->s = xstrdup(refname);
+ else
+ v->s = xstrfmt("%s^{}", refname);
+ free((char *)refname);
+ } else if (atom_type == ATOM_UPSTREAM) {
const char *branch_name;
/* only local branches may have an upstream */
if (!skip_prefix(ref->refname, "refs/heads/",
@@ -1916,7 +1924,6 @@ static int populate_value(struct ref_array_item *ref, struct strbuf *err)
fill_remote_ref_details(atom, refname, branch, &v->s);
else
v->s = xstrdup("");
- continue;
} else if (atom_type == ATOM_PUSH && atom->u.remote_ref.push) {
const char *branch_name;
v->s = xstrdup("");
@@ -1935,10 +1942,8 @@ static int populate_value(struct ref_array_item *ref, struct strbuf *err)
/* We will definitely re-init v->s on the next line. */
free((char *)v->s);
fill_remote_ref_details(atom, refname, branch, &v->s);
- continue;
} else if (atom_type == ATOM_COLOR) {
v->s = xstrdup(atom->u.color);
- continue;
} else if (atom_type == ATOM_FLAG) {
char buf[256], *cp = buf;
if (ref->flag & REF_ISSYMREF)
@@ -1951,24 +1956,20 @@ static int populate_value(struct ref_array_item *ref, struct strbuf *err)
*cp = '\0';
v->s = xstrdup(buf + 1);
}
- continue;
} else if (!deref && atom_type == ATOM_OBJECTNAME) {
v->s = xstrdup(do_grab_oid("objectname", &ref->objectname, atom));
- continue;
+ } else if (atom_type == ATOM_HEAD &&
+ atom->u.head &&
+ !strcmp(ref->refname, atom->u.head)) {
+ v->s = xstrdup("*");
} else if (atom_type == ATOM_HEAD) {
- if (atom->u.head && !strcmp(ref->refname, atom->u.head))
- v->s = xstrdup("*");
- else
- v->s = xstrdup(" ");
- continue;
+ v->s = xstrdup(" ");
} else if (atom_type == ATOM_ALIGN) {
v->handler = align_atom_handler;
v->s = xstrdup("");
- continue;
} else if (atom_type == ATOM_END) {
v->handler = end_atom_handler;
v->s = xstrdup("");
- continue;
} else if (atom_type == ATOM_IF) {
const char *s;
if (skip_prefix(name, "if:", &s))
@@ -1976,29 +1977,17 @@ static int populate_value(struct ref_array_item *ref, struct strbuf *err)
else
v->s = xstrdup("");
v->handler = if_atom_handler;
- continue;
} else if (atom_type == ATOM_THEN) {
v->handler = then_atom_handler;
v->s = xstrdup("");
- continue;
} else if (atom_type == ATOM_ELSE) {
v->handler = else_atom_handler;
v->s = xstrdup("");
- continue;
+ } else if (atom_type == ATOM_REST && ref->rest) {
+ v->s = xstrdup(ref->rest);
} else if (atom_type == ATOM_REST) {
- if (ref->rest)
- v->s = xstrdup(ref->rest);
- else
- v->s = xstrdup("");
- continue;
- } else
- continue;
-
- if (!deref)
- v->s = xstrdup(refname);
- else
- v->s = xstrfmt("%s^{}", refname);
- free((char *)refname);
+ v->s = xstrdup("");
+ }
}
for (i = 0; i < used_atom_cnt; i++) {
next prev parent reply other threads:[~2021-07-22 8:24 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-22 7:39 [PATCH 0/5] [GSOC] ref-filter: add %(raw) and %(rest) atoms ZheNing Hu via GitGitGadget
2021-07-22 7:39 ` [PATCH 1/5] [GSOC] ref-filter: add obj-type check in grab contents ZheNing Hu via GitGitGadget
2021-07-22 8:51 ` Christian Couder
2021-07-22 9:15 ` ZheNing Hu
2021-07-22 7:39 ` [PATCH 2/5] [GSOC] ref-filter: add %(raw) atom ZheNing Hu via GitGitGadget
2021-07-22 8:06 ` Ævar Arnfjörð Bjarmason
2021-07-22 8:31 ` ZheNing Hu
2021-07-22 7:39 ` [PATCH 3/5] [GSOC] ref-filter: --format=%(raw) re-support --perl ZheNing Hu via GitGitGadget
2021-07-22 7:39 ` [PATCH 4/5] [GSOC] ref-filter: use non-const ref_format in *_atom_parser() ZheNing Hu via GitGitGadget
2021-07-22 7:39 ` [PATCH 5/5] [GSOC] ref-filter: add %(rest) atom ZheNing Hu via GitGitGadget
2021-07-22 8:11 ` Ævar Arnfjörð Bjarmason [this message]
2021-07-22 9:10 ` ZheNing Hu
2021-07-23 9:09 ` Jacob Keller
2021-07-23 14:11 ` ZheNing Hu
2021-07-22 8:08 ` [PATCH 0/5] [GSOC] ref-filter: add %(raw) and %(rest) atoms Christian Couder
2021-07-22 8:22 ` ZheNing Hu
2021-07-23 9:03 ` [PATCH v2 " ZheNing Hu via GitGitGadget
2021-07-23 9:03 ` [PATCH v2 1/5] [GSOC] ref-filter: add obj-type check in grab contents ZheNing Hu via GitGitGadget
2021-07-23 9:04 ` [PATCH v2 2/5] [GSOC] ref-filter: add %(raw) atom ZheNing Hu via GitGitGadget
2021-07-23 16:38 ` Junio C Hamano
2021-07-24 7:57 ` ZheNing Hu
2021-07-24 17:41 ` Junio C Hamano
2021-07-25 12:47 ` ZheNing Hu
2021-07-23 9:04 ` [PATCH v2 3/5] [GSOC] ref-filter: --format=%(raw) re-support --perl ZheNing Hu via GitGitGadget
2021-07-23 9:04 ` [PATCH v2 4/5] [GSOC] ref-filter: use non-const ref_format in *_atom_parser() ZheNing Hu via GitGitGadget
2021-07-23 9:04 ` [PATCH v2 5/5] [GSOC] ref-filter: add %(rest) atom ZheNing Hu via GitGitGadget
2021-07-24 14:14 ` [PATCH v3 0/5] [GSOC] ref-filter: add %(raw) and %(rest) atoms ZheNing Hu via GitGitGadget
2021-07-24 14:14 ` [PATCH v3 1/5] [GSOC] ref-filter: add obj-type check in grab contents ZheNing Hu via GitGitGadget
2021-07-25 8:22 ` Jacob Keller
2021-07-24 14:14 ` [PATCH v3 2/5] [GSOC] ref-filter: add %(raw) atom ZheNing Hu via GitGitGadget
2021-07-24 14:14 ` [PATCH v3 3/5] [GSOC] ref-filter: --format=%(raw) re-support --perl ZheNing Hu via GitGitGadget
2021-07-25 8:27 ` Jacob Keller
2021-07-25 13:18 ` ZheNing Hu
2021-07-24 14:14 ` [PATCH v3 4/5] [GSOC] ref-filter: use non-const ref_format in *_atom_parser() ZheNing Hu via GitGitGadget
2021-07-24 14:14 ` [PATCH v3 5/5] [GSOC] ref-filter: add %(rest) atom ZheNing Hu via GitGitGadget
2021-07-25 8:29 ` Jacob Keller
2021-07-26 17:34 ` Junio C Hamano
2021-07-26 3:26 ` [PATCH v4 0/5] [GSOC] ref-filter: add %(raw) and %(rest) atoms ZheNing Hu via GitGitGadget
2021-07-26 3:26 ` [PATCH v4 1/5] [GSOC] ref-filter: add obj-type check in grab contents ZheNing Hu via GitGitGadget
2021-07-26 19:15 ` Junio C Hamano
2021-07-27 1:41 ` ZheNing Hu
2021-07-26 3:26 ` [PATCH v4 2/5] [GSOC] ref-filter: add %(raw) atom ZheNing Hu via GitGitGadget
2021-07-26 3:26 ` [PATCH v4 3/5] [GSOC] ref-filter: --format=%(raw) support --perl ZheNing Hu via GitGitGadget
2021-07-26 3:26 ` [PATCH v4 4/5] [GSOC] ref-filter: use non-const ref_format in *_atom_parser() ZheNing Hu via GitGitGadget
2021-07-26 3:26 ` [PATCH v4 5/5] [GSOC] ref-filter: add %(rest) atom ZheNing Hu via GitGitGadget
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=874kcmvjr6.fsf@evledraar.gmail.com \
--to=avarab@gmail.com \
--cc=adlternative@gmail.com \
--cc=bagasdotme@gmail.com \
--cc=christian.couder@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
--cc=gitster@pobox.com \
--cc=hariom18599@gmail.com \
--cc=peff@peff.net \
--cc=philipoakley@iee.email \
--cc=sunshine@sunshineco.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.