diff --git a/Python/pythonmain.c b/Python/pythonmain.c index 0e47c9a3d60..0f8ff023903 100644 --- a/Python/pythonmain.c +++ b/Python/pythonmain.c @@ -65,8 +65,21 @@ main(argc, argv) initargs(&argc, &argv); /* Defined in config*.c */ while ((c = getopt(argc, argv, "c:")) != EOF) { + if (c == 'c') { + /* -c is the last option; following arguments + that look like options are left for the + the command to interpret. */ + command = malloc(strlen(optarg) + 2); + /* Ignore malloc errors this early... */ + strcpy(command, optarg); + strcat(command, "\n"); + break; + } + switch (c) { + /* This space reserved for other options */ + default: fprintf(stderr, "usage: %s [-c cmd | file | -] [arg] ...\n", @@ -74,18 +87,6 @@ main(argc, argv) exit(2); /*NOTREACHED*/ - case 'c': - if (command != NULL) { - fprintf(stderr, "%s: duplicate -c option\n", - argv[0]); - exit(2); - } - command = malloc(strlen(optarg) + 2); - /* Ignore malloc errors this early... */ - strcpy(command, optarg); - strcat(command, "\n"); - break; - } }