Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Programs/_testembed.c
Original file line number Diff line number Diff line change
Expand Up @@ -373,6 +373,8 @@ dump_config(void)
printf("quiet = %i\n", config->quiet);
printf("user_site_directory = %i\n", config->user_site_directory);
printf("buffered_stdio = %i\n", config->buffered_stdio);
ASSERT_EQUAL(config->buffered_stdio, !Py_UnbufferedStdioFlag);

/* FIXME: test legacy_windows_fs_encoding */
/* FIXME: test legacy_windows_stdio */

Expand Down
33 changes: 17 additions & 16 deletions Python/coreconfig.c
Original file line number Diff line number Diff line change
Expand Up @@ -367,6 +367,8 @@ _PyCoreConfig_SetGlobalConfig(const _PyCoreConfig *config)
static _PyInitError
config_init_program_name(_PyCoreConfig *config)
{
assert(config->program_name == NULL);

/* If Py_SetProgramName() was called, use its value */
const wchar_t *program_name = _Py_path_config.program_name;
if (program_name != NULL) {
Expand Down Expand Up @@ -665,16 +667,18 @@ config_read_env_vars(_PyCoreConfig *config)
config->malloc_stats = 1;
}

const char *env = _PyCoreConfig_GetEnv(config, "PYTHONCOERCECLOCALE");
if (env) {
if (strcmp(env, "0") == 0) {
config->coerce_c_locale = 0;
}
else if (strcmp(env, "warn") == 0) {
config->coerce_c_locale_warn = 1;
}
else {
config->coerce_c_locale = 1;
if (config->coerce_c_locale < 0) {
const char *env = _PyCoreConfig_GetEnv(config, "PYTHONCOERCECLOCALE");
if (env) {
if (strcmp(env, "0") == 0) {
config->coerce_c_locale = 0;
}
else if (strcmp(env, "warn") == 0) {
config->coerce_c_locale_warn = 1;
}
else {
config->coerce_c_locale = 1;
}
}
}

Expand Down Expand Up @@ -820,10 +824,6 @@ config_read_complex_options(_PyCoreConfig *config)
static void
config_init_locale(_PyCoreConfig *config)
{
if (config->utf8_mode >= 0 && config->coerce_c_locale >= 0) {
return;
}

if (_Py_LegacyLocaleDetected()) {
/* POSIX locale: enable C locale coercion and UTF-8 Mode */
if (config->utf8_mode < 0) {
Expand All @@ -832,7 +832,6 @@ config_init_locale(_PyCoreConfig *config)
if (config->coerce_c_locale < 0) {
config->coerce_c_locale = 1;
}
return;
}
}

Expand Down Expand Up @@ -909,7 +908,9 @@ _PyCoreConfig_Read(_PyCoreConfig *config)
}
}

config_init_locale(config);
if (config->utf8_mode < 0 || config->coerce_c_locale < 0) {
config_init_locale(config);
}

if (config->_install_importlib) {
err = _PyCoreConfig_InitPathConfig(config);
Expand Down
1 change: 0 additions & 1 deletion Python/pylifecycle.c
Original file line number Diff line number Diff line change
Expand Up @@ -805,7 +805,6 @@ _Py_InitializeCore(PyInterpreterState **interp_p,
{
assert(src_config != NULL);


PyMemAllocatorEx old_alloc;
_PyInitError err;

Expand Down