]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch.el
Use 'forward-line' instead of 'next-line' while walking search display
[notmuch] / notmuch.el
index 6d609dba752534438bfca5f3db73fc3d07186879..8894a8e194716f444489b1676c3630c545c82c95 100644 (file)
   "Keymap for \"notmuch show\" buffers.")
 (fset 'notmuch-show-mode-map notmuch-show-mode-map)
 
+(defvar notmuch-show-signature-regexp "\\(-- ?\\|_+\\)$"
+  "Pattern to match a line that separates content from signature.
+
+The regexp can (and should) include $ to match the end of the
+line, but should not include ^ to match the beginning of the
+line. This is because notmuch may have inserted additional space
+for indentation at the beginning of the line. But notmuch will
+move past the indentation when testing this pattern, (so that the
+pattern can still test against the entire line).")
+
 (defvar notmuch-show-signature-lines-max 12
   "Maximum length of signature that will be hidden by default.")
 
@@ -443,7 +453,8 @@ which this thread was originally shown."
                           (concat indent
                                   "[" (number-to-string (count-lines beg-sub (point)))
                                   "-line citation. Press 'c' to show.]\n")))))
-      (if (looking-at "[[:space:]]*-- ?$")
+      (move-to-column depth)
+      (if (looking-at notmuch-show-signature-regexp)
          (let ((sig-lines (- (count-lines beg-sub end) 1)))
            (if (<= sig-lines notmuch-show-signature-lines-max)
                (progn
@@ -464,11 +475,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)
@@ -776,7 +791,7 @@ global search.
     (goto-char (point-min))
     (while (not (eobp))
       (notmuch-search-markup-this-thread-id)
-      (next-line))))
+      (forward-line))))
 
 (defun notmuch-search-show-thread ()
   (interactive)