[PATCH] Don't bother checking for mbox files
authorKeith Packard <keithp@keithp.com>
Thu, 10 Mar 2016 00:08:17 +0000 (16:08 +1600)
committerW. Trevor King <wking@tremily.us>
Sat, 20 Aug 2016 23:21:16 +0000 (16:21 -0700)
b9/e0bcf8ff5f89b567282243914ff30df31ec42f [new file with mode: 0644]

diff --git a/b9/e0bcf8ff5f89b567282243914ff30df31ec42f b/b9/e0bcf8ff5f89b567282243914ff30df31ec42f
new file mode 100644 (file)
index 0000000..279fce9
--- /dev/null
@@ -0,0 +1,182 @@
+Return-Path: <keithp@keithp.com>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+ by arlo.cworth.org (Postfix) with ESMTP id 1BB756DE0B64\r
+ for <notmuch@notmuchmail.org>; Wed,  9 Mar 2016 16:16:57 -0800 (PST)\r
+X-Virus-Scanned: Debian amavisd-new at cworth.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -0.442\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-0.442 tagged_above=-999 required=5\r
+ tests=[AWL=-0.432, T_RP_MATCHES_RCVD=-0.01] autolearn=disabled\r
+Received: from arlo.cworth.org ([127.0.0.1])\r
+ by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024)\r
+ with ESMTP id 8RyBEcGoNBBu for <notmuch@notmuchmail.org>;\r
+ Wed,  9 Mar 2016 16:16:54 -0800 (PST)\r
+X-Greylist: delayed 514 seconds by postgrey-1.35 at arlo;\r
+ Wed, 09 Mar 2016 16:16:54 PST\r
+Received: from elaine.keithp.com (home.keithp.com [63.227.221.253])\r
+ by arlo.cworth.org (Postfix) with ESMTP id 4D47C6DE005F\r
+ for <notmuch@notmuchmail.org>; Wed,  9 Mar 2016 16:16:54 -0800 (PST)\r
+Received: from localhost (localhost [127.0.0.1])\r
+ by elaine.keithp.com (Postfix) with ESMTP id 4AA7E3F20552\r
+ for <notmuch@notmuchmail.org>; Wed,  9 Mar 2016 16:08:19 -0800 (PST)\r
+X-Virus-Scanned: Debian amavisd-new at keithp.com\r
+Received: from elaine.keithp.com ([127.0.0.1])\r
+ by localhost (elaine.keithp.com [127.0.0.1]) (amavisd-new, port 10024)\r
+ with LMTP id 2ch7IRecElz3 for <notmuch@notmuchmail.org>;\r
+ Wed,  9 Mar 2016 16:08:18 -0800 (PST)\r
+Received: by elaine.keithp.com (Postfix, from userid 1033)\r
+ id 815513F207E4; Wed,  9 Mar 2016 16:08:18 -0800 (PST)\r
+Received: from hiro.keithp.com (localhost [127.0.0.1])\r
+ by elaine.keithp.com (Postfix) with ESMTP id 6523D3F20552\r
+ for <notmuch@notmuchmail.org>; Wed,  9 Mar 2016 16:08:18 -0800 (PST)\r
+Received: by hiro.keithp.com (Postfix, from userid 1001)\r
+ id 452C37414B5; Wed,  9 Mar 2016 18:08:18 -0600 (CST)\r
+From: "Keith Packard" <keithp@keithp.com>\r
+To: notmuch@notmuchmail.org\r
+Subject: [PATCH] Don't bother checking for mbox files\r
+User-Agent: Notmuch/0.21 (http://notmuchmail.org) Emacs/24.5.1\r
+ (x86_64-pc-linux-gnu)\r
+Date: Wed, 09 Mar 2016 16:08:17 -0800\r
+Message-ID: <86io0v9oum.fsf@hiro.keithp.com>\r
+MIME-Version: 1.0\r
+Content-Type: multipart/signed; boundary="=-=-=";\r
+ micalg=pgp-sha256; protocol="application/pgp-signature"\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.20\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+ <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <https://notmuchmail.org/mailman/options/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch/>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <https://notmuchmail.org/mailman/listinfo/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Thu, 10 Mar 2016 00:16:57 -0000\r
+\r
+--=-=-=\r
+Content-Type: text/plain\r
+Content-Transfer-Encoding: quoted-printable\r
+\r
+\r
+Postfix adds mbox-style From lines when used in combination with\r
+maildrop or .forward files. If they have another line starting with\r
+'From ' in them, notmuch complains about them not being mail files.\r
+\r
+If we assume the user hasn't screwed up and misconfigured their mail\r
+system, then we can safely ignore whether the file started with an\r
+mbox header and just parse it as a single-message file.\r
+\r
+I can't see any harm in doing this; in the worst case, you'll have a\r
+single 'message' which contains multiple emails now, while the\r
+alternative is to miss mail entirely.\r
+\r
+I could be convinced to add a config option to enable this behaviour,\r
+but I'd really rather not.\r
+\r
+Signed-off-by: Keith Packard <keithp@keithp.com>\r
+=2D--\r
+ lib/message-file.c | 29 +----------------------------\r
+ 1 file changed, 1 insertion(+), 28 deletions(-)\r
+\r
+diff --git a/lib/message-file.c b/lib/message-file.c\r
+index ee30520..f03e1db 100644\r
+=2D-- a/lib/message-file.c\r
++++ b/lib/message-file.c\r
+@@ -98,22 +98,6 @@ _notmuch_message_file_close (notmuch_message_file_t *mes=\r
+sage)\r
+     talloc_free (message);\r
+ }\r
+=20\r
+=2Dstatic notmuch_bool_t\r
+=2D_is_mbox (FILE *file)\r
+=2D{\r
+=2D    char from_buf[5];\r
+=2D    notmuch_bool_t ret =3D FALSE;\r
+=2D\r
+=2D    /* Is this mbox? */\r
+=2D    if (fread (from_buf, sizeof (from_buf), 1, file) =3D=3D 1 &&\r
+=2D    strncmp (from_buf, "From ", 5) =3D=3D 0)\r
+=2D    ret =3D TRUE;\r
+=2D\r
+=2D    rewind (file);\r
+=2D\r
+=2D    return ret;\r
+=2D}\r
+=2D\r
+ notmuch_status_t\r
+ _notmuch_message_file_parse (notmuch_message_file_t *message)\r
+ {\r
+@@ -121,13 +105,10 @@ _notmuch_message_file_parse (notmuch_message_file_t *=\r
+message)\r
+     GMimeParser *parser;\r
+     notmuch_status_t status =3D NOTMUCH_STATUS_SUCCESS;\r
+     static int initialized =3D 0;\r
+=2D    notmuch_bool_t is_mbox;\r
+=20\r
+     if (message->message)\r
+       return NOTMUCH_STATUS_SUCCESS;\r
+=20\r
+=2D    is_mbox =3D _is_mbox (message->file);\r
+=2D\r
+     if (! initialized) {\r
+       g_mime_init (GMIME_ENABLE_RFC2047_WORKAROUNDS);\r
+       initialized =3D 1;\r
+@@ -144,7 +125,7 @@ _notmuch_message_file_parse (notmuch_message_file_t *me=\r
+ssage)\r
+     g_mime_stream_file_set_owner (GMIME_STREAM_FILE (stream), FALSE);\r
+=20\r
+     parser =3D g_mime_parser_new_with_stream (stream);\r
+=2D    g_mime_parser_set_scan_from (parser, is_mbox);\r
++    g_mime_parser_set_scan_from (parser, FALSE);\r
+=20\r
+     message->message =3D g_mime_parser_construct_message (parser);\r
+     if (! message->message) {\r
+@@ -152,14 +133,6 @@ _notmuch_message_file_parse (notmuch_message_file_t *m=\r
+essage)\r
+       goto DONE;\r
+     }\r
+=20\r
+=2D    if (is_mbox && ! g_mime_parser_eos (parser)) {\r
+=2D    /*\r
+=2D     * This is a multi-message mbox. (For historical reasons, we\r
+=2D     * do support single-message mboxes.)\r
+=2D     */\r
+=2D    status =3D NOTMUCH_STATUS_FILE_NOT_EMAIL;\r
+=2D    }\r
+=2D\r
+   DONE:\r
+     g_object_unref (stream);\r
+     g_object_unref (parser);\r
+=2D-=20\r
+2.7.0\r
+\r
+\r
+=2D-=20\r
+=2Dkeith\r
+\r
+--=-=-=\r
+Content-Type: application/pgp-signature; name="signature.asc"\r
+\r
+-----BEGIN PGP SIGNATURE-----\r
+Version: GnuPG v1\r
+\r
+iQIVAwUBVuC68tsiGmkAAAARAQgs8A/9FPH/S8fAm+4eKV5WhbtdqJSOH1UV1oD1\r
+TgR/e68BoetNGXwsolvyTADYf/u6R/JxSAHQwkgRPvL/LbsG+gwrt+MCSFfburwW\r
+rcJ7snYzpRhyvlone7wEGt2xlzuQGbZC43YSkL5npVupnKqgaoL/7x26ciF+u6Qq\r
+OBz7CDGs530WGlgSyoQYfjLkVhY1S3zBL1+INfevK0DUIB+TZmh9bAppTxp3hewH\r
+bF+YoZA/KaAzys0oNMHH7oMJRPYzLnKGjriqq/H2HUwKjZcf/VU+TFOcXL2RBoN4\r
+KxUf7O6/flhb6CY40iJuhzLVuX0geckVmRchbFnIYxKpYIaf26BWK7dWJTBZCvdK\r
+bwPJzHhVapsnk9grRYbguJHxomqBVfPqrFZYYzIzLqEbAybqcWCuZ88cnzqTdHqd\r
+Rhqg2xlUnBYqkp8DmTv+qiNSQ0h8V8Gq5MZ7LZ9g93NCMkfD0MaoslgYaDIIDCpG\r
+Yu8jnqet+vdvMIYE936yfRUvSSy53qjFxAg90NlMgpjGm2TorD3Z66wfI5c2Oby+\r
+z3Tr0EHCEZYfRVbdZaFQBaSdFyUmuMB6HiL9s49Y9CkY/6ncJPqKwpNvA/WLPOow\r
+RcP10f659lMCRVOVePTCsmXUKIhypKWGuXuge+wqnVfpCtAuvbb0FMD9vrF2sET7\r
+YYAJ5AWJAUE=\r
+=hHCz\r
+-----END PGP SIGNATURE-----\r
+--=-=-=--\r