• Victor Stinner's avatar
    bpo-36301: Add _PyWstrList structure (GH-12343) · 74f6568b
    Victor Stinner yazdı
    Replace messy _Py_wstrlist_xxx() functions with a new clean
    _PyWstrList structure and new _PyWstrList_xxx() functions.
    
    Changes:
    
    * Add _PyCoreConfig.use_module_search_paths to decide if
      _PyCoreConfig.module_search_paths should be computed or not, to
      support empty search path list.
    * _PyWstrList_Clear() sets length to 0 and items to NULL, whereas
      _Py_wstrlist_clear() only freed memory.
    * _PyWstrList_Append() returns an int, whereas _Py_wstrlist_append()
      returned _PyInitError.
    * _PyWstrList uses Py_ssize_t for the length, instead of int.
    * Replace (int, wchar_t**) with _PyWstrList in:
    
      * _PyPreConfig
      * _PyCoreConfig
      * _PyPreCmdline
      * _PyCmdline
    
    * Replace "int orig_argv; wchar_t **orig_argv;"
      with "_PyWstrList orig_argv".
    * _PyCmdline and _PyPreCmdline now also copy wchar_argv.
    * Rename _PyArgv_Decode() to _PyArgv_AsWstrList().
    * PySys_SetArgvEx() now pass the fixed (argc, argv) to
      _PyPathConfig_ComputeArgv0() (don't pass negative argc or NULL
      argv).
    * _PyOS_GetOpt() uses Py_ssize_t
    74f6568b