summaryrefslogtreecommitdiffstats
path: root/Modules/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'Modules/main.c')
-rw-r--r--Modules/main.c54
1 files changed, 24 insertions, 30 deletions
diff --git a/Modules/main.c b/Modules/main.c
index e862113..846ecb6 100644
--- a/Modules/main.c
+++ b/Modules/main.c
@@ -522,39 +522,33 @@ read_command_line(int argc, wchar_t **argv, _Py_CommandLineDetails *cmdline)
return 0;
}
-static int
-apply_command_line_and_environment(_Py_CommandLineDetails *cmdline)
+static void
+maybe_set_flag(int *flag, int value)
{
- char *p;
- Py_BytesWarningFlag = cmdline->bytes_warning;
- Py_DebugFlag = cmdline->debug;
- Py_InspectFlag = cmdline->inspect;
- Py_InteractiveFlag = cmdline->interactive;
- Py_IsolatedFlag = cmdline->isolated;
- Py_OptimizeFlag = cmdline->optimization_level;
- Py_DontWriteBytecodeFlag = cmdline->dont_write_bytecode;
- Py_NoUserSiteDirectory = cmdline->no_user_site_directory;
- Py_NoSiteFlag = cmdline->no_site_import;
- Py_UnbufferedStdioFlag = cmdline->use_unbuffered_io;
- Py_VerboseFlag = cmdline->verbosity;
- Py_QuietFlag = cmdline->quiet_flag;
-
- if (!Py_InspectFlag &&
- (p = Py_GETENV("PYTHONINSPECT")) && *p != '\0') {
- Py_InspectFlag = 1;
- cmdline->inspect = 1;
- }
- if (!cmdline->use_unbuffered_io &&
- (p = Py_GETENV("PYTHONUNBUFFERED")) && *p != '\0') {
- Py_UnbufferedStdioFlag = 1;
- cmdline->use_unbuffered_io = 1;
+ /* Helper to set flag variables from command line options
+ * - uses the higher of the two values if they're both set
+ * - otherwise leaves the flag unset
+ */
+ if (*flag < value) {
+ *flag = value;
}
+}
- if (!Py_NoUserSiteDirectory &&
- (p = Py_GETENV("PYTHONNOUSERSITE")) && *p != '\0') {
- Py_NoUserSiteDirectory = 1;
- cmdline->no_user_site_directory = 1;
- }
+static int
+apply_command_line_and_environment(_Py_CommandLineDetails *cmdline)
+{
+ maybe_set_flag(&Py_BytesWarningFlag, cmdline->bytes_warning);
+ maybe_set_flag(&Py_DebugFlag, cmdline->debug);
+ maybe_set_flag(&Py_InspectFlag, cmdline->inspect);
+ maybe_set_flag(&Py_InteractiveFlag, cmdline->interactive);
+ maybe_set_flag(&Py_IsolatedFlag, cmdline->isolated);
+ maybe_set_flag(&Py_OptimizeFlag, cmdline->optimization_level);
+ maybe_set_flag(&Py_DontWriteBytecodeFlag, cmdline->dont_write_bytecode);
+ maybe_set_flag(&Py_NoUserSiteDirectory, cmdline->no_user_site_directory);
+ maybe_set_flag(&Py_NoSiteFlag, cmdline->no_site_import);
+ maybe_set_flag(&Py_UnbufferedStdioFlag, cmdline->use_unbuffered_io);
+ maybe_set_flag(&Py_VerboseFlag, cmdline->verbosity);
+ maybe_set_flag(&Py_QuietFlag, cmdline->quiet_flag);
/* TODO: Apply PYTHONWARNINGS & -W options to sys module here */
/* TODO: Apply -X options to sys module here */