Skip to content

Commit

Permalink
Document a workaround for a curses bug
Browse files Browse the repository at this point in the history
The ncurses library has a bug which can provoke a segfault when a window
is resized.  The bug is provoked when a string with embedded newlines is
added via addstr().  This commit documents that problem in the curses
python library documentation and relates how to workaround the problem
in the calling code.

Related to https://bugs.python.org/issue35924
  • Loading branch information
abadger committed May 12, 2019
1 parent 3988986 commit 4138f24
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 3 deletions.
13 changes: 10 additions & 3 deletions Doc/library/curses.rst
Expand Up @@ -708,9 +708,16 @@ the following methods and attributes:

.. note::

Writing outside the window, subwindow, or pad raises :exc:`curses.error`.
Attempting to write to the lower right corner of a window, subwindow,
or pad will cause an exception to be raised after the string is printed.
* Writing outside the window, subwindow, or pad raises :exc:`curses.error`.
Attempting to write to the lower right corner of a window, subwindow,
or pad will cause an exception to be raised after the string is printed.

* A `bug in ncurses <https://bugs.python.org/issue35924>`_, the backend
for this Python module, can cause SegFaults when resizing windows. This
is fixed in ncurses-6.1-20190511. If you are stuck with an earlier
ncurses, you can avoid triggering this if you do not call :func:`addstr`
with a *str* that has embedded newlines. Instead, call :func:`addstr`
separately for each line.


.. method:: window.attroff(attr)
Expand Down
@@ -0,0 +1,2 @@
Add a note to the ``curses.addstr()`` documentation to warn that multiline
strings can cause segfaults because of an ncurses bug.

0 comments on commit 4138f24

Please sign in to comment.