From: Adam Simpkins <adam@adamsimpkins.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: しらいしななこ <nanako3@lavabit.com>, git@vger.kernel.org
Subject: Re: [PATCH] graph.c: make many functions static
Date: Fri, 20 Jun 2008 10:19:11 -0700 [thread overview]
Message-ID: <20080620171910.GA31552@adamsimpkins.net> (raw)
In-Reply-To: <7vmylgo8v7.fsf@gitster.siamese.dyndns.org>
On Fri, Jun 20, 2008 at 12:37:00AM -0700, Junio C Hamano wrote:
> Adam Simpkins <adam@adamsimpkins.net> writes:
>
> > On Thu, Jun 19, 2008 at 12:16:11PM -0700, Junio C Hamano wrote:
> >> しらいしななこ <nanako3@lavabit.com> writes:
> > ...
> >> > +/* Internal API */
> >> > + ...
> >> > +static int graph_next_line(struct git_graph *graph, struct strbuf *sb);
> >> > +static void graph_padding_line(struct git_graph *graph, struct strbuf *sb);
> >> > +static void graph_show_strbuf(struct git_graph *graph, struct strbuf const *sb);
> >>
> >> I think these are probably fine, not in the sense that nobody calls these
> >> functions _right now_ but in the sense that I do not foresee a calling
> >> sequence outside the graph.c internal that needs to call these directly,
> >> instead of calling graph_show_*() functions that use these.
> >
> > Documentation/technical/api-history-graph.txt should also be updated
> > to remove the discussion of these functions if they are no longer
> > publicly exposed.
>
> Actually, I was expecting (not necessarily _hoping_) you to defend these
> public API by providing examples that illustrates when calling these from
> outside graph API implementation could be useful.
Ah. I see :-)
I do think that graph_next_line() and graph_padding_line() are
potentially useful as public APIs, since they are more generic than
the other API functions that wrap them. These functions both output
to a strbuf. graph_show_oneline() and graph_show_padding() are simple
wrappers around these functions that print the resulting strbuf to
stdout. graph_next_line() and graph_padding_line() will be needed by
anyone who wants to write the graph output somewhere other than
stdout. They could also be useful if someone wants to further
manipulate the output before printing it.
graph_show_strbuf() is a somewhat similar situation.
graph_show_commit_msg() is a wrapper around graph_show_strbuf()--it
calls graph_show_strbuf() and then also prints the remainder of the
graph. A caller would need to use graph_show_strbuf() directly if
they have multiple strbufs that need to be displayed alongside the
graph. In this case, they'll want to call graph_show_strbuf()
multiple times before printing the remainder of the graph. (The
caller could also work around this by concatenating the strbufs first,
then passing the entire thing to graph_show_commit_msg(). However,
the downside of this approach is that it requires copying the
strbufs.)
I didn't defend these earlier since I wasn't sure if it was simply
git's style to make functions static until there is a proven need for
them to be public. At the moment, the existing log-tree.c code is
only using the wrappers around these functions. I don't really see an
immediate need for the core git code to use any of these functions
directly, but they might of interest to people working on libifying
git.
--
Adam Simpkins
adam@adamsimpkins.net
next prev parent reply other threads:[~2008-06-20 17:20 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-18 23:21 [PATCH] graph.c: make many functions static しらいしななこ
2008-06-19 19:16 ` Junio C Hamano
2008-06-20 6:00 ` Adam Simpkins
2008-06-20 7:37 ` Junio C Hamano
2008-06-20 17:19 ` Adam Simpkins [this message]
-- strict thread matches above, loose matches on Subject: below --
2008-09-25 9:41 Nanako Shiraishi
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=20080620171910.GA31552@adamsimpkins.net \
--to=adam@adamsimpkins.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=nanako3@lavabit.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).