Subject: bug#8541: start-process fails when both the program path and an argument contain spaces

From: Ivar Rummelhoff <[email-masked]>
Date: Sun, 24 Apr 2011 12:01:17 +0200

1. Trying to execute

    (start-process "name" "buffer" "D:\\tmp\\xxx yyy\\foo.bat" "yada yada")

writes the following to "buffer":

    'd:\tmp\xxx' is not recognized as an internal or external command,
    operable program or batch file.

    Process name exited abnormally with code 1

Emacs version: GNU Emacs 23.3.1 (i386-mingw-nt6.1.7601) of 2011-03-10 on 3249CTO

2. If space is avoided in either the program path or the argument, as in

    (start-process "name" "buffer" "D:\\tmp\\foo.bat" "yada yada")
or
    (start-process "name" "buffer" "D:\\tmp\\xxx yyy\\foo.bat" "yada-yada")

then everything works well.

3. The same problem occurs when I give `start-process' the program
name only (instead of the full path) as long as the full path to the
program contains spaces (and one of the arguments contains spaces).

4. Quoting the program path or the argument (with " or \) does not
help. If quote the program path, I get "no such file or directory";
and quoting the argument has no effect as long as there is still a
space character "in there". (Besides, it seems any quoting of the
arguments is passed on to the program.)

5. There seems to be no work-around for this in emacs lisp.

Best Regards,

Ivar Rummelhoff