mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-21 06:55:39 +00:00
Fix 'yank-media' to allow yanking SVG data
* lisp/net/mailcap.el (mailcap-mime-type-to-extension): Return "svg" for mime type 'image/svg+xml'. Org-mode uses this. * lisp/yank-media.el (yank-media--find-matching-media): If svg is supported, don't filter out 'image/svg+xml'. (Bug#74044)
This commit is contained in:
parent
9c5b6e88e7
commit
bf395fd8bc
@ -1084,10 +1084,17 @@ For instance, \"foo.png\" will result in \"image/png\"."
|
||||
(defun mailcap-mime-type-to-extension (mime-type)
|
||||
"Return a file name extension based on a MIME-TYPE.
|
||||
For instance, `image/png' will result in `png'."
|
||||
(intern (cadr (split-string (if (symbolp mime-type)
|
||||
(symbol-name mime-type)
|
||||
mime-type)
|
||||
"/"))))
|
||||
(intern
|
||||
(let ((e (cadr (split-string (if (symbolp mime-type)
|
||||
(symbol-name mime-type)
|
||||
mime-type)
|
||||
"/"))))
|
||||
;; Usually, the normal extension is the same as the MIME subtype.
|
||||
;; But for SVG files, the extension is "svg" and the MIME type is
|
||||
;; "svg+xml".
|
||||
(if (string= e "svg+xml")
|
||||
"svg"
|
||||
e))))
|
||||
|
||||
(defun mailcap-mime-types ()
|
||||
"Return a list of MIME media types."
|
||||
|
@ -67,7 +67,12 @@ all the different selection types."
|
||||
(lambda (type)
|
||||
(pcase-let ((`(,major ,minor) (split-string (symbol-name type) "/")))
|
||||
(if (and (equal major "image")
|
||||
(not (image-type-available-p (intern minor))))
|
||||
(not (image-type-available-p
|
||||
;; Usually, MIME subtype is the same as Emacs'
|
||||
;; identifier for an image type. But for SVG, the
|
||||
;; identifier is 'svg, while the MIME type is
|
||||
;; image/svg+xml. So we make the exception here.
|
||||
(intern (if (string= minor "svg+xml") "svg" minor)))))
|
||||
;; Just filter out all the image types that Emacs doesn't
|
||||
;; support, because the clipboard is full of things like
|
||||
;; `image/x-win-bitmap'.
|
||||
|
Loading…
Reference in New Issue
Block a user