Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id D1FDA4196F4 for ; Tue, 6 Apr 2010 00:39:26 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: -1.9 X-Spam-Level: X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VHbaJ9nxpGKl for ; Tue, 6 Apr 2010 00:39:25 -0700 (PDT) Received: from homiemail-a18.g.dreamhost.com (caiajhbdccac.dreamhost.com [208.97.132.202]) by olra.theworths.org (Postfix) with ESMTP id A62614196F0 for ; Tue, 6 Apr 2010 00:39:25 -0700 (PDT) Received: from localhost.localdomain (mtec-hg-docking-1-dhcp-204.ethz.ch [129.132.133.204]) by homiemail-a18.g.dreamhost.com (Postfix) with ESMTPA id 66F80250069; Tue, 6 Apr 2010 00:39:24 -0700 (PDT) From: Sebastian Spaeth To: notmuch@notmuchmail.org Subject: [PATCH 1/2] notmuch.el: Allow citation suffixes to be shown as well as prefixes. Date: Tue, 6 Apr 2010 09:39:19 +0200 Message-Id: <1270539560-20759-1-git-send-email-Sebastian@SSpaeth.de> X-Mailer: git-send-email 1.6.3.3 In-Reply-To: <874ojphvyj.fsf@SSpaeth.de> References: <874ojphvyj.fsf@SSpaeth.de> X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Apr 2010 07:39:27 -0000 From: David Edmondson 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. Modify the face used for the citation button to distinguish it from the surrounding citation. Signed-off-by: Sebastian Spaeth --- emacs/notmuch-show.el | 36 +++++++++++++++++++++++++----------- 1 files changed, 25 insertions(+), 11 deletions(-) diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el index cc1f905..f172f6b 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}") @@ -679,16 +689,20 @@ is what to put on the button." (let* ((cite-start (match-beginning 0)) (cite-end (match-end 0)) (cite-lines (count-lines cite-start cite-end))) - (when (> cite-lines (1+ notmuch-show-citation-lines-prefix)) + (overlay-put (make-overlay cite-start cite-end) 'face 'message-cited-text-face) + (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)) -- 1.6.3.3