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

Re: [PATCH v2 2/2] mailinfo: unescape quoted-pair in header fields

From
Kevin Daudt <me@ikke.info>
Date
Sep 25, 2016, 20:17 UTC
Message-ID
<20160925201713.GA6937@ikke.info>
In-Reply-To
<20160923041540.5fvl6ytp2tvcflsk@sigill.intra.peff.net>
On Fri, Sep 23, 2016 at 12:15:41AM -0400, Jeff King wrote:
Show 38 quoted lines
> On Thu, Sep 22, 2016 at 03:17:23PM -0700, Junio C Hamano wrote:
> 
> > Jeff King <peff@peff.net> writes:
> > 
> > > On Mon, Sep 19, 2016 at 08:54:40PM +0200, Kevin Daudt wrote:
> > >
> > >> + ...
> > >> +	while ((c = *in++) != 0) {
> > >> +		if (take_next_literally) {
> > >> +			take_next_literally = 0;
> > >> +		} else {
> > >> [...]
> > >> +		}
> > >> +
> > >> +		strbuf_addch(line, c);
> > >> +	}
> > >> +}
> > >
> > > It needs to `free(in)` at the end of the function.
> > 
> > Ehh, in has been incremented and is pointing at the terminating NUL
> > there, so it would be more like
> > 
> > 	char *to_free, *in;
> > 
> >         to_free = strbuf_detach(line, NULL);
> >         in = to_free;
> > 	...
> >         while ((c = *in++)) {
> >         	...
> > 	}
> >         free(to_free);
> > 
> > I would think ;-).
> 
> Oops, yes. It is beginning to make the "strbuf_swap()" look less
> convoluted. :)
> 

I've switched to strbuf_swap now, much better. I've implemented recursive parsing without looking at what you provided, just to see what I'd came up with. Though I've not implemented a recursive descent parser, but it might suffice.

I'm sending the patches now.
Previous: Jeff KingNext: Jakub Narębski
Message 14 of 32 in “mailinfo: unescape quoted-pair in header fields”
  1. mailinfo: unescape quoted-pair in header fieldsKevin Daudt, Sep 16, 2016
  2. Jeff KingSep 16, 2016
  3. Kevin DaudtSep 19, 2016
  4. Jeff KingSep 20, 2016
  5. Junio C HamanoSep 21, 2016
  6. 0/2 Handle escape characters in From field.Kevin Daudt, Sep 19, 2016
  7. 2/2 mailinfo: unescape quoted-pair in header fieldsKevin Daudt, Sep 19, 2016
  8. Junio C HamanoSep 19, 2016
  9. Junio C HamanoSep 19, 2016
  10. Jeff KingSep 20, 2016
  11. Jeff KingSep 21, 2016
  12. Junio C HamanoSep 22, 2016
  13. Jeff KingSep 23, 2016
  14. Kevin DaudtSep 25, 2016
  15. Jakub NarębskiSep 25, 2016
  16. Kevin DaudtSep 26, 2016
  17. 1/2 t5100-mailinfo: replace common path prefix with variableKevin Daudt, Sep 19, 2016
  18. Junio C HamanoSep 19, 2016
  19. Jeff KingSep 20, 2016
  20. 1/2 t5100-mailinfo: replace common path prefix with variableKevin Daudt, Sep 25, 2016
  21. 2/2 mailinfo: unescape quoted-pair in header fieldsKevin Daudt, Sep 25, 2016
  22. Junio C HamanoSep 26, 2016
  23. Junio C HamanoSep 26, 2016
  24. Kevin DaudtSep 26, 2016
  25. Junio C HamanoSep 26, 2016
  26. Kevin DaudtSep 27, 2016
  27. Junio C HamanoSep 26, 2016
  28. 0/2 Handle RFC2822 quoted-pairs in From headerKevin Daudt, Sep 28, 2016
  29. 1/2 t5100-mailinfo: replace common path prefix with variableKevin Daudt, Sep 28, 2016
  30. Junio C HamanoSep 28, 2016
  31. Kevin DaudtSep 28, 2016
  32. 2/2 mailinfo: unescape quoted-pair in header fieldsKevin Daudt, Sep 28, 2016

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.