Applied patch #2617 from Frank Wierzbicki wit some extras from me

-J and -X are now reserved for Jython and non-standard arguments (e.g. IronPython). I've added some extra comments to make sure the reservation don't get missed in the future.
This commit is contained in:
Christian Heimes 2008-04-12 13:03:03 +00:00
parent d3ed492164
commit 7a98d2730c
3 changed files with 20 additions and 2 deletions

View File

@ -12,6 +12,9 @@ What's New in Python 2.6 alpha 3?
Core and builtins
-----------------
- Patch #2617: Reserved -J and -X arguments for Jython, IronPython and other
implementations of Python.
Extensions Modules
------------------

View File

@ -40,7 +40,7 @@ static char **orig_argv;
static int orig_argc;
/* command line options */
#define BASE_OPTS "3bBc:dEhim:OQ:StuUvVW:xX?"
#define BASE_OPTS "3bBc:dEhiJm:OQ:StuUvVW:xX?"
#ifndef RISCOS
#define PROGRAM_OPTS BASE_OPTS
@ -349,6 +349,8 @@ Py_Main(int argc, char **argv)
Py_InteractiveFlag++;
break;
/* case 'J': reserved for Jython */
case 'O':
Py_OptimizeFlag++;
break;
@ -388,6 +390,8 @@ Py_Main(int argc, char **argv)
skipfirstline = 1;
break;
/* case 'X': reserved for non-standard arguments */
case 'U':
Py_UnicodeFlag++;
break;

View File

@ -81,6 +81,17 @@ int _PyOS_GetOpt(int argc, char **argv, char *optstring)
if ( (option = *opt_ptr++) == '\0')
return -1;
if (option == 'J') {
fprintf(stderr, "-J is reserved for Jython\n");
return '_';
}
if (option == 'X') {
fprintf(stderr,
"-X is reserved for non-standard arguments\n");
return '_';
}
if ((ptr = strchr(optstring, option)) == NULL) {
if (_PyOS_opterr)
fprintf(stderr, "Unknown option: -%c\n", option);