gh-101100: Fix Sphinx warnings in `curses` and `curses.ascii` modules (#103457)

Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com>
This commit is contained in:
Hugo van Kemenade 2023-05-03 08:09:04 +03:00 committed by GitHub
parent af886ffa06
commit 5b05b013ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 500 additions and 468 deletions

View File

@ -4,6 +4,8 @@
Curses Programming with Python
**********************************
.. currentmodule:: curses
:Author: A.M. Kuchling, Eric S. Raymond
:Release: 2.04
@ -65,7 +67,7 @@ The Python module is a fairly simple wrapper over the C functions provided by
curses; if you're already familiar with curses programming in C, it's really
easy to transfer that knowledge to Python. The biggest difference is that the
Python interface makes things simpler by merging different C functions such as
:c:func:`addstr`, :c:func:`mvaddstr`, and :c:func:`mvwaddstr` into a single
:c:func:`!addstr`, :c:func:`!mvaddstr`, and :c:func:`!mvwaddstr` into a single
:meth:`~curses.window.addstr` method. You'll see this covered in more
detail later.
@ -82,7 +84,7 @@ Before doing anything, curses must be initialized. This is done by
calling the :func:`~curses.initscr` function, which will determine the
terminal type, send any required setup codes to the terminal, and
create various internal data structures. If successful,
:func:`initscr` returns a window object representing the entire
:func:`!initscr` returns a window object representing the entire
screen; this is usually called ``stdscr`` after the name of the
corresponding C variable. ::
@ -151,8 +153,8 @@ importing the :func:`curses.wrapper` function and using it like this::
The :func:`~curses.wrapper` function takes a callable object and does the
initializations described above, also initializing colors if color
support is present. :func:`wrapper` then runs your provided callable.
Once the callable returns, :func:`wrapper` will restore the original
support is present. :func:`!wrapper` then runs your provided callable.
Once the callable returns, :func:`!wrapper` will restore the original
state of the terminal. The callable is called inside a
:keyword:`try`...\ :keyword:`except` that catches exceptions, restores
the state of the terminal, and then re-raises the exception. Therefore
@ -200,7 +202,7 @@ This is because curses was originally written with slow 300-baud
terminal connections in mind; with these terminals, minimizing the
time required to redraw the screen was very important. Instead curses
accumulates changes to the screen and displays them in the most
efficient manner when you call :meth:`refresh`. For example, if your
efficient manner when you call :meth:`!refresh`. For example, if your
program displays some text in a window and then clears the window,
there's no need to send the original text because they're never
visible.
@ -210,7 +212,7 @@ really complicate programming with curses much. Most programs go into a flurry
of activity, and then pause waiting for a keypress or some other action on the
part of the user. All you have to do is to be sure that the screen has been
redrawn before pausing to wait for user input, by first calling
``stdscr.refresh()`` or the :meth:`refresh` method of some other relevant
:meth:`!stdscr.refresh` or the :meth:`!refresh` method of some other relevant
window.
A pad is a special case of a window; it can be larger than the actual display
@ -234,7 +236,7 @@ displayed. ::
# : filled with pad content.
pad.refresh( 0,0, 5,5, 20,75)
The :meth:`refresh` call displays a section of the pad in the rectangle
The :meth:`!refresh` call displays a section of the pad in the rectangle
extending from coordinate (5,5) to coordinate (20,75) on the screen; the upper
left corner of the displayed section is coordinate (0,0) on the pad. Beyond
that difference, pads are exactly like ordinary windows and support the same
@ -242,7 +244,7 @@ methods.
If you have multiple windows and pads on screen there is a more
efficient way to update the screen and prevent annoying screen flicker
as each part of the screen gets updated. :meth:`refresh` actually
as each part of the screen gets updated. :meth:`!refresh` actually
does two things:
1) Calls the :meth:`~curses.window.noutrefresh` method of each window
@ -251,8 +253,8 @@ does two things:
2) Calls the function :func:`~curses.doupdate` function to change the
physical screen to match the desired state recorded in the data structure.
Instead you can call :meth:`noutrefresh` on a number of windows to
update the data structure, and then call :func:`doupdate` to update
Instead you can call :meth:`!noutrefresh` on a number of windows to
update the data structure, and then call :func:`!doupdate` to update
the screen.
@ -261,11 +263,11 @@ Displaying Text
From a C programmer's point of view, curses may sometimes look like a
twisty maze of functions, all subtly different. For example,
:c:func:`addstr` displays a string at the current cursor location in
the ``stdscr`` window, while :c:func:`mvaddstr` moves to a given y,x
coordinate first before displaying the string. :c:func:`waddstr` is just
like :c:func:`addstr`, but allows specifying a window to use instead of
using ``stdscr`` by default. :c:func:`mvwaddstr` allows specifying both
:c:func:`!addstr` displays a string at the current cursor location in
the ``stdscr`` window, while :c:func:`!mvaddstr` moves to a given y,x
coordinate first before displaying the string. :c:func:`!waddstr` is just
like :c:func:`!addstr`, but allows specifying a window to use instead of
using ``stdscr`` by default. :c:func:`!mvwaddstr` allows specifying both
a window and a coordinate.
Fortunately the Python interface hides all these details. ``stdscr``
@ -298,7 +300,7 @@ the next subsection.
The :meth:`~curses.window.addstr` method takes a Python string or
bytestring as the value to be displayed. The contents of bytestrings
are sent to the terminal as-is. Strings are encoded to bytes using
the value of the window's :attr:`encoding` attribute; this defaults to
the value of the window's :attr:`~window.encoding` attribute; this defaults to
the default system encoding as returned by :func:`locale.getencoding`.
The :meth:`~curses.window.addch` methods take a character, which can be
@ -444,15 +446,15 @@ There are two methods for getting input from a window:
It's possible to not wait for the user using the
:meth:`~curses.window.nodelay` window method. After ``nodelay(True)``,
:meth:`getch` and :meth:`getkey` for the window become
non-blocking. To signal that no input is ready, :meth:`getch` returns
``curses.ERR`` (a value of -1) and :meth:`getkey` raises an exception.
:meth:`!getch` and :meth:`!getkey` for the window become
non-blocking. To signal that no input is ready, :meth:`!getch` returns
``curses.ERR`` (a value of -1) and :meth:`!getkey` raises an exception.
There's also a :func:`~curses.halfdelay` function, which can be used to (in
effect) set a timer on each :meth:`getch`; if no input becomes
effect) set a timer on each :meth:`!getch`; if no input becomes
available within a specified delay (measured in tenths of a second),
curses raises an exception.
The :meth:`getch` method returns an integer; if it's between 0 and 255, it
The :meth:`!getch` method returns an integer; if it's between 0 and 255, it
represents the ASCII code of the key pressed. Values greater than 255 are
special keys such as Page Up, Home, or the cursor keys. You can compare the
value returned to constants such as :const:`curses.KEY_PPAGE`,

