aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--emacs/notmuch.el11
-rwxr-xr-xtest/emacs-large-search-buffer2
2 files changed, 11 insertions, 2 deletions
diff --git a/emacs/notmuch.el b/emacs/notmuch.el
index 3d82f0d0..057b1aec 100644
--- a/emacs/notmuch.el
+++ b/emacs/notmuch.el
@@ -747,6 +747,8 @@ non-authors is found, assume that all of the authors match."
(more t)
(inhibit-read-only t))
(while more
+ (while (and (< line (length string)) (= (elt string line) ?\n))
+ (setq line (1+ line)))
(if (string-match "^\\(thread:[0-9A-Fa-f]*\\) \\([^][]*\\) \\(\\[[0-9/]*\\]\\) \\([^;]*\\); \\(.*\\) (\\([^()]*\\))$" string line)
(let* ((thread-id (match-string 1 string))
(date (match-string 2 string))
@@ -756,6 +758,8 @@ non-authors is found, assume that all of the authors match."
(tags (match-string 6 string))
(tag-list (if tags (save-match-data (split-string tags)))))
(goto-char (point-max))
+ (if (/= (match-beginning 1) line)
+ (insert (concat "Error: Unexpected output from notmuch search:\n" (substring string line (match-beginning 1)) "\n")))
(let ((beg (point-marker)))
(notmuch-search-show-result date count authors subject tags)
(notmuch-search-color-line beg (point-marker) tag-list)
@@ -767,7 +771,12 @@ non-authors is found, assume that all of the authors match."
(set 'found-target beg)
(set 'notmuch-search-target-thread "found"))))
(set 'line (match-end 0)))
- (set 'more nil)))))
+ (set 'more nil)
+ (while (and (< line (length string)) (= (elt string line) ?\n))
+ (setq line (1+ line)))
+ (if (< line (length string))
+ (insert (concat "Error: Unexpected output from notmuch search:\n" (substring string line) "\n")))
+ ))))
(if found-target
(goto-char found-target)))
(delete-process proc))))
diff --git a/test/emacs-large-search-buffer b/test/emacs-large-search-buffer
index f827bb14..78b3ae8b 100755
--- a/test/emacs-large-search-buffer
+++ b/test/emacs-large-search-buffer
@@ -21,7 +21,7 @@ notmuch new > /dev/null
test_begin_subtest 'Comparing emacs result to "notmuch search"'
expected="$(notmuch search '*' | sed -e 's/^thread:[0-9a-f]* //' -e 's/;//' -e 's/xx*/[BLOB]/')
End of search results."
-output=$(test_emacs '(notmuch-search "*") (notmuch-test-wait) (message (buffer-string))' 2>&1 | sed -e s', *, ,g' -e 's/xx*/[BLOB]/')
+output=$(test_emacs '(notmuch-search "*") (notmuch-test-wait) (message (buffer-string))' 2>&1 | sed -e s', *, ,g' -e 's/xxx*/[BLOB]/g')
test_expect_equal "$output" "$expected"
test_done