From 2ae8c6316ff7f173d24b391db6b3b1d3685a496d Mon Sep 17 00:00:00 2001 From: Vinay Sajip Date: Tue, 29 Jan 2013 22:29:25 +0000 Subject: Closes #17028: Allowed Python arguments to be supplied to launcher. --- PC/launcher.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/PC/launcher.c b/PC/launcher.c index df2580b..3efd9d9 100644 --- a/PC/launcher.c +++ b/PC/launcher.c @@ -1208,6 +1208,7 @@ process(int argc, wchar_t ** argv) void * version_data; VS_FIXEDFILEINFO * file_info; UINT block_size; + int index; wp = get_env(L"PYLAUNCH_DEBUG"); if ((wp != NULL) && (*wp != L'\0')) @@ -1295,13 +1296,6 @@ process(int argc, wchar_t ** argv) else { p = argv[1]; plen = wcslen(p); - if (p[0] != L'-') { - read_commands(); - maybe_handle_shebang(&argv[1], command); - } - /* No file with shebang, or an unrecognised shebang. - * Is the first arg a special version qualifier? - */ valid = (*p == L'-') && validate_version(&p[1]); if (valid) { ip = locate_python(&p[1]); @@ -1311,6 +1305,16 @@ installed", &p[1]); command += wcslen(p); command = skip_whitespace(command); } + else { + for (index = 1; index < argc; ++index) { + if (*argv[index] != L'-') + break; + } + if (index < argc) { + read_commands(); + maybe_handle_shebang(&argv[index], command); + } + } } if (!valid) { ip = locate_python(L""); @@ -1329,7 +1333,7 @@ installed", &p[1]); fwprintf(stdout, L"\ Python Launcher for Windows Version %s\n\n", version_text); fwprintf(stdout, L"\ -usage: %s [ launcher-arguments ] script [ script-arguments ]\n\n", argv[0]); +usage: %s [ launcher-arguments ] [ python-arguments ] script [ script-arguments ]\n\n", argv[0]); fputws(L"\ Launcher arguments:\n\n\ -2 : Launch the latest Python 2.x version\n\ @@ -1362,4 +1366,4 @@ int cdecl wmain(int argc, wchar_t ** argv) return process(argc, argv); } -#endif \ No newline at end of file +#endif -- cgit v0.12