The infinite loop was triggered by a message consisting of a single
attachment within the body, (and no "part") tags.
We need to do things in response to this bug (beyond this specific
fix):
1. Create a test suite that exercises our emacs frontend so that bugs
like this do not come back to haunt us after we fix them once.
2. Switch from our ad-hoc regexp based search of message-part delimeters
to known-good code for parsing a structured document, (for example,
the outstanding JSON patches).
; determine whether we've left the current message.
(if (re-search-forward notmuch-show-part-begin-regexp nil t)
(beginning-of-line)))))
- (goto-char end))))
+ (goto-char end))
+ (goto-char end)))
(defun notmuch-show-markup-parts-region (beg end depth)
(save-excursion