From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Da Zhang Newsgroups: gmane.emacs.bugs Subject: bug#20744: shell-quote-argument in Emacs 24.5 and Emacs 25 on Windows cannot figure out path correctly Date: Fri, 05 Jun 2015 17:05:37 -0400 Message-ID: <55720F21.4050401@gmail.com> References: <5571CF77.5000902@gmail.com> <83oaktoqw1.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/related; boundary="------------040103040700050806050801" X-Trace: ger.gmane.org 1433538391 21714 80.91.229.3 (5 Jun 2015 21:06:31 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 5 Jun 2015 21:06:31 +0000 (UTC) Cc: 20744@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Jun 05 23:06:19 2015 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 1Z0yof-0001sC-9L for geb-bug-gnu-emacs@m.gmane.org; Fri, 05 Jun 2015 23:06:13 +0200 Original-Received: from localhost ([::1]:49562 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z0yoe-0007oX-3q for geb-bug-gnu-emacs@m.gmane.org; Fri, 05 Jun 2015 17:06:12 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:45768) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z0yoa-0007oS-1J for bug-gnu-emacs@gnu.org; Fri, 05 Jun 2015 17:06:09 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z0yoV-00036r-8w for bug-gnu-emacs@gnu.org; Fri, 05 Jun 2015 17:06:07 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:60498) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z0yoV-00036c-2E for bug-gnu-emacs@gnu.org; Fri, 05 Jun 2015 17:06:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1Z0yoU-0007Jd-Lj for bug-gnu-emacs@gnu.org; Fri, 05 Jun 2015 17:06:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Da Zhang Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 05 Jun 2015 21:06:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 20744 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-Cc: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.143353836028113 (code B ref -1); Fri, 05 Jun 2015 21:06:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 5 Jun 2015 21:06:00 +0000 Original-Received: from localhost ([127.0.0.1]:42240 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Z0yoR-0007JM-BQ for submit@debbugs.gnu.org; Fri, 05 Jun 2015 17:06:00 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:60428) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Z0yoN-0007J7-Pu for submit@debbugs.gnu.org; Fri, 05 Jun 2015 17:05:56 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z0yoH-0002vm-9l for submit@debbugs.gnu.org; Fri, 05 Jun 2015 17:05:50 -0400 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:42547) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z0yoG-0002ut-Us for submit@debbugs.gnu.org; Fri, 05 Jun 2015 17:05:49 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:45691) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z0yoF-0007oK-8E for bug-gnu-emacs@gnu.org; Fri, 05 Jun 2015 17:05:48 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z0yoB-0002lk-62 for bug-gnu-emacs@gnu.org; Fri, 05 Jun 2015 17:05:47 -0400 Original-Received: from mail-qc0-x22c.google.com ([2607:f8b0:400d:c01::22c]:34754) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z0yoA-0002l2-Ux; Fri, 05 Jun 2015 17:05:43 -0400 Original-Received: by qcej9 with SMTP id j9so34528167qce.1; Fri, 05 Jun 2015 14:05:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type; bh=BypWWr4JwZgu3F6s4YqG/mFOUrRHXUGw26M9azrQ8fg=; b=nJW9vDPzify7esxQD8V+OJqzFPqoCLJTmVHwlE2OnaUDWl6AwRuUlrSoBaybrahXF4 cJQoun3jFLCMoLV3nFMe9lWPOwEJbkFsOSsOplgjmAQ+8pKfmitYP+Y9U85eurlh99Pw gai0XZ0APqICVAyRQFV5LXz7BlPBxXH7YzRsWX7F8O+kNWqlfBtxd6w1jRGWAfApoF2n uSIcv5jxfHRuyc2NXmt9TLJrIIPLHJAzOcKbBwNJRAm0YYAiKXHD7N0cYowWweZ58SvN TZONvsLunOwGtWJ3VPndpTUdmn298Y0F8ZkIA+pb7HPbhHADgpmA5P/AXm2agLojBM4S 635Q== X-Received: by 10.140.132.17 with SMTP id 17mr6781171qhe.36.1433538342567; Fri, 05 Jun 2015 14:05:42 -0700 (PDT) Original-Received: from [10.35.157.65] ([134.174.110.14]) by mx.google.com with ESMTPSA id 79sm4503708qkz.30.2015.06.05.14.05.41 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 05 Jun 2015 14:05:41 -0700 (PDT) User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 In-Reply-To: <83oaktoqw1.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). 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:103634 Archived-At: This is a multi-part message in MIME format. --------------040103040700050806050801 Content-Type: text/html; charset=windows-1252 Content-Transfer-Encoding: 7bit I did a comparison of the subr.el and python.el between Emacs 24.3 and Emacs 24.5, and I found subr.el was not changed, but python.el was changed regarding the (shell-quote-argument) call as shown below:
I think this comparison could help localizing the cause of the change of behavior.

Da Zhang




On 6/5/2015 4:13 PM, Eli Zaretskii wrote:
Date: Fri, 05 Jun 2015 12:33:59 -0400
From: Da Zhang <zhangda82@gmail.com>

I use python mode (python.el) for some python programming. When I invoke
the command python-shell-send-buffer, my Emacs always reports "Searching
for program: no such file or directory,
c\:/Anaconda3/Scripts/ipython.exe".

