unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* 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).