From: David Champion Date: Sun, 15 Jan 2017 03:18:45 +0000 (-0800) Subject: Allow initial blank lines in local mailboxes. X-Git-Tag: mutt-1-8-rel~45 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4d3e0bc678e1493ab9cccb69befd3f50056ba25e;p=mutt Allow initial blank lines in local mailboxes. Some mailbox-creation tools erroneously append a blank line to a file before appending a UNIXv7-format mail message, resulting in mailboxes that are intended to be valid "mbox" folders but are not. Notably old versions of Mailman do this, making archive files that cannot be read by mutt. This patch causes mutt to skip leading NLs and CRs when detecting magic. --- diff --git a/mx.c b/mx.c index a9619377..8b78a09c 100644 --- a/mx.c +++ b/mx.c @@ -423,6 +423,14 @@ int mx_get_magic (const char *path) else if ((f = fopen (path, "r")) != NULL) { struct utimbuf times; + int ch = 0; + + /* Some mailbox creation tools erroneously append a blank line to + * a file before appending a mail message. This allows mutt to + * detect magic for and thus open those files. */ + while ((ch = fgetc(f)) && (ch == '\n' || ch == '\r')); + if (!feof(f) && ch) + ungetc(ch, f); fgets (tmp, sizeof (tmp), f); if (mutt_strncmp ("From ", tmp, 5) == 0)