Lines Matching full:config
17 preconfig_copy(PyPreConfig *config, const PyPreConfig *config2);
129 precmdline_get_preconfig(_PyPreCmdline *cmdline, const PyPreConfig *config) in precmdline_get_preconfig() argument
132 if (config->ATTR != -1) { \ in precmdline_get_preconfig()
133 cmdline->ATTR = config->ATTR; \ in precmdline_get_preconfig()
145 precmdline_set_preconfig(const _PyPreCmdline *cmdline, PyPreConfig *config) in precmdline_set_preconfig() argument
148 config->ATTR = cmdline->ATTR in precmdline_set_preconfig()
159 _PyPreCmdline_SetConfig(const _PyPreCmdline *cmdline, PyConfig *config) in _PyPreCmdline_SetConfig() argument
162 config->ATTR = cmdline->ATTR in _PyPreCmdline_SetConfig()
164 PyStatus status = _PyWideStringList_Extend(&config->xoptions, &cmdline->xoptions); in _PyPreCmdline_SetConfig()
281 _PyPreConfig_InitCompatConfig(PyPreConfig *config) in _PyPreConfig_InitCompatConfig() argument
283 memset(config, 0, sizeof(*config)); in _PyPreConfig_InitCompatConfig()
285 config->_config_init = (int)_PyConfig_INIT_COMPAT; in _PyPreConfig_InitCompatConfig()
286 config->parse_argv = 0; in _PyPreConfig_InitCompatConfig()
287 config->isolated = -1; in _PyPreConfig_InitCompatConfig()
288 config->use_environment = -1; in _PyPreConfig_InitCompatConfig()
289 config->configure_locale = 1; in _PyPreConfig_InitCompatConfig()
296 config->utf8_mode = 0; in _PyPreConfig_InitCompatConfig()
297 config->coerce_c_locale = 0; in _PyPreConfig_InitCompatConfig()
298 config->coerce_c_locale_warn = 0; in _PyPreConfig_InitCompatConfig()
300 config->dev_mode = -1; in _PyPreConfig_InitCompatConfig()
305 config->allocator = PYMEM_ALLOCATOR_MALLOC_DEBUG; in _PyPreConfig_InitCompatConfig()
307 config->allocator = PYMEM_ALLOCATOR_MALLOC; in _PyPreConfig_InitCompatConfig()
310 config->allocator = PYMEM_ALLOCATOR_NOT_SET; in _PyPreConfig_InitCompatConfig()
313 config->legacy_windows_fs_encoding = -1; in _PyPreConfig_InitCompatConfig()
319 PyPreConfig_InitPythonConfig(PyPreConfig *config) in PyPreConfig_InitPythonConfig() argument
321 _PyPreConfig_InitCompatConfig(config); in PyPreConfig_InitPythonConfig()
323 config->_config_init = (int)_PyConfig_INIT_PYTHON; in PyPreConfig_InitPythonConfig()
324 config->isolated = 0; in PyPreConfig_InitPythonConfig()
325 config->parse_argv = 1; in PyPreConfig_InitPythonConfig()
326 config->use_environment = 1; in PyPreConfig_InitPythonConfig()
330 config->coerce_c_locale = -1; in PyPreConfig_InitPythonConfig()
331 config->coerce_c_locale_warn = -1; in PyPreConfig_InitPythonConfig()
332 config->utf8_mode = -1; in PyPreConfig_InitPythonConfig()
334 config->legacy_windows_fs_encoding = 0; in PyPreConfig_InitPythonConfig()
340 PyPreConfig_InitIsolatedConfig(PyPreConfig *config) in PyPreConfig_InitIsolatedConfig() argument
342 _PyPreConfig_InitCompatConfig(config); in PyPreConfig_InitIsolatedConfig()
344 config->_config_init = (int)_PyConfig_INIT_ISOLATED; in PyPreConfig_InitIsolatedConfig()
345 config->configure_locale = 0; in PyPreConfig_InitIsolatedConfig()
346 config->isolated = 1; in PyPreConfig_InitIsolatedConfig()
347 config->use_environment = 0; in PyPreConfig_InitIsolatedConfig()
348 config->utf8_mode = 0; in PyPreConfig_InitIsolatedConfig()
349 config->dev_mode = 0; in PyPreConfig_InitIsolatedConfig()
351 config->legacy_windows_fs_encoding = 0; in PyPreConfig_InitIsolatedConfig()
357 _PyPreConfig_InitFromPreConfig(PyPreConfig *config, in _PyPreConfig_InitFromPreConfig() argument
360 PyPreConfig_InitPythonConfig(config); in _PyPreConfig_InitFromPreConfig()
361 preconfig_copy(config, config2); in _PyPreConfig_InitFromPreConfig()
367 _PyPreConfig_InitFromConfig(PyPreConfig *preconfig, const PyConfig *config) in _PyPreConfig_InitFromConfig() argument
369 _PyConfigInitEnum config_init = (_PyConfigInitEnum)config->_config_init; in _PyPreConfig_InitFromConfig()
382 _PyPreConfig_GetConfig(preconfig, config); in _PyPreConfig_InitFromConfig()
387 preconfig_copy(PyPreConfig *config, const PyPreConfig *config2) in preconfig_copy() argument
389 #define COPY_ATTR(ATTR) config->ATTR = config2->ATTR in preconfig_copy()
410 _PyPreConfig_AsDict(const PyPreConfig *config) in _PyPreConfig_AsDict() argument
421 PyObject *obj = PyLong_FromLong(config->ATTR); \ in _PyPreConfig_AsDict()
456 _PyPreConfig_GetConfig(PyPreConfig *preconfig, const PyConfig *config) in _PyPreConfig_GetConfig() argument
459 if (config->ATTR != -1) { \ in _PyPreConfig_GetConfig()
460 preconfig->ATTR = config->ATTR; \ in _PyPreConfig_GetConfig()
473 preconfig_get_global_vars(PyPreConfig *config) in preconfig_get_global_vars() argument
475 if (config->_config_init != _PyConfig_INIT_COMPAT) { in preconfig_get_global_vars()
481 if (config->ATTR < 0) { \ in preconfig_get_global_vars()
482 config->ATTR = VALUE; \ in preconfig_get_global_vars()
485 if (config->ATTR < 0) { \ in preconfig_get_global_vars()
486 config->ATTR = !(VALUE); \ in preconfig_get_global_vars()
492 config->utf8_mode = Py_UTF8Mode; in preconfig_get_global_vars()
504 preconfig_set_global_vars(const PyPreConfig *config) in preconfig_set_global_vars() argument
507 if (config->ATTR >= 0) { \ in preconfig_set_global_vars()
508 VAR = config->ATTR; \ in preconfig_set_global_vars()
511 if (config->ATTR >= 0) { \ in preconfig_set_global_vars()
512 VAR = !config->ATTR; \ in preconfig_set_global_vars()
604 preconfig_init_utf8_mode(PyPreConfig *config, const _PyPreCmdline *cmdline) in preconfig_init_utf8_mode() argument
607 if (config->legacy_windows_fs_encoding) { in preconfig_init_utf8_mode()
608 config->utf8_mode = 0; in preconfig_init_utf8_mode()
612 if (config->utf8_mode >= 0) { in preconfig_init_utf8_mode()
623 config->utf8_mode = 1; in preconfig_init_utf8_mode()
626 config->utf8_mode = 0; in preconfig_init_utf8_mode()
633 config->utf8_mode = 1; in preconfig_init_utf8_mode()
638 const char *opt = _Py_GetEnv(config->use_environment, "PYTHONUTF8"); in preconfig_init_utf8_mode()
641 config->utf8_mode = 1; in preconfig_init_utf8_mode()
644 config->utf8_mode = 0; in preconfig_init_utf8_mode()
655 if (config->utf8_mode < 0) { in preconfig_init_utf8_mode()
662 config->utf8_mode = 1; in preconfig_init_utf8_mode()
667 if (config->utf8_mode < 0) { in preconfig_init_utf8_mode()
668 config->utf8_mode = 0; in preconfig_init_utf8_mode()
675 preconfig_init_coerce_c_locale(PyPreConfig *config) in preconfig_init_coerce_c_locale() argument
677 if (!config->configure_locale) { in preconfig_init_coerce_c_locale()
678 config->coerce_c_locale = 0; in preconfig_init_coerce_c_locale()
679 config->coerce_c_locale_warn = 0; in preconfig_init_coerce_c_locale()
683 const char *env = _Py_GetEnv(config->use_environment, "PYTHONCOERCECLOCALE"); in preconfig_init_coerce_c_locale()
686 if (config->coerce_c_locale < 0) { in preconfig_init_coerce_c_locale()
687 config->coerce_c_locale = 0; in preconfig_init_coerce_c_locale()
691 if (config->coerce_c_locale_warn < 0) { in preconfig_init_coerce_c_locale()
692 config->coerce_c_locale_warn = 1; in preconfig_init_coerce_c_locale()
696 if (config->coerce_c_locale < 0) { in preconfig_init_coerce_c_locale()
697 config->coerce_c_locale = 1; in preconfig_init_coerce_c_locale()
705 if (config->coerce_c_locale < 0 || config->coerce_c_locale == 1) { in preconfig_init_coerce_c_locale()
708 config->coerce_c_locale = 2; in preconfig_init_coerce_c_locale()
711 config->coerce_c_locale = 0; in preconfig_init_coerce_c_locale()
715 if (config->coerce_c_locale_warn < 0) { in preconfig_init_coerce_c_locale()
716 config->coerce_c_locale_warn = 0; in preconfig_init_coerce_c_locale()
722 preconfig_init_allocator(PyPreConfig *config) in preconfig_init_allocator() argument
724 if (config->allocator == PYMEM_ALLOCATOR_NOT_SET) { in preconfig_init_allocator()
729 const char *envvar = _Py_GetEnv(config->use_environment, "PYTHONMALLOC"); in preconfig_init_allocator()
735 config->allocator = (int)name; in preconfig_init_allocator()
739 if (config->dev_mode && config->allocator == PYMEM_ALLOCATOR_NOT_SET) { in preconfig_init_allocator()
740 config->allocator = PYMEM_ALLOCATOR_DEBUG; in preconfig_init_allocator()
747 preconfig_read(PyPreConfig *config, _PyPreCmdline *cmdline) in preconfig_read() argument
751 status = _PyPreCmdline_Read(cmdline, config); in preconfig_read()
756 precmdline_set_preconfig(cmdline, config); in preconfig_read()
760 _Py_get_env_flag(config->use_environment, in preconfig_read()
761 &config->legacy_windows_fs_encoding, in preconfig_read()
765 preconfig_init_coerce_c_locale(config); in preconfig_read()
767 status = preconfig_init_utf8_mode(config, cmdline); in preconfig_read()
773 status = preconfig_init_allocator(config); in preconfig_read()
778 assert(config->coerce_c_locale >= 0); in preconfig_read()
779 assert(config->coerce_c_locale_warn >= 0); in preconfig_read()
781 assert(config->legacy_windows_fs_encoding >= 0); in preconfig_read()
783 assert(config->utf8_mode >= 0); in preconfig_read()
784 assert(config->isolated >= 0); in preconfig_read()
785 assert(config->use_environment >= 0); in preconfig_read()
786 assert(config->dev_mode >= 0); in preconfig_read()
799 _PyPreConfig_Read(PyPreConfig *config, const _PyArgv *args) in _PyPreConfig_Read() argument
808 preconfig_get_global_vars(config); in _PyPreConfig_Read()
820 /* Save the config to be able to restore it if encodings change */ in _PyPreConfig_Read()
823 status = _PyPreConfig_InitFromPreConfig(&save_config, config); in _PyPreConfig_Read()
829 if (config->configure_locale) { in _PyPreConfig_Read()
843 int utf8_mode = config->utf8_mode; in _PyPreConfig_Read()
855 Py_UTF8Mode = config->utf8_mode; in _PyPreConfig_Read()
857 Py_LegacyWindowsFSEncodingFlag = config->legacy_windows_fs_encoding; in _PyPreConfig_Read()
869 status = preconfig_read(config, &cmdline); in _PyPreConfig_Read()
885 if (config->coerce_c_locale && !locale_coerced) { in _PyPreConfig_Read()
892 if (config->utf8_mode == 1) { in _PyPreConfig_Read()
898 if (config->utf8_mode != utf8_mode) { in _PyPreConfig_Read()
909 int new_utf8_mode = config->utf8_mode; in _PyPreConfig_Read()
910 int new_coerce_c_locale = config->coerce_c_locale; in _PyPreConfig_Read()
911 preconfig_copy(config, &save_config); in _PyPreConfig_Read()
912 config->utf8_mode = new_utf8_mode; in _PyPreConfig_Read()
913 config->coerce_c_locale = new_coerce_c_locale; in _PyPreConfig_Read()
949 PyPreConfig config; in _PyPreConfig_Write() local
951 PyStatus status = _PyPreConfig_InitFromPreConfig(&config, src_config); in _PyPreConfig_Write()
962 PyMemAllocatorName name = (PyMemAllocatorName)config.allocator; in _PyPreConfig_Write()
969 preconfig_set_global_vars(&config); in _PyPreConfig_Write()
971 if (config.configure_locale) { in _PyPreConfig_Write()
972 if (config.coerce_c_locale) { in _PyPreConfig_Write()
973 if (!_Py_CoerceLegacyLocale(config.coerce_c_locale_warn)) { in _PyPreConfig_Write()
975 config.coerce_c_locale = 0; in _PyPreConfig_Write()
984 preconfig_copy(&_PyRuntime.preconfig, &config); in _PyPreConfig_Write()