]> git.eshelyaron.com Git - emacs.git/commitdiff
lisp/thumbs.el: Fix calling the "convert" command
authorBenjamin Riefenstahl <b.riefenstahl@turtle-trading.net>
Mon, 4 Jul 2022 10:57:34 +0000 (12:57 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Mon, 4 Jul 2022 10:57:34 +0000 (12:57 +0200)
* lisp/thumbs.el (thumbs-call-convert): Pass 'action-prefix' and
'action' as a combined parameter.  Do not pass 'arg' if it is nil.
(thumbs-modify-image): Do not pass "" as 'arg' to
'thumbs-call-convert' (bug#56375).

Some time in the past this was converted from using the shell to
passing the parameters directly, but the fallout was not handled
correctly.

lisp/thumbs.el

index 3bf08dd6a58d380bdd923d97dcf7172037bb911d..e622bcedc4edf53eeda6bcbc5037ca89e0fbf2de 100644 (file)
@@ -215,16 +215,17 @@ FILEIN is the input file,
 FILEOUT is the output file,
 ACTION is the command to send to convert.
 Optional arguments are:
-ARG any arguments to the ACTION command,
+ARG if non-nil, the argument of the ACTION command,
 OUTPUT-FORMAT is the file format to output (default is jpeg),
 ACTION-PREFIX is the symbol to place before the ACTION command
               (defaults to `-' but can sometimes be `+')."
-  (call-process thumbs-conversion-program nil nil nil
-               (or action-prefix "-")
-               action
-               (or arg "")
-               filein
-               (format "%s:%s" (or output-format "jpeg") fileout)))
+  (let ((action-param (concat (or action-prefix "-") action))
+       (fileout-param (format "%s:%s" (or output-format "jpeg") fileout)))
+    (if arg
+       (call-process thumbs-conversion-program nil nil nil
+                     action-param arg filein fileout-param)
+      (call-process thumbs-conversion-program nil nil nil
+                   action-param filein fileout-param))))
 
 (defun thumbs-new-image-size (s increment)
   "New image (a cons of width x height)."
@@ -610,7 +611,7 @@ ACTION and ARG should be a valid convert command."
     (thumbs-call-convert (or old thumbs-current-image-filename)
                         tmp
                         action
-                        (or arg ""))
+                        arg)
     (save-excursion
       (thumbs-insert-image tmp 'jpeg 0))
     (setq thumbs-current-tmp-filename tmp)))