From: David Edmondson <dme@dme.org>
To: Adam Wolfe Gordon <awg+notmuch@xvx.ca>, notmuch@notmuchmail.org
Subject: Re: [PATCH v2 4/4] emacs: Use the new JSON reply format.
Date: Tue, 17 Jan 2012 09:04:39 +0000 [thread overview]
Message-ID: <cuny5t6r97c.fsf@hotblack-desiato.hh.sledj.net> (raw)
In-Reply-To: <1326737603-21166-5-git-send-email-awg+notmuch@xvx.ca>
[-- Attachment #1: Type: text/plain, Size: 3089 bytes --]
Much nicer now that it uses the mm stuff.
On Mon, 16 Jan 2012 11:13:23 -0700, Adam Wolfe Gordon <awg+notmuch@xvx.ca> wrote:
> +(defun find-parts (parts type)
Sorry for being a nuisance - this needs a name that indicates that it
relates to notmuch. How about `notmuch-parts-filter-by-type'?
> + "Return a list of message parts with the given type"
> + (delq nil (mapcar (lambda (part)
> + (if (string= (cdr (assq 'content-type part)) type)
> + (cdr (assq 'content part))))
> + parts)))
'(delq nil ...)' can more readably be implemented using something like:
(loop for part in parts
if (string= (cdr (assq 'content-type part)) type)
collect (cdr (assq 'content part)))
(untested).
> +(defun notmuch-mua-insert-part-quoted (part)
> + (save-restriction
> + (narrow-to-region (point) (point))
> + (insert part)
> + (goto-char (point-min))
> + (perform-replace "^" "> " nil t nil)
Narrowing to '(point) (point)' seems a bit weird and using
`perform-replace' is discouraged in programs. It would be more normal to
use a loop of `re-search-forward' and `replace-match' with a limit after
the insertion. Something like:
(let ((start (point))
limit)
(insert part)
(setq limit (point))
(goto-char start)
(while (re-search-forward "^" limit t)
(replace-match "> "))
...
(untested).
> + (insert "\n")
> + (set-buffer-modified-p nil)))
Is this newline always required? Is it the cause of the spurious blank
line down below?
> +(defun notmuch-mua-parse-html-part (part)
> + (with-temp-buffer
> + (insert part)
> + (let ((handle (mm-make-handle (current-buffer) (list "text/html")))
> + (end-of-orig (point-max)))
> + (mm-display-part handle)
> + (kill-region (point-min) end-of-orig)
> + (fill-region (point-min) (point-max))
> + (buffer-substring (point-min) (point-max)))))
`kill-region' will save content in the kill ring. Was that intended?
(Maybe `delete-region' instead?)
> (defun notmuch-mua-reply (query-string &optional sender reply-all)
> ...
> + (insert (format "On %s, %s wrote:\n"
> + (cdr (assq 'date original-headers))
> + (cdr (assq 'from original-headers))))
I wonder whether emacs should be regenerating this or not. I'm okay with
it, but previous discussion was that it should remain the responsibility
of the CLI.
> + (if (null plain-parts)
> + (mapc (lambda (part) (notmuch-mua-insert-part-quoted (notmuch-mua-parse-html-part part))) html-parts)
> + (mapc (lambda (part) (notmuch-mua-insert-part-quoted part)) plain-parts))
Flip the 'then' and 'else' clauses to get rid of the `null'?
> --- a/test/emacs
> +++ b/test/emacs
> @@ -270,6 +270,7 @@ Fcc: $(pwd)/mail/sent
> --text follows this line--
> On 01 Jan 2000 12:00:00 -0000, Notmuch Test Suite <test_suite@notmuchmail.org> wrote:
> > This is a test that messages are sent via SMTP
> +>
It would be good if you could get rid of this trailing blank line.
[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
next prev parent reply other threads:[~2012-01-17 9:04 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-16 18:13 [PATCH v2 0/4] Quoting HTML Emails in Reply Adam Wolfe Gordon
2012-01-16 18:13 ` [PATCH v2 1/4] test: Add broken test for the new JSON reply format Adam Wolfe Gordon
2012-01-16 18:13 ` [PATCH v2 2/4] reply: Add a " Adam Wolfe Gordon
2012-01-18 23:07 ` Jani Nikula
2012-01-18 23:29 ` Adam Wolfe Gordon
2012-01-16 18:13 ` [PATCH v2 3/4] man: Update notmuch-reply man page for JSON format Adam Wolfe Gordon
2012-01-16 18:13 ` [PATCH v2 4/4] emacs: Use the new JSON reply format Adam Wolfe Gordon
2012-01-17 9:04 ` David Edmondson [this message]
2012-01-17 16:18 ` Adam Wolfe Gordon
2012-01-17 22:53 ` [PATCH v2 4/5] " Adam Wolfe Gordon
2012-01-17 22:53 ` [PATCH v2 5/5] emacs: Use message-citation-line-format in reply Adam Wolfe Gordon
2012-01-18 6:54 ` [PATCH v2 4/5] emacs: Use the new JSON reply format David Edmondson
2012-01-18 16:29 ` Adam Wolfe Gordon
2012-01-18 16:32 ` Adam Wolfe Gordon
2012-01-18 16:41 ` David Edmondson
2012-01-18 17:08 ` Adam Wolfe Gordon
2012-01-17 1:18 ` [PATCH v2 5/4] emacs: Add customization for the first line of quotes Adam Wolfe Gordon
2012-01-17 7:17 ` how about message-citation-line-format (was: Re: [PATCH v2 5/4] emacs: Add customization for the first line of quotes.) Gregor Zattler
2012-01-17 9:05 ` David Edmondson
2012-01-17 16:20 ` Adam Wolfe Gordon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://notmuchmail.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cuny5t6r97c.fsf@hotblack-desiato.hh.sledj.net \
--to=dme@dme.org \
--cc=awg+notmuch@xvx.ca \
--cc=notmuch@notmuchmail.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://yhetil.org/notmuch.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).