From c44ce805de8ca01a5ceaa8db94a347e7236f17ce Mon Sep 17 00:00:00 2001 From: David Edmondson Date: Wed, 17 Feb 2010 10:51:51 +0000 Subject: [PATCH] notmuch.el: Allow citation suffixes to be shown as well as prefixes. 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 --- emacs/notmuch-show.el | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el index 589a7377..a2383ebc 100644 --- a/emacs/notmuch-show.el +++ b/emacs/notmuch-show.el @@ -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))