Steve Dower added the comment:

subprocess with shell=True turns it into a "cmd.exe /C "start chrome.exe ..."" 
type command, which means the arguments will use shell parsing (e.g. > for 
redirection, & for multiple commands, etc.)

"start" in cmd.exe behaves the same as os.startfile, but can also accept 
arguments. Patch 1 lets startfile accept arguments, so we don't have to go via 
cmd.exe to launch the browser (we're still resolving it via the shell, so the 
behaviour is the same, but the arguments are never interpreted using shell 
rules). All the functionality of #8232 is still there and still works.

Patch 2 is a rollback of #8232, so we ship the same functionality as in Python 
3.4. Because this only supports the default browser and does not support 
selecting between new tab/window, it can go back to using os.startfile without 
arguments.

A third option would be to find some other way to discover the full path to 
each browser and launch it without using start/os.startfile. (This is what I 
was thinking originally when I said it would be too big a change.)

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue25005>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to