summaryrefslogtreecommitdiffstats
path: root/Include
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@redhat.com>2019-09-29 23:40:17 (GMT)
committerGitHub <noreply@github.com>2019-09-29 23:40:17 (GMT)
commitfb4ae152a9930f0e00cae8b2807f534058cf341a (patch)
tree557401018629793ae3de044ca7024384a0e4f3fa /Include
parent58498bc7178608b1ab031994ca09c43889ce3e76 (diff)
downloadcpython-fb4ae152a9930f0e00cae8b2807f534058cf341a.zip
cpython-fb4ae152a9930f0e00cae8b2807f534058cf341a.tar.gz
cpython-fb4ae152a9930f0e00cae8b2807f534058cf341a.tar.bz2
bpo-38317: Fix PyConfig.warnoptions priority (GH-16478)
Fix warnings options priority: PyConfig.warnoptions has the highest priority, as stated in the PEP 587. * Document options order in PyConfig.warnoptions documentation. * Make PyWideStringList_INIT macro private: replace "Py" prefix with "_Py". * test_embed: add test_init_warnoptions().
Diffstat (limited to 'Include')
-rw-r--r--Include/cpython/initconfig.h5
-rw-r--r--Include/internal/pycore_initconfig.h2
-rw-r--r--Include/internal/pycore_pylifecycle.h2
3 files changed, 6 insertions, 3 deletions
diff --git a/Include/cpython/initconfig.h b/Include/cpython/initconfig.h
index d5effb8..8ce5622 100644
--- a/Include/cpython/initconfig.h
+++ b/Include/cpython/initconfig.h
@@ -220,7 +220,10 @@ typedef struct {
wchar_t *program_name;
PyWideStringList xoptions; /* Command line -X options */
- PyWideStringList warnoptions; /* Warnings options */
+
+ /* Warnings options: lowest to highest priority. warnings.filters
+ is built in the reverse order (highest to lowest priority). */
+ PyWideStringList warnoptions;
/* If equal to zero, disable the import of the module site and the
site-dependent manipulations of sys.path that it entails. Also disable
diff --git a/Include/internal/pycore_initconfig.h b/Include/internal/pycore_initconfig.h
index dcdb616..eb6490f 100644
--- a/Include/internal/pycore_initconfig.h
+++ b/Include/internal/pycore_initconfig.h
@@ -45,7 +45,7 @@ extern "C" {
/* --- PyWideStringList ------------------------------------------------ */
-#define PyWideStringList_INIT (PyWideStringList){.length = 0, .items = NULL}
+#define _PyWideStringList_INIT (PyWideStringList){.length = 0, .items = NULL}
#ifndef NDEBUG
PyAPI_FUNC(int) _PyWideStringList_CheckConsistency(const PyWideStringList *list);
diff --git a/Include/internal/pycore_pylifecycle.h b/Include/internal/pycore_pylifecycle.h
index cdf5c09..b0a98f5 100644
--- a/Include/internal/pycore_pylifecycle.h
+++ b/Include/internal/pycore_pylifecycle.h
@@ -41,7 +41,7 @@ extern PyStatus _PySys_Create(
PyThreadState *tstate,
PyObject **sysmod_p);
extern PyStatus _PySys_SetPreliminaryStderr(PyObject *sysdict);
-extern PyStatus _PySys_ReadPreinitWarnOptions(PyConfig *config);
+extern PyStatus _PySys_ReadPreinitWarnOptions(PyWideStringList *options);
extern PyStatus _PySys_ReadPreinitXOptions(PyConfig *config);
extern int _PySys_InitMain(
_PyRuntimeState *runtime,