summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrendan Gerrity <brerrity@gmail.com>2018-08-31 15:15:42 (GMT)
committerSteve Dower <steve.dower@microsoft.com>2018-08-31 15:15:42 (GMT)
commitaada63b20ec64bbfc4f2fb0718fc563eedbdd36a (patch)
treea1850f0ed14568d1c9da7986be6f19429d626367
parent757b73cf92f5141396a9faf9e57a86765d7dac15 (diff)
downloadcpython-aada63b20ec64bbfc4f2fb0718fc563eedbdd36a.zip
cpython-aada63b20ec64bbfc4f2fb0718fc563eedbdd36a.tar.gz
cpython-aada63b20ec64bbfc4f2fb0718fc563eedbdd36a.tar.bz2
bpo-34062: Add missing launcher argument and make behavior consistent between short and long arguments (GH-8827)
Added previously missing "--list" argument. Made "--list" and "--list-paths" behavior consistent with the corresponding "-0" and "-0p" arguments.
-rw-r--r--Misc/NEWS.d/next/Windows/2018-08-21-19-28-23.bpo-34062.3gxsA3.rst1
-rw-r--r--PC/launcher.c19
2 files changed, 12 insertions, 8 deletions
diff --git a/Misc/NEWS.d/next/Windows/2018-08-21-19-28-23.bpo-34062.3gxsA3.rst b/Misc/NEWS.d/next/Windows/2018-08-21-19-28-23.bpo-34062.3gxsA3.rst
new file mode 100644
index 0000000..ca71945
--- /dev/null
+++ b/Misc/NEWS.d/next/Windows/2018-08-21-19-28-23.bpo-34062.3gxsA3.rst
@@ -0,0 +1 @@
+Fixed the '--list' and '--list-paths' arguments for the py.exe launcher
diff --git a/PC/launcher.c b/PC/launcher.c
index 455f42b..fcc3abb 100644
--- a/PC/launcher.c
+++ b/PC/launcher.c
@@ -1466,7 +1466,6 @@ process(int argc, wchar_t ** argv)
wchar_t * p;
int rc = 0;
size_t plen;
- size_t slen;
INSTALLED_PYTHON * ip;
BOOL valid;
DWORD size, attrs;
@@ -1602,10 +1601,11 @@ process(int argc, wchar_t ** argv)
else {
p = argv[1];
plen = wcslen(p);
- if (argc == 2) {
- slen = wcslen(L"-0");
- if(!wcsncmp(p, L"-0", slen)) /* Starts with -0 */
- valid = show_python_list(argv); /* Check for -0 FIRST */
+ if ((argc == 2) &&
+ (!wcsncmp(p, L"-0", wcslen(L"-0")) || /* Starts with -0 or --list */
+ !wcsncmp(p, L"--list", wcslen(L"--list"))))
+ {
+ valid = show_python_list(argv); /* Check for -0 or --list FIRST */
}
valid = valid && (*p == L'-') && validate_version(&p[1]);
if (valid) {
@@ -1638,10 +1638,13 @@ installed, use -0 for available pythons", &p[1]);
if (!valid) {
if ((argc == 2) && (!_wcsicmp(p, L"-h") || !_wcsicmp(p, L"--help")))
show_help_text(argv);
- if ((argc == 2) && (!_wcsicmp(p, L"-0") || !_wcsicmp(p, L"-0p")))
- executable = NULL; /* Info call only */
- else
+ if ((argc == 2) &&
+ (!_wcsicmp(p, L"-0") || !_wcsicmp(p, L"--list") ||
+ !_wcsicmp(p, L"-0p") || !_wcsicmp(p, L"--list-paths")))
{
+ executable = NULL; /* Info call only */
+ }
+ else {
/* Look for an active virtualenv */
executable = find_python_by_venv();