mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-23 07:19:15 +00:00
Make n'/
p' in image-mode also find externally converted images
* lisp/image-file.el (image-file-name-regexp): Use it to make `n'/`p' in image mode work (bug#39994). * lisp/image/image-converter.el (image-converter-file-name-extensions): New variable to keep track of all suffixes. (image-convert-p): Update. (image-converter--find-converter): Set.
This commit is contained in:
parent
79527cd56e
commit
e1f09607e0
@ -32,6 +32,7 @@
|
||||
;;; Code:
|
||||
|
||||
(require 'image)
|
||||
(require 'image-converter)
|
||||
|
||||
|
||||
;;;###autoload
|
||||
@ -80,10 +81,13 @@ the variable is set using \\[customize]."
|
||||
(let ((exts-regexp
|
||||
(and image-file-name-extensions
|
||||
(concat "\\."
|
||||
(regexp-opt (nconc (mapcar #'upcase
|
||||
image-file-name-extensions)
|
||||
image-file-name-extensions)
|
||||
t)
|
||||
(regexp-opt
|
||||
(append (mapcar #'upcase image-file-name-extensions)
|
||||
image-file-name-extensions
|
||||
(mapcar #'upcase
|
||||
image-converter-file-name-extensions)
|
||||
image-converter-file-name-extensions)
|
||||
t)
|
||||
"\\'"))))
|
||||
(mapconcat
|
||||
'identity
|
||||
|
@ -42,6 +42,9 @@ installed on the system."
|
||||
(defvar image-converter-regexp nil
|
||||
"A regexp that matches the file name suffixes that can be converted.")
|
||||
|
||||
(defvar image-converter-file-name-extensions nil
|
||||
"A list of file name suffixes that can be converted.")
|
||||
|
||||
(defvar image-converter--converters
|
||||
'((graphicsmagick :command ("gm" "convert") :probe ("-list" "format"))
|
||||
(ffmpeg :command "ffmpeg" :probe "-decoders")
|
||||
@ -58,9 +61,11 @@ is a string, it should be a MIME format string like
|
||||
(unless image-converter
|
||||
(image-converter--find-converter))
|
||||
;; When image-converter was customized
|
||||
(if (and image-converter (not image-converter-regexp))
|
||||
(when-let ((formats (image-converter--probe image-converter)))
|
||||
(setq image-converter-regexp (concat "\\." (regexp-opt formats) "\\'"))))
|
||||
(when (and image-converter (not image-converter-regexp))
|
||||
(when-let ((formats (image-converter--probe image-converter)))
|
||||
(setq image-converter-regexp
|
||||
(concat "\\." (regexp-opt formats) "\\'"))
|
||||
(setq image-converter-file-name-extensions formats)))
|
||||
(and image-converter
|
||||
(or (and (not data-p)
|
||||
(string-match image-converter-regexp source))
|
||||
@ -183,7 +188,8 @@ data is returned as a string."
|
||||
(dolist (elem image-converter--converters)
|
||||
(when-let ((formats (image-converter--probe (car elem))))
|
||||
(setq image-converter (car elem)
|
||||
image-converter-regexp (concat "\\." (regexp-opt formats) "\\'"))
|
||||
image-converter-regexp (concat "\\." (regexp-opt formats) "\\'")
|
||||
image-converter-file-name-extensions formats)
|
||||
(throw 'done image-converter)))))
|
||||
|
||||
(cl-defmethod image-converter--convert ((type (eql graphicsmagick)) source
|
||||
|
Loading…
Reference in New Issue
Block a user