https://github.com/python/cpython/commit/46b48ff09ac9b22d558cfd74274da3ca033c9bcd
commit: 46b48ff09ac9b22d558cfd74274da3ca033c9bcd
branch: 3.15
author: Serhiy Storchaka <[email protected]>
committer: serhiy-storchaka <[email protected]>
date: 2026-07-02T18:01:41+03:00
summary:

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

(cherry picked from commit e471712958515b65b737ac742b294acf7de9220c)

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 621e3d6ad2043a..f2115a236f2583 100644
--- a/Doc/library/curses.rst
+++ b/Doc/library/curses.rst
@@ -324,6 +324,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
@@ -593,6 +595,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