GNU bug report logs - #24620
26.0.50; In dired: 'dired-do-compress-to' fails when filenames cotains space characters

Previous Next

Package: emacs;

Reported by: José L. Doménech <j_l_domenech <at> yahoo.com>

Date: Wed, 5 Oct 2016 07:07:02 UTC

Severity: minor

Tags: fixed, patch

Found in version 26.0.50

Fixed in version 26

Done: npostavs <at> users.sourceforge.net

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: José L. Doménech
 <domenechjosel <at> gmail.com>
To: npostavs <at> users.sourceforge.net
Cc: 24620 <at> debbugs.gnu.org, Michael Albinus <michael.albinus <at> gmx.de>, "José L. Doménech" <domenechjosel <at> gmail.com>
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
On Sat, 29 Oct 2016 04:06:55 +0200,
npostavs <at> 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.




This bug report was last modified 8 years and 285 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.