Function: gnus-mime-delete-part

gnus-mime-delete-part is an interactive and byte-compiled function defined in gnus-art.el.gz.

Signature

(gnus-mime-delete-part &optional EVENT)

Documentation

Delete the MIME part under point.

Replace it with some information about the removed part.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/gnus-art.el.gz
;; A function like `gnus-summary-save-parts' (`X m', `<MIME> <Extract all
;; parts...>') but with stripping would be nice.

(defun gnus-mime-delete-part (&optional event)
  "Delete the MIME part under point.
Replace it with some information about the removed part."
  (interactive (list last-nonmenu-event) gnus-article-mode)
  (mouse-set-point event)
  (gnus-article-check-buffer)
  (when (gnus-group-read-only-p)
    (error "The current group does not support deleting of parts"))
  (when (mm-complicated-handles gnus-article-mime-handles)
    (error "\
The current article has a complicated MIME structure, giving up..."))
  (when (or gnus-expert-user
	    (gnus-yes-or-no-p "\
Deleting parts may malfunction or destroy the article; continue? "))
    (let* ((data (get-text-property (point) 'gnus-data))
	   (id (get-text-property (point) 'gnus-part))
	   (handles gnus-article-mime-handles)
	   (description
	    (let ((desc (mm-handle-description data)))
	      (when desc
		(mail-decode-encoded-word-string desc))))
	   (filename (or (mm-handle-filename data) "(none)"))
	   (type (mm-handle-media-type data)))
      (unless data
	(error "No MIME part under point"))
      (with-current-buffer (mm-handle-buffer data)
	(let ((bsize (buffer-size)))
	  (erase-buffer)
	  (insert
	   (concat
	    ",----\n"
	    "| The following attachment has been deleted:\n"
	    "|\n"
	    "| Type:           " type "\n"
	    "| Filename:       " filename "\n"
	    "| Size (encoded): " (format "%s byte%s\n"
					 bsize (if (= bsize 1)
						   ""
						 "s"))
	    (when description
	      (concat    "| Description:    " description "\n"))
	    "`----\n"))
	  (setcdr data
		  (cdr (mm-make-handle
			nil '("text/plain" (charset . gnus-decoded)) nil nil
			(list "attachment")
			(format "Deleted attachment (%s bytes)" bsize))))))
      ;; (set-buffer gnus-summary-buffer)
      (gnus-article-edit-part handles id))))