From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#18745: 24.3; MS Windows, `call-process-shell-command' fails on `shell-quote-argument'ed bat file with quoted args Date: Thu, 16 Oct 2014 20:06:29 +0300 Message-ID: <83oatc2bca.fsf@gnu.org> References: <83ppds4ig5.fsf@gnu.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1413479248 12570 80.91.229.3 (16 Oct 2014 17:07:28 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 16 Oct 2014 17:07:28 +0000 (UTC) Cc: 18745@debbugs.gnu.org To: Noam Postavsky Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Oct 16 19:07:21 2014 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1XeoWE-00014y-K8 for geb-bug-gnu-emacs@m.gmane.org; Thu, 16 Oct 2014 19:07:19 +0200 Original-Received: from localhost ([::1]:51342 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XeoWD-0007wd-Su for geb-bug-gnu-emacs@m.gmane.org; Thu, 16 Oct 2014 13:07:17 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:44399) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XeoW5-0007wI-3o for bug-gnu-emacs@gnu.org; Thu, 16 Oct 2014 13:07:14 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XeoVz-0001wD-70 for bug-gnu-emacs@gnu.org; Thu, 16 Oct 2014 13:07:09 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:54596) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XeoVz-0001w8-2v for bug-gnu-emacs@gnu.org; Thu, 16 Oct 2014 13:07:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1XeoVy-0005EP-57 for bug-gnu-emacs@gnu.org; Thu, 16 Oct 2014 13:07:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 16 Oct 2014 17:07:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 18745 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 18745-submit@debbugs.gnu.org id=B18745.141347919320065 (code B ref 18745); Thu, 16 Oct 2014 17:07:02 +0000 Original-Received: (at 18745) by debbugs.gnu.org; 16 Oct 2014 17:06:33 +0000 Original-Received: from localhost ([127.0.0.1]:46160 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XeoVU-0005DY-B4 for submit@debbugs.gnu.org; Thu, 16 Oct 2014 13:06:32 -0400 Original-Received: from mtaout26.012.net.il ([80.179.55.182]:43509) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XeoVR-0005DO-4A for 18745@debbugs.gnu.org; Thu, 16 Oct 2014 13:06:30 -0400 Original-Received: from conversion-daemon.mtaout26.012.net.il by mtaout26.012.net.il (HyperSendmail v2007.08) id <0NDJ00900RCYOZ00@mtaout26.012.net.il> for 18745@debbugs.gnu.org; Thu, 16 Oct 2014 20:04:44 +0300 (IDT) Original-Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout26.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NDJ005N5RFWXW30@mtaout26.012.net.il>; Thu, 16 Oct 2014 20:04:44 +0300 (IDT) In-reply-to: X-012-Sender: halo1@inter.net.il X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:94638 > Date: Thu, 16 Oct 2014 12:28:58 -0400 > From: Noam Postavsky > Cc: 18745@debbugs.gnu.org > > On Thu, Oct 16, 2014 at 2:50 AM, Eli Zaretskii wrote: > > This is a Windows misfeature, not an Emacs bug: the CreateProcess > > primitive fails like that when passed a command that is a batch file. > > So there is no way for Emacs to paper over the Windows ugliness? I don't know. In fact, I don't even know the exact nature of the "ugliness", as these intimate details of the CreateProcess API are not documented anywhere, AFAIK, at least not officially. I just know about this because I bumped into it in the past. This is exacerbated in Emacs by the fact that the shell command is processed twice: once by Emacs, and then again by cmdproxy. GNU Make overcomes this by detecting these cases, and invoking CreateProcess in a special way (NULL as the first argument), see the function process_begin there, around line 710 of sub_proc.c in the GNU Make sources. If you can come up with a way to do the same in Emacs, by some suitable patch to cmdproxy.c, such a patch will be welcome (assuming either the patch is small, or you will agree to sign legal papers necessary for submitting substantial patches to FSF projects). Failing that, I can suggest a workaround: use the short 8+3 alias of the file name with whitespace. You can obtain the short alias of any existing file's name by calling w32-short-filename. Then you won't need to quote the batch file name.