summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2023-07-22 14:45:56 (GMT)
committerGitHub <noreply@github.com>2023-07-22 14:45:56 (GMT)
commitd228825e08883fc13f35eb91435f95d32524931c (patch)
tree5d886d54a07638519b238fb32daa3586a239f76b
parente5252c6127ad788b39221982964f935bd1513028 (diff)
downloadcpython-d228825e08883fc13f35eb91435f95d32524931c.zip
cpython-d228825e08883fc13f35eb91435f95d32524931c.tar.gz
cpython-d228825e08883fc13f35eb91435f95d32524931c.tar.bz2
gh-106320: Remove _PyOS_ReadlineTState API (#107034)
Remove _PyOS_ReadlineTState variable from the public C API. The symbol is still exported for the readline shared extension.
-rw-r--r--Include/cpython/pythonrun.h1
-rw-r--r--Modules/readline.c3
-rw-r--r--Parser/myreadline.c4
3 files changed, 6 insertions, 2 deletions
diff --git a/Include/cpython/pythonrun.h b/Include/cpython/pythonrun.h
index fb61765..3b2537e 100644
--- a/Include/cpython/pythonrun.h
+++ b/Include/cpython/pythonrun.h
@@ -117,5 +117,4 @@ PyAPI_FUNC(PyObject *) PyRun_FileFlags(FILE *fp, const char *p, int s, PyObject
/* Stuff with no proper home (yet) */
PyAPI_FUNC(char *) PyOS_Readline(FILE *, FILE *, const char *);
-PyAPI_DATA(PyThreadState*) _PyOS_ReadlineTState;
PyAPI_DATA(char) *(*PyOS_ReadlineFunctionPointer)(FILE *, FILE *, const char *);
diff --git a/Modules/readline.c b/Modules/readline.c
index a592919..6729a09 100644
--- a/Modules/readline.c
+++ b/Modules/readline.c
@@ -1313,6 +1313,9 @@ rlhandler(char *text)
static char *
readline_until_enter_or_signal(const char *prompt, int *signal)
{
+ // Defined in Parser/myreadline.c
+ extern PyThreadState *_PyOS_ReadlineTState;
+
char * not_done_reading = "";
fd_set selectset;
diff --git a/Parser/myreadline.c b/Parser/myreadline.c
index 7074aba..8153873 100644
--- a/Parser/myreadline.c
+++ b/Parser/myreadline.c
@@ -20,7 +20,9 @@
#endif /* MS_WINDOWS */
-PyThreadState* _PyOS_ReadlineTState = NULL;
+// Export the symbol since it's used by the readline shared extension
+PyAPI_DATA(PyThreadState*) _PyOS_ReadlineTState;
+PyThreadState *_PyOS_ReadlineTState = NULL;
static PyThread_type_lock _PyOS_ReadlineLock = NULL;