I traced down the cause of this problem, and found the following lines
in python.el:
(defun python-shell-parse-command () ;FIXME: why name it "parse"?
"Calculate the string used to execute the inferior Python process."
;; FIXME: process-environment doesn't seem to be used anywhere within
;; this let.
(let ((process-environment (python-shell-calculate-process-environment))
(exec-path (python-shell-calculate-exec-path)))
(format "%s %s"
;; FIXME: Why executable-find?
(shell-quote-argument (executable-find python-shell-interpreter))
python-shell-interpreter-args)))

The function call 
(shell-quote-argument (executable-find python-shell-interpreter))
changed the path of my python interpreter from
"c:/Anaconda3/Scripts/ipython.exe"
to
"c\\:/Anaconda3/Scripts/ipython.exe".

I worked around this problem by replacing the function call
(shell-quote-argument (executable-find python-shell-interpreter))
with
(executable-find python-shell-interpreter) ;; edited by DZ on
2015/06/05: (shell-quote-argument) caused the problem of
"c\\:/Anaconda3/Scripts/ipython.exe"

To further analyze the problem, I found the function
shell-quote-argument defined in subr.el does not deal with the case when
bash from cygwin is used.
For the record, this is bug #20237.

I added the following lines in the cond statement, to solve the problem.
((and (eq system-type 'windows-nt) (if (string-match ".*cygwin.*"
(w32-shell-name)) t nil)) ;; DZ's edit on 6/5/2015
(if (equal argument "")
"''"
;; Quote everything except POSIX filename characters.
;; This should be safe enough even for really weird shells.
(replace-regexp-in-string
"\n" "'\n'"
(replace-regexp-in-string "[^-0-9a-zA-Z_./\n:]" "\\\\\\&" argument))))
I'm sorry, but I don't see how we can accept such a change: it means
that when the Cygwin Bash is used as the shell, the ':' character will
not be quoted, which I think could cause trouble in some cases.

Maybe some Bash expert could chime in and tell whether problems are
possible with Bash in this case.

Is there any way you could avoid using the Cygwin Bash as the shell
when running the native Windows build of Emacs?  That would make the
problem go away without any need for changes.

--------------040103040700050806050801 Content-Type: image/png; name="gaefedad.png" Content-Transfer-Encoding: base64 Content-ID: Content-Disposition: inline; filename="gaefedad.png" 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 9uTcrbKrMfV52j2kxzdGhZR94Pj+4/vztCuWYZ4GY667btWTyz9mH6PQNHJ4fP/5vb0lKDsI vqW+DRLWzw4eX+JSmBXdPD713FfFVD6EEFqikjw+3yXAWCfZ45uhL9Yt4HmWBY8PKerWWPHp X3ZfI6D3Q/H8YvgglcdX6+t1YxtwX68bzSJ5Pyim3suxOOzUuWPvh2K7Ueykl6PuADoPMbzw +IarkK/XTW2EvRyLwuhF85QY88tRMZq/XjdNf84+RqFp5PD4/vilHdBVy0B9ztawe9qHOe/3 uzFfT39GV33k03jCtF6x3nG10+tZ2UPkVMBy0zJO1+PBTbz135r1rmezNPWKpn2i7NmMSiuy fdguJXLt+Xq9KpuHopLaSN+HcPAkjy/UClbf8ESstYnREL7aiCtvKPZ644vunzrbty5ttex6 dsTvWxqsjYie4zxDU4cD9dzX9OdTsayJGAghhBI9PuclQH3S9tff/2E4CP/6Tb0Q6ZeJv59+ tS6u5bbGE6bNIappRH8+VXtT9nD8M+oCVMZTxmkc9L///qf68Gl1rOYQvz2pS1tU4+Pvp19/ eVL3bEalF7mdFdWjRK49Px1/UzYPRSW1kdLKA3p8oVaw+sZvurtUVVdx/PMfzf+bDeGrjbjy +qX1gePvun/qbN8ywl+eyudki9+eHPH7lgZrI6LnyGdopOLTv+y+RuNfFIVp3n3/7O7xfas2 n2bw/agsPOWPH8/F8fWU5vFV0/3a6VRBNZOw2vibOYNlGT9Pu+2pemjXrBBtKmK1srqtoObB z2YTo6qVv2s7LDfcnqrIn1+agNXN9emWSY/ENoWyp0m2i1pS/D7VBVOfBS6j3b3+pdazdnRf behNdnxXmk8NTNv8cHxOqCtfzM4+2ZwIqYMDWqgsj+/vp1+VvKTsU/vLTfVWjPfxmY/hnq8O S8U3y8z6u8s8VJ24WJdpf7ndbmbY7cb2rs5X28jz7lo1m85Xy8hT/rm/3LTq6F4is2bPV4dD 5Ikqqo1GmMcXaAWdMmTHHzUr7XxWlvhqI7K83qDtJvM1t7ry/nKrl11udTjNoeWl4dqQeo7v DE0bDvRzP3YRQgihuSrB43ON88bsHuNtX//53fYjLEvFN8vM+vsfv6hHfzoWRaE7cZHXoP/8 Xvz6ixl261/YuzJeQybP4yuUPf/5VFhGXvvPv59+1eyY7iUqt2139edTYTtEnqii2miEeXyB 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 AAAAAElFTkSuQmCC --------------040103040700050806050801--