Lines Matching refs:config
14 preconfig_copy(PyPreConfig *config, const PyPreConfig *config2);
125 precmdline_get_preconfig(_PyPreCmdline *cmdline, const PyPreConfig *config)
128 if (config->ATTR != -1) { \
129 cmdline->ATTR = config->ATTR; \
141 precmdline_set_preconfig(const _PyPreCmdline *cmdline, PyPreConfig *config)
144 config->ATTR = cmdline->ATTR
155 _PyPreCmdline_SetConfig(const _PyPreCmdline *cmdline, PyConfig *config)
158 config->ATTR = cmdline->ATTR
160 PyStatus status = _PyWideStringList_Extend(&config->xoptions, &cmdline->xoptions);
277 _PyPreConfig_InitCompatConfig(PyPreConfig *config)
279 memset(config, 0, sizeof(*config));
281 config->_config_init = (int)_PyConfig_INIT_COMPAT;
282 config->parse_argv = 0;
283 config->isolated = -1;
284 config->use_environment = -1;
285 config->configure_locale = 1;
292 config->utf8_mode = 0;
293 config->coerce_c_locale = 0;
294 config->coerce_c_locale_warn = 0;
296 config->dev_mode = -1;
297 config->allocator = PYMEM_ALLOCATOR_NOT_SET;
299 config->legacy_windows_fs_encoding = -1;
305 PyPreConfig_InitPythonConfig(PyPreConfig *config)
307 _PyPreConfig_InitCompatConfig(config);
309 config->_config_init = (int)_PyConfig_INIT_PYTHON;
310 config->isolated = 0;
311 config->parse_argv = 1;
312 config->use_environment = 1;
316 config->coerce_c_locale = -1;
317 config->coerce_c_locale_warn = -1;
318 config->utf8_mode = -1;
320 config->legacy_windows_fs_encoding = 0;
326 PyPreConfig_InitIsolatedConfig(PyPreConfig *config)
328 _PyPreConfig_InitCompatConfig(config);
330 config->_config_init = (int)_PyConfig_INIT_ISOLATED;
331 config->configure_locale = 0;
332 config->isolated = 1;
333 config->use_environment = 0;
334 config->utf8_mode = 0;
335 config->dev_mode = 0;
337 config->legacy_windows_fs_encoding = 0;
343 _PyPreConfig_InitFromPreConfig(PyPreConfig *config,
346 PyPreConfig_InitPythonConfig(config);
347 preconfig_copy(config, config2);
353 _PyPreConfig_InitFromConfig(PyPreConfig *preconfig, const PyConfig *config)
355 _PyConfigInitEnum config_init = (_PyConfigInitEnum)config->_config_init;
368 _PyPreConfig_GetConfig(preconfig, config);
373 preconfig_copy(PyPreConfig *config, const PyPreConfig *config2)
375 #define COPY_ATTR(ATTR) config->ATTR = config2->ATTR
396 _PyPreConfig_AsDict(const PyPreConfig *config)
407 PyObject *obj = PyLong_FromLong(config->ATTR); \
442 _PyPreConfig_GetConfig(PyPreConfig *preconfig, const PyConfig *config)
445 if (config->ATTR != -1) { \
446 preconfig->ATTR = config->ATTR; \
459 preconfig_get_global_vars(PyPreConfig *config)
461 if (config->_config_init != _PyConfig_INIT_COMPAT) {
467 if (config->ATTR < 0) { \
468 config->ATTR = VALUE; \
471 if (config->ATTR < 0) { \
472 config->ATTR = !(VALUE); \
478 config->utf8_mode = Py_UTF8Mode;
490 preconfig_set_global_vars(const PyPreConfig *config)
493 if (config->ATTR >= 0) { \
494 VAR = config->ATTR; \
497 if (config->ATTR >= 0) { \
498 VAR = !config->ATTR; \
590 preconfig_init_utf8_mode(PyPreConfig *config, const _PyPreCmdline *cmdline)
593 if (config->legacy_windows_fs_encoding) {
594 config->utf8_mode = 0;
598 if (config->utf8_mode >= 0) {
609 config->utf8_mode = 1;
612 config->utf8_mode = 0;
619 config->utf8_mode = 1;
624 const char *opt = _Py_GetEnv(config->use_environment, "PYTHONUTF8");
627 config->utf8_mode = 1;
630 config->utf8_mode = 0;
641 if (config->utf8_mode < 0) {
648 config->utf8_mode = 1;
653 if (config->utf8_mode < 0) {
654 config->utf8_mode = 0;
661 preconfig_init_coerce_c_locale(PyPreConfig *config)
663 if (!config->configure_locale) {
664 config->coerce_c_locale = 0;
665 config->coerce_c_locale_warn = 0;
669 const char *env = _Py_GetEnv(config->use_environment, "PYTHONCOERCECLOCALE");
672 if (config->coerce_c_locale < 0) {
673 config->coerce_c_locale = 0;
677 if (config->coerce_c_locale_warn < 0) {
678 config->coerce_c_locale_warn = 1;
682 if (config->coerce_c_locale < 0) {
683 config->coerce_c_locale = 1;
691 if (config->coerce_c_locale < 0 || config->coerce_c_locale == 1) {
694 config->coerce_c_locale = 2;
697 config->coerce_c_locale = 0;
701 if (config->coerce_c_locale_warn < 0) {
702 config->coerce_c_locale_warn = 0;
708 preconfig_init_allocator(PyPreConfig *config)
710 if (config->allocator == PYMEM_ALLOCATOR_NOT_SET) {
715 const char *envvar = _Py_GetEnv(config->use_environment, "PYTHONMALLOC");
721 config->allocator = (int)name;
725 if (config->dev_mode && config->allocator == PYMEM_ALLOCATOR_NOT_SET) {
726 config->allocator = PYMEM_ALLOCATOR_DEBUG;
733 preconfig_read(PyPreConfig *config, _PyPreCmdline *cmdline)
737 status = _PyPreCmdline_Read(cmdline, config);
742 precmdline_set_preconfig(cmdline, config);
746 _Py_get_env_flag(config->use_environment,
747 &config->legacy_windows_fs_encoding,
751 preconfig_init_coerce_c_locale(config);
753 status = preconfig_init_utf8_mode(config, cmdline);
759 status = preconfig_init_allocator(config);
764 assert(config->coerce_c_locale >= 0);
765 assert(config->coerce_c_locale_warn >= 0);
767 assert(config->legacy_windows_fs_encoding >= 0);
769 assert(config->utf8_mode >= 0);
770 assert(config->isolated >= 0);
771 assert(config->use_environment >= 0);
772 assert(config->dev_mode >= 0);
785 _PyPreConfig_Read(PyPreConfig *config, const _PyArgv *args)
794 preconfig_get_global_vars(config);
806 /* Save the config to be able to restore it if encodings change */
809 status = _PyPreConfig_InitFromPreConfig(&save_config, config);
815 if (config->configure_locale) {
829 int utf8_mode = config->utf8_mode;
841 Py_UTF8Mode = config->utf8_mode;
843 Py_LegacyWindowsFSEncodingFlag = config->legacy_windows_fs_encoding;
855 status = preconfig_read(config, &cmdline);
871 if (config->coerce_c_locale && !locale_coerced) {
878 if (config->utf8_mode == 1) {
884 if (config->utf8_mode != utf8_mode) {
895 int new_utf8_mode = config->utf8_mode;
896 int new_coerce_c_locale = config->coerce_c_locale;
897 preconfig_copy(config, &save_config);
898 config->utf8_mode = new_utf8_mode;
899 config->coerce_c_locale = new_coerce_c_locale;
935 PyPreConfig config;
937 PyStatus status = _PyPreConfig_InitFromPreConfig(&config, src_config);
948 PyMemAllocatorName name = (PyMemAllocatorName)config.allocator;
955 preconfig_set_global_vars(&config);
957 if (config.configure_locale) {
958 if (config.coerce_c_locale) {
959 if (!_Py_CoerceLegacyLocale(config.coerce_c_locale_warn)) {
961 config.coerce_c_locale = 0;
970 preconfig_copy(&_PyRuntime.preconfig, &config);