bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#24620: 26.0.50; In dired: 'dired-do-compress-to' fails when filename


From: José L . Doménech
Subject: bug#24620: 26.0.50; In dired: 'dired-do-compress-to' fails when filenames cotains space characters
Date: Sat, 29 Oct 2016 11:17:17 +0200
User-agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM/1.14.9 (Gojō) APEL/10.8 EasyPG/1.0.0 Emacs/26.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO)

On Sat, 29 Oct 2016 04:06:55 +0200,
npostavs@users.sourceforge.net wrote:
> 
> tags 24620 patch
> quit
> 
> 
> Looks good.  Would you like to try writing a commit message too? (see
> "Commit messages" in CONTRIBUTE).
>
Something like this?

Fix Bug#24620

* lisp/dired-aux.el (dired-do-compress-to): Change the string used as
  shell command for compression by quoting the filenames used for input
  and output

> Just a minor style suggestion: In cases like these, I like to use the
> backquote syntax instead of explicit (list (cons ...))  because it saves
> a bit of indentation.
>
I changed it:

modified   lisp/dired-aux.el
@@ -1012,11 +1012,13 @@ dired-do-compress-to
           (t
            (when (zerop
                   (dired-shell-command
-                   (replace-regexp-in-string
-                    "%o" out-file
-                    (replace-regexp-in-string
-                     "%i" (mapconcat #'file-name-nondirectory in-files " ")
-                     (cdr rule)))))
+                   (format-spec (cdr rule)
+                                `((?\o . ,(shell-quote-argument out-file))
+                                  (?\i . ,(mapconcat
+                                           (lambda (file-desc)
+                                             (shell-quote-argument 
(file-name-nondirectory
+                                                                    
file-desc)))
+                                           in-files " "))))))
              (message "Compressed %d file(s) to %s"
                       (length in-files)
                       (file-name-nondirectory out-file)))))))


> Have you signed copyrigh assignment for Emacs?  This patch is small
> enough to merge anyway, but if you'll be writing more patches in the
> future, consider filling out the form at
> git.savannah.gnu.org/cgit/gnulib.git/tree/doc/Copyright/request-assign.program
> to get the process started.

Yes. I just started the process by sending a e-mail with the required data.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]