+(defun wl-summary-erase (&optional number)
+ "Erase message actually, without moving it to trash."
+ (interactive)
+ (if (elmo-folder-writable-p wl-summary-buffer-elmo-folder)
+ (let* ((buffer-num (wl-summary-message-number))
+ (msg-num (or number buffer-num)))
+ (if (null msg-num)
+ (message "No message.")
+ (let* ((msgdb (wl-summary-buffer-msgdb))
+ (entity (elmo-msgdb-overview-get-entity msg-num msgdb))
+ (subject (elmo-delete-char
+ ?\n (or (elmo-msgdb-overview-entity-get-subject
+ entity)
+ wl-summary-no-subject-message))))
+ (when (yes-or-no-p
+ (format "Erase \"%s\" without moving it to trash? "
+ (truncate-string subject 30)))
+ (wl-summary-unmark msg-num)
+ (elmo-folder-delete-messages wl-summary-buffer-elmo-folder
+ (list msg-num))
+ (wl-summary-delete-messages-on-buffer (list msg-num))
+ (save-excursion (wl-summary-sync nil "update"))))))
+ (message "Read-only folder.")))
+
+(defun wl-summary-target-mark-erase ()
+ (interactive)
+ (if (elmo-folder-writable-p wl-summary-buffer-elmo-folder)
+ (if (null wl-summary-buffer-target-mark-list)
+ (message "No marked message.")
+ (when (yes-or-no-p
+ "Erase all marked messages without moving them to trash? ")
+ (elmo-folder-delete-messages wl-summary-buffer-elmo-folder
+ wl-summary-buffer-target-mark-list)
+ (wl-summary-delete-messages-on-buffer
+ wl-summary-buffer-target-mark-list)
+ (setq wl-summary-buffer-target-mark-list nil)
+ (save-excursion (wl-summary-sync nil "update"))))
+ (message "Read-only folder.")))
+