From: Austin Clements Date: Mon, 30 Jan 2012 23:48:23 +0000 (+1900) Subject: Re: [PATCH 2/2 v2] emacs: Prefer '[No Subject]' to blank subjects. X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=cdeab98fe000f951496514b8d0781fad2811908c;p=notmuch-archives.git Re: [PATCH 2/2 v2] emacs: Prefer '[No Subject]' to blank subjects. --- diff --git a/da/0d3ede6a15535480e51473b76e55f2664ed52b b/da/0d3ede6a15535480e51473b76e55f2664ed52b new file mode 100644 index 000000000..7589cdf6d --- /dev/null +++ b/da/0d3ede6a15535480e51473b76e55f2664ed52b @@ -0,0 +1,203 @@ +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 9A186431E64 + for ; Mon, 30 Jan 2012 15:49:17 -0800 (PST) +X-Virus-Scanned: Debian amavisd-new at olra.theworths.org +X-Spam-Flag: NO +X-Spam-Score: -0.7 +X-Spam-Level: +X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5 + tests=[RCVD_IN_DNSWL_LOW=-0.7] 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 7UegfP85Mqnt for ; + Mon, 30 Jan 2012 15:49:16 -0800 (PST) +Received: from dmz-mailsec-scanner-2.mit.edu (DMZ-MAILSEC-SCANNER-2.MIT.EDU + [18.9.25.13]) + by olra.theworths.org (Postfix) with ESMTP id AFDBF431FBC + for ; Mon, 30 Jan 2012 15:49:16 -0800 (PST) +X-AuditID: 1209190d-b7fbf6d0000008ba-a5-4f272c7c32e6 +Received: from mailhub-auth-2.mit.edu ( [18.7.62.36]) + by dmz-mailsec-scanner-2.mit.edu (Symantec Messaging Gateway) with SMTP + id 8E.5B.02234.C7C272F4; Mon, 30 Jan 2012 18:49:16 -0500 (EST) +Received: from outgoing.mit.edu (OUTGOING-AUTH.MIT.EDU [18.7.22.103]) + by mailhub-auth-2.mit.edu (8.13.8/8.9.2) with ESMTP id q0UNnFGp024661; + Mon, 30 Jan 2012 18:49:16 -0500 +Received: from awakening.csail.mit.edu (awakening.csail.mit.edu [18.26.4.91]) + (authenticated bits=0) + (User authenticated as amdragon@ATHENA.MIT.EDU) + by outgoing.mit.edu (8.13.6/8.12.4) with ESMTP id q0UNnEe0007914 + (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NOT); + Mon, 30 Jan 2012 18:49:15 -0500 (EST) +Received: from amthrax by awakening.csail.mit.edu with local (Exim 4.77) + (envelope-from ) + id 1Rs0xT-0002VM-Et; Mon, 30 Jan 2012 18:48:23 -0500 +Date: Mon, 30 Jan 2012 18:48:23 -0500 +From: Austin Clements +To: David Edmondson +Subject: Re: [PATCH 2/2 v2] emacs: Prefer '[No Subject]' to blank subjects. +Message-ID: <20120130234823.GV17991@mit.edu> +References: <1327496913-4946-1-git-send-email-dme@dme.org> + <1327918561-16245-1-git-send-email-dme@dme.org> + <1327918561-16245-3-git-send-email-dme@dme.org> +MIME-Version: 1.0 +Content-Type: text/plain; charset=us-ascii +Content-Disposition: inline +In-Reply-To: <1327918561-16245-3-git-send-email-dme@dme.org> +User-Agent: Mutt/1.5.21 (2010-09-15) +X-Brightmail-Tracker: + H4sIAAAAAAAAA+NgFmpileLIzCtJLcpLzFFi42IRYrdT0a3RUfc3OHRI2GLfnS1MFtdvzmR2 + YPLY9fwvk8ezVbeYA5iiuGxSUnMyy1KL9O0SuDJm/3jOUnBHvWL2xgPsDYyP5bsYOTkkBEwk + 1s77xQJhi0lcuLeerYuRi0NIYB+jxMdPW5khnA2MEs0nrrJDOCeZJJZNPcIO0iIksASo7HQB + iM0ioCrRd/U8WJxNQENi2/7ljCC2iICixP9vK8DizALSEt9+NzN1MXJwCAt4Sxw96QgS5hXQ + kbgyoRdq8zxGiastbxghEoISJ2c+YYHo1ZK48e8lWC/InOX/OEBMTgEbiXfLOUAqRAVUJKac + 3MY2gVFoFpLmWUiaZyE0L2BkXsUom5JbpZubmJlTnJqsW5ycmJeXWqRrpJebWaKXmlK6iREU + 1JySvDsY3x1UOsQowMGoxMMr8EnNX4g1say4MvcQoyQHk5Io7xF1dX8hvqT8lMqMxOKM+KLS + nNTiQ4wSHMxKIrxvVgOV86YkVlalFuXDpKQ5WJTEeVW13vkJCaQnlqRmp6YWpBbBZGU4OJQk + eJmB0SskWJSanlqRlplTgpBm4uAEGc4DNFwSpIa3uCAxtzgzHSJ/ilFRSpxXHiQhAJLIKM2D + 64UlnVeM4kCvCPN+0Aaq4gEmLLjuV0CDmYAGP2dQBRlckoiQkmpgdOfSVUqJWblx/RzBR68M + PkXJPDn170jp5Wb7Iw+7FYoKRIOlOyc+K3vde63sopJPbMXKNZp72g8xzLgclbRRe/Y6Y+26 + hYsu8VvZrrhxkHNpb5qpqX3sVVmTgwfb7tuZpKrLBP9ZdsQ7t3B3po3Xloic21YTTs1SeTJv + w5Sr7d07ZUtbZpzKVWIpzkg01GIuKk4EACqkJsMVAwAA +Cc: notmuch@notmuchmail.org +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: Mon, 30 Jan 2012 23:49:17 -0000 + +LGTM. + +Quoth David Edmondson on Jan 30 at 10:16 am: +> --- +> emacs/notmuch-lib.el | 9 +++++++++ +> emacs/notmuch-print.el | 8 ++++++-- +> emacs/notmuch-show.el | 5 ++++- +> emacs/notmuch.el | 21 +++++++++------------ +> 4 files changed, 28 insertions(+), 15 deletions(-) +> +> diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el +> index c906ca7..d315f76 100644 +> --- a/emacs/notmuch-lib.el +> +++ b/emacs/notmuch-lib.el +> @@ -133,6 +133,15 @@ the user hasn't set this variable with the old or new value." +> (interactive) +> (kill-buffer (current-buffer))) +> +> +(defun notmuch-prettify-subject (subject) +> + ;; This function is used by `notmuch-search-process-filter' which +> + ;; requires that we not disrupt its' matching state. +> + (save-match-data +> + (if (and subject +> + (string-match "^[ \t]*$" subject)) +> + "[No Subject]" +> + subject))) +> + +> ;; +> +> (defun notmuch-common-do-stash (text) +> diff --git a/emacs/notmuch-print.el b/emacs/notmuch-print.el +> index 880f96d..6653d97 100644 +> --- a/emacs/notmuch-print.el +> +++ b/emacs/notmuch-print.el +> @@ -19,6 +19,8 @@ +> ;; +> ;; Authors: David Edmondson +> +> +(require 'notmuch-lib) +> + +> (declare-function notmuch-show-get-prop "notmuch-show" (prop &optional props)) +> +> (defcustom notmuch-print-mechanism 'notmuch-print-lpr +> @@ -58,14 +60,16 @@ Optional OUTPUT allows passing a list of flags to muttprint." +> +> (defun notmuch-print-ps-print (msg) +> "Print a message buffer using the ps-print package." +> - (let ((subject (plist-get (notmuch-show-get-prop :headers msg) :Subject))) +> + (let ((subject (notmuch-prettify-subject +> + (plist-get (notmuch-show-get-prop :headers msg) :Subject)))) +> (rename-buffer subject t) +> (ps-print-buffer))) +> +> (defun notmuch-print-ps-print/evince (msg) +> "Preview a message buffer using ps-print and evince." +> (let ((ps-file (make-temp-file "notmuch")) +> - (subject (plist-get (notmuch-show-get-prop :headers msg) :Subject))) +> + (subject (notmuch-prettify-subject +> + (plist-get (notmuch-show-get-prop :headers msg) :Subject)))) +> (rename-buffer subject t) +> (ps-print-buffer ps-file) +> (notmuch-print-run-evince ps-file))) +> diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el +> index 84ac624..7ea9ba2 100644 +> --- a/emacs/notmuch-show.el +> +++ b/emacs/notmuch-show.el +> @@ -1017,7 +1017,7 @@ buffer." +> (notmuch-show-next-open-message)) +> +> ;; Set the header line to the subject of the first open message. +> - (setq header-line-format (notmuch-show-strip-re (notmuch-show-get-subject))) +> + (setq header-line-format (notmuch-show-strip-re (notmuch-show-get-pretty-subject))) +> +> (notmuch-show-mark-read))) +> +> @@ -1248,6 +1248,9 @@ Some useful entries are: +> (defun notmuch-show-get-depth () +> (notmuch-show-get-prop :depth)) +> +> +(defun notmuch-show-get-pretty-subject () +> + (notmuch-prettify-subject (notmuch-show-get-subject))) +> + +> (defun notmuch-show-set-tags (tags) +> "Set the tags of the current message." +> (notmuch-show-set-prop :tags tags) +> diff --git a/emacs/notmuch.el b/emacs/notmuch.el +> index d4d6904..2b0a752 100644 +> --- a/emacs/notmuch.el +> +++ b/emacs/notmuch.el +> @@ -467,18 +467,14 @@ Complete list of currently available key bindings: +> "Display the currently selected thread." +> (interactive "P") +> (let ((thread-id (notmuch-search-find-thread-id)) +> - (subject (notmuch-search-find-subject))) +> + (subject (notmuch-prettify-subject (notmuch-search-find-subject)))) +> (if (> (length thread-id) 0) +> - (progn +> - (if (string-match "^[ \t]*$" subject) +> - (setq subject "[No Subject]")) +> - +> - (notmuch-show thread-id +> - (current-buffer) +> - notmuch-search-query-string +> - ;; Name the buffer based on the subject. +> - (concat "*" (truncate-string-to-width subject 30 nil nil t) "*") +> - crypto-switch)) +> + (notmuch-show thread-id +> + (current-buffer) +> + notmuch-search-query-string +> + ;; Name the buffer based on the subject. +> + (concat "*" (truncate-string-to-width subject 30 nil nil t) "*") +> + crypto-switch) +> (message "End of search results.")))) +> +> (defun notmuch-search-reply-to-thread (&optional prompt-for-sender) +> @@ -854,7 +850,8 @@ non-authors is found, assume that all of the authors match." +> (if (/= (match-beginning 1) line) +> (insert (concat "Error: Unexpected output from notmuch search:\n" (substring string line (match-beginning 1)) "\n"))) +> (let ((beg (point))) +> - (notmuch-search-show-result date count authors subject tags) +> + (notmuch-search-show-result date count authors +> + (notmuch-prettify-subject subject) tags) +> (notmuch-search-color-line beg (point) tag-list) +> (put-text-property beg (point) 'notmuch-search-thread-id thread-id) +> (put-text-property beg (point) 'notmuch-search-authors authors)