-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.
Core and builtins
-----------------
+- Patch #2617: Reserved -J and -X arguments for Jython, IronPython and other
+ implementations of Python.
+
Extensions Modules
------------------
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
Py_InteractiveFlag++;
break;
+ /* case 'J': reserved for Jython */
+
case 'O':
Py_OptimizeFlag++;
break;
skipfirstline = 1;
break;
+ /* case 'X': reserved for non-standard arguments */
+
case 'U':
Py_UnicodeFlag++;
break;
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);