View File

@ -15,81 +15,81 @@ The :mod:`curses.ascii` module supplies name constants for ASCII characters and
functions to test membership in various ASCII character classes. The constants
supplied are names for control characters as follows:
+--------------+----------------------------------------------+
| Name | Meaning |
+==============+==============================================+
| :const:`NUL` | |
+--------------+----------------------------------------------+
| :const:`SOH` | Start of heading, console interrupt |
+--------------+----------------------------------------------+
| :const:`STX` | Start of text |
+--------------+----------------------------------------------+
| :const:`ETX` | End of text |
+--------------+----------------------------------------------+
| :const:`EOT` | End of transmission |
+--------------+----------------------------------------------+
| :const:`ENQ` | Enquiry, goes with :const:`ACK` flow control |
+--------------+----------------------------------------------+
| :const:`ACK` | Acknowledgement |
+--------------+----------------------------------------------+
| :const:`BEL` | Bell |
+--------------+----------------------------------------------+
| :const:`BS` | Backspace |
+--------------+----------------------------------------------+
| :const:`TAB` | Tab |
+--------------+----------------------------------------------+
| :const:`HT` | Alias for :const:`TAB`: "Horizontal tab" |
+--------------+----------------------------------------------+
| :const:`LF` | Line feed |
+--------------+----------------------------------------------+
| :const:`NL` | Alias for :const:`LF`: "New line" |
+--------------+----------------------------------------------+
| :const:`VT` | Vertical tab |
+--------------+----------------------------------------------+
| :const:`FF` | Form feed |
+--------------+----------------------------------------------+
| :const:`CR` | Carriage return |
+--------------+----------------------------------------------+
| :const:`SO` | Shift-out, begin alternate character set |
+--------------+----------------------------------------------+
| :const:`SI` | Shift-in, resume default character set |
+--------------+----------------------------------------------+
| :const:`DLE` | Data-link escape |
+--------------+----------------------------------------------+
| :const:`DC1` | XON, for flow control |
+--------------+----------------------------------------------+
| :const:`DC2` | Device control 2, block-mode flow control |
+--------------+----------------------------------------------+
| :const:`DC3` | XOFF, for flow control |
+--------------+----------------------------------------------+
| :const:`DC4` | Device control 4 |
+--------------+----------------------------------------------+
| :const:`NAK` | Negative acknowledgement |
+--------------+----------------------------------------------+
| :const:`SYN` | Synchronous idle |
+--------------+----------------------------------------------+
| :const:`ETB` | End transmission block |
+--------------+----------------------------------------------+
| :const:`CAN` | Cancel |
+--------------+----------------------------------------------+
| :const:`EM` | End of medium |
+--------------+----------------------------------------------+
| :const:`SUB` | Substitute |
+--------------+----------------------------------------------+
| :const:`ESC` | Escape |
+--------------+----------------------------------------------+
| :const:`FS` | File separator |
+--------------+----------------------------------------------+
| :const:`GS` | Group separator |
+--------------+----------------------------------------------+
| :const:`RS` | Record separator, block-mode terminator |
+--------------+----------------------------------------------+
| :const:`US` | Unit separator |
+--------------+----------------------------------------------+
| :const:`SP` | Space |
+--------------+----------------------------------------------+
| :const:`DEL` | Delete |
+--------------+----------------------------------------------+
+---------------+----------------------------------------------+
| Name | Meaning |
+===============+==============================================+
| .. data:: NUL | |
+---------------+----------------------------------------------+
| .. data:: SOH | Start of heading, console interrupt |
+---------------+----------------------------------------------+
| .. data:: STX | Start of text |
+---------------+----------------------------------------------+
| .. data:: ETX | End of text |
+---------------+----------------------------------------------+
| .. data:: EOT | End of transmission |
+---------------+----------------------------------------------+
| .. data:: ENQ | Enquiry, goes with :const:`ACK` flow control |
+---------------+----------------------------------------------+
| .. data:: ACK | Acknowledgement |
+---------------+----------------------------------------------+
| .. data:: BEL | Bell |
+---------------+----------------------------------------------+
| .. data:: BS | Backspace |
+---------------+----------------------------------------------+
| .. data:: TAB | Tab |
+---------------+----------------------------------------------+
| .. data:: HT | Alias for :const:`TAB`: "Horizontal tab" |
+---------------+----------------------------------------------+
| .. data:: LF | Line feed |
+---------------+----------------------------------------------+
| .. data:: NL | Alias for :const:`LF`: "New line" |
+---------------+----------------------------------------------+
| .. data:: VT | Vertical tab |
+---------------+----------------------------------------------+
| .. data:: FF | Form feed |
+---------------+----------------------------------------------+
| .. data:: CR | Carriage return |
+---------------+----------------------------------------------+
| .. data:: SO | Shift-out, begin alternate character set |
+---------------+----------------------------------------------+
| .. data:: SI | Shift-in, resume default character set |
+---------------+----------------------------------------------+
| .. data:: DLE | Data-link escape |
+---------------+----------------------------------------------+
| .. data:: DC1 | XON, for flow control |
+---------------+----------------------------------------------+
| .. data:: DC2 | Device control 2, block-mode flow control |
+---------------+----------------------------------------------+
| .. data:: DC3 | XOFF, for flow control |
+---------------+----------------------------------------------+
| .. data:: DC4 | Device control 4 |
+---------------+----------------------------------------------+
| .. data:: NAK | Negative acknowledgement |
+---------------+----------------------------------------------+
| .. data:: SYN | Synchronous idle |
+---------------+----------------------------------------------+
| .. data:: ETB | End transmission block |
+---------------+----------------------------------------------+
| .. data:: CAN | Cancel |
+---------------+----------------------------------------------+
| .. data:: EM | End of medium |
+---------------+----------------------------------------------+
| .. data:: SUB | Substitute |
+---------------+----------------------------------------------+
| .. data:: ESC | Escape |
+---------------+----------------------------------------------+
| .. data:: FS | File separator |
+---------------+----------------------------------------------+
| .. data:: GS | Group separator |
+---------------+----------------------------------------------+
| .. data:: RS | Record separator, block-mode terminator |
+---------------+----------------------------------------------+
| .. data:: US | Unit separator |
+---------------+----------------------------------------------+
| .. data:: SP | Space |
+---------------+----------------------------------------------+
| .. data:: DEL | Delete |
+---------------+----------------------------------------------+
Note that many of these have little practical significance in modern usage. The
mnemonics derive from teleprinter conventions that predate digital computers.

