From: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
To: Karthik Nayak <karthik.188@gmail.com>
Cc: git@vger.kernel.org, christian.couder@gmail.com, gitster@pobox.com
Subject: Re: [PATCH v5 02/11] ref-filter: make `color` use `ref_formatting_state`
Date: Mon, 27 Jul 2015 15:06:14 +0200 [thread overview]
Message-ID: <vpqlhe192d5.fsf@anie.imag.fr> (raw)
In-Reply-To: <1437982035-6658-2-git-send-email-Karthik.188@gmail.com> (Karthik Nayak's message of "Mon, 27 Jul 2015 12:57:06 +0530")
Karthik Nayak <karthik.188@gmail.com> writes:
> --- a/ref-filter.c
> +++ b/ref-filter.c
> @@ -1195,6 +1197,11 @@ void ref_array_sort(struct ref_sorting *sorting, struct ref_array *array)
> static void ref_formatting(struct ref_formatting_state *state,
> struct atom_value *v, struct strbuf *value)
> {
> + if (state->color) {
> + strbuf_addstr(value, state->color);
> + free(state->color);
> + state->color = NULL;
> + }
> strbuf_addf(value, "%s", v->s);
> }
>
> @@ -1266,6 +1273,13 @@ static void emit(const char *cp, const char *ep)
> }
> }
>
> +static void apply_pseudo_state(struct ref_formatting_state *state,
> + struct atom_value *v)
> +{
> + if (v->color)
> + state->color = (char *)v->s;
> +}
> +
> void show_ref_array_item(struct ref_array_item *info, const char *format, int quote_style)
> {
> const char *cp, *sp, *ep;
It's not clear enough in the code and history that these these two
functions are symmetrical.
You can find better names. 'apply_pseudo_state' seems wrong it two ways:
it does not _apply_ the state, but it stores it. And it's a "pseudo-atom
related state", but not a "pseudo-state".
How about
ref_formatting -> apply_formatting_state
apply_pseudo_state -> store_formatting_state
?
Actually, I would even call these functions right from
show_ref_array_item, so that the result look like this:
if (atomv->pseudo_atom)
store_formatting_state(&state, atomv);
else {
apply_formatting_state(&state, atomv);
reset_formatting_state(&state);
print_value(&state, atomv);
}
In the history, if you are to introduce a dumb version of ref_formatting
in PATCH 1, I think you should also introduce a dumb (actually, totally
empty) version of apply_pseudo_state. Then, further patches would just
add a few lines in each function, and ...
> @@ -1281,7 +1295,10 @@ void show_ref_array_item(struct ref_array_item *info, const char *format, int qu
> if (cp < sp)
> emit(cp, sp);
> get_ref_atom_value(info, parse_ref_filter_atom(sp + 2, ep), &atomv);
> - print_value(&state, atomv);
> + if (atomv->pseudo_atom)
> + apply_pseudo_state(&state, atomv);
> + else
> + print_value(&state, atomv);
> }
... this hunk would belong to PATCH 1.
--
Matthieu Moy
http://www-verimag.imag.fr/~moy/
next prev parent reply other threads:[~2015-07-27 13:06 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-27 7:26 [PATCH v5 00/11] port tag.c to use ref-filter APIs Karthik Nayak
2015-07-27 7:27 ` [PATCH v5 01/11] ref-filter: introduce 'ref_formatting_state' Karthik Nayak
2015-07-27 7:27 ` [PATCH v5 02/11] ref-filter: make `color` use `ref_formatting_state` Karthik Nayak
2015-07-27 12:47 ` Matthieu Moy
2015-07-27 14:28 ` Junio C Hamano
2015-07-27 17:23 ` Karthik Nayak
2015-07-27 16:02 ` Karthik Nayak
2015-07-27 13:06 ` Matthieu Moy [this message]
2015-07-27 17:16 ` Karthik Nayak
2015-07-27 7:27 ` [PATCH v5 03/11] ref-filter: add option to pad atoms to the right Karthik Nayak
2015-07-27 12:50 ` Matthieu Moy
2015-07-27 15:45 ` Junio C Hamano
2015-07-27 15:54 ` Matthieu Moy
2015-07-27 18:42 ` Karthik Nayak
2015-07-27 18:47 ` Matthieu Moy
2015-07-27 18:54 ` Karthik Nayak
2015-07-27 18:56 ` Junio C Hamano
2015-07-27 18:43 ` Karthik Nayak
2015-07-28 21:41 ` Eric Sunshine
2015-07-29 16:16 ` Karthik Nayak
2015-07-27 7:27 ` [PATCH v5 04/11] ref-filter: add option to filter only tags Karthik Nayak
2015-07-27 7:27 ` [PATCH v5 05/11] ref-filter: support printing N lines from tag annotation Karthik Nayak
2015-07-27 7:27 ` [PATCH v5 06/11] ref-filter: add support to sort by version Karthik Nayak
2015-07-27 7:27 ` [PATCH v5 07/11] ref-filter: add option to match literal pattern Karthik Nayak
2015-07-27 12:54 ` Matthieu Moy
2015-07-27 15:57 ` Karthik Nayak
2015-07-27 15:59 ` Karthik Nayak
2015-07-27 16:06 ` Matthieu Moy
2015-07-27 16:48 ` Karthik Nayak
2015-07-28 21:49 ` Eric Sunshine
2015-07-29 16:17 ` Karthik Nayak
2015-07-30 11:21 ` Karthik Nayak
2015-07-27 7:27 ` [PATCH v5 08/11] tag.c: use 'ref-filter' data structures Karthik Nayak
2015-07-27 7:27 ` [PATCH v5 09/11] tag.c: use 'ref-filter' APIs Karthik Nayak
2015-07-27 7:27 ` [PATCH v5 10/11] tag.c: implement '--format' option Karthik Nayak
2015-07-27 7:27 ` [PATCH v5 11/11] tag.c: implement '--merged' and '--no-merged' options Karthik Nayak
2015-07-27 12:42 ` [PATCH v5 01/11] ref-filter: introduce 'ref_formatting_state' Matthieu Moy
2015-07-27 15:28 ` Karthik Nayak
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=vpqlhe192d5.fsf@anie.imag.fr \
--to=matthieu.moy@grenoble-inp.fr \
--cc=christian.couder@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=karthik.188@gmail.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.