git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] split_ident: parse timestamp from end of line

From
Jeff King <peff@peff.net>
Date
Oct 14, 2013, 22:31 UTC
Message-ID
<20131014223137.GA12744@sigill.intra.peff.net>
In-Reply-To
<xmqqwqlfebhi.fsf@gitster.dls.corp.google.com>
On Mon, Oct 14, 2013 at 03:25:29PM -0700, Junio C Hamano wrote:
Show 18 quoted lines
> > +	/*
> > +	 * Look from the end-of-line to find the trailing ">" of the mail
> > +	 * address, even though we should already know it as split->mail_end.
> > +	 * This can help in cases of broken idents with an extra ">" somewhere
> > +	 * in the email address.  Note that we are assuming the timestamp will
> > +	 * never have a ">" in it.
> > +	 *
> > +	 * Note also that this memchr can never return NULL, as we would
> > +	 * always find at least the split->mail_end closing bracket.
> > +	 */
> > +	cp = memrchr(split->mail_end, '>', len - (split->mail_end - line));
> > +	for (cp = cp + 1; cp < line + len && isspace(*cp); cp++)
> >  		;
> 
> "git grep" tells me this is the first use of memrchr(), which,
> unlike memchr(), is _GNU_SOURCE-only if I am not mistaken, so we may
> need a fallback definition in the compat/ and NEEDS_MEMRCHR in the
> Makefile, I think.

Yeah, you are right[1]. I'm happy to re-roll. I wonder if we even need to worry about a compatibility wrapper. We are already doing pointer manipulations, and it is probably just as readable to roll the loop by hand.

-Peff
[1] I even looked at "man memrchr" on my glibc system and was surprised
    to see it mentioned above the "#define _GNU_SOURCE" fold. But that
    "fold" is used only sometimes (e.g., strchrnul), and not others (in
    memrchr, the portability bits are listed at the end of the
    synopsis). Grr.
Previous: Junio C HamanoNext: Jeff King
Message 3 of 9 in “split_ident: parse timestamp from end of line”
  1. split_ident: parse timestamp from end of lineJeff King, Oct 14, 2013
  2. Junio C HamanoOct 14, 2013
  3. Jeff KingOct 14, 2013
  4. Jeff KingOct 14, 2013
  5. Junio C HamanoOct 14, 2013
  6. Jeff KingOct 14, 2013
  7. Junio C HamanoOct 15, 2013
  8. Jeff KingOct 15, 2013
  9. Junio C HamanoOct 15, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.