View File

@ -107,7 +107,7 @@ The module :mod:`curses` defines the following functions:
Return the attribute value for displaying text in the specified color pair.
Only the first 256 color pairs are supported. This
attribute value can be combined with :const:`A_STANDOUT`, :const:`A_REVERSE`,
and the other :const:`A_\*` attributes. :func:`pair_number` is the counterpart
and the other :const:`!A_\*` attributes. :func:`pair_number` is the counterpart
to this function.
@ -223,7 +223,7 @@ The module :mod:`curses` defines the following functions:
.. function:: getwin(file)
Read window related data stored in the file by an earlier :func:`putwin` call.
Read window related data stored in the file by an earlier :func:`window.putwin` call.
The routine then creates and initializes a new window using that data, returning
the new window object.
@ -1323,9 +1323,9 @@ The :mod:`curses` module defines the following data members:
.. data:: version
.. data:: __version__
A bytes object representing the current version of the module. Also available as
:const:`__version__`.
A bytes object representing the current version of the module.
.. data:: ncurses_version
@ -1339,51 +1339,55 @@ The :mod:`curses` module defines the following data members:
.. versionadded:: 3.8
.. data:: COLORS
The maximum number of colors the terminal can support.
.. data:: COLOR_PAIRS
The maximum number of color pairs the terminal can support.
Some constants are available to specify character cell attributes.
The exact constants available are system dependent.
+------------------+-------------------------------+
| Attribute | Meaning |
+==================+===============================+
| ``A_ALTCHARSET`` | Alternate character set mode |
+------------------+-------------------------------+
| ``A_BLINK`` | Blink mode |
+------------------+-------------------------------+
| ``A_BOLD`` | Bold mode |
+------------------+-------------------------------+
| ``A_DIM`` | Dim mode |
+------------------+-------------------------------+
| ``A_INVIS`` | Invisible or blank mode |
+------------------+-------------------------------+
| ``A_ITALIC`` | Italic mode |
+------------------+-------------------------------+
| ``A_NORMAL`` | Normal attribute |
+------------------+-------------------------------+
| ``A_PROTECT`` | Protected mode |
+------------------+-------------------------------+
| ``A_REVERSE`` | Reverse background and |
| | foreground colors |
+------------------+-------------------------------+
| ``A_STANDOUT`` | Standout mode |
+------------------+-------------------------------+
| ``A_UNDERLINE`` | Underline mode |
+------------------+-------------------------------+
| ``A_HORIZONTAL`` | Horizontal highlight |
+------------------+-------------------------------+
| ``A_LEFT`` | Left highlight |
+------------------+-------------------------------+
| ``A_LOW`` | Low highlight |
+------------------+-------------------------------+
| ``A_RIGHT`` | Right highlight |
+------------------+-------------------------------+
| ``A_TOP`` | Top highlight |
+------------------+-------------------------------+
| ``A_VERTICAL`` | Vertical highlight |
+------------------+-------------------------------+
| ``A_CHARTEXT`` | Bit-mask to extract a |
| | character |
+------------------+-------------------------------+
+------------------------+-------------------------------+
| Attribute | Meaning |
+========================+===============================+
| .. data:: A_ALTCHARSET | Alternate character set mode |
+------------------------+-------------------------------+
| .. data:: A_BLINK | Blink mode |
+------------------------+-------------------------------+
| .. data:: A_BOLD | Bold mode |
+------------------------+-------------------------------+
| .. data:: A_DIM | Dim mode |
+------------------------+-------------------------------+
| .. data:: A_INVIS | Invisible or blank mode |
+------------------------+-------------------------------+
| .. data:: A_ITALIC | Italic mode |
+------------------------+-------------------------------+
| .. data:: A_NORMAL | Normal attribute |
+------------------------+-------------------------------+
| .. data:: A_PROTECT | Protected mode |
+------------------------+-------------------------------+
| .. data:: A_REVERSE | Reverse background and |
| | foreground colors |
+------------------------+-------------------------------+
| .. data:: A_STANDOUT | Standout mode |
+------------------------+-------------------------------+
| .. data:: A_UNDERLINE | Underline mode |
+------------------------+-------------------------------+
| .. data:: A_HORIZONTAL | Horizontal highlight |
+------------------------+-------------------------------+
| .. data:: A_LEFT | Left highlight |
+------------------------+-------------------------------+
| .. data:: A_LOW | Low highlight |
+------------------------+-------------------------------+
| .. data:: A_RIGHT | Right highlight |
+------------------------+-------------------------------+
| .. data:: A_TOP | Top highlight |
+------------------------+-------------------------------+
| .. data:: A_VERTICAL | Vertical highlight |
+------------------------+-------------------------------+
.. versionadded:: 3.7
``A_ITALIC`` was added.
@ -1391,220 +1395,220 @@ The exact constants available are system dependent.
Several constants are available to extract corresponding attributes returned
by some methods.
+------------------+-------------------------------+
| Bit-mask | Meaning |
+==================+===============================+
| ``A_ATTRIBUTES`` | Bit-mask to extract |
| | attributes |
+------------------+-------------------------------+
| ``A_CHARTEXT`` | Bit-mask to extract a |
| | character |
+------------------+-------------------------------+
| ``A_COLOR`` | Bit-mask to extract |
| | color-pair field information |
+------------------+-------------------------------+
+-------------------------+-------------------------------+
| Bit-mask | Meaning |
+=========================+===============================+
| .. data:: A_ATTRIBUTES | Bit-mask to extract |
| | attributes |
+-------------------------+-------------------------------+
| .. data:: A_CHARTEXT | Bit-mask to extract a |
| | character |
+-------------------------+-------------------------------+
| .. data:: A_COLOR | Bit-mask to extract |
| | color-pair field information |
+-------------------------+-------------------------------+
Keys are referred to by integer constants with names starting with ``KEY_``.
The exact keycaps available are system dependent.
.. XXX this table is far too large! should it be alphabetized?
+-------------------+--------------------------------------------+
| Key constant | Key |
+===================+============================================+
| ``KEY_MIN`` | Minimum key value |
+-------------------+--------------------------------------------+
| ``KEY_BREAK`` | Break key (unreliable) |
+-------------------+--------------------------------------------+
| ``KEY_DOWN`` | Down-arrow |
+-------------------+--------------------------------------------+
| ``KEY_UP`` | Up-arrow |
+-------------------+--------------------------------------------+
| ``KEY_LEFT`` | Left-arrow |
+-------------------+--------------------------------------------+
| ``KEY_RIGHT`` | Right-arrow |
+-------------------+--------------------------------------------+
| ``KEY_HOME`` | Home key (upward+left arrow) |
+-------------------+--------------------------------------------+
| ``KEY_BACKSPACE`` | Backspace (unreliable) |
+-------------------+--------------------------------------------+
| ``KEY_F0`` | Function keys. Up to 64 function keys are |
| | supported. |
+-------------------+--------------------------------------------+
| ``KEY_Fn`` | Value of function key *n* |
+-------------------+--------------------------------------------+
| ``KEY_DL`` | Delete line |
+-------------------+--------------------------------------------+
| ``KEY_IL`` | Insert line |
+-------------------+--------------------------------------------+
| ``KEY_DC`` | Delete character |
+-------------------+--------------------------------------------+
| ``KEY_IC`` | Insert char or enter insert mode |
+-------------------+--------------------------------------------+
| ``KEY_EIC`` | Exit insert char mode |
+-------------------+--------------------------------------------+
| ``KEY_CLEAR`` | Clear screen |
+-------------------+--------------------------------------------+
| ``KEY_EOS`` | Clear to end of screen |
+-------------------+--------------------------------------------+
| ``KEY_EOL`` | Clear to end of line |
+-------------------+--------------------------------------------+
| ``KEY_SF`` | Scroll 1 line forward |
+-------------------+--------------------------------------------+
| ``KEY_SR`` | Scroll 1 line backward (reverse) |
+-------------------+--------------------------------------------+
| ``KEY_NPAGE`` | Next page |
+-------------------+--------------------------------------------+
| ``KEY_PPAGE`` | Previous page |
+-------------------+--------------------------------------------+
| ``KEY_STAB`` | Set tab |
+-------------------+--------------------------------------------+
| ``KEY_CTAB`` | Clear tab |
+-------------------+--------------------------------------------+
| ``KEY_CATAB`` | Clear all tabs |
+-------------------+--------------------------------------------+
| ``KEY_ENTER`` | Enter or send (unreliable) |
+-------------------+--------------------------------------------+
| ``KEY_SRESET`` | Soft (partial) reset (unreliable) |
+-------------------+--------------------------------------------+
| ``KEY_RESET`` | Reset or hard reset (unreliable) |
+-------------------+--------------------------------------------+
| ``KEY_PRINT`` | Print |
+-------------------+--------------------------------------------+
| ``KEY_LL`` | Home down or bottom (lower left) |
+-------------------+--------------------------------------------+
| ``KEY_A1`` | Upper left of keypad |
+-------------------+--------------------------------------------+
| ``KEY_A3`` | Upper right of keypad |
+-------------------+--------------------------------------------+
| ``KEY_B2`` | Center of keypad |
+-------------------+--------------------------------------------+
| ``KEY_C1`` | Lower left of keypad |
+-------------------+--------------------------------------------+
| ``KEY_C3`` | Lower right of keypad |
+-------------------+--------------------------------------------+
| ``KEY_BTAB`` | Back tab |
+-------------------+--------------------------------------------+
| ``KEY_BEG`` | Beg (beginning) |
+-------------------+--------------------------------------------+
| ``KEY_CANCEL`` | Cancel |
+-------------------+--------------------------------------------+
| ``KEY_CLOSE`` | Close |
+-------------------+--------------------------------------------+
| ``KEY_COMMAND`` | Cmd (command) |
+-------------------+--------------------------------------------+
| ``KEY_COPY`` | Copy |
+-------------------+--------------------------------------------+
| ``KEY_CREATE`` | Create |
+-------------------+--------------------------------------------+
| ``KEY_END`` | End |
+-------------------+--------------------------------------------+
| ``KEY_EXIT`` | Exit |
+-------------------+--------------------------------------------+
| ``KEY_FIND`` | Find |
+-------------------+--------------------------------------------+
| ``KEY_HELP`` | Help |
+-------------------+--------------------------------------------+
| ``KEY_MARK`` | Mark |
+-------------------+--------------------------------------------+
| ``KEY_MESSAGE`` | Message |
+-------------------+--------------------------------------------+
| ``KEY_MOVE`` | Move |
+-------------------+--------------------------------------------+
| ``KEY_NEXT`` | Next |
+-------------------+--------------------------------------------+
| ``KEY_OPEN`` | Open |
+-------------------+--------------------------------------------+
| ``KEY_OPTIONS`` | Options |
+-------------------+--------------------------------------------+
| ``KEY_PREVIOUS`` | Prev (previous) |
+-------------------+--------------------------------------------+
| ``KEY_REDO`` | Redo |
+-------------------+--------------------------------------------+
| ``KEY_REFERENCE`` | Ref (reference) |
+-------------------+--------------------------------------------+
| ``KEY_REFRESH`` | Refresh |
+-------------------+--------------------------------------------+
| ``KEY_REPLACE`` | Replace |
+-------------------+--------------------------------------------+
| ``KEY_RESTART`` | Restart |
+-------------------+--------------------------------------------+
| ``KEY_RESUME`` | Resume |
+-------------------+--------------------------------------------+
| ``KEY_SAVE`` | Save |
+-------------------+--------------------------------------------+
| ``KEY_SBEG`` | Shifted Beg (beginning) |
+-------------------+--------------------------------------------+
| ``KEY_SCANCEL`` | Shifted Cancel |
+-------------------+--------------------------------------------+
| ``KEY_SCOMMAND`` | Shifted Command |
+-------------------+--------------------------------------------+
| ``KEY_SCOPY`` | Shifted Copy |
+-------------------+--------------------------------------------+
| ``KEY_SCREATE`` | Shifted Create |
+-------------------+--------------------------------------------+
| ``KEY_SDC`` | Shifted Delete char |
+-------------------+--------------------------------------------+
| ``KEY_SDL`` | Shifted Delete line |
+-------------------+--------------------------------------------+
| ``KEY_SELECT`` | Select |
+-------------------+--------------------------------------------+
| ``KEY_SEND`` | Shifted End |
+-------------------+--------------------------------------------+
| ``KEY_SEOL`` | Shifted Clear line |
+-------------------+--------------------------------------------+
| ``KEY_SEXIT`` | Shifted Exit |
+-------------------+--------------------------------------------+
| ``KEY_SFIND`` | Shifted Find |
+-------------------+--------------------------------------------+
| ``KEY_SHELP`` | Shifted Help |
+-------------------+--------------------------------------------+
| ``KEY_SHOME`` | Shifted Home |
+-------------------+--------------------------------------------+
| ``KEY_SIC`` | Shifted Input |
+-------------------+--------------------------------------------+
| ``KEY_SLEFT`` | Shifted Left arrow |
+-------------------+--------------------------------------------+
| ``KEY_SMESSAGE`` | Shifted Message |
+-------------------+--------------------------------------------+
| ``KEY_SMOVE`` | Shifted Move |
+-------------------+--------------------------------------------+
| ``KEY_SNEXT`` | Shifted Next |
+-------------------+--------------------------------------------+
| ``KEY_SOPTIONS`` | Shifted Options |
+-------------------+--------------------------------------------+
| ``KEY_SPREVIOUS`` | Shifted Prev |
+-------------------+--------------------------------------------+
| ``KEY_SPRINT`` | Shifted Print |
+-------------------+--------------------------------------------+
| ``KEY_SREDO`` | Shifted Redo |
+-------------------+--------------------------------------------+
| ``KEY_SREPLACE`` | Shifted Replace |
+-------------------+--------------------------------------------+
| ``KEY_SRIGHT`` | Shifted Right arrow |
+-------------------+--------------------------------------------+
| ``KEY_SRSUME`` | Shifted Resume |
+-------------------+--------------------------------------------+
| ``KEY_SSAVE`` | Shifted Save |
+-------------------+--------------------------------------------+
| ``KEY_SSUSPEND`` | Shifted Suspend |
+-------------------+--------------------------------------------+
| ``KEY_SUNDO`` | Shifted Undo |
+-------------------+--------------------------------------------+
| ``KEY_SUSPEND`` | Suspend |
+-------------------+--------------------------------------------+
| ``KEY_UNDO`` | Undo |
+-------------------+--------------------------------------------+
| ``KEY_MOUSE`` | Mouse event has occurred |
+-------------------+--------------------------------------------+
| ``KEY_RESIZE`` | Terminal resize event |
+-------------------+--------------------------------------------+
| ``KEY_MAX`` | Maximum key value |
+-------------------+--------------------------------------------+
+-------------------------+--------------------------------------------+
| Key constant | Key |
+=========================+============================================+
| .. data:: KEY_MIN | Minimum key value |
+-------------------------+--------------------------------------------+
| .. data:: KEY_BREAK | Break key (unreliable) |
+-------------------------+--------------------------------------------+
| .. data:: KEY_DOWN | Down-arrow |
+-------------------------+--------------------------------------------+
| .. data:: KEY_UP | Up-arrow |
+-------------------------+--------------------------------------------+
| .. data:: KEY_LEFT | Left-arrow |
+-------------------------+--------------------------------------------+
| .. data:: KEY_RIGHT | Right-arrow |
+-------------------------+--------------------------------------------+
| .. data:: KEY_HOME | Home key (upward+left arrow) |
+-------------------------+--------------------------------------------+
| .. data:: KEY_BACKSPACE | Backspace (unreliable) |
+-------------------------+--------------------------------------------+
| .. data:: KEY_F0 | Function keys. Up to 64 function keys are |
| | supported. |
+-------------------------+--------------------------------------------+
| .. data:: KEY_Fn | Value of function key *n* |
+-------------------------+--------------------------------------------+
| .. data:: KEY_DL | Delete line |
+-------------------------+--------------------------------------------+
| .. data:: KEY_IL | Insert line |
+-------------------------+--------------------------------------------+
| .. data:: KEY_DC | Delete character |
+-------------------------+--------------------------------------------+
| .. data:: KEY_IC | Insert char or enter insert mode |
+-------------------------+--------------------------------------------+
| .. data:: KEY_EIC | Exit insert char mode |
+-------------------------+--------------------------------------------+
| .. data:: KEY_CLEAR | Clear screen |
+-------------------------+--------------------------------------------+
| .. data:: KEY_EOS | Clear to end of screen |
+-------------------------+--------------------------------------------+
| .. data:: KEY_EOL | Clear to end of line |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SF | Scroll 1 line forward |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SR | Scroll 1 line backward (reverse) |
+-------------------------+--------------------------------------------+
| .. data:: KEY_NPAGE | Next page |
+-------------------------+--------------------------------------------+
| .. data:: KEY_PPAGE | Previous page |
+-------------------------+--------------------------------------------+
| .. data:: KEY_STAB | Set tab |
+-------------------------+--------------------------------------------+
| .. data:: KEY_CTAB | Clear tab |
+-------------------------+--------------------------------------------+
| .. data:: KEY_CATAB | Clear all tabs |
+-------------------------+--------------------------------------------+
| .. data:: KEY_ENTER | Enter or send (unreliable) |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SRESET | Soft (partial) reset (unreliable) |
+-------------------------+--------------------------------------------+
| .. data:: KEY_RESET | Reset or hard reset (unreliable) |
+-------------------------+--------------------------------------------+
| .. data:: KEY_PRINT | Print |
+-------------------------+--------------------------------------------+
| .. data:: KEY_LL | Home down or bottom (lower left) |
+-------------------------+--------------------------------------------+
| .. data:: KEY_A1 | Upper left of keypad |
+-------------------------+--------------------------------------------+
| .. data:: KEY_A3 | Upper right of keypad |
+-------------------------+--------------------------------------------+
| .. data:: KEY_B2 | Center of keypad |
+-------------------------+--------------------------------------------+
| .. data:: KEY_C1 | Lower left of keypad |
+-------------------------+--------------------------------------------+
| .. data:: KEY_C3 | Lower right of keypad |
+-------------------------+--------------------------------------------+
| .. data:: KEY_BTAB | Back tab |
+-------------------------+--------------------------------------------+
| .. data:: KEY_BEG | Beg (beginning) |
+-------------------------+--------------------------------------------+
| .. data:: KEY_CANCEL | Cancel |
+-------------------------+--------------------------------------------+
| .. data:: KEY_CLOSE | Close |
+-------------------------+--------------------------------------------+
| .. data:: KEY_COMMAND | Cmd (command) |
+-------------------------+--------------------------------------------+
| .. data:: KEY_COPY | Copy |
+-------------------------+--------------------------------------------+
| .. data:: KEY_CREATE | Create |
+-------------------------+--------------------------------------------+
| .. data:: KEY_END | End |
+-------------------------+--------------------------------------------+
| .. data:: KEY_EXIT | Exit |
+-------------------------+--------------------------------------------+
| .. data:: KEY_FIND | Find |
+-------------------------+--------------------------------------------+
| .. data:: KEY_HELP | Help |
+-------------------------+--------------------------------------------+
| .. data:: KEY_MARK | Mark |
+-------------------------+--------------------------------------------+
| .. data:: KEY_MESSAGE | Message |
+-------------------------+--------------------------------------------+
| .. data:: KEY_MOVE | Move |
+-------------------------+--------------------------------------------+
| .. data:: KEY_NEXT | Next |
+-------------------------+--------------------------------------------+
| .. data:: KEY_OPEN | Open |
+-------------------------+--------------------------------------------+
| .. data:: KEY_OPTIONS | Options |
+-------------------------+--------------------------------------------+
| .. data:: KEY_PREVIOUS | Prev (previous) |
+-------------------------+--------------------------------------------+
| .. data:: KEY_REDO | Redo |
+-------------------------+--------------------------------------------+
| .. data:: KEY_REFERENCE | Ref (reference) |
+-------------------------+--------------------------------------------+
| .. data:: KEY_REFRESH | Refresh |
+-------------------------+--------------------------------------------+
| .. data:: KEY_REPLACE | Replace |
+-------------------------+--------------------------------------------+
| .. data:: KEY_RESTART | Restart |
+-------------------------+--------------------------------------------+
| .. data:: KEY_RESUME | Resume |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SAVE | Save |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SBEG | Shifted Beg (beginning) |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SCANCEL | Shifted Cancel |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SCOMMAND | Shifted Command |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SCOPY | Shifted Copy |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SCREATE | Shifted Create |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SDC | Shifted Delete char |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SDL | Shifted Delete line |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SELECT | Select |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SEND | Shifted End |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SEOL | Shifted Clear line |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SEXIT | Shifted Exit |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SFIND | Shifted Find |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SHELP | Shifted Help |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SHOME | Shifted Home |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SIC | Shifted Input |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SLEFT | Shifted Left arrow |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SMESSAGE | Shifted Message |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SMOVE | Shifted Move |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SNEXT | Shifted Next |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SOPTIONS | Shifted Options |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SPREVIOUS | Shifted Prev |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SPRINT | Shifted Print |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SREDO | Shifted Redo |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SREPLACE | Shifted Replace |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SRIGHT | Shifted Right arrow |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SRSUME | Shifted Resume |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SSAVE | Shifted Save |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SSUSPEND | Shifted Suspend |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SUNDO | Shifted Undo |
+-------------------------+--------------------------------------------+
| .. data:: KEY_SUSPEND | Suspend |
+-------------------------+--------------------------------------------+
| .. data:: KEY_UNDO | Undo |
+-------------------------+--------------------------------------------+
| .. data:: KEY_MOUSE | Mouse event has occurred |
+-------------------------+--------------------------------------------+
| .. data:: KEY_RESIZE | Terminal resize event |
+-------------------------+--------------------------------------------+
| .. data:: KEY_MAX | Maximum key value |
+-------------------------+--------------------------------------------+
On VT100s and their software emulations, such as X terminal emulators, there are
normally at least four function keys (:const:`KEY_F1`, :const:`KEY_F2`,
:const:`KEY_F3`, :const:`KEY_F4`) available, and the arrow keys mapped to
normally at least four function keys (:const:`KEY_F1 <KEY_Fn>`, :const:`KEY_F2 <KEY_Fn>`,
:const:`KEY_F3 <KEY_Fn>`, :const:`KEY_F4 <KEY_Fn>`) available, and the arrow keys mapped to
:const:`KEY_UP`, :const:`KEY_DOWN`, :const:`KEY_LEFT` and :const:`KEY_RIGHT` in
the obvious way. If your machine has a PC keyboard, it is safe to expect arrow
keys and twelve function keys (older PC keyboards may have only ten function
@ -1635,117 +1639,143 @@ falls back on a crude printable ASCII approximation.
These are available only after :func:`initscr` has been called.
+------------------+------------------------------------------+
| ACS code | Meaning |
+==================+==========================================+
| ``ACS_BBSS`` | alternate name for upper right corner |
+------------------+------------------------------------------+
| ``ACS_BLOCK`` | solid square block |
+------------------+------------------------------------------+
| ``ACS_BOARD`` | board of squares |
+------------------+------------------------------------------+
| ``ACS_BSBS`` | alternate name for horizontal line |
+------------------+------------------------------------------+
| ``ACS_BSSB`` | alternate name for upper left corner |
+------------------+------------------------------------------+
| ``ACS_BSSS`` | alternate name for top tee |
+------------------+------------------------------------------+
| ``ACS_BTEE`` | bottom tee |
+------------------+------------------------------------------+
| ``ACS_BULLET`` | bullet |
+------------------+------------------------------------------+
| ``ACS_CKBOARD`` | checker board (stipple) |
+------------------+------------------------------------------+
| ``ACS_DARROW`` | arrow pointing down |
+------------------+------------------------------------------+
| ``ACS_DEGREE`` | degree symbol |
+------------------+------------------------------------------+
| ``ACS_DIAMOND`` | diamond |
+------------------+------------------------------------------+
| ``ACS_GEQUAL`` | greater-than-or-equal-to |
+------------------+------------------------------------------+
| ``ACS_HLINE`` | horizontal line |
+------------------+------------------------------------------+
| ``ACS_LANTERN`` | lantern symbol |
+------------------+------------------------------------------+
| ``ACS_LARROW`` | left arrow |
+------------------+------------------------------------------+
| ``ACS_LEQUAL`` | less-than-or-equal-to |
+------------------+------------------------------------------+
| ``ACS_LLCORNER`` | lower left-hand corner |
+------------------+------------------------------------------+
| ``ACS_LRCORNER`` | lower right-hand corner |
+------------------+------------------------------------------+
| ``ACS_LTEE`` | left tee |
+------------------+------------------------------------------+
| ``ACS_NEQUAL`` | not-equal sign |
+------------------+------------------------------------------+
| ``ACS_PI`` | letter pi |
+------------------+------------------------------------------+
| ``ACS_PLMINUS`` | plus-or-minus sign |
+------------------+------------------------------------------+
| ``ACS_PLUS`` | big plus sign |
+------------------+------------------------------------------+
| ``ACS_RARROW`` | right arrow |
+------------------+------------------------------------------+
| ``ACS_RTEE`` | right tee |
+------------------+------------------------------------------+
| ``ACS_S1`` | scan line 1 |
+------------------+------------------------------------------+
| ``ACS_S3`` | scan line 3 |
+------------------+------------------------------------------+
| ``ACS_S7`` | scan line 7 |
+------------------+------------------------------------------+
| ``ACS_S9`` | scan line 9 |
+------------------+------------------------------------------+
| ``ACS_SBBS`` | alternate name for lower right corner |
+------------------+------------------------------------------+
| ``ACS_SBSB`` | alternate name for vertical line |
+------------------+------------------------------------------+
| ``ACS_SBSS`` | alternate name for right tee |
+------------------+------------------------------------------+
| ``ACS_SSBB`` | alternate name for lower left corner |
+------------------+------------------------------------------+
| ``ACS_SSBS`` | alternate name for bottom tee |
+------------------+------------------------------------------+
| ``ACS_SSSB`` | alternate name for left tee |
+------------------+------------------------------------------+
| ``ACS_SSSS`` | alternate name for crossover or big plus |
+------------------+------------------------------------------+
| ``ACS_STERLING`` | pound sterling |
+------------------+------------------------------------------+
| ``ACS_TTEE`` | top tee |
+------------------+------------------------------------------+
| ``ACS_UARROW`` | up arrow |
+------------------+------------------------------------------+
| ``ACS_ULCORNER`` | upper left corner |
+------------------+------------------------------------------+
| ``ACS_URCORNER`` | upper right corner |
+------------------+------------------------------------------+
| ``ACS_VLINE`` | vertical line |
+------------------+------------------------------------------+
+------------------------+------------------------------------------+
| ACS code | Meaning |
+========================+==========================================+
| .. data:: ACS_BBSS | alternate name for upper right corner |
+------------------------+------------------------------------------+
| .. data:: ACS_BLOCK | solid square block |
+------------------------+------------------------------------------+
| .. data:: ACS_BOARD | board of squares |
+------------------------+------------------------------------------+
| .. data:: ACS_BSBS | alternate name for horizontal line |
+------------------------+------------------------------------------+
| .. data:: ACS_BSSB | alternate name for upper left corner |
+------------------------+------------------------------------------+
| .. data:: ACS_BSSS | alternate name for top tee |
+------------------------+------------------------------------------+
| .. data:: ACS_BTEE | bottom tee |
+------------------------+------------------------------------------+
| .. data:: ACS_BULLET | bullet |
+------------------------+------------------------------------------+
| .. data:: ACS_CKBOARD | checker board (stipple) |
+------------------------+------------------------------------------+
| .. data:: ACS_DARROW | arrow pointing down |
+------------------------+------------------------------------------+
| .. data:: ACS_DEGREE | degree symbol |
+------------------------+------------------------------------------+
| .. data:: ACS_DIAMOND | diamond |
+------------------------+------------------------------------------+
| .. data:: ACS_GEQUAL | greater-than-or-equal-to |
+------------------------+------------------------------------------+
| .. data:: ACS_HLINE | horizontal line |
+------------------------+------------------------------------------+
| .. data:: ACS_LANTERN | lantern symbol |
+------------------------+------------------------------------------+
| .. data:: ACS_LARROW | left arrow |
+------------------------+------------------------------------------+
| .. data:: ACS_LEQUAL | less-than-or-equal-to |
+------------------------+------------------------------------------+
| .. data:: ACS_LLCORNER | lower left-hand corner |
+------------------------+------------------------------------------+
| .. data:: ACS_LRCORNER | lower right-hand corner |
+------------------------+------------------------------------------+
| .. data:: ACS_LTEE | left tee |
+------------------------+------------------------------------------+
| .. data:: ACS_NEQUAL | not-equal sign |
+------------------------+------------------------------------------+
| .. data:: ACS_PI | letter pi |
+------------------------+------------------------------------------+
| .. data:: ACS_PLMINUS | plus-or-minus sign |
+------------------------+------------------------------------------+
| .. data:: ACS_PLUS | big plus sign |
+------------------------+------------------------------------------+
| .. data:: ACS_RARROW | right arrow |
+------------------------+------------------------------------------+
| .. data:: ACS_RTEE | right tee |
+------------------------+------------------------------------------+
| .. data:: ACS_S1 | scan line 1 |
+------------------------+------------------------------------------+
| .. data:: ACS_S3 | scan line 3 |
+------------------------+------------------------------------------+
| .. data:: ACS_S7 | scan line 7 |
+------------------------+------------------------------------------+
| .. data:: ACS_S9 | scan line 9 |
+------------------------+------------------------------------------+
| .. data:: ACS_SBBS | alternate name for lower right corner |
+------------------------+------------------------------------------+
| .. data:: ACS_SBSB | alternate name for vertical line |
+------------------------+------------------------------------------+
| .. data:: ACS_SBSS | alternate name for right tee |
+------------------------+------------------------------------------+
| .. data:: ACS_SSBB | alternate name for lower left corner |
+------------------------+------------------------------------------+
| .. data:: ACS_SSBS | alternate name for bottom tee |
+------------------------+------------------------------------------+
| .. data:: ACS_SSSB | alternate name for left tee |
+------------------------+------------------------------------------+
| .. data:: ACS_SSSS | alternate name for crossover or big plus |
+------------------------+------------------------------------------+
| .. data:: ACS_STERLING | pound sterling |
+------------------------+------------------------------------------+
| .. data:: ACS_TTEE | top tee |
+------------------------+------------------------------------------+
| .. data:: ACS_UARROW | up arrow |
+------------------------+------------------------------------------+
| .. data:: ACS_ULCORNER | upper left corner |
+------------------------+------------------------------------------+
| .. data:: ACS_URCORNER | upper right corner |
+------------------------+------------------------------------------+
| .. data:: ACS_VLINE | vertical line |
+------------------------+------------------------------------------+
The following table lists mouse button constants used by :meth:`getmouse`:
+----------------------------------+---------------------------------------------+
| Mouse button constant | Meaning |
+==================================+=============================================+
| .. data:: BUTTONn_PRESSED | Mouse button *n* pressed |
+----------------------------------+---------------------------------------------+
| .. data:: BUTTONn_RELEASED | Mouse button *n* released |
+----------------------------------+---------------------------------------------+
| .. data:: BUTTONn_CLICKED | Mouse button *n* clicked |
+----------------------------------+---------------------------------------------+
| .. data:: BUTTONn_DOUBLE_CLICKED | Mouse button *n* double clicked |
+----------------------------------+---------------------------------------------+
| .. data:: BUTTONn_TRIPLE_CLICKED | Mouse button *n* triple clicked |
+----------------------------------+---------------------------------------------+
| .. data:: BUTTON_SHIFT | Shift was down during button state change |
+----------------------------------+---------------------------------------------+
| .. data:: BUTTON_CTRL | Control was down during button state change |
+----------------------------------+---------------------------------------------+
| .. data:: BUTTON_ALT | Control was down during button state change |
+----------------------------------+---------------------------------------------+
.. versionchanged:: 3.10
The ``BUTTON5_*`` constants are now exposed if they are provided by the
underlying curses library.
The following table lists the predefined colors:
+-------------------+----------------------------+
| Constant | Color |
+===================+============================+
| ``COLOR_BLACK`` | Black |
+-------------------+----------------------------+
| ``COLOR_BLUE`` | Blue |
+-------------------+----------------------------+
| ``COLOR_CYAN`` | Cyan (light greenish blue) |
+-------------------+----------------------------+
| ``COLOR_GREEN`` | Green |
+-------------------+----------------------------+
| ``COLOR_MAGENTA`` | Magenta (purplish red) |
+-------------------+----------------------------+
| ``COLOR_RED`` | Red |
+-------------------+----------------------------+
| ``COLOR_WHITE`` | White |
+-------------------+----------------------------+
| ``COLOR_YELLOW`` | Yellow |
+-------------------+----------------------------+
+-------------------------+----------------------------+
| Constant | Color |
+=========================+============================+
| .. data:: COLOR_BLACK | Black |
+-------------------------+----------------------------+
| .. data:: COLOR_BLUE | Blue |
+-------------------------+----------------------------+
| .. data:: COLOR_CYAN | Cyan (light greenish blue) |
+-------------------------+----------------------------+
| .. data:: COLOR_GREEN | Green |
+-------------------------+----------------------------+
| .. data:: COLOR_MAGENTA | Magenta (purplish red) |
+-------------------------+----------------------------+
| .. data:: COLOR_RED | Red |
+-------------------------+----------------------------+
| .. data:: COLOR_WHITE | White |
+-------------------------+----------------------------+
| .. data:: COLOR_YELLOW | Yellow |
+-------------------------+----------------------------+
:mod:`curses.textpad` --- Text input widget for curses programs
@ -1851,19 +1881,19 @@ You can instantiate a :class:`Textbox` object as follows:
Move operations do nothing if the cursor is at an edge where the movement
is not possible. The following synonyms are supported where possible:
+------------------------+------------------+
| Constant | Keystroke |
+========================+==================+
| :const:`KEY_LEFT` | :kbd:`Control-B` |
+------------------------+------------------+
| :const:`KEY_RIGHT` | :kbd:`Control-F` |
+------------------------+------------------+
| :const:`KEY_UP` | :kbd:`Control-P` |
+------------------------+------------------+
| :const:`KEY_DOWN` | :kbd:`Control-N` |
+------------------------+------------------+
| :const:`KEY_BACKSPACE` | :kbd:`Control-h` |
+------------------------+------------------+
+--------------------------------+------------------+
| Constant | Keystroke |
+================================+==================+
| :const:`~curses.KEY_LEFT` | :kbd:`Control-B` |
+--------------------------------+------------------+
| :const:`~curses.KEY_RIGHT` | :kbd:`Control-F` |
+--------------------------------+------------------+
| :const:`~curses.KEY_UP` | :kbd:`Control-P` |
+--------------------------------+------------------+
| :const:`~curses.KEY_DOWN` | :kbd:`Control-N` |
+--------------------------------+------------------+
| :const:`~curses.KEY_BACKSPACE` | :kbd:`Control-h` |
+--------------------------------+------------------+
All other keystrokes are treated as a command to insert the given
character and move right (with line wrapping).