At Tue, 05 Jul 2011 15:32:19 -0400, Dave Abrahams wrote: > > As you can probably guess, I'm +1 for anything that fixes this annoyance. > Okay, attached patch should do the trick. It's not optimal because it depends on the special callback function `mime-preview-play-current-entity' bound to the text property `mime-button-callback' to distinguish between a real MIME button and a browsable URL. I think SEMI should use a dedicated text-property to indicate that something is a mime button and not a url. Best, -- David -- OpenPGP... 0x99ADB83B5A4478E6 Jabber.... dmjena@jabber.org Email..... dmaus@ictsoc.de
diff --git a/wl/wl-draft.el b/wl/wl-draft.el
index 2e3faae..bfcb45e 100644
--- a/wl/wl-draft.el
+++ b/wl/wl-draft.el
@@ -521,8 +521,23 @@ or `wl-draft-reply-with-argument-list' if WITH-ARG argument is non-nil."
(when decode-it
(decode-mime-charset-region (point-min) (point-max)
wl-mime-charset))
- (buffer-substring-no-properties
+ (buffer-substring
(point-min) (point-max)))))
+ (save-excursion
+ (let ((current-prop (eq (get-text-property (point-min) 'mime-button-callback) 'mime-preview-play-current-entity)))
+ (goto-char (point-min))
+ (while (not (eobp))
+ (let ((next-prop-pos (or (next-single-property-change (point) 'mime-button-callback) (point-max))))
+ (cond
+ ((and current-prop (not (get-text-property next-prop-pos 'mime-button-callback)))
+ (kill-region (point) next-prop-pos)
+ (setq current-prop nil))
+ ((and (eq (get-text-property next-prop-pos 'mime-button-callback) 'mime-preview-play-current-entity) (not current-prop))
+ (goto-char next-prop-pos)
+ (setq current-prop t))
+ (t
+ (goto-char next-prop-pos)))))))
+ (set-text-properties (point-min) (point-max) nil)
(when ignored-fields
(goto-char (point-min))
(wl-draft-delete-fields ignored-fields))
Attachment:
pgpHWXjrnUMH7.pgp
Description: PGP signature