[PATCH] Let mailsplit and mailinfo handle mails with CRLF line-endings
- From
Alex Riesen <raa.lkml@gmail.com>
- Date
- Aug 4, 2009, 17:26 UTC
- 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 <raa.lkml@gmail.com> ---
Alex Riesen <raa.lkml@gmail.com> writes:
> Maybe it is as simple as that (not tested yet, > and sent through gmail, so please be careful):
Show 5 quoted lines
> --- 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