]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Applied patch #2617 from Frank Wierzbicki wit some extras from me
authorChristian Heimes <christian@cheimes.de>
Sat, 12 Apr 2008 13:03:03 +0000 (13:03 +0000)
committerChristian Heimes <christian@cheimes.de>
Sat, 12 Apr 2008 13:03:03 +0000 (13:03 +0000)
-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.

Misc/NEWS
Modules/main.c
Python/getopt.c

index 878305d7f478ba2763e9dba5c164df65d06ca11a..4319351dee3b6f66691f5eddcf845bce9da87623 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -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
 ------------------
 
index a91974012547f1e0c8717718cda3b68a1b81f4b3..8e02fe4f46f6d21151a176bbe22065d106765b8f 100644 (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;
index 659efcfff812bc1db1734eac2767bf69a58f8086..acdd5d778b740fe65036c0d69cd126b0961572d4 100644 (file)
@@ -80,7 +80,18 @@ 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);