- in-reply-to wants-reply replied
- deferred-reply))
-
-;; Note: the body of messages is currently an alist, but it's created
-;; from a keyword based property list (see the following two functions).
-;; But, that's an extra conversion step, and maybe totally unnecessary:
-;; we already have message-ref, and this could just pull a keyword
-;; from a property list.
-;; The main ways this might be useful are error checking,
-;; serialization across the wire (but even that might require some
-;; change), and using existing tooling (though adding new tooling
-;; would be negligible in implementation effort.)
-
-;; This cons cell is immutable and unique (for eq? tests)
-(define %nothing-provided (cons 'nothing 'provided))
-
-(define* (message-ref message key #:optional (dflt %nothing-provided))
- "Extract KEY from body of MESSAGE.
-
-Optionally set default with [DFLT]
-If key not found and DFLT not provided, throw an error."
- (let ((result (assoc key (message-body message))))
- (if result (cdr result)
- (if (eq? dflt %nothing-provided)
- (throw 'message-missing-key
- "Message body does not contain key and no default provided"
- #:key key
- #:message message)
- dflt))))
-
-
-(define (message-needs-reply message)
+ in-reply-to wants-reply replied))
+
+(define (message-auto-reply? message)
+ (eq? (message-action message) '*auto-reply*))
+
+(define (message-needs-reply? message)