• Victor Stinner's avatar
    bpo-32030: _PyPathConfig_Init() sets home and program_name (#4673) · af5a8950
    Victor Stinner authored
    _PyPathConfig_Init() now also initialize home and program_name:
    
    * Rename existing _PyPathConfig_Init() to _PyPathConfig_Calculate().
      Add a new _PyPathConfig_Init() function in pathconfig.c which
      handles the _Py_path_config variable and call
      _PyPathConfig_Calculate().
    * Add home and program_name fields to _PyPathConfig.home
    * _PyPathConfig_Init() now initialize home and program_name
      from main_config
    * Py_SetProgramName(), Py_SetPythonHome() and Py_GetPythonHome() now
      calls Py_FatalError() on failure, instead of silently ignoring
      failures.
    * config_init_home() now gets directly _Py_path_config.home to only
      get the value set by Py_SetPythonHome(), or NULL if
      Py_SetPythonHome() was not called.
    * config_get_program_name() now gets directly
      _Py_path_config.program_name to only get the value set by
      Py_SetProgramName(), or NULL if Py_SetProgramName() was not called.
    * pymain_init_python() doesn't call Py_SetProgramName() anymore,
      _PyPathConfig_Init() now always sets the program name
    * Call _PyMainInterpreterConfig_Read() in
      pymain_parse_cmdline_envvars_impl() to control the memory allocator
    * C API documentation: it's no more safe to call Py_GetProgramName()
      before Py_Initialize().
    af5a8950
pathconfig.c 5.73 KB