From ccc06a4cade9f8175a7deaac89e5f2606ad0c976 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Thu, 2 Jul 2026 18:01:41 +0300 Subject: [PATCH] [3.15] gh-144067: Document terminal leak when initscr() follows setupterm() (GH-152624) (GH-152894) (cherry picked from commit e471712958515b65b737ac742b294acf7de9220c) (cherry picked from commit 46b48ff09ac9b22d558cfd74274da3ca033c9bcd) Co-authored-by: Serhiy Storchaka Co-authored-by: Claude Opus 4.8 --- Doc/library/curses.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Doc/library/curses.rst b/Doc/library/curses.rst index b74dfa047107406..77c9397faebaf1f 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 ` 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()