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 7FAE0431FB6 for ; Wed, 4 Jul 2012 01:34:15 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: -1.098 X-Spam-Level: X-Spam-Status: No, score=-1.098 tagged_above=-999 required=5 tests=[DKIM_ADSP_CUSTOM_MED=0.001, FREEMAIL_FROM=0.001, NML_ADSP_CUSTOM_MED=1.2, RCVD_IN_DNSWL_MED=-2.3] autolearn=disabled 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 SnCYA8fiMv2h for ; Wed, 4 Jul 2012 01:34:14 -0700 (PDT) Received: from mail2.qmul.ac.uk (mail2.qmul.ac.uk [138.37.6.6]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by olra.theworths.org (Postfix) with ESMTPS id 90F49431FAE for ; Wed, 4 Jul 2012 01:34:14 -0700 (PDT) Received: from smtp.qmul.ac.uk ([138.37.6.40]) by mail2.qmul.ac.uk with esmtp (Exim 4.71) (envelope-from ) id 1SmL2K-0005LK-Ol; Wed, 04 Jul 2012 09:34:13 +0100 Received: from 94-192-233-223.zone6.bethere.co.uk ([94.192.233.223] helo=localhost) by smtp.qmul.ac.uk with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.69) (envelope-from ) id 1SmL2K-0002hU-Dv; Wed, 04 Jul 2012 09:34:12 +0100 From: Mark Walters To: Austin Clements , notmuch@notmuchmail.org Subject: Re: [PATCH 3/8] emacs: Move search-target logic to `notmuch-search-show-result' In-Reply-To: <1341354059-29396-4-git-send-email-amdragon@mit.edu> References: <1341354059-29396-1-git-send-email-amdragon@mit.edu> <1341354059-29396-4-git-send-email-amdragon@mit.edu> User-Agent: Notmuch/0.13.2+70~gb6a56e7 (http://notmuchmail.org) Emacs/23.4.1 (x86_64-pc-linux-gnu) Date: Wed, 04 Jul 2012 09:34:09 +0100 Message-ID: <87hatnhqm6.fsf@qmul.ac.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Sender-Host-Address: 94.192.233.223 X-QM-SPAM-Info: Sender has good ham record. :) X-QM-Body-MD5: e6ed7f90d13674af4b0346a8140fd1b7 (of first 20000 bytes) X-SpamAssassin-Score: -1.8 X-SpamAssassin-SpamBar: - X-SpamAssassin-Report: The QM spam filters have analysed this message to determine if it is spam. We require at least 5.0 points to mark a message as spam. This message scored -1.8 points. Summary of the scoring: * -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at http://www.dnswl.org/, * medium trust * [138.37.6.40 listed in list.dnswl.org] * 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider * (markwalters1009[at]gmail.com) * -0.0 T_RP_MATCHES_RCVD Envelope sender domain matches handover relay * domain * 0.5 AWL AWL: From: address is in the auto white-list X-QM-Scan-Virus: ClamAV says the message is clean Cc: tomi.ollila@iki.fi 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: Wed, 04 Jul 2012 08:34:15 -0000 On Tue, 03 Jul 2012, Austin Clements wrote: > This is a simpler place to do this, since we can avoid any point > motion and hence any save-excursions in > `notmuch-search-process-filter', which in turn lets us put all of the > search-target logic outside of any save-excursions. > > `notmuch-search-process-filter' could use some reindentation after > this, but we're about to rewrite it entirely, so we won't bother. > --- > emacs/notmuch.el | 33 +++++++++++++++------------------ > 1 file changed, 15 insertions(+), 18 deletions(-) > > diff --git a/emacs/notmuch.el b/emacs/notmuch.el > index dadc6d6..4a6490a 100644 > --- a/emacs/notmuch.el > +++ b/emacs/notmuch.el > @@ -729,24 +729,27 @@ non-authors is found, assume that all of the authors match." > (defun notmuch-search-show-result (thread-id date count authors subject tags) > ;; Ignore excluded matches > (unless (eq (aref count 1) ?0) > - (let ((beg (point)) > + (let ((beg (point-max)) > (tags-str (mapconcat 'identity tags " "))) > - (dolist (format notmuch-search-result-format) > - (notmuch-search-insert-field (car format) (cdr format) > - date count authors subject tags-str)) > - (insert "\n") > - (notmuch-search-color-line beg (point) tags) > - (put-text-property beg (point) 'notmuch-search-thread-id thread-id) > - (put-text-property beg (point) 'notmuch-search-authors authors) > - (put-text-property beg (point) 'notmuch-search-subject subject)))) > + (save-excursion > + (goto-char beg) > + (dolist (format notmuch-search-result-format) > + (notmuch-search-insert-field (car format) (cdr format) > + date count authors subject tags-str)) > + (insert "\n") > + (notmuch-search-color-line beg (point) tags) > + (put-text-property beg (point) 'notmuch-search-thread-id thread-id) > + (put-text-property beg (point) 'notmuch-search-authors authors) > + (put-text-property beg (point) 'notmuch-search-subject subject)) > + (when (string= thread-id notmuch-search-target-thread) > + (setq notmuch-search-target-thread "found") > + (goto-char beg))))) > > (defun notmuch-search-process-filter (proc string) > "Process and filter the output of \"notmuch search\"" > - (let ((buffer (process-buffer proc)) > - (found-target nil)) > + (let ((buffer (process-buffer proc))) > (if (buffer-live-p buffer) > (with-current-buffer buffer > - (save-excursion > (let ((line 0) > (more t) > (inhibit-read-only t) > @@ -763,12 +766,8 @@ non-authors is found, assume that all of the authors match." > (subject (match-string 5 string)) > (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"))) Does this mean that error information now comes just before the matching thread, rather than at the place in the thread list the error actually occurs? This is not a complaint: just everything else looks like it is functionally equivalent. (Maybe it is all made irrelevant by a later patch anyway). Best wishes Mark > - (when (string= thread-id notmuch-search-target-thread) > - (set 'found-target (point)) > - (set 'notmuch-search-target-thread "found")) > (notmuch-search-show-result thread-id date count authors subject tag-list) > (set 'line (match-end 0))) > (set 'more nil) > @@ -777,8 +776,6 @@ non-authors is found, assume that all of the authors match." > (if (< line (length string)) > (setq notmuch-search-process-filter-data (substring string line))) > )))) > - (if found-target > - (goto-char found-target))) > (delete-process proc)))) > > (defun notmuch-search-tag-all (&optional tag-changes) > -- > 1.7.10 > > _______________________________________________ > notmuch mailing list > notmuch@notmuchmail.org > http://notmuchmail.org/mailman/listinfo/notmuch