From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Noam Postavsky Newsgroups: gmane.emacs.bugs Subject: bug#19350: #19350 24.4; Incorrect quoting of %-signs for Windows command shell Date: Mon, 3 Oct 2016 14:47:37 -0400 Message-ID: References: <87k2fmyg16.fsf@users.sourceforge.net> <87shu6vi54.fsf@users.sourceforge.net> <83twemf550.fsf@gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a1141879cbe690b053dfa609e X-Trace: blaine.gmane.org 1475520569 17859 195.159.176.226 (3 Oct 2016 18:49:29 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 3 Oct 2016 18:49:29 +0000 (UTC) Cc: 19350@debbugs.gnu.org, Demi Obenour To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Oct 03 20:49:23 2016 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1br8Ic-0002zB-Kg for geb-bug-gnu-emacs@m.gmane.org; Mon, 03 Oct 2016 20:49:14 +0200 Original-Received: from localhost ([::1]:38688 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1br8Ib-0005EW-Aj for geb-bug-gnu-emacs@m.gmane.org; Mon, 03 Oct 2016 14:49:13 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:40896) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1br8HX-0004la-Og for bug-gnu-emacs@gnu.org; Mon, 03 Oct 2016 14:48:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1br8HS-0001a3-1J for bug-gnu-emacs@gnu.org; Mon, 03 Oct 2016 14:48:06 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:37125) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1br8HR-0001Zw-Ss for bug-gnu-emacs@gnu.org; Mon, 03 Oct 2016 14:48:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1br8HR-0003EC-NZ for bug-gnu-emacs@gnu.org; Mon, 03 Oct 2016 14:48:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Noam Postavsky Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 03 Oct 2016 18:48:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 19350 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: wontfix confirmed Original-Received: via spool by 19350-submit@debbugs.gnu.org id=B19350.147552046412368 (code B ref 19350); Mon, 03 Oct 2016 18:48:01 +0000 Original-Received: (at 19350) by debbugs.gnu.org; 3 Oct 2016 18:47:44 +0000 Original-Received: from localhost ([127.0.0.1]:43315 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1br8HA-0003DQ-7W for submit@debbugs.gnu.org; Mon, 03 Oct 2016 14:47:44 -0400 Original-Received: from mail-oi0-f47.google.com ([209.85.218.47]:35801) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1br8H9-0003D4-81 for 19350@debbugs.gnu.org; Mon, 03 Oct 2016 14:47:43 -0400 Original-Received: by mail-oi0-f47.google.com with SMTP id d132so8560522oib.2 for <19350@debbugs.gnu.org>; Mon, 03 Oct 2016 11:47:43 -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:from:date:message-id :subject:to:cc; bh=Sxp7/+YgEvbAdRGj0U1Lx2mYV2tEYR+M1UVUXjoN+zY=; b=oaB3x/UlAydsRpXRTOfX+5dh+ojP9P+vd+Mnc8PakVgM4rsYHlkrUQgpQwmMUkE4+W HFRYwaL8KwCQ4WgNPQXBHcvzhyL3GP+htVqR2zwkNEn8hF5ab1CdyuniTkzkM7yiHPpp 9gu5lboOrnQbS9HCbFPph0p3+3upFw0eHJAyFXuboYceAmI4e3lPllWHLhLUZGIuL3KR Ux2p5xycubmipH0I96VPB4Il3/f2vacwYyhiqv/Rnsff7+00Jy/DR9c3183NrnelqDsK nwQh1MpaCjN1WcH+LPcBllrJYX/RVfJTXMwsRYzSV7EESzTKJvgioXVDtTdwiIO/hl25 8hjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=Sxp7/+YgEvbAdRGj0U1Lx2mYV2tEYR+M1UVUXjoN+zY=; b=dVsSCzZ2vzSpDhSlOrefGlSMh3635+Yq595l/hXuvl7MqvgPGcDIVGzLYwof+/vbkJ DivIEMrbxb5/A5Ssx4XOxGFhpicry+004gG562XQkWkTz5cawkjzfMW/8isoGjb95rfM NwO0tPKunvU8Ow1sMCtAdhU+tQ9p0KLIm7qgpISREyW/AefoLJXEd7zbOs1zLMPzYTp8 tzYAp28JqFfVUlYjSRbg5AonxisfIVqzY5otZL6TWjf7UjopTqgaWBw4UbV44Io4YxDo dtr1f1AQhDeazSNzG6pV2hYL0VopgJMbg/U680QouGkhaTeCH7+2JHaWhr6AYVEaYlDy 5QUw== X-Gm-Message-State: AA6/9RlmGdUp7FKO6+A4jp4roPVNN6WG5kUgffzSMiZ+Ygc1SNYihjyZ5f2aK71mPPJPxJCzzFHAQfZgow9HVQ== X-Received: by 10.202.229.7 with SMTP id c7mr4835162oih.89.1475520457754; Mon, 03 Oct 2016 11:47:37 -0700 (PDT) Original-Received: by 10.157.42.16 with HTTP; Mon, 3 Oct 2016 11:47:37 -0700 (PDT) In-Reply-To: <83twemf550.fsf@gnu.org> X-Google-Sender-Auth: L7QD8gnXvJT6agPa282H8sENSWM X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.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" Xref: news.gmane.org gmane.emacs.bugs:123977 Archived-At: --001a1141879cbe690b053dfa609e Content-Type: text/plain; charset=UTF-8 On Mon, Aug 15, 2016 at 11:01 AM, Eli Zaretskii wrote: > From my POV, as long as Emacs itself doesn't produce such shell > commands and/or environment variables for any of its features, > avoiding this becomes user's responsibility, just like when working at > the shell prompt. Of course, if we can find a reliable solution to > the problem that doesn't take away features, that'd be better, So I have been thinking about this. As far as I can tell, the %CD:~,0% hack is the only way to solve it. We can make it conditional on having command extensions enabled, see attached. The probing command I used for the default value for w32-shell-command-extensions causes an error while dumping ("Searching for program: No such file or directory, C:/Users/npostavs/src/emacs/emacs-25/nt/cmdproxy.exe") so I've commented it out for now. With this patch, (let ((w32-shell-command-extensions t) (process-environment (cl-list* "ca^=with-caret" "ca=without-caret" process-environment))) (insert (shell-command-to-string (format "echo %s %s %s" "%ca%" (shell-quote-argument "%ca%") "%%CD:~,0%ca%%CD:~,0%")))) gives without-caret "%ca%" %ca% If this approach makes sense I can fix up the patch. --001a1141879cbe690b053dfa609e Content-Type: text/plain; charset=US-ASCII; name="escaping-percent.diff" Content-Disposition: attachment; filename="escaping-percent.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_itonbuqc0 ZGlmZiAtLWdpdCBpL2xpc3Avc3Vici5lbCB3L2xpc3Avc3Vici5lbAppbmRleCBlOWUxOWQzLi4x ZDdkMGRkIDEwMDY0NAotLS0gaS9saXNwL3N1YnIuZWwKKysrIHcvbGlzcC9zdWJyLmVsCkBAIC0y NzUzLDE1ICsyNzUzLDMxIEBAIHNoZWxsLXF1b3RlLWFyZ3VtZW50CiAgICAgICAgICAgICAiXFwx XFwxXFxcXFwiIgogICAgICAgICAgICAgYXJndW1lbnQpKSkKIAotICAgIChpZiAoc3RyaW5nLW1h dGNoICJbJSFcIl0iIGFyZ3VtZW50KQotICAgICAgICAoY29uY2F0Ci0gICAgICAgICAiXlwiIgot ICAgICAgICAgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZwotICAgICAgICAgICJcXChbJSEoKVwi PD4mfF5dXFwpIgotICAgICAgICAgICJeXFwxIgotICAgICAgICAgIGFyZ3VtZW50KQotICAgICAg ICAgIl5cIiIpCi0gICAgICAoY29uY2F0ICJcIiIgYXJndW1lbnQgIlwiIikpKQorICAgIDs7IGNt ZC5leGUgcGVyZm9ybXMgJXZhciUgZXhwYW5zaW9uIGJlZm9yZSBhbnl0aGluZyBlbHNlLCBzbyB0 aGVyZQorICAgIDs7IGlzIG5vIHdheSBlc2NhcGUgJyUncyAoZXNjYXBpbmcgd2l0aCAnXicgKmFw cGVhcnMqIHRvIHdvcmssIGJ1dAorICAgIDs7IHRoYXQncyBvbmx5IGJlY2F1c2UgdmFyaWFibGVz IHdpdGggY2FyZXRzIGluIHRoZSBuYW1lIGFyZQorICAgIDs7IHJhcmUpLiAgSWYgIkNvbW1hbmQg RXh0ZW5zaW9ucyIgYXJlIGVuYWJsZWQsIGl0J3MgcG9zc2libGUgdG8KKyAgICA7OyB3b3JrIGFy b3VuZCB0aGlzIGxpbWl0YXRpb24gYnkgYXBwZW5kaW5nICIlQ0Q6fiwwJSIgdG8gZWFjaAorICAg IDs7ICclJzsgaXQgZXhwYW5kcyB0byB0aGUgZW1wdHkgc3RyaW5nIGFuZCBzdG9wcyB0aGUgcHJl Y2VkaW5nICclJworICAgIDs7IGZyb20gYmVpbmcgaW50ZXJwcmV0ZWQgYXMgdGhlIGJlZ2lubmlu ZyBvZiBhIHZhcmlhYmxlIG5hbWUuCisgICAgKGNvbmQKKyAgICAgKChhbmQgdzMyLXNoZWxsLWNv bW1hbmQtZXh0ZW5zaW9ucyAoc3RyaW5nLW1hdGNoICIlIiBhcmd1bWVudCkpCisgICAgICAoY29u Y2F0CisgICAgICAgIl5cIiIKKyAgICAgICAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nCisgICAg ICAgICJcXChbISgpXCI8PiZ8Xl1cXCkiCisgICAgICAgICJeXFwxIgorICAgICAgICAocmVwbGFj ZS1yZWdleHAtaW4tc3RyaW5nICIlIiAiJSVDRDp+LDAlIiBhcmd1bWVudCB0IHQpKQorICAgICAg ICJeXCIiKSkKKyAgICAgKChzdHJpbmctbWF0Y2ggIlslIVwiXSIgYXJndW1lbnQpCisgICAgICAo Y29uY2F0CisgICAgICAgIl5cIiIKKyAgICAgICAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nCisg ICAgICAgICJcXChbJSEoKVwiPD4mfF5dXFwpIgorICAgICAgICAiXlxcMSIKKyAgICAgICAgYXJn dW1lbnQpCisgICAgICAgIl5cIiIpKQorICAgICAodCAoY29uY2F0ICJcIiIgYXJndW1lbnQgIlwi IikpKSkKIAogICAgKHQKICAgICAoaWYgKGVxdWFsIGFyZ3VtZW50ICIiKQpkaWZmIC0tZ2l0IGkv bGlzcC93MzItdmFycy5lbCB3L2xpc3AvdzMyLXZhcnMuZWwKaW5kZXggYzkzMTdlNC4uM2U3NmE4 NiAxMDA2NDQKLS0tIGkvbGlzcC93MzItdmFycy5lbAorKysgdy9saXNwL3czMi12YXJzLmVsCkBA IC02NSw2ICs2NSwxMyBAQCB3MzItbGlzdC1wcm9wb3J0aW9uYWwtZm9udHMKICAgIDp0eXBlICco cmVwZWF0IHN0cmluZykKICAgIDpncm91cCAndzMyKSkKIAorKHVubGVzcyAoZXEgc3lzdGVtLXR5 cGUgJ2N5Z3dpbikKKyAgKGRlZmN1c3RvbSB3MzItc2hlbGwtY29tbWFuZC1leHRlbnNpb25zIG5p bCA7OyAoZXF1YWwgKHNoZWxsLWNvbW1hbmQtdG8tc3RyaW5nICJlY2hvICUlQ0Q6fiwwJSIpICIl XG4iKQorICAgICJJZiBub24tbmlsLCBhc3N1bWUgdGhlIHNoZWxsIHN1cHBvcnRzIFwiQ29tbWFu ZCBFeHRlbnNpb25zXCIuCitUaGlzIGlzIHVzZWQgYnkgYHNoZWxsLXF1b3RlLWFyZ3VtZW50JyB0 byBzYWZlbHkgZXNjYXBlIFwiJVwiLiIKKyAgICA6dHlwZSAnYm9vbGVhbgorICAgIDpncm91cCAn dzMyKSkKKwogOzsgV2FudCAibWVudSIgY3VzdG9tIHR5cGUgZm9yIHRoaXMuCiAoZGVmY3VzdG9t IHczMi1maXhlZC1mb250LWFsaXN0CiAgICcoIkZvbnQgbWVudSIK --001a1141879cbe690b053dfa609e--