]> git.notmuchmail.org Git - notmuch/commitdiff
notmuch.el: Allow citation suffixes to be shown as well as prefixes.
authorDavid Edmondson <dme@dme.org>
Wed, 17 Feb 2010 10:51:51 +0000 (10:51 +0000)
committerCarl Worth <cworth@cworth.org>
Wed, 7 Apr 2010 19:10:36 +0000 (12:10 -0700)
In many conversations the last few lines of a citation are more
interesting than the first few lines, hence allow those to be shown if
desired.

Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
emacs/notmuch-show.el

index 589a73773803b2d1e51fc546927c74f89f29e488..a2383ebc20b5c5e7cf5d7f0bec8037142c03e47d 100644 (file)
@@ -111,10 +111,20 @@ Can use up to one integer format parameter, i.e. %d")
   "Maximum length of signature that will be hidden by default.")
 
 (defvar notmuch-show-citation-lines-prefix 4
-  "Always show at least this many lines of a citation.
+  "Always show at least this many lines at the start of a citation.
 
-If there is one more line, show that, otherwise collapse
-remaining lines into a button.")
+If there is one more line than the sum of
+`notmuch-show-citation-lines-prefix' and
+`notmuch-show-citation-lines-suffix', show that, otherwise
+collapse remaining lines into a button.")
+
+(defvar notmuch-show-citation-lines-suffix 0
+  "Always show at least this many lines at the end of a citation.
+
+If there is one more line than the sum of
+`notmuch-show-citation-lines-prefix' and
+`notmuch-show-citation-lines-suffix', show that, otherwise
+collapse remaining lines into a button.")
 
 (defvar notmuch-show-message-begin-regexp    "\fmessage{")
 (defvar notmuch-show-message-end-regexp      "\fmessage}")
@@ -680,16 +690,19 @@ is what to put on the button."
             (cite-end  (match-end 0))
             (cite-lines (count-lines cite-start cite-end)))
        (overlay-put (make-overlay cite-start cite-end) 'face 'message-cited-text-face)
-       (when (> cite-lines (1+ notmuch-show-citation-lines-prefix))
+       (when (> cite-lines (1+ (+ notmuch-show-citation-lines-prefix notmuch-show-citation-lines-suffix)))
          (goto-char cite-start)
          (forward-line notmuch-show-citation-lines-prefix)
-         (notmuch-show-region-to-button
-          (point) cite-end
-          "citation"
-          indent
-          (format notmuch-show-citation-button-format
-                  (- cite-lines notmuch-show-citation-lines-prefix))
-          ))))
+         (let ((hidden-start (point)))
+           (goto-char cite-end)
+           (forward-line (- notmuch-show-citation-lines-suffix))
+           (notmuch-show-region-to-button
+            hidden-start (point)
+            "citation"
+            indent
+            (format notmuch-show-citation-button-format
+                    (- cite-lines notmuch-show-citation-lines-prefix notmuch-show-citation-lines-suffix))
+            )))))
     (if (and (< (point) end)
             (re-search-forward signature-regexp end t))
        (let* ((sig-start (match-beginning 0))