Fix outgoing mime type regression (Bug#62815)

* lisp/net/mailcap.el (mailcap-mime-extensions,
mailcap-parse-mimetype-file, mailcap-mime-types): Don't regexp-quote
mimetypes in a context where they should be strings.
(mailcap--regexp-quote-type): Remove.

(cherry picked from commit 605414d018)
This commit is contained in:
Andrew G Cohen 2023-04-30 09:55:42 +08:00
parent e920dd2b6f
commit 7d6855c9ab

View file

@ -979,7 +979,7 @@ If NO-DECODE is non-nil, don't decode STRING."
(".vox" . "audio/basic") (".vox" . "audio/basic")
(".vrml" . "x-world/x-vrml") (".vrml" . "x-world/x-vrml")
(".wav" . "audio/x-wav") (".wav" . "audio/x-wav")
(".xls" . "application/vnd\\.ms-excel") (".xls" . "application/vnd.ms-excel")
(".wrl" . "x-world/x-vrml") (".wrl" . "x-world/x-vrml")
(".xbm" . "image/xbm") (".xbm" . "image/xbm")
(".xpm" . "image/xpm") (".xpm" . "image/xpm")
@ -1051,8 +1051,7 @@ If FORCE, re-parse even if already parsed."
(setq save-pos (point)) (setq save-pos (point))
(skip-chars-forward "^ \t\n") (skip-chars-forward "^ \t\n")
(downcase-region save-pos (point)) (downcase-region save-pos (point))
(setq type (mailcap--regexp-quote-type (setq type (buffer-substring save-pos (point)))
(buffer-substring save-pos (point))))
(while (not (eolp)) (while (not (eolp))
(skip-chars-forward " \t") (skip-chars-forward " \t")
(setq save-pos (point)) (setq save-pos (point))
@ -1065,12 +1064,6 @@ If FORCE, re-parse even if already parsed."
(setq mailcap-mime-extensions (append extns mailcap-mime-extensions) (setq mailcap-mime-extensions (append extns mailcap-mime-extensions)
extns nil))))) extns nil)))))
(defun mailcap--regexp-quote-type (type)
(if (not (string-search "/" type))
type
(pcase-let ((`(,major ,minor) (split-string type "/")))
(concat major "/" (regexp-quote minor)))))
(defun mailcap-extension-to-mime (extn) (defun mailcap-extension-to-mime (extn)
"Return the MIME content type of the file extensions EXTN." "Return the MIME content type of the file extensions EXTN."
(mailcap-parse-mimetypes) (mailcap-parse-mimetypes)
@ -1107,7 +1100,7 @@ For instance, `image/png' will result in `png'."
(dolist (info (cdr data)) (dolist (info (cdr data))
(setq type (cdr (assq 'type (cdr info)))) (setq type (cdr (assq 'type (cdr info))))
(unless (string-search "*" type) (unless (string-search "*" type)
(push type res)))) (push (string-replace "\\" "" type) res))))
(nreverse res))))) (nreverse res)))))
;;; ;;;