bpo-31845: Fix reading flags from environment (GH-4105) · python/cpython@d7ac061 (original) (raw)

`@@ -522,39 +522,33 @@ read_command_line(int argc, wchar_t **argv, _Py_CommandLineDetails *cmdline)

`

522

522

`return 0;

`

523

523

`}

`

524

524

``

525

``

`-

static int

`

526

``

`-

apply_command_line_and_environment(_Py_CommandLineDetails *cmdline)

`

``

525

`+

static void

`

``

526

`+

maybe_set_flag(int *flag, int value)

`

527

527

`{

`

528

``

`-

char *p;

`

529

``

`-

Py_BytesWarningFlag = cmdline->bytes_warning;

`

530

``

`-

Py_DebugFlag = cmdline->debug;

`

531

``

`-

Py_InspectFlag = cmdline->inspect;

`

532

``

`-

Py_InteractiveFlag = cmdline->interactive;

`

533

``

`-

Py_IsolatedFlag = cmdline->isolated;

`

534

``

`-

Py_OptimizeFlag = cmdline->optimization_level;

`

535

``

`-

Py_DontWriteBytecodeFlag = cmdline->dont_write_bytecode;

`

536

``

`-

Py_NoUserSiteDirectory = cmdline->no_user_site_directory;

`

537

``

`-

Py_NoSiteFlag = cmdline->no_site_import;

`

538

``

`-

Py_UnbufferedStdioFlag = cmdline->use_unbuffered_io;

`

539

``

`-

Py_VerboseFlag = cmdline->verbosity;

`

540

``

`-

Py_QuietFlag = cmdline->quiet_flag;

`

541

``

-

542

``

`-

if (!Py_InspectFlag &&

`

543

``

`-

(p = Py_GETENV("PYTHONINSPECT")) && *p != '\0') {

`

544

``

`-

Py_InspectFlag = 1;

`

545

``

`-

cmdline->inspect = 1;

`

546

``

`-

}

`

547

``

`-

if (!cmdline->use_unbuffered_io &&

`

548

``

`-

(p = Py_GETENV("PYTHONUNBUFFERED")) && *p != '\0') {

`

549

``

`-

Py_UnbufferedStdioFlag = 1;

`

550

``

`-

cmdline->use_unbuffered_io = 1;

`

``

528

`+

/* Helper to set flag variables from command line options

`

``

529

`+

`

``

530

`+

`

``

531

`+

*/

`

``

532

`+

if (*flag < value) {

`

``

533

`+

*flag = value;

`

551

534

` }

`

``

535

`+

}

`

552

536

``

553

``

`-

if (!Py_NoUserSiteDirectory &&

`

554

``

`-

(p = Py_GETENV("PYTHONNOUSERSITE")) && *p != '\0') {

`

555

``

`-

Py_NoUserSiteDirectory = 1;

`

556

``

`-

cmdline->no_user_site_directory = 1;

`

557

``

`-

}

`

``

537

`+

static int

`

``

538

`+

apply_command_line_and_environment(_Py_CommandLineDetails *cmdline)

`

``

539

`+

{

`

``

540

`+

maybe_set_flag(&Py_BytesWarningFlag, cmdline->bytes_warning);

`

``

541

`+

maybe_set_flag(&Py_DebugFlag, cmdline->debug);

`

``

542

`+

maybe_set_flag(&Py_InspectFlag, cmdline->inspect);

`

``

543

`+

maybe_set_flag(&Py_InteractiveFlag, cmdline->interactive);

`

``

544

`+

maybe_set_flag(&Py_IsolatedFlag, cmdline->isolated);

`

``

545

`+

maybe_set_flag(&Py_OptimizeFlag, cmdline->optimization_level);

`

``

546

`+

maybe_set_flag(&Py_DontWriteBytecodeFlag, cmdline->dont_write_bytecode);

`

``

547

`+

maybe_set_flag(&Py_NoUserSiteDirectory, cmdline->no_user_site_directory);

`

``

548

`+

maybe_set_flag(&Py_NoSiteFlag, cmdline->no_site_import);

`

``

549

`+

maybe_set_flag(&Py_UnbufferedStdioFlag, cmdline->use_unbuffered_io);

`

``

550

`+

maybe_set_flag(&Py_VerboseFlag, cmdline->verbosity);

`

``

551

`+

maybe_set_flag(&Py_QuietFlag, cmdline->quiet_flag);

`

558

552

``

559

553

`/* TODO: Apply PYTHONWARNINGS & -W options to sys module here */

`

560

554

`/* TODO: Apply -X options to sys module here */

`