Thread (24 messages) flat view 24 messages, 8 authors, 2016-06-15

Re: [PATCH] Let mailsplit and mailinfo handle mails with CRLF line-endings

From: Brandon Casey <hidden>
Date: 2016-06-15 22:47:09

Sverre Rabbelier wrote:
Heya,

On Tue, Aug 4, 2009 at 10:26, Alex Riesen[off-list ref] wrote:
quoted
       }
+       if (len > 1 && buf[len - 2] == '\r')
+               buf[--len - 1] = '\n';
       buf[len] = '\0';
How about something like:

+       if (len > 1 && buf[len - 2] == '\r' && (buf[len - 1] == '\n'
|| buf[len - 1] == '\0'))
+               buf[--len - 1] = '\n';

To make sure that we're not erasing a \r somewhere in the middle of the content?
You may want to push the \r back into the buffer if it is the last character read
too.  We may reach the limit of size characters without finding a \n, and so we
can't tell whether the last \r we read was a solitary \r or whether it is the
beginning of \r\n sequence.

So maybe we need something like this after the 'for' loop instead:


   if (c == '\n') {
   	if (len > 1 && buf[len - 2] == '\r')
		buf[--len - 1] = '\n';
   } else if (c == '\r') {
	ungetc(c, in);
	len--;
   }

-brandon
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help