diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2017-12-20 17:00:19 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-20 17:00:19 (GMT) |
commit | ca719ac42b3d58f7c3bcdf63f45b6d62b08b0d01 (patch) | |
tree | 6ac9a553b3b9874d4166fc1253681efcc9f00967 /Include | |
parent | 1f1a34c3145781628e10534440017b3b43211a60 (diff) | |
download | cpython-ca719ac42b3d58f7c3bcdf63f45b6d62b08b0d01.zip cpython-ca719ac42b3d58f7c3bcdf63f45b6d62b08b0d01.tar.gz cpython-ca719ac42b3d58f7c3bcdf63f45b6d62b08b0d01.tar.bz2 |
bpo-32030: Add _PyCoreConfig.warnoptions (#4936)
Merge _PyCoreConfig_ReadEnv() into _PyCoreConfig_Read(), and
_Py_CommandLineDetails usage is now restricted to pymain_cmdline().
Changes:
* _PyCoreConfig: Add nxoption, xoptions, nwarnoption and warnoptions
* Add _PyCoreConfig.program: argv[0] or ""
* Move filename, command, module and xoptions from
_Py_CommandLineDetails to _PyMain. xoptions _Py_OptList becomes
(int, wchar_t**) list.
* Add pymain_cmdline() function
* Rename copy_argv() to copy_wstrlist(). Rename clear_argv() to
clear_wstrlist(). Remove _Py_OptList structure: use (int,
wchar_t**) list instead.
* Rename pymain_set_flag_from_env() to pymain_get_env_flag()
* Rename pymain_set_flags_from_env() to pymain_get_env_flags()
* _PyMainInterpreterConfig_Read() now creates the warnoptions from
_PyCoreConfig.warnoptions
* Inline pymain_add_warning_dev_mode() and
pymain_add_warning_bytes_flag() into config_init_warnoptions()
* Inline pymain_get_program_name() into _PyCoreConfig_Read()
* _Py_CommandLineDetails: Replace warning_options with nwarnoption
and warnoptions. Replace env_warning_options with nenv_warnoption
and env_warnoptions.
* pymain_warnings_envvar() now has a single implementation for
Windows and Unix: use config_get_env_var_dup() to also get the
variable as wchar_t* on Unix.
Diffstat (limited to 'Include')
-rw-r--r-- | Include/pylifecycle.h | 1 | ||||
-rw-r--r-- | Include/pystate.h | 9 |
2 files changed, 8 insertions, 2 deletions
diff --git a/Include/pylifecycle.h b/Include/pylifecycle.h index afeae93..da740fe 100644 --- a/Include/pylifecycle.h +++ b/Include/pylifecycle.h @@ -54,7 +54,6 @@ PyAPI_FUNC(int) Py_SetStandardStreamEncoding(const char *encoding, PyAPI_FUNC(_PyInitError) _Py_InitializeCore(const _PyCoreConfig *); PyAPI_FUNC(int) _Py_IsCoreInitialized(void); -PyAPI_FUNC(_PyInitError) _PyCoreConfig_ReadEnv(_PyCoreConfig *); PyAPI_FUNC(_PyInitError) _PyCoreConfig_Read(_PyCoreConfig *); PyAPI_FUNC(void) _PyCoreConfig_Clear(_PyCoreConfig *); PyAPI_FUNC(int) _PyCoreConfig_Copy( diff --git a/Include/pystate.h b/Include/pystate.h index 3282eb9..619e627 100644 --- a/Include/pystate.h +++ b/Include/pystate.h @@ -50,7 +50,14 @@ typedef struct { int argc; /* Number of command line arguments, -1 means unset */ - wchar_t **argv; /* sys.argv, ignored if argc is negative */ + wchar_t **argv; /* Command line arguments */ + wchar_t *program; /* argv[0] or "" */ + + int nxoption; /* Number of -X options */ + wchar_t **xoptions; /* -X options */ + + int nwarnoption; /* Number of warnings options */ + wchar_t **warnoptions; /* Warnings options */ } _PyCoreConfig; #define _PyCoreConfig_INIT \ |