◐ Shell
clean mode source ↗

[3.8] bpo-40527: Fix command line argument parsing (GH-19955) by miss-islington · Pull Request #19956 · python/cpython

Expand Up @@ -105,7 +105,9 @@ int _PyOS_GetOpt(Py_ssize_t argc, wchar_t * const *argv, int *longindex) if (option == L'-') { // Parse long option. if (*opt_ptr == L'\0') { fprintf(stderr, "expected long option\n"); if (_PyOS_opterr) { fprintf(stderr, "expected long option\n"); } return -1; } *longindex = 0; Expand All @@ -115,31 +117,37 @@ int _PyOS_GetOpt(Py_ssize_t argc, wchar_t * const *argv, int *longindex) break; } if (!opt->name) { fprintf(stderr, "unknown option %ls\n", argv[_PyOS_optind - 1]); if (_PyOS_opterr) { fprintf(stderr, "unknown option %ls\n", argv[_PyOS_optind - 1]); } return '_'; } opt_ptr = L""; if (!opt->has_arg) { return opt->val; } if (_PyOS_optind >= argc) { fprintf(stderr, "Argument expected for the %ls options\n", argv[_PyOS_optind - 1]); if (_PyOS_opterr) { fprintf(stderr, "Argument expected for the %ls options\n", argv[_PyOS_optind - 1]); } return '_'; } _PyOS_optarg = argv[_PyOS_optind++]; return opt->val; }
if (option == 'J') { if (_PyOS_opterr) if (_PyOS_opterr) { fprintf(stderr, "-J is reserved for Jython\n"); } return '_'; }
if ((ptr = wcschr(SHORT_OPTS, option)) == NULL) { if (_PyOS_opterr) if (_PyOS_opterr) { fprintf(stderr, "Unknown option: -%c\n", (char)option); } return '_'; }
Expand All @@ -151,9 +159,10 @@ int _PyOS_GetOpt(Py_ssize_t argc, wchar_t * const *argv, int *longindex)
else { if (_PyOS_optind >= argc) { if (_PyOS_opterr) if (_PyOS_opterr) { fprintf(stderr, "Argument expected for the -%c option\n", (char)option); } return '_'; }
Expand Down