bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#25025: python-shell-calculate-command is wrong


From: npostavs
Subject: bug#25025: python-shell-calculate-command is wrong
Date: Fri, 02 Dec 2016 10:07:57 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux)

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Noam Postavsky <npostavs@users.sourceforge.net>
>> Date: Fri, 2 Dec 2016 09:16:04 -0500
>> Cc: 25025@debbugs.gnu.org, Clément Pit--Claudel <clement.pit@gmail.com>
>> 
>> On Fri, Dec 2, 2016 at 2:35 AM, Eli Zaretskii <eliz@gnu.org> wrote:
>> >> --- a/lisp/progmodes/python.el
>> >> +++ b/lisp/progmodes/python.el
>> >> @@ -2379,7 +2379,7 @@ python-shell-internal-get-process-name
>> >>  (defun python-shell-calculate-command ()
>> >>    "Calculate the string used to execute the inferior Python process."
>> >>    (format "%s %s"
>> >> -          (shell-quote-argument python-shell-interpreter)
>> >> +          (combine-and-quote-strings (list python-shell-interpreter))
>> >>            python-shell-interpreter-args))
>> >
>> > Isn't combine-and-quote-strings wrong for quoting shell commands?
>> > AFAIR, it doesn't DTRT with some special characters that can appear in
>> > file names on Unix.  Am I mistaken?
>> 
>> It's not a shell command though, hence this bug.
>
> No, but the code in question generates a shell command, from the file
> name of the interpreter and its arguments.  Right?

Okay, let me rephrase.  `python-shell-calculate-command' currently
generates a shell command, but none of its callers treat the result as a
shell command (they don't pass it to a shell, they parse it with
`split-string-and-unquote').  Therefore, the easiest fix is to change
`python-shell-calculate-command' to no longer generate a shell command.

The other possiblity is to change the callers to treat
`python-shell-calculate-command's result as a shell command, but that
looks more difficult (though it may be the better solution overall).





reply via email to

[Prev in Thread] Current Thread [Next in Thread]