From: Thomas Rast Date: Mon, 17 May 2010 06:52:31 GMT Subject: Re: [PATCH 4/7] diff.c: Output the text graph padding before each diff line. Message-ID: <201005170852.31546.trast@student.ethz.ch> In-Reply-To: <1273921331-32702-5-git-send-email-struggleyb.nku@gmail.com> Bo Yang wrote: > diff --git a/diff.c b/diff.c > index 9bd9063..4a10d16 100644 > --- a/diff.c > +++ b/diff.c > @@ -487,6 +487,13 @@ static void emit_rewrite_diff(const char *name_a, > char *data_one, *data_two; > size_t size_one, size_two; > struct emit_callback ecbdata; > + char *line_prefix = ""; > + struct strbuf *msgbuf; > + > + if (o && o->output_prefix) { > + msgbuf = o->output_prefix(o->file, 0, o->output_prefix_data); > + line_prefix = msgbuf->buf; > + } Umm. This snippet of code means that the callback can't to much except return or print a string depending on the value of the second argument, doesn't it? So why not either make it explicit and just put a char* field there, or make a more generic callback that replaces write() (or so) and gets a chance to mangle the output in any way it likes? -- Thomas Rast trast@{inf,student}.ethz.ch