From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Noam Postavsky 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: Tue, 21 Oct 2014 21:12:27 -0400 Message-ID: References: <83ppds4ig5.fsf@gnu.org> <83oatc2bca.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=20cf307f37ce2dd2e80505f8a489 X-Trace: ger.gmane.org 1413940406 26612 80.91.229.3 (22 Oct 2014 01:13:26 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 22 Oct 2014 01:13:26 +0000 (UTC) Cc: 18745@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Oct 22 03:13:19 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 1XgkUG-0008D6-3O for geb-bug-gnu-emacs@m.gmane.org; Wed, 22 Oct 2014 03:13:16 +0200 Original-Received: from localhost ([::1]:54364 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XgkUF-0000Hv-Cd for geb-bug-gnu-emacs@m.gmane.org; Tue, 21 Oct 2014 21:13:15 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:47024) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XgkU7-0000Fw-PZ for bug-gnu-emacs@gnu.org; Tue, 21 Oct 2014 21:13:12 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XgkU2-0005Ik-Vu for bug-gnu-emacs@gnu.org; Tue, 21 Oct 2014 21:13:07 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:38627) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XgkU2-0005If-Se for bug-gnu-emacs@gnu.org; Tue, 21 Oct 2014 21:13:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1XgkU2-0004TZ-FO for bug-gnu-emacs@gnu.org; Tue, 21 Oct 2014 21:13:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Noam Postavsky Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 22 Oct 2014 01:13: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.141394035617150 (code B ref 18745); Wed, 22 Oct 2014 01:13:02 +0000 Original-Received: (at 18745) by debbugs.gnu.org; 22 Oct 2014 01:12:36 +0000 Original-Received: from localhost ([127.0.0.1]:58955 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XgkTb-0004SX-TJ for submit@debbugs.gnu.org; Tue, 21 Oct 2014 21:12:36 -0400 Original-Received: from mail-vc0-f172.google.com ([209.85.220.172]:49133) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XgkTZ-0004SD-EA for 18745@debbugs.gnu.org; Tue, 21 Oct 2014 21:12:34 -0400 Original-Received: by mail-vc0-f172.google.com with SMTP id lf12so1314761vcb.17 for <18745@debbugs.gnu.org>; Tue, 21 Oct 2014 18:12:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=D5tUoBBW+XIQggz43Zb+u5feDCEy4tqpP/r39jAZvcc=; b=qTLyKvf/gFji8t4U/AFMWLTC09e4qSuLnc4/he7stbkh36iBISDwsS3c88ol4bR94o lzS4Rg6gpG7e7AODZ4QakvLBUmtq4f64Bl6fdH1lfY/UrFcJyvAyYf4KzkH26Xw6/L9I bL6lhVrMC0WSr0RN9EYmwMQeRBblF6qMfblutDeDdpeHviX8kYrPkxhPOhpUb1ep6cM6 iSI6BJu2JnzxMcp2zlT54+DP2rWaaHZdWZ66yuWRaAviZH1mc6XlkQeC3VK/XZ4+OhGT fqX4NuNLn99vN4WTtmw6TMNWj29QYrsnKjCr9b7J6V+a1ECLRcMO4cX8LMsDxntl5x7e oMQg== X-Received: by 10.52.98.39 with SMTP id ef7mr27649423vdb.4.1413940347969; Tue, 21 Oct 2014 18:12:27 -0700 (PDT) Original-Received: by 10.31.153.141 with HTTP; Tue, 21 Oct 2014 18:12:27 -0700 (PDT) In-Reply-To: X-Google-Sender-Auth: 5wz89GD0Dd2R06RoO2Avd7DYXgU 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:94886 --20cf307f37ce2dd2e80505f8a489 Content-Type: text/plain; charset=UTF-8 On Thu, Oct 16, 2014 at 5:30 PM, Noam Postavsky wrote: > On Thu, Oct 16, 2014 at 1:06 PM, Eli Zaretskii wrote: >> 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). > > I'll take a look (btw I have already signed for Emacs). Patching cmdproxy.c fixes the call-process-shell-command case: (call-process-shell-command "\"c:/path with space/foo-bar.bat\" \"x &y\"" nil '(t t) t) To fix the call-process case: (call-process "c:/path with space/foo-bar.bat" nil '(t t) t "x &y") required a patch to w32proc.c. This is my first patch to Emacs proper; hopefully I got everything in the right format. --20cf307f37ce2dd2e80505f8a489 Content-Type: application/octet-stream; name="bat-quote.ChangeLog" Content-Disposition: attachment; filename="bat-quote.ChangeLog" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i1jyy5d60 MjAxNC0xMC0yMSAgTm9hbSBQb3N0YXZza3kgIDxucG9zdGF2c0B1c2Vycy5zb3VyY2Vmb3JnZXQu bmV0PgoKCVBhcGVyIG92ZXIgTVMgV2luZG93cyBDcmVhdGVQcm9jZXNzIGRlZmljaWVuY2llcyAo QnVnIzE4NzQ1KS4KCgkqIG50L2NtZHByb3h5LmMgKGJhdGNoX2ZpbGVfcCk6IG5ldyBmdW5jdGlv bi4KCShzcGF3bik6IGlmIGNhbGxpbmcgYSBxdW90ZWQgYmF0Y2ggZmlsZSBwYXNzIE5VTEwgZm9y IHByb2duYW1lLgoJKiBzcmMvdzMycHJvYy5jIChjcmVhdGVfY2hpbGQpOiBpZiBjYWxsaW5nIGEg cXVvdGVkIGJhdGNoIGZpbGUKCXBhc3MgTlVMTCBmb3IgZXhlLgo= --20cf307f37ce2dd2e80505f8a489 Content-Type: application/octet-stream; name="bat-quote.patch" Content-Disposition: attachment; filename="bat-quote.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i1jyy5dp1 LS0tIG9yZy9udC9jbWRwcm94eS5jCVR1ZSBPY3QgMjEgMjA6Mzk6MzkgMjAxNAorKysgbmV3L250 L2NtZHByb3h5LmMJVHVlIE9jdCAyMSAyMDoyNzowOCAyMDE0CkBAIC0yMjAsNiArMjIwLDI4IEBA CiAgIHJldHVybiBvIC0gYnVmOwogfQogCisvKiBSZXR1cm4gVFJVRSBpZiBQUk9HTkFNRSBpcyBh IGJhdGNoIGZpbGUgKi8KK0JPT0wKK2JhdGNoX2ZpbGVfcCAoY29uc3QgY2hhciAqcHJvZ25hbWUp Cit7CisgIGNvbnN0IGNoYXIgKmV4dHNbXSA9IHsiLmJhdCIsICIuY21kIn07CisgIGludCBuX2V4 dHMgPSBzaXplb2YgKGV4dHMpIC8gc2l6ZW9mIChjaGFyICopOworICBpbnQgaTsKKworICBjb25z dCBjaGFyICpleHQgPSBzdHJyY2hyKHByb2duYW1lLCAnLicpOworCisgIGlmIChleHQpCisgICAg eworICAgICAgZm9yIChpID0gMDsgaSA8IG5fZXh0czsgaSsrKQorICAgICAgICB7CisgICAgICAg ICAgaWYgKHN0cmljbXAoZXh0LCBleHRzW2ldKSA9PSAwKQorICAgICAgICAgICAgcmV0dXJuIFRS VUU7CisgICAgICAgIH0KKyAgICB9CisKKyAgcmV0dXJuIEZBTFNFOworfQorCiAvKiBTZWFyY2gg Zm9yIEVYRUMgZmlsZSBpbiBESVIuICBJZiBFWEVDIGRvZXMgbm90IGhhdmUgYW4gZXh0ZW5zaW9u LAogICAgRElSIGlzIHNlYXJjaGVkIGZvciBFWEVDIHdpdGggdGhlIHN0YW5kYXJkIGV4dGVuc2lv bnMgYXBwZW5kZWQuICAqLwogaW50CkBAIC00NjksNiArNDkxLDEzIEBACiAKICAgbWVtc2V0ICgm c3RhcnQsIDAsIHNpemVvZiAoc3RhcnQpKTsKICAgc3RhcnQuY2IgPSBzaXplb2YgKHN0YXJ0KTsK KworICAvKiBDcmVhdGVQcm9jZXNzIGhhbmRsZXMgYmF0Y2ggZmlsZXMgYXMgcHJvZ25hbWUgc3Bl Y2lhbGx5LiBUaGlzCisgICAgIHNwZWNpYWwgaGFuZGxpbmcgZmFpbHMgd2hlbiBib3RoIHRoZSBi YXRjaCBmaWxlIGFuZCBhcmd1bWVudHMgYXJlCisgICAgIHF1b3RlZC4gV2UgcGFzcyBOVUxMIGFz IHByb2duYW1lIHRvIGF2b2lkIHRoZSBzcGVjaWFsCisgICAgIGhhbmRsaW5nLiAqLworICBpZiAo cHJvZ25hbWUgIT0gTlVMTCAmJiBjbWRsaW5lWzBdID09ICciJyAmJiBiYXRjaF9maWxlX3AocHJv Z25hbWUpKQorICAgICAgcHJvZ25hbWUgPSBOVUxMOwogCiAgIGlmIChDcmVhdGVQcm9jZXNzIChw cm9nbmFtZSwgY21kbGluZSwgJnNlY19hdHRycywgTlVMTCwgVFJVRSwKIAkJICAgICAwLCBlbnZi bG9jaywgZGlyLCAmc3RhcnQsICZjaGlsZCkpCi0tLSBvcmcvc3JjL3czMnByb2MuYwlUdWUgT2N0 IDIxIDIwOjM5OjQzIDIwMTQKKysrIG5ldy9zcmMvdzMycHJvYy5jCVR1ZSBPY3QgMjEgMjA6Mjc6 MDggMjAxNApAQCAtMTA3OCw2ICsxMDc4LDcgQEAKICAgRFdPUkQgZmxhZ3M7CiAgIGNoYXIgZGly WyBNQVhfUEFUSCBdOwogICBjaGFyICpwOworICBjb25zdCBjaGFyICpleHQ7CiAKICAgaWYgKGNw ID09IE5VTEwpIGVtYWNzX2Fib3J0ICgpOwogCkBAIC0xMTE1LDYgKzExMTYsMTUgQEAKICAgZm9y IChwID0gZGlyOyAqcDsgcCA9IENoYXJOZXh0QSAocCkpCiAgICAgaWYgKCpwID09ICcvJykKICAg ICAgICpwID0gJ1xcJzsKKworICAvKiBDcmVhdGVQcm9jZXNzIGhhbmRsZXMgYmF0Y2ggZmlsZXMg YXMgZXhlIHNwZWNpYWxseS4gVGhpcyBzcGVjaWFsCisgICAgIGhhbmRsaW5nIGZhaWxzIHdoZW4g Ym90aCB0aGUgYmF0Y2ggZmlsZSBhbmQgYXJndW1lbnRzIGFyZQorICAgICBxdW90ZWQuIFdlIHBh c3MgTlVMTCBhcyBleGUgdG8gYXZvaWQgdGhlIHNwZWNpYWwgaGFuZGxpbmcuICovCisgIGlmIChl eGUgJiYgY21kbGluZVswXSA9PSAnIicgJiYKKyAgICAgIChleHQgPSBzdHJyY2hyKGV4ZSwgJy4n KSkgJiYKKyAgICAgICh4c3RyY2FzZWNtcCAoZXh0LCAiLmJhdCIpID09IDAKKyAgICAgICB8fCB4 c3RyY2FzZWNtcCAoZXh0LCAiLmNtZCIpID09IDApKQorICAgICAgZXhlID0gTlVMTDsKIAogICBm bGFncyA9ICghTklMUCAoVnczMl9zdGFydF9wcm9jZXNzX3NoYXJlX2NvbnNvbGUpCiAJICAgPyBD UkVBVEVfTkVXX1BST0NFU1NfR1JPVVAK --20cf307f37ce2dd2e80505f8a489--