From: Alex Riesen Date: Tue, 04 Aug 2009 17:26:38 GMT Subject: [PATCH] Let mailsplit and mailinfo handle mails with CRLF line-endings Message-ID: <20090804172638.GA15136@blimp.localdomain> In-Reply-To: <7v7hxk5b4y.fsf@alter.siamese.dyndns.org> It is not that uncommon to have mails with DOS line-ending, notably Thunderbird and Gmail (when saving what they call "original" message). Noticed by H. Peter Anvin. Signed-off-by: Alex Riesen --- Alex Riesen writes: > Maybe it is as simple as that (not tested yet, > and sent through gmail, so please be careful): > --- a/builtin-mailsplit.c > +++ b/builtin-mailsplit.c > @@ -58,6 +58,8 @@ int read_line_with_nul(char *buf, int size, FILE *in) > + if (len && buf[len - 1] == '\r') > + --len; That's wrong, of course. I missed the fact that \n stays in the buffer. Corrected. builtin-mailsplit.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/builtin-mailsplit.c b/builtin-mailsplit.c index ad5f6b5..188ffec 100644 --- a/builtin-mailsplit.c +++ b/builtin-mailsplit.c @@ -58,6 +58,8 @@ int read_line_with_nul(char *buf, int size, FILE *in) if (c == '\n' || len + 1 >= size) break; } + if (len > 1 && buf[len - 2] == '\r') + buf[--len - 1] = '\n'; buf[len] = '\0'; return len; -- 1.6.4.30.gd4c0