* Re: [Emacs-diffs] master 63f4f02: If requested, use external image converters for exotic formats
[not found] ` <20190928232619.9AF492068F@vcs0.savannah.gnu.org>
@ 2019-09-29 13:22 ` Stefan Monnier
2019-09-30 4:16 ` Lars Ingebrigtsen
0 siblings, 1 reply; 2+ messages in thread
From: Stefan Monnier @ 2019-09-29 13:22 UTC (permalink / raw)
To: emacs-devel; +Cc: Lars Ingebrigtsen
> +(defvar image-converter--converters
> + '((graphicsmagick :command "gm convert" :probe "-list format")
> + (imagemagick :command "convert" :probe "-list format")
> + (ffmpeg :command "ffmpeg" :probe "-decoders"))
> + "List of supported image converters to try.")
[...]
> + (let ((command (split-string (image-converter--value type :command) " "))
> + formats)
> + (when (zerop (apply #'call-process (car command) nil '(t nil) nil
Why not split the string directly in image-converter--converters?
Same for the ":probe" part?
I.e. use something like:
(defvar image-converter--converters
'((graphicsmagick :command "gm" :convertargs ("convert") :probe ("-list" "format"))
(imagemagick :command "convert" :probe ("-list" "format"))
(ffmpeg :command "ffmpeg" :probe "-decoders"))
so it works even if the command's name (or some of the args your need to
pass to the command) contains spaces?
This said, given that you use separate methods for the different backends:
(cl-defmethod image-converter--probe ((type (eql imagemagick)))
I don't understand why you need those args in
image-converter--converters instead of putting them directly into
their respective methods.
Stefan
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [Emacs-diffs] master 63f4f02: If requested, use external image converters for exotic formats
2019-09-29 13:22 ` [Emacs-diffs] master 63f4f02: If requested, use external image converters for exotic formats Stefan Monnier
@ 2019-09-30 4:16 ` Lars Ingebrigtsen
0 siblings, 0 replies; 2+ messages in thread
From: Lars Ingebrigtsen @ 2019-09-30 4:16 UTC (permalink / raw)
To: Stefan Monnier; +Cc: emacs-devel
Stefan Monnier <monnier@iro.umontreal.ca> writes:
> Why not split the string directly in image-converter--converters?
> Same for the ":probe" part?
>
> I.e. use something like:
>
> (defvar image-converter--converters
> '((graphicsmagick :command "gm" :convertargs ("convert") :probe ("-list" "format"))
> (imagemagick :command "convert" :probe ("-list" "format"))
> (ffmpeg :command "ffmpeg" :probe "-decoders"))
>
> so it works even if the command's name (or some of the args your need to
> pass to the command) contains spaces?
Yup; I'll do that.
> This said, given that you use separate methods for the different backends:
>
> (cl-defmethod image-converter--probe ((type (eql imagemagick)))
>
> I don't understand why you need those args in
> image-converter--converters instead of putting them directly into
> their respective methods.
Two reasons: I wanted to give the users some more customisability, and
reuse the same code in both the ImageMagick and GraphicsMagick
conversion functions.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-09-30 4:16 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20190928232618.29254.42705@vcs0.savannah.gnu.org>
[not found] ` <20190928232619.9AF492068F@vcs0.savannah.gnu.org>
2019-09-29 13:22 ` [Emacs-diffs] master 63f4f02: If requested, use external image converters for exotic formats Stefan Monnier
2019-09-30 4:16 ` Lars Ingebrigtsen
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).