From 24eb30b4feaef75c967e7f3aa5970e7f6153aabe 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 32d328283671d7..8ed73b58996d6a 100644 --- a/Doc/library/curses.rst +++ b/Doc/library/curses.rst @@ -306,6 +306,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 @@ -568,6 +570,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()