@@ -5,6 +5,7 @@
|
5 | 5 | #include "pycore_getopt.h" |
6 | 6 | #include "pycore_pylifecycle.h" |
7 | 7 | #include "pycore_pymem.h" |
| 8 | +#include "pycore_pystate.h" /* _PyRuntime */ |
8 | 9 | #include "pycore_pathconfig.h" |
9 | 10 | #include <locale.h> /* setlocale() */ |
10 | 11 | #ifdef HAVE_LANGINFO_H |
@@ -1358,6 +1359,17 @@ _PyCoreConfig_ReadPreConfig(_PyCoreConfig *config)
|
1358 | 1359 | } |
1359 | 1360 | |
1360 | 1361 | |
| 1362 | +static _PyInitError |
| 1363 | +_PyCoreConfig_GetPreConfig(_PyCoreConfig *config) |
| 1364 | +{ |
| 1365 | +/* Read config written by _PyPreConfig_Write() */ |
| 1366 | +if (_PyPreConfig_Copy(&config->preconfig, &_PyRuntime.preconfig) < 0) { |
| 1367 | +return _Py_INIT_NO_MEMORY(); |
| 1368 | + } |
| 1369 | +return _Py_INIT_OK(); |
| 1370 | +} |
| 1371 | + |
| 1372 | + |
1361 | 1373 | /* Read the configuration into _PyCoreConfig from: |
1362 | 1374 | |
1363 | 1375 | * Environment variables |
@@ -1374,6 +1386,11 @@ _PyCoreConfig_Read(_PyCoreConfig *config, const _PyPreConfig *preconfig)
|
1374 | 1386 | return err; |
1375 | 1387 | } |
1376 | 1388 | |
| 1389 | +err = _PyCoreConfig_GetPreConfig(config); |
| 1390 | +if (_Py_INIT_FAILED(err)) { |
| 1391 | +return err; |
| 1392 | + } |
| 1393 | + |
1377 | 1394 | _PyCoreConfig_GetGlobalConfig(config); |
1378 | 1395 | |
1379 | 1396 | if (preconfig != NULL) { |
@@ -2117,6 +2134,11 @@ _PyCoreConfig_ReadFromArgv(_PyCoreConfig *config, const _PyArgv *args,
|
2117 | 2134 | { |
2118 | 2135 | _PyInitError err; |
2119 | 2136 | |
| 2137 | +err = _Py_PreInitialize(); |
| 2138 | +if (_Py_INIT_FAILED(err)) { |
| 2139 | +return err; |
| 2140 | + } |
| 2141 | + |
2120 | 2142 | _PyCmdline cmdline = {.precmdline = _PyPreCmdline_INIT}; |
2121 | 2143 | |
2122 | 2144 | err = _PyPreCmdline_Init(&cmdline.precmdline, args); |
|