summaryrefslogtreecommitdiffstats
path: root/PC
diff options
context:
space:
mode:
authorVinay Sajip <vinay_sajip@yahoo.co.uk>2013-01-29 22:29:25 (GMT)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>2013-01-29 22:29:25 (GMT)
commit2ae8c6316ff7f173d24b391db6b3b1d3685a496d (patch)
treefd78b36be00c30798817911d3c59163dcda86af4 /PC
parent64a5562f4c92b6b99762f71d3506b4b0644cec70 (diff)
downloadcpython-2ae8c6316ff7f173d24b391db6b3b1d3685a496d.zip
cpython-2ae8c6316ff7f173d24b391db6b3b1d3685a496d.tar.gz
cpython-2ae8c6316ff7f173d24b391db6b3b1d3685a496d.tar.bz2
Closes #17028: Allowed Python arguments to be supplied to launcher.
Diffstat (limited to 'PC')
-rw-r--r--PC/launcher.c22
1 files 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