From ea484f0ebf3f25fbc701b061f36e2fe167057cc3 Mon Sep 17 00:00:00 2001
From: Carl Worth <cworth@cworth.org>
Date: Mon, 16 Nov 2009 14:53:02 -0800
Subject: [PATCH] notmuch.el: Insert a newline if the last line of a part is
 missing one.

I think there's a GMime bug that we're getting parts decoded without a
final newline (the encoded parts seem to have them just fine). We can
workaround the bug easily enough by finding a part-closing delimiter
that is not at the beginning of a line, and if so, just insert a
newline.

Without this, the one-line-summary of the next message would continue
on the same line as the last line of the previous message, (and this
would often happen for mailing-list messages where mailman would add
an extra part for its signature block).
---
 notmuch.el | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/notmuch.el b/notmuch.el
index 6d609dba..f1523ac0 100644
--- a/notmuch.el
+++ b/notmuch.el
@@ -464,11 +464,15 @@ which this thread was originally shown."
 	(let ((beg (point-marker)))
 	  (re-search-forward notmuch-show-part-end-regexp)
 	  (let ((end (copy-marker (match-beginning 0))))
+	    (goto-char end)
+	    (if (not (bolp))
+		(insert "\n"))
 	    (indent-rigidly beg end depth)
 	    (notmuch-show-markup-citations-region beg end depth)
 	    ; Advance to the next part (if any) (so the outer loop can
 	    ; determine whether we've left the current message.
-	    (re-search-forward notmuch-show-part-begin-regexp nil t))))
+	    (if (re-search-forward notmuch-show-part-begin-regexp nil t)
+		(beginning-of-line)))))
     (goto-char end)))
 
 (defun notmuch-show-markup-parts-region (beg end depth)
-- 
2.45.2