Re: [PATCH] mailsplit and mailinfo: gracefully handle NUL characters
- Date: Sat, 17 May 2008 01:26:26 +0100 (BST)
- From: Johannes Schindelin <Johannes.Schindelin@xxxxxx>
- Subject: Re: [PATCH] mailsplit and mailinfo: gracefully handle NUL characters
Hi,
On Fri, 16 May 2008, Tommy Thorn wrote:
> Johannes Schindelin wrote:
> > +/*
> > + * This is an ugly hack to avoid fgetc(), which is slow, as it is locking.
> > + * The argument "in" must be the same for all calls to this function!
> > + */
> > +static int fast_fgetc(FILE *in)
> > +{
> >
>
> Looks great to me, but shouldn't you add an "inline" for this one? Also,
> maybe a double the buffer size.
No. This is an ugly hack, and not meant for application.
If that is substantially faster than the fgetc() version (and I want this
be tested in a _real-world_ scenario, i.e. not the fgetc() alone, but a
real mailsplit and a real mailinfo on a huge patch, with all three
versions: fgets(), fgetc() and fast_fgetc())), then I would prefer having
something like
struct line_reader {
FILE *in;
char buffer[4096];
int offset, int len;
char line[1024];
int linelen;
};
and corresponding functions to read lines in that setting. Maybe it would
even be better to have line be a strbuf, but I am not so sure on that.
Let's see what the tests show. Would you do them, please?
"git format-patch --stdout bla..blub | /usr/bin/time git mailsplit -o."
three times in succession should give you a good hint on the runtime.
Ciao,
Dscho
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html