guile: Fix the mu:body message method
Somewhere along the way, the body-txt and body-html fields were merged
into a single body field. Later, commit 8eac392221 ("guile: re-enable
the guile support") finally removed support for Field::Id::BodyHtml from
mu:c:get-field.
Unfortunately mu.scm and the documentation are still stuck in the past, so
update them. mu:body-txt is now a synonym for mu:body, and mu:body-html
always returns #f.
I wanted to add a mu:body test also for the rfc822.1 message, but there's
currently a bug where its body text is is duplicated (issue #2802), so the
test would fail.
This commit is contained in:
@ -43,7 +43,7 @@ exec guile -e main -s $0 $@
|
||||
(org-mu4e-link msg)
|
||||
(if tag (string-concatenate `(":" ,tag "::")) "")
|
||||
(or (mu:from msg) "?")
|
||||
(let ((body (mu:body-txt msg)))
|
||||
(let ((body (mu:body msg)))
|
||||
(if (not body) ;; get a 'summary' of the body text
|
||||
"<no plain-text body>"
|
||||
(string-map
|
||||
|
||||
@ -391,8 +391,7 @@ properties, please refer to the @t{mu-find} man-page.
|
||||
|
||||
@itemize
|
||||
@item @code{(mu:bcc msg)}: the @t{Bcc} field of the message, or @t{#f} if there is none
|
||||
@item @code{(mu:body-html msg)}: : the html body of the message, or @t{#f} if there is none
|
||||
@item @code{(mu:body-txt msg)}: the plain-text body of the message, or @t{#f} if there is none
|
||||
@item @code{(mu:body msg)}: the body of the message, or @t{#f} if there is none
|
||||
@item @code{(mu:cc msg)}: the @t{Bcc} field of the message, or @t{#f} if there is none
|
||||
@item @code{(mu:date msg)}: the @t{Date} field of the message, or 0 if there is none
|
||||
@item @code{(mu:flags msg)}: list of message-flags for this message
|
||||
|
||||
19
guile/mu.scm
19
guile/mu.scm
@ -38,8 +38,7 @@
|
||||
mu:header
|
||||
;; message accessors
|
||||
mu:field:bcc
|
||||
mu:field:body-html
|
||||
mu:field:body-txt
|
||||
mu:field:body
|
||||
mu:field:cc
|
||||
mu:field:date
|
||||
mu:field:flags
|
||||
@ -54,6 +53,9 @@
|
||||
mu:field:tags
|
||||
mu:field:timestamp
|
||||
mu:field:to
|
||||
;; deprecated message accessors
|
||||
mu:body-html
|
||||
mu:body-txt
|
||||
;; contact funcs
|
||||
mu:name
|
||||
mu:email
|
||||
@ -125,8 +127,7 @@
|
||||
(export method-name)))))
|
||||
|
||||
(define-getter mu:bcc mu:field:bcc)
|
||||
(define-getter mu:body-html mu:field:body-html)
|
||||
(define-getter mu:body-txt mu:field:body-txt)
|
||||
(define-getter mu:body mu:field:body)
|
||||
(define-getter mu:cc mu:field:cc)
|
||||
(define-getter mu:date mu:field:date)
|
||||
(define-getter mu:flags mu:field:flags)
|
||||
@ -142,6 +143,16 @@
|
||||
(define-getter mu:timestamp mu:field:timestamp)
|
||||
(define-getter mu:to mu:field:to)
|
||||
|
||||
(define-method (mu:body-html (msg <mu:message>))
|
||||
"The HTML body isn't stored separately anymore, so this method can't return
|
||||
anything useful. We keep it for backwards compatibility."
|
||||
#f)
|
||||
|
||||
(define-method (mu:body-txt (msg <mu:message>))
|
||||
"The text body isn't stored separately anymore. This method is now a synonym
|
||||
for mu:body."
|
||||
(mu:body msg))
|
||||
|
||||
(define-method (mu:header (msg <mu:message>) (hdr <string>))
|
||||
"Get an arbitrary header HDR from message MSG; return #f if it does
|
||||
not exist."
|
||||
|
||||
@ -84,6 +84,22 @@ exec guile -e main -s $0 $@
|
||||
(str-equal-or-exit (mu:to msg) "Democritus <demo@example.com>")
|
||||
(str-equal-or-exit (mu:from msg) "Richard P. Feynman <rpf@example.com>")
|
||||
;;(str-equal-or-exit (mu:header msg "Content-Transfer-Encoding") "8bit")
|
||||
(str-equal-or-exit (mu:body msg)
|
||||
(string-join
|
||||
'("If, in some cataclysm, all scientific knowledge were to be destroyed,"
|
||||
"and only one sentence passed on to the next generation of creatures,"
|
||||
"what statement would contain the most information in the fewest words?"
|
||||
"I believe it is the atomic hypothesis (or atomic fact, or whatever you"
|
||||
"wish to call it) that all things are made of atoms — little particles"
|
||||
"that move around in perpetual motion, attracting each other when they"
|
||||
"are a little distance apart, but repelling upon being squeezed into"
|
||||
"one another. In that one sentence you will see an enormous amount of"
|
||||
"information about the world, if just a little imagination and thinking"
|
||||
"are applied.\n") "\n"))
|
||||
(str-equal-or-exit (mu:body-txt msg) (mu:body msg))
|
||||
(let ((got (mu:body-html msg)))
|
||||
(if got
|
||||
(error-exit "Expected #f, got ~a" got)))
|
||||
|
||||
(if (not (equal? (mu:priority msg) mu:prio:high))
|
||||
(error-exit "Expected ~a, got ~a" (mu:priority msg) mu:prio:high))))
|
||||
|
||||
Reference in New Issue
Block a user