diff --git a/guile/examples/org2mu4e b/guile/examples/org2mu4e index 3556b9a2..e7f10ad3 100755 --- a/guile/examples/org2mu4e +++ b/guile/examples/org2mu4e @@ -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 "" (string-map diff --git a/guile/mu-guile.texi b/guile/mu-guile.texi index 9eae2fee..a5c24b9e 100644 --- a/guile/mu-guile.texi +++ b/guile/mu-guile.texi @@ -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 diff --git a/guile/mu.scm b/guile/mu.scm index 08eae1fa..31eca41a 100644 --- a/guile/mu.scm +++ b/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 )) + "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 )) + "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 ) (hdr )) "Get an arbitrary header HDR from message MSG; return #f if it does not exist." diff --git a/guile/tests/test-mu-guile.scm b/guile/tests/test-mu-guile.scm index 975d3d71..ed00f1e3 100755 --- a/guile/tests/test-mu-guile.scm +++ b/guile/tests/test-mu-guile.scm @@ -84,6 +84,22 @@ exec guile -e main -s $0 $@ (str-equal-or-exit (mu:to msg) "Democritus ") (str-equal-or-exit (mu:from msg) "Richard P. Feynman ") ;;(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))))