On Tue, Jan 17, 2012 at 23:54, David Edmondson <dme at dme.org> wrote:
> On Tue, 17 Jan 2012 15:53:37 -0700, Adam Wolfe Gordon <awg+notmuch at xvx.ca> 
> wrote:
>> +(defun notmuch-parts-filter-by-type (parts type)
>> + ?"Return a list of message parts with the given type"
>> + ?(let (result)
>> + ? ?(dolist (part (append parts nil) result)
>> + ? ? ?(if (string= (cdr (assq 'content-type part)) type)
>> + ? ? ? (setq result (append result (list (cdr (assq 'content part)))))))
>> + ? ?result))
>
> I still think that `loop' is easier to read :-) But no objection to this
> code.

I couldn't find the loop construct initially, but after the discussion
of common lisp on IRC yesterday I found the cl package and figured out
how your example worked.  With loop and collect figured out, it is
easier to read.

>> +(defun notmuch-mua-insert-part-quoted (part)
>> + ?(let ((start (point))
>> + ? ? limit)
>> + ? ?(insert part)
>> + ? ?(setq limit (point))
>> + ? ?(goto-char start)
>> + ? ?(while (re-search-forward "\\(^\\)[^$]" limit 0)
>> + ? ? ?(replace-match "> " nil nil nil 1)
>> + ? ? ?;; We have added two characters to the quotable region
>> + ? ? ?(setq limit (+ limit 2)))
>> + ? ?(set-buffer-modified-p nil)))
>
> You could use a marker for the limit, as it would then move along
> automagically (sorry for not noticing this last time).

Aha!  Another trick I didn't know about.

New patch forthcoming.

Reply via email to