changeset: 6903:945a3f4b15c7 user: David Champion <d...@bikeshed.us> date: Sat Jan 14 19:18:45 2017 -0800 link: http://dev.mutt.org/hg/mutt/rev/945a3f4b15c7
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. diffs (18 lines): diff -r 79306170e367 -r 945a3f4b15c7 mx.c --- a/mx.c Tue Jan 10 14:48:08 2017 -0800 +++ b/mx.c Sat Jan 14 19:18:45 2017 -0800 @@ -423,6 +423,14 @@ 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)