notmuch.el: Insert a newline if the last line of a part is missing one.
authorCarl Worth <cworth@cworth.org>
Mon, 16 Nov 2009 22:53:02 +0000 (14:53 -0800)
committerCarl Worth <cworth@cworth.org>
Mon, 16 Nov 2009 22:53:02 +0000 (14:53 -0800)
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

index 6d609dba752534438bfca5f3db73fc3d07186879..f1523ac0419c5dac502469339a26fac637502a6f 100644 (file)
@@ -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)