https://github.com/python/cpython/commit/93288ea42ad9aea68461f38e054c9b5f1fea2411
commit: 93288ea42ad9aea68461f38e054c9b5f1fea2411
branch: 3.14
author: Miss Islington (bot) <[email protected]>
committer: serhiy-storchaka <[email protected]>
date: 2026-07-02T15:09:25Z
summary:

[3.14] gh-144067: Document terminal leak when initscr() follows setupterm() 
(GH-152624) (GH-152894) (GH-152899)

(cherry picked from commit e471712958515b65b737ac742b294acf7de9220c)
(cherry picked from commit 46b48ff09ac9b22d558cfd74274da3ca033c9bcd)

Co-authored-by: Serhiy Storchaka <[email protected]>
Co-authored-by: Claude Opus 4.8 <[email protected]>

files:
M Doc/library/curses.rst

diff --git a/Doc/library/curses.rst b/Doc/library/curses.rst
index b74dfa04710740..77c9397faebaf1 100644
--- a/Doc/library/curses.rst
+++ b/Doc/library/curses.rst
@@ -327,6 +327,8 @@ The module :mod:`!curses` defines the following functions:
    Initialize the library. Return a :ref:`window <curses-window-objects>` 
object
    which represents the whole screen.
 
+   See :func:`setupterm` for a caveat about calling it before this function.
+
    .. note::
 
       If there is an error opening the terminal, the underlying curses library 
may
@@ -596,6 +598,13 @@ The module :mod:`!curses` defines the following functions:
    terminfo database entry could not be read.  If the terminal has already
    been initialized, this function has no effect.
 
+   .. note::
+
+      Calling :func:`initscr` after :func:`setupterm`
+      leaks the terminal that :func:`setupterm` allocated:
+      the curses library keeps only a single current terminal
+      and does not free the previously allocated one.
+
 
 .. function:: start_color()
 

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]

Reply via email to