/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2024 Thomas E. Dickey *
* Copyright 2005-2017,2018 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* Author: Thomas E. Dickey <dickey@clark.net> 1997 *
****************************************************************************/
/*
- * $Id: ncurses_cfg.hin,v 1.11 2020/02/02 23:34:34 tom Exp $
+ * $Id: ncurses_cfg.hin,v 1.13 2024/06/08 14:04:14 tom Exp $
*
* This is a template-file used to generate the "ncurses_cfg.h" file.
*
*
* See:
* https://invisible-island.net/autoconf/
- * ftp://ftp.invisible-island.net/autoconf/
+ * https://invisible-island.net/archives/autoconf/
*/
#ifndef NC_CONFIG_H
#define NC_CONFIG_H
%define AppVersion MAJOR.MINOR
%define AppRelease YYYYMMDD
%define AppPackage %{AppProgram}-doc
-# $Id: AdaCurses-doc.spec,v 1.7 2019/11/23 21:15:53 tom Exp $
+# $Id: AdaCurses-doc.spec,v 1.8 2024/06/08 13:54:31 tom Exp $
Name: %{AppPackage}
Version: %{AppVersion}
Release: %{AppRelease}
License: MIT
Group: Applications/Development
-URL: ftp://ftp.invisible-island.net/%{AppProgram}
+URL: https://invisible-island.net/%{AppProgram}
Source0: %{AppProgram}-%{AppRelease}.tgz
Packager: Thomas Dickey <dickey@invisible-island.net>
%define AppProgram AdaCurses
%define AppVersion MAJOR.MINOR
%define AppRelease YYYYMMDD
-# $Id: AdaCurses.spec,v 1.33 2024/06/01 22:51:57 tom Exp $
+# $Id: AdaCurses.spec,v 1.34 2024/06/08 13:53:14 tom Exp $
Name: %{AppProgram}
Version: %{AppVersion}
Release: %{AppRelease}
License: MIT
Group: Applications/Development
-URL: ftp://ftp.invisible-island.net/%{AppProgram}
+URL: https://invisible-island.net/%{AppProgram}
Source0: %{AppProgram}-%{AppRelease}.tgz
Packager: Thomas Dickey <dickey@invisible-island.net>
--disable-rpath-link \
--with-shared \
--with-ada-sharedlib \
- --with-screen=ncurses6 \
+ --with-screen=ncursesw6td \
--without-pkg-config
touch configure-stamp
version=3
-opts=passive ftp://ftp.invisible-island.net/AdaCurses/AdaCurses-([\d.]+)\.tgz \
+opts=passive https://invisible-island.net/archives/AdaCurses/AdaCurses-([\d.]+)\.tgz \
debian uupdate
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: INSTALL,v 1.255 2024/05/04 15:54:00 tom Exp $
+-- $Id: INSTALL,v 1.256 2024/06/08 21:06:02 Branden.Robinson Exp $
---------------------------------------------------------------------
How to install Ncurses/Terminfo on your system
---------------------------------------------------------------------
problem.
--enable-bsdpad
- Recognize BSD-style prefix padding. Some ancient BSD programs (such as
- nethack) call tputs("50") to implement delays.
+ Recognize BSD-style prefix padding. Some programs written using
+ the BSD curses API use tputs("50") to implement delays.
--enable-check-size
Compile-in feature to detect screensize for terminals which do not
./package/debian-mingw/compat
./package/debian-mingw/control
./package/debian-mingw/copyright
-./package/debian-mingw/mingw32-ncurses6.lintian-overrides
+./package/debian-mingw/mingw32-ncurses6td.lintian-overrides
./package/debian-mingw/rules
./package/debian-mingw/source/format
./package/debian-mingw/watch
./package/debian-mingw64/compat
./package/debian-mingw64/control
./package/debian-mingw64/copyright
-./package/debian-mingw64/mingw64-ncurses6.lintian-overrides
+./package/debian-mingw64/mingw64-ncurses6td.lintian-overrides
./package/debian-mingw64/rules
./package/debian-mingw64/source/format
./package/debian-mingw64/watch
./package/debian/compat
./package/debian/control
./package/debian/copyright
-./package/debian/ncurses6.lintian-overrides
-./package/debian/ncurses6.triggers
-./package/debian/ncursest6.lintian-overrides
-./package/debian/ncursest6.triggers
+./package/debian/ncurses6td.lintian-overrides
+./package/debian/ncurses6td.triggers
+./package/debian/ncursest6td.lintian-overrides
+./package/debian/ncursest6td.triggers
./package/debian/rules
./package/debian/source/format
./package/debian/watch
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: NEWS,v 1.4131 2024/06/01 22:49:52 tom Exp $
+-- $Id: NEWS,v 1.4134 2024/06/08 21:21:25 tom Exp $
-------------------------------------------------------------------------------
This is a log of changes that ncurses has gone through since Zeyd started
Changes through 1.9.9e did not credit all contributions;
it is not possible to add this information.
+20240608
+ + change winwstr to return wide character count instead of OK (patch
+ by Branden Robinson).
+ + improve formatting/style of manpages (patches by Branden Robinson).
+ + rename testing dpkg's for ncurses6 to resolve a naming conflict with
+ Debian's ncurses packages.
+
20240601
+ improve formatting/style of manpages (patches by Branden Robinson).
+ change Ada95/configure to use --with-screen option rather than
-5:0:10 6.5 20240601
+5:0:10 6.5 20240608
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: dist.mk,v 1.1616 2024/06/01 11:06:41 tom Exp $
+# $Id: dist.mk,v 1.1617 2024/06/08 09:49:40 tom Exp $
# Makefile for creating ncurses distributions.
#
# This only needs to be used directly as a makefile by developers, but
# These define the major/minor/patch versions of ncurses.
NCURSES_MAJOR = 6
NCURSES_MINOR = 5
-NCURSES_PATCH = 20240601
+NCURSES_PATCH = 20240608
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_addch.3x,v 1.90 2024/06/01 22:29:08 tom Exp @
+ * @Id: curs_addch.3x,v 1.92 2024/06/08 20:51:41 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_addch 3x 2024-06-01 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_addch 3x 2024-06-08 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_addch 3x 2024-06-01 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_addch 3x 2024-06-08 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
</PRE><H3><a name="h3-ACS-Symbols">ACS Symbols</a></H3><PRE>
- X/Open Curses states that the <STRONG>ACS_</STRONG> definitions are <EM>char</EM> constants.
-
+ X/Open Curses states that the <STRONG>ACS_</STRONG> definitions are <EM>char</EM> constants.
Some implementations are problematic.
- <STRONG>o</STRONG> Solaris <EM>curses</EM>, for example, defines the ACS symbols as constants;
+ <STRONG>o</STRONG> Solaris <EM>curses</EM>, for example, defines the ACS symbols as constants;
others define them as elements of an array.
- This implementation uses an array, <STRONG>acs_map</STRONG>, as did SVr4 <EM>curses</EM>.
+ This implementation uses an array, <STRONG>acs_map</STRONG>, as did SVr4 <EM>curses</EM>.
NetBSD also uses an array, actually named <STRONG>_acs_char</STRONG>, with a <STRONG>#define</STRONG>
for compatibility.
- <STRONG>o</STRONG> HP-UX <EM>curses</EM> equates some of the <STRONG>ACS_</STRONG> symbols to the analogous
- <STRONG>WACS_</STRONG> symbols as if the <STRONG>ACS_</STRONG> symbols were wide characters (see
- <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>). The misdefined symbols are the arrows and
+ <STRONG>o</STRONG> HP-UX <EM>curses</EM> equates some of the <STRONG>ACS_</STRONG> symbols to the analogous
+ <STRONG>WACS_</STRONG> symbols as if the <STRONG>ACS_</STRONG> symbols were wide characters (see
+ <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>). The misdefined symbols are the arrows and
others that are not used for line drawing.
- <STRONG>o</STRONG> X/Open Curses (Issues 2 through 7) has a typographical error for
- the <STRONG>ACS_LANTERN</STRONG> symbol, equating its "VT100+ Character" to "I"
- (capital I), while the header files for SVr4 <EM>curses</EM> and other
+ <STRONG>o</STRONG> X/Open Curses (Issues 2 through 7) has a typographical error for
+ the <STRONG>ACS_LANTERN</STRONG> symbol, equating its "VT100+ Character" to "I"
+ (capital I), while the header files for SVr4 <EM>curses</EM> and other
implementations use "i" (small i).
- None of the terminal descriptions on Unix platforms use uppercase
- I, except for Solaris (in its <EM>terminfo</EM> entry for <STRONG>screen(1)</STRONG>,
- apparently based on the X/Open documentation around 1995). On the
- other hand, its <STRONG>gs6300</STRONG> (AT&T PC6300 with EMOTS Terminal Emulator)
+ None of the terminal descriptions on Unix platforms use uppercase
+ I, except for Solaris (in its <EM>terminfo</EM> entry for <STRONG>screen(1)</STRONG>,
+ apparently based on the X/Open documentation around 1995). On the
+ other hand, its <STRONG>gs6300</STRONG> (AT&T PC6300 with EMOTS Terminal Emulator)
description uses lowercase i.
- Some ACS symbols (<STRONG>ACS_S3</STRONG>, <STRONG>ACS_S7</STRONG>, <STRONG>ACS_LEQUAL</STRONG>, <STRONG>ACS_GEQUAL</STRONG>, <STRONG>ACS_PI</STRONG>,
- <STRONG>ACS_NEQUAL</STRONG>, and <STRONG>ACS_STERLING</STRONG>) were not documented in any publicly
- released System V. However, many publicly available <EM>terminfo</EM> entries
- include <STRONG>acsc</STRONG> capabilities in which their key characters (<STRONG>pryz{|}</STRONG>) are
- embedded, and a second-hand list of their character descriptions has
- come to light. The <EM>ncurses</EM> developers invented ACS-prefixed names for
+ Some ACS symbols (<STRONG>ACS_S3</STRONG>, <STRONG>ACS_S7</STRONG>, <STRONG>ACS_LEQUAL</STRONG>, <STRONG>ACS_GEQUAL</STRONG>, <STRONG>ACS_PI</STRONG>,
+ <STRONG>ACS_NEQUAL</STRONG>, and <STRONG>ACS_STERLING</STRONG>) were not documented in any publicly
+ released System V. However, many publicly available <EM>terminfo</EM> entries
+ include <STRONG>acsc</STRONG> capabilities in which their key characters (<STRONG>pryz{|}</STRONG>) are
+ embedded, and a second-hand list of their character descriptions has
+ come to light. The <EM>ncurses</EM> developers invented ACS-prefixed names for
them.
The <EM>displayed</EM> values of <STRONG>ACS_</STRONG> constants depend on
<STRONG>o</STRONG> the <EM>ncurses</EM> ABI--for example, wide-character versus non-wide-
- character configurations (the former is capable of displaying
+ character configurations (the former is capable of displaying
Unicode while the latter is not), and
<STRONG>o</STRONG> whether the locale uses UTF-8 encoding.
- In certain cases, the terminal is unable to display forms-drawing
- characters <EM>except</EM> by using UTF-8; see the discussion of the
+ In certain cases, the terminal is unable to display forms-drawing
+ characters <EM>except</EM> by using UTF-8; see the discussion of the
<EM>NCURSES</EM><STRONG>_</STRONG><EM>NO</EM><STRONG>_</STRONG><EM>UTF8</EM><STRONG>_</STRONG><EM>ACS</EM> environment variable in <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>.
</PRE><H3><a name="h3-Character-Set">Character Set</a></H3><PRE>
- X/Open Curses assumes that the parameter passed to <STRONG>waddch</STRONG> contains a
- single character. That character may have been more than eight bits
- wide in an SVr3 or SVr4 implementation, but X/Open Curses leaves the
- width of a non-wide character code unspecified. The standard further
- does not specify the internal structure of a <EM>chtype</EM>, though the use of
- bit operations to combine the character code with attributes and a
+ X/Open Curses assumes that the parameter passed to <STRONG>waddch</STRONG> contains a
+ single character. That character may have been more than eight bits
+ wide in an SVr3 or SVr4 implementation, but X/Open Curses leaves the
+ width of a non-wide character code unspecified. The standard further
+ does not specify the internal structure of a <EM>chtype</EM>, though the use of
+ bit operations to combine the character code with attributes and a
color pair identifier into a <EM>chtype</EM> for passage to <STRONG>waddch</STRONG> is common. A
portable application uses only the macros discussed in <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> to
manipulate a <EM>chtype</EM>.
In <EM>ncurses</EM>, <EM>chtype</EM> holds an eight-bit character, but the library allows
- a multibyte character sequence to be passed via a succession of calls
- to <STRONG>waddch</STRONG>. Other implementations do not; a <STRONG>waddch</STRONG> call transmits
- exactly one character, which may be rendered in one or more screen
- locations depending on whether it is printable (see <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG>).
- Depending on the locale, <EM>ncurses</EM> inspects the byte passed in each
- <STRONG>waddch</STRONG> call and checks whether the latest call continues a multibyte
- character. When a character is <EM>complete</EM>, <EM>ncurses</EM> displays the
- character and advances the cursor. If the calling application
+ a multibyte character sequence to be passed via a succession of calls
+ to <STRONG>waddch</STRONG>. Other implementations do not; a <STRONG>waddch</STRONG> call transmits
+ exactly one character, which may be rendered in one or more screen
+ locations depending on whether it is printable (see <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG>).
+ Depending on the locale, <EM>ncurses</EM> inspects the byte passed in each
+ <STRONG>waddch</STRONG> call and checks whether the latest call continues a multibyte
+ character. When a character is <EM>complete</EM>, <EM>ncurses</EM> displays the
+ character and advances the cursor. If the calling application
interrupts the succession of bytes in a multibyte character sequence by
- changing the current location--for example, with <STRONG><A HREF="curs_move.3x.html">wmove(3x)</A></STRONG>--<EM>ncurses</EM>
+ changing the current location--for example, with <STRONG><A HREF="curs_move.3x.html">wmove(3x)</A></STRONG>--<EM>ncurses</EM>
discards the incomplete character.
For portability to other implementations, do not rely upon the
- foregoing behavior. Check whether a character can be represented as a
+ foregoing behavior. Check whether a character can be represented as a
single byte in the current locale.
<STRONG>o</STRONG> If it can, call either <STRONG>waddch</STRONG> or <STRONG><A HREF="curs_add_wch.3x.html">wadd_wch(3x)</A></STRONG>.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library
+ <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library
in its wide-character configuration (<EM>ncursesw</EM>).
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>, <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>,
- <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>,
+ <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>,
<STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG>putchar(3)</STRONG>
-ncurses 6.5 2024-06-01 <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
+ncurses 6.5 2024-06-08 <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_get_wch.3x,v 1.41 2024/05/11 20:39:53 tom Exp @
+ * @Id: curs_get_wch.3x,v 1.43 2024/06/08 20:25:25 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_get_wch 3x 2024-05-11 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_get_wch 3x 2024-06-08 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_get_wch 3x 2024-05-11 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_get_wch 3x 2024-06-08 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
If no input is pending, then if the no-delay flag is set in the window
(see <STRONG><A HREF="nodelay.3x.html">nodelay(3x)</A></STRONG>), the function returns <STRONG>ERR</STRONG>; otherwise, <EM>curses</EM> waits
until the terminal has input. If <STRONG><A HREF="curs_inopts.3x.html">cbreak(3x)</A></STRONG> has been called, this
- happens after one character is read. If <STRONG><A HREF="curs_inopts.3x.html">nocbreak(3x)</A></STRONG> has been called,
- it occurs when the next newline is read. If <STRONG><A HREF="curs_inopts.3x.html">halfdelay(3x)</A></STRONG> has been
- called, <EM>curses</EM> waits until input is available or the specified delay
- elapses.
+ happens after one character is read. If <STRONG><A HREF="curs_inopts.3x.html">nocbreak(3x)</A></STRONG> or <STRONG><A HREF="curs_inopts.3x.html">noraw(3x)</A></STRONG> has
+ been called, it occurs when the next newline is read. (Because the
+ terminal's normal or "cooked" mode is line-buffered, multiple <STRONG>wget_wch</STRONG>
+ calls may then be necessary to empty the input queue.) If
+ <STRONG><A HREF="curs_inopts.3x.html">halfdelay(3x)</A></STRONG> has been called, <EM>curses</EM> waits until input is available or
+ the specified delay elapses.
If <STRONG><A HREF="curs_inopts.3x.html">echo(3x)</A></STRONG> has been called, and the window is not a pad, <EM>curses</EM> writes
- <EM>wch</EM> to the window (at the cursor position) per the following rules.
+ the wide character from the input queue to the window (at the cursor
+ position) per the following rules.
- <STRONG>o</STRONG> If <EM>wch</EM> matches the terminal's erase character, the cursor moves
- leftward one position and the new position is erased as if
- <STRONG><A HREF="curs_move.3x.html">wmove(3x)</A></STRONG> and then <STRONG><A HREF="curs_delch.3x.html">wdelch(3x)</A></STRONG> were called. When the window's
- keypad mode is enabled (see below), <STRONG>KEY_LEFT</STRONG> and <STRONG>KEY_BACKSPACE</STRONG> are
- handled the same way.
+ <STRONG>o</STRONG> If the wide character matches the terminal's erase character (see
+ <STRONG><A HREF="curs_termattrs.3x.html">erasewchar(3x)</A></STRONG>), the cursor moves leftward one position and the new
+ position is erased as if <STRONG><A HREF="curs_move.3x.html">wmove(3x)</A></STRONG> and then <STRONG><A HREF="curs_delch.3x.html">wdelch(3x)</A></STRONG> were called.
+ When the window's keypad mode is enabled (see below), <STRONG>KEY_LEFT</STRONG> and
+ <STRONG>KEY_BACKSPACE</STRONG> are handled the same way.
- <STRONG>o</STRONG> <EM>curses</EM> writes any other <EM>wch</EM> to the window, as with <STRONG><A HREF="curs_add_wch.3x.html">wecho_wchar(3x)</A></STRONG>.
+ <STRONG>o</STRONG> <EM>curses</EM> writes any other wide character to the window, as with
+ <STRONG><A HREF="curs_add_wch.3x.html">wecho_wchar(3x)</A></STRONG>.
<STRONG>o</STRONG> If the window <EM>win</EM> has been moved or modified since the last call to
<STRONG><A HREF="curs_refresh.3x.html">wrefresh(3x)</A></STRONG>, <EM>curses</EM> calls <STRONG>wrefresh</STRONG> on it.
- If <EM>wch</EM> is a carriage return and <STRONG><A HREF="curs_inopts.3x.html">nl(3x)</A></STRONG> has been called, <STRONG>wgetch</STRONG> stores
- the the character code for line feed in <EM>wch</EM> instead.
+ If the wide character is a carriage return and <STRONG><A HREF="curs_inopts.3x.html">nl(3x)</A></STRONG> has been called,
+ <STRONG>wgetch</STRONG> stores the the wide character code for line feed in <EM>wch</EM> instead.
</PRE><H3><a name="h3-Ungetting-Characters">Ungetting Characters</a></H3><PRE>
- <STRONG>unget_wch</STRONG> places <EM>wch</EM> into the input queue to be returned by the next
+ <STRONG>unget_wch</STRONG> places <EM>wc</EM> into the input queue to be retrieved by the next
call to <STRONG>wget_wch</STRONG>. A single input queue serves all windows associated
with the terminal.
-ncurses 6.5 2024-05-11 <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
+ncurses 6.5 2024-06-08 <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_get_wstr.3x,v 1.50 2024/05/25 20:10:58 tom Exp @
+ * @Id: curs_get_wstr.3x,v 1.52 2024/06/08 21:01:53 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_get_wstr 3x 2024-05-25 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_get_wstr 3x 2024-06-08 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_get_wstr 3x 2024-05-25 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_get_wstr 3x 2024-06-08 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in The Single Unix Specification, Version
- 2. No error conditions are defined.
+ X/Open Curses, Issue 4 describes these functions. It specifies no
+ error conditions for them.
This implementation returns <STRONG>ERR</STRONG> if the window pointer is null, or if
the lower-level <STRONG>wget_wch</STRONG> call returns an <STRONG>ERR</STRONG>. In the latter case, an
-ncurses 6.5 2024-05-25 <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
+ncurses 6.5 2024-06-08 <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_getch.3x,v 1.95 2024/06/01 22:29:08 tom Exp @
+ * @Id: curs_getch.3x,v 1.97 2024/06/08 20:26:46 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_getch 3x 2024-06-01 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_getch 3x 2024-06-08 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_getch 3x 2024-06-01 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_getch 3x 2024-06-08 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
If no input is pending, then if the no-delay flag is set in the window
(see <STRONG><A HREF="nodelay.3x.html">nodelay(3x)</A></STRONG>), the function returns <STRONG>ERR</STRONG>; otherwise, <EM>curses</EM> waits
until the terminal has input. If <STRONG><A HREF="curs_inopts.3x.html">cbreak(3x)</A></STRONG> has been called, this
- happens after one character is read. If <STRONG><A HREF="curs_inopts.3x.html">nocbreak(3x)</A></STRONG> has been called,
- it occurs when the next newline is read. If <STRONG><A HREF="curs_inopts.3x.html">halfdelay(3x)</A></STRONG> has been
- called, <EM>curses</EM> waits until input is available or the specified delay
- elapses.
+ happens after one character is read. If <STRONG><A HREF="curs_inopts.3x.html">nocbreak(3x)</A></STRONG> or <STRONG><A HREF="curs_inopts.3x.html">noraw(3x)</A></STRONG> has
+ been called, it occurs when the next newline is read. (Because the
+ terminal's normal or "cooked" mode is line-buffered, multiple <STRONG>wgetch</STRONG>
+ calls may then be necessary to empty the input queue.) If
+ <STRONG><A HREF="curs_inopts.3x.html">halfdelay(3x)</A></STRONG> has been called, <EM>curses</EM> waits until input is available or
+ the specified delay elapses.
If <STRONG><A HREF="curs_inopts.3x.html">echo(3x)</A></STRONG> has been called, and the window is not a pad, <EM>curses</EM> writes
the returned character <EM>c</EM> to the window (at the cursor position) per the
following rules.
- <STRONG>o</STRONG> If <EM>c</EM> matches the terminal's erase character, the cursor moves
- leftward one position and the new position is erased as if
- <STRONG><A HREF="curs_move.3x.html">wmove(3x)</A></STRONG> and then <STRONG><A HREF="curs_delch.3x.html">wdelch(3x)</A></STRONG> were called. When the window's
- keypad mode is enabled (see below), <STRONG>KEY_LEFT</STRONG> and <STRONG>KEY_BACKSPACE</STRONG> are
- handled the same way.
+ <STRONG>o</STRONG> If <EM>c</EM> matches the terminal's erase character (see <STRONG><A HREF="curs_termattrs.3x.html">erasechar(3x)</A></STRONG>),
+ the cursor moves leftward one position and the new position is
+ erased as if <STRONG><A HREF="curs_move.3x.html">wmove(3x)</A></STRONG> and then <STRONG><A HREF="curs_delch.3x.html">wdelch(3x)</A></STRONG> were called. When the
+ window's keypad mode is enabled (see below), <STRONG>KEY_LEFT</STRONG> and
+ <STRONG>KEY_BACKSPACE</STRONG> are handled the same way.
<STRONG>o</STRONG> <EM>curses</EM> writes any other <EM>c</EM> to the window, as with <STRONG><A HREF="curs_addch.3x.html">wechochar(3x)</A></STRONG>.
<STRONG>KEY_UP</STRONG> Arrow keys
<STRONG>KEY_LEFT</STRONG>
<STRONG>KEY_RIGHT</STRONG>
+
<STRONG>KEY_HOME</STRONG> Home key (upward+left arrow)
<STRONG>KEY_BACKSPACE</STRONG> Backspace
-
<STRONG>KEY_F0</STRONG> Function keys; space for 64 keys is reserved
<STRONG>KEY_F(</STRONG><EM>n</EM><STRONG>)</STRONG> Function key <EM>n</EM> where 0 <= <EM>n</EM> <= 63
<STRONG>KEY_DL</STRONG> Delete line
<STRONG>KEY_SCOMMAND</STRONG> Shifted command key
<STRONG>KEY_SCOPY</STRONG> Shifted copy key
<STRONG>KEY_SCREATE</STRONG> Shifted create key
+
<STRONG>KEY_SDC</STRONG> Shifted delete character key
<STRONG>KEY_SDL</STRONG> Shifted delete line key
-
<STRONG>KEY_SEND</STRONG> Shifted end key
<STRONG>KEY_SEOL</STRONG> Shifted clear line key
<STRONG>KEY_SEXIT</STRONG> Shifted exit key
key.
<STRONG>o</STRONG> <STRONG>wgetch</STRONG> returns <STRONG>KEY_RESIZE</STRONG>, even if the window's keypad mode is
- disabled, when <EM>ncurses</EM> handles a <STRONG>SIGWINCH</STRONG> signal; see <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG>
- and <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>.
+ disabled, if <EM>ncurses</EM> has handled a <STRONG>SIGWINCH</STRONG> signal since <STRONG>wgetch</STRONG> was
+ called; see <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG> and <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>.
<STRONG>o</STRONG> <STRONG>wgetch</STRONG> returns <STRONG>KEY_MOUSE</STRONG> to indicate that a mouse event is pending
collection; see <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>. Receipt of this code requires a
<STRONG>wgetch</STRONG> reads only single-byte characters.
The echo behavior of these functions on input of <STRONG>KEY_</STRONG> or backspace
- characters was not specified in the SVr4 documentation. This
- description is adapted from X/Open Curses.
-
- The behavior of <STRONG>wgetch</STRONG> in the presence of signal handlers is
- unspecified in the SVr4 documentation and X/Open Curses. In historical
- <EM>curses</EM> implementations, it varied depending on whether the operating
- system's dispatch of a signal to a handler interrupted a <STRONG>read(2)</STRONG> call
- in progress, and also (in some implementations) whether an input
- timeout or non-blocking mode had been set. A portable <EM>curses</EM>
- application prepares for two cases: (a) signal receipt does not
+ characters is not documented in SVr4 <EM>curses</EM>.
+
+ The behavior of <STRONG>wgetch</STRONG> in the presence of signal handlers is not
+ documented in SVr4 <EM>curses</EM> and is unspecified by X/Open Curses. In
+ historical <EM>curses</EM> implementations, it varied depending on whether the
+ operating system's dispatch of a signal to a handler interrupted a
+ <STRONG>read(2)</STRONG> call in progress, and also (in some implementations) whether an
+ input timeout or non-blocking mode had been set. A portable <EM>curses</EM>
+ application prepares for two cases: (a) signal receipt does not
interrupt <STRONG>wgetch</STRONG>; or (b) signal receipt interrupts <STRONG>wgetch</STRONG> and causes it
to return <STRONG>ERR</STRONG> with <STRONG>errno</STRONG> set to <STRONG>EINTR</STRONG>.
<STRONG>KEY_MOUSE</STRONG> is mentioned in X/Open Curses, along with a few related <EM>term-</EM>
- <EM>info</EM> capabilities, but no higher-level functions use the feature. The
+ <EM>info</EM> capabilities, but no higher-level functions use the feature. The
implementation in <EM>ncurses</EM> is an extension.
- <STRONG>KEY_RESIZE</STRONG> and <STRONG>has_key</STRONG> are extensions first implemented for <EM>ncurses</EM>.
+ <STRONG>KEY_RESIZE</STRONG> and <STRONG>has_key</STRONG> are extensions first implemented for <EM>ncurses</EM>.
By 2022, <EM>PDCurses</EM> and NetBSD <EM>curses</EM> had added them along with
<STRONG>KEY_MOUSE</STRONG>.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- ECMA-6 "7-bit coded Character Set" <https://ecma-international.org/
+ ECMA-6 "7-bit coded Character Set" <https://ecma-international.org/
publications-and-standards/standards/ecma-6/>
- ECMA-48 "Control Functions for Coded Character Sets" <https://
+ ECMA-48 "Control Functions for Coded Character Sets" <https://
ecma-international.org/publications-and-standards/standards/ecma-48/>
- <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library
+ <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library
in its wide-character configuration (<EM>ncursesw</EM>).
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>, <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>, <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>,
- <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>,
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>, <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>, <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>,
+ <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>,
<STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>, <STRONG>ascii(7)</STRONG>
-ncurses 6.5 2024-06-01 <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
+ncurses 6.5 2024-06-08 <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_getstr.3x,v 1.63 2024/06/01 22:29:08 tom Exp @
+ * @Id: curs_getstr.3x,v 1.65 2024/06/08 21:04:32 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_getstr 3x 2024-06-01 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_getstr 3x 2024-06-08 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_getstr 3x 2024-06-01 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_getstr 3x 2024-06-08 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in The Single Unix Specification, Version
- 2. No error conditions are defined.
+ X/Open Curses, Issue 4 describes these functions. It specifies no
+ error conditions for them.
- This implementation returns <STRONG>ERR</STRONG> if the window pointer is null, or if
- the lower-level <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG> call returns an <STRONG>ERR</STRONG>.
-
- SVr3 and early SVr4 curses implementations did not reject function
- keys; the SVr4.0 documentation claimed that "special keys" (such as
- function keys, "home" key, "clear" key, <EM>etc</EM>.) are "interpreted",
- without giving details. It lied. In fact, the "character" value
+ SVr3 and early SVr4 curses implementations did not reject function
+ keys; the SVr4.0 documentation claimed that "special keys" (such as
+ function keys, "home" key, "clear" key, <EM>etc</EM>.) are "interpreted",
+ without giving details. It lied. In fact, the "character" value
appended to the string by those implementations was predictable but not
- useful (being, in fact, the low-order eight bits of the key's KEY_
+ useful (being, in fact, the low-order eight bits of the key's KEY_
value).
- The functions <STRONG>getnstr</STRONG>, <STRONG>mvgetnstr</STRONG>, and <STRONG>mvwgetnstr</STRONG> were present but not
+ The functions <STRONG>getnstr</STRONG>, <STRONG>mvgetnstr</STRONG>, and <STRONG>mvwgetnstr</STRONG> were present but not
documented in SVr4.
X/Open Curses, Issue 5 (2007) stated that these functions "read at most
- <EM>n</EM> bytes" but did not state whether the terminating NUL counted toward
- that limit. X/Open Curses, Issue 7 (2009) changed that to say they
+ <EM>n</EM> bytes" but did not state whether the terminating NUL counted toward
+ that limit. X/Open Curses, Issue 7 (2009) changed that to say they
"read at most <EM>n</EM>-1 bytes" to allow for the terminating NUL. As of 2018,
some implementations count it, some do not:
- <STRONG>o</STRONG> <EM>ncurses</EM> 6.1 and PDCurses do not count the NUL in the given limit,
+ <STRONG>o</STRONG> <EM>ncurses</EM> 6.1 and PDCurses do not count the NUL in the given limit,
while
<STRONG>o</STRONG> Solaris SVr4 and NetBSD curses count the NUL as part of the limit.
- <STRONG>o</STRONG> Solaris xcurses provides both: its wide-character <STRONG>wget_nstr</STRONG>
- reserves a NUL, but its <STRONG>wgetnstr</STRONG> does not count the NUL
+ <STRONG>o</STRONG> Solaris xcurses provides both: its wide-character <STRONG>wget_nstr</STRONG>
+ reserves a NUL, but its <STRONG>wgetnstr</STRONG> does not count the NUL
consistently.
In SVr4 curses, a negative value of <EM>n</EM> tells <STRONG>wgetnstr</STRONG> to assume that the
- caller's buffer is large enough to hold the result, i.e., to act like
- <STRONG>wgetstr</STRONG>. X/Open Curses does not mention this (or anything related to
- negative or zero values of <EM>n</EM>), however most implementations use the
+ caller's buffer is large enough to hold the result, i.e., to act like
+ <STRONG>wgetstr</STRONG>. X/Open Curses does not mention this (or anything related to
+ negative or zero values of <EM>n</EM>), however most implementations use the
feature, with different limits:
- <STRONG>o</STRONG> Solaris SVr4 curses and PDCurses limit the result to 255 bytes.
+ <STRONG>o</STRONG> Solaris SVr4 curses and PDCurses limit the result to 255 bytes.
Other Unix systems than Solaris are likely to use the same limit.
<STRONG>o</STRONG> Solaris xcurses limits the result to <STRONG>LINE_MAX</STRONG> bytes.
- <STRONG>o</STRONG> NetBSD 7 assumes no particular limit for the result from <STRONG>wgetstr</STRONG>.
- However, it limits the <STRONG>wgetnstr</STRONG> parameter <EM>n</EM> to ensure that it is
+ <STRONG>o</STRONG> NetBSD 7 assumes no particular limit for the result from <STRONG>wgetstr</STRONG>.
+ However, it limits the <STRONG>wgetnstr</STRONG> parameter <EM>n</EM> to ensure that it is
greater than zero.
- A comment in NetBSD's source code states that this is specified in
+ A comment in NetBSD's source code states that this is specified in
SUSv2.
- <STRONG>o</STRONG> <EM>ncurses</EM> (before 6.2) assumes no particular limit for the result
- from <STRONG>wgetstr</STRONG>, and treats the <EM>n</EM> parameter of <STRONG>wgetnstr</STRONG> like SVr4
+ <STRONG>o</STRONG> <EM>ncurses</EM> (before 6.2) assumes no particular limit for the result
+ from <STRONG>wgetstr</STRONG>, and treats the <EM>n</EM> parameter of <STRONG>wgetnstr</STRONG> like SVr4
curses.
- <STRONG>o</STRONG> <EM>ncurses</EM> 6.2 uses <STRONG>LINE_MAX</STRONG>, or a larger (system-dependent) value
- which the <STRONG>sysconf</STRONG> function may provide. If neither <STRONG>LINE_MAX</STRONG> or
- <STRONG>sysconf</STRONG> is available, <EM>ncurses</EM> uses the POSIX value for <STRONG>LINE_MAX</STRONG> (a
- 2048 byte limit). In either case, it reserves a byte for the
+ <STRONG>o</STRONG> <EM>ncurses</EM> 6.2 uses <STRONG>LINE_MAX</STRONG>, or a larger (system-dependent) value
+ which the <STRONG>sysconf</STRONG> function may provide. If neither <STRONG>LINE_MAX</STRONG> or
+ <STRONG>sysconf</STRONG> is available, <EM>ncurses</EM> uses the POSIX value for <STRONG>LINE_MAX</STRONG> (a
+ 2048 byte limit). In either case, it reserves a byte for the
terminating NUL.
- Although <STRONG>getnstr</STRONG> is equivalent to a series of calls to <STRONG>getch</STRONG>, it also
- makes changes to the curses modes to allow simple editing of the input
+ Although <STRONG>getnstr</STRONG> is equivalent to a series of calls to <STRONG>getch</STRONG>, it also
+ makes changes to the curses modes to allow simple editing of the input
buffer:
- <STRONG>o</STRONG> <STRONG>getnstr</STRONG> saves the current value of the <STRONG>nl</STRONG>, <STRONG>echo</STRONG>, <STRONG>raw</STRONG> and <STRONG>cbreak</STRONG>
+ <STRONG>o</STRONG> <STRONG>getnstr</STRONG> saves the current value of the <STRONG>nl</STRONG>, <STRONG>echo</STRONG>, <STRONG>raw</STRONG> and <STRONG>cbreak</STRONG>
modes, and sets <STRONG>nl</STRONG>, <STRONG>noecho</STRONG>, <STRONG>noraw</STRONG>, and <STRONG>cbreak</STRONG>.
- <STRONG>getnstr</STRONG> handles the echoing of characters, rather than relying on
+ <STRONG>getnstr</STRONG> handles the echoing of characters, rather than relying on
the caller to set an appropriate mode.
- <STRONG>o</STRONG> It also obtains the <EM>erase</EM> and <EM>kill</EM> characters from <STRONG>erasechar</STRONG> and
+ <STRONG>o</STRONG> It also obtains the <EM>erase</EM> and <EM>kill</EM> characters from <STRONG>erasechar</STRONG> and
<STRONG>killchar</STRONG>, respectively.
<STRONG>o</STRONG> On return, <STRONG>getnstr</STRONG> restores the modes to their previous values.
Other implementations differ in their treatment of special characters:
- <STRONG>o</STRONG> While they may set the <EM>echo</EM> mode, other implementations do not
- modify the <EM>raw</EM> mode, They may take the <EM>cbreak</EM> mode set by the
- caller into account when deciding whether to handle echoing within
+ <STRONG>o</STRONG> While they may set the <EM>echo</EM> mode, other implementations do not
+ modify the <EM>raw</EM> mode, They may take the <EM>cbreak</EM> mode set by the
+ caller into account when deciding whether to handle echoing within
<STRONG>getnstr</STRONG> or as a side-effect of the <STRONG>getch</STRONG> calls.
<STRONG>o</STRONG> The original <EM>ncurses</EM> (as <EM>pcurses</EM> in 1986) set <STRONG>noraw</STRONG> and <STRONG>cbreak</STRONG> when
- accepting input for <STRONG>getnstr</STRONG>. That may have been done to make
+ accepting input for <STRONG>getnstr</STRONG>. That may have been done to make
function- and cursor-keys work; it is not necessary with <EM>ncurses</EM>.
- Since 1995, <EM>ncurses</EM> has provided signal handlers for INTR and QUIT
- (e.g., <STRONG>^C</STRONG> or <STRONG>^\</STRONG>). With the <STRONG>noraw</STRONG> and <STRONG>cbreak</STRONG> settings, those may
- catch a signal and stop the program, where other implementations
+ Since 1995, <EM>ncurses</EM> has provided signal handlers for INTR and QUIT
+ (e.g., <STRONG>^C</STRONG> or <STRONG>^\</STRONG>). With the <STRONG>noraw</STRONG> and <STRONG>cbreak</STRONG> settings, those may
+ catch a signal and stop the program, where other implementations
allow one to enter those characters in the buffer.
<STRONG>o</STRONG> Starting in 2021 (<EM>ncurses</EM> 6.3), <STRONG>getnstr</STRONG> sets <STRONG>raw</STRONG>, rather than <STRONG>noraw</STRONG>
- and <STRONG>cbreak</STRONG> for better compatibility with SVr4-curses, e.g.,
+ and <STRONG>cbreak</STRONG> for better compatibility with SVr4-curses, e.g.,
allowing one to enter a <STRONG>^C</STRONG> into the buffer.
-ncurses 6.5 2024-06-01 <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
+ncurses 6.5 2024-06-08 <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_getyx.3x,v 1.45 2024/05/11 20:39:53 tom Exp @
+ * @Id: curs_getyx.3x,v 1.47 2024/06/08 20:42:50 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_getyx 3x 2024-05-11 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_getyx 3x 2024-06-08 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_getyx 3x 2024-05-11 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_getyx 3x 2024-06-08 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
These macros obtain the cursor position and bounds information of a
<EM>curses</EM> window <EM>win</EM>. <STRONG>getyx</STRONG> stores <EM>win</EM>'s cursor position in the variables
- <EM>y</EM> and <EM>x</EM>. <STRONG>getmaxyx</STRONG> stores <EM>win</EM>'s maximum valid row and column numbers in
- <EM>y</EM> and <EM>x</EM>, respectively. <STRONG>getbegyx</STRONG> similarly stores the position of <EM>win</EM>'s
- origin relative to that of the screen (for <STRONG>stdscr</STRONG>, these coordinates
- are always <STRONG>0</STRONG>).
+ <EM>y</EM> and <EM>x</EM>. <STRONG>getmaxyx</STRONG> stores <EM>win</EM>'s maximum valid line and column numbers
+ in <EM>y</EM> and <EM>x</EM>, respectively. <STRONG>getbegyx</STRONG> similarly stores the position of
+ <EM>win</EM>'s origin relative to that of the screen (for <STRONG>stdscr</STRONG>, these
+ coordinates are always <STRONG>0</STRONG>).
If <EM>win</EM> is a subwindow (see <STRONG><A HREF="subwin.3x.html">subwin(3x)</A></STRONG>), the <STRONG>getparyx</STRONG> macro places the
coordinates of its origin relative to its parent window into <EM>y</EM> and <EM>x</EM>,
-ncurses 6.5 2024-05-11 <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
+ncurses 6.5 2024-06-08 <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_inch.3x,v 1.58 2024/06/01 22:29:08 tom Exp @
+ * @Id: curs_inch.3x,v 1.60 2024/06/08 20:45:43 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_inch 3x 2024-06-01 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_inch 3x 2024-06-08 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_inch 3x 2024-06-01 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_inch 3x 2024-06-08 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
ISO C99. SVr3.2 (1988) added a 6-bit color pair identifier alongside
the attributes.
- X/Open Curses does not specify the sizes of the character code or color
- pair identifier, nor the quantity of attribute bits, in <EM>chtype</EM>; these
- are implementation-dependent. <EM>ncurses</EM> uses eight bits for the
- character code. An application requiring a wider character type, for
- instance to represent Unicode, should use the wide-character
- counterparts of these functions.
-
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library
+ <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library
in its wide-character configuration (<EM>ncursesw</EM>).
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
-ncurses 6.5 2024-06-01 <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
+ncurses 6.5 2024-06-08 <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_initscr.3x,v 1.73 2024/06/01 22:38:43 tom Exp @
+ * @Id: curs_initscr.3x,v 1.75 2024/06/08 20:34:23 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_initscr 3x 2024-06-01 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_initscr 3x 2024-06-08 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_initscr 3x 2024-06-01 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_initscr 3x 2024-06-08 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
<STRONG>SIGWINCH</STRONG>
This handles the window-size changes which were ignored in the
standardization efforts. The handler sets a (signal-safe)
- variable that is later tested by <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG> and <STRONG><A HREF="curs_get_wch.3x.html">wget_wch(3x)</A></STRONG>:
+ variable that is later tested by <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG> and <STRONG><A HREF="curs_get_wch.3x.html">wget_wch(3x)</A></STRONG>.
<STRONG>o</STRONG> <STRONG>wgetch</STRONG> returns the key code <STRONG>KEY_RESIZE</STRONG>.
-ncurses 6.5 2024-06-01 <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
+ncurses 6.5 2024-06-08 <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_inopts.3x,v 1.70 2024/06/01 22:28:41 tom Exp @
+ * @Id: curs_inopts.3x,v 1.73 2024/06/08 23:24:17 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_inopts 3x 2024-06-01 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_inopts 3x 2024-06-08 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_inopts 3x 2024-06-01 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_inopts 3x 2024-06-08 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
<STRONG>echo</STRONG> and <STRONG>noecho</STRONG> determine whether characters typed by the user are
written to the <EM>curses</EM> window by the input character reading function as
they are typed. <EM>curses</EM> always disables the terminal driver's own
- echoing. By default, a <EM>curses</EM> window has its echo flag set. Authors
- of most interactive programs prefer to do their own echoing in a
+ echoing. By default, a <EM>curses</EM> screen's echo option is set. Authors of
+ most interactive programs prefer to do their own echoing in a
controlled area of the screen, or not to echo at all, so they call
<STRONG>noecho</STRONG>. The man page for the input character reading function
discusses how <STRONG>echo</STRONG> and <STRONG>noecho</STRONG> interact with <STRONG>cbreak</STRONG> and <STRONG>nocbreak</STRONG>.
</PRE><H3><a name="h3-nl_nonl">nl, nonl</a></H3><PRE>
Initially, whether the terminal reports a carriage return using the
- character code for a line feed depends on the configuration of the
- terminal driver; see <STRONG>termios(3)</STRONG>. <STRONG>nl</STRONG> configures the terminal to perform
- this translation. <STRONG>nonl</STRONG> disables it.
+ character code for a line feed in cbreak or raw modes depends on the
+ configuration of the terminal driver; see <STRONG>termios(3)</STRONG>. <STRONG>nl</STRONG> configures
+ the terminal to perform this translation. <STRONG>nonl</STRONG> disables it. In normal
+ (or "cooked") mode, the terminal driver always translates carriage
+ returns to line feeds.
</PRE><H3><a name="h3-nodelay">nodelay</a></H3><PRE>
In each case, the function returns
- <STRONG>1</STRONG> if the flag is set,
+ <STRONG>1</STRONG> if the option is set,
- <STRONG>0</STRONG> if the flag is reset, or
+ <STRONG>0</STRONG> if the option is reset, or
<STRONG>-1</STRONG> if the library is not initialized.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>,
- <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, <STRONG>termios(3)</STRONG>
+ <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>, <STRONG>termios(3)</STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>.
-ncurses 6.5 2024-06-01 <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+ncurses 6.5 2024-06-08 <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_ins_wstr.3x,v 1.40 2024/05/25 20:10:58 tom Exp @
+ * @Id: curs_ins_wstr.3x,v 1.42 2024/06/08 21:04:04 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_ins_wstr 3x 2024-05-25 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_ins_wstr 3x 2024-06-08 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_ins_wstr 3x 2024-05-25 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_ins_wstr 3x 2024-06-08 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- All functions return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on success.
+ These functions return <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> on failure.
- X/Open Curses does not specify any error conditions. This
- implementation returns <STRONG>ERR</STRONG>
+ X/Open Curses does not specify any error conditions. In <EM>ncurses</EM>, they
+ return <STRONG>ERR</STRONG> if
- <STRONG>o</STRONG> if the <EM>win</EM> parameter is null or
+ <STRONG>o</STRONG> <EM>win</EM> is <STRONG>NULL</STRONG>,
- <STRONG>o</STRONG> if the <EM>wstr</EM> parameter is null or
+ <STRONG>o</STRONG> <EM>wstr</EM> is <STRONG>NULL</STRONG>, or
- <STRONG>o</STRONG> if the <STRONG>wins_wch</STRONG> function returns <STRONG>ERR</STRONG>.
+ <STRONG>o</STRONG> an internal <STRONG><A HREF="curs_ins_wch.3x.html">wins_wch(3x)</A></STRONG> call returns <STRONG>ERR</STRONG>.
Functions prefixed with "mv" first perform cursor movement and fail if
the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- All but <STRONG>wins_nwstr</STRONG> may be macros.
+ All of these functions except <STRONG>wins_nwstr</STRONG> may be implemented as macros.
If the first character in the string is a non-spacing character, these
- functions will fail. X/Open Curses does not define what will happen if
- a non-spacing character follows a control character.
+ functions return <STRONG>ERR</STRONG>. X/Open Curses does not specify what happens if a
+ non-spacing character follows a control character.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in X/Open Curses, Issue 4, which adds
- <EM>const</EM> qualifiers to the arguments.
+ X/Open Curses, Issue 4 describes these functions. It specifies no
+ error conditions for them.
- X/Open states that the entire string is inserted if <EM>n</EM> is less than 1.
+ Issue 4 states that the entire string is inserted if <EM>n</EM> is less than 1.
This is probably an error, because it is inconsistent with other
- functions, and differs from the X/Open implementation on Solaris.
+ functions, and differs from the SVr4 <EM>curses</EM> and Solaris <EM>xcurses</EM>
+ implementations. Nevertheless, Issue 7 retains it.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library
+ <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library
in its non-wide-character configuration.
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>, <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
-ncurses 6.5 2024-05-25 <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
+ncurses 6.5 2024-06-08 <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_insstr.3x,v 1.53 2024/05/25 20:10:58 tom Exp @
+ * @Id: curs_insstr.3x,v 1.55 2024/06/08 21:03:03 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_insstr 3x 2024-05-25 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_insstr 3x 2024-06-08 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_insstr 3x 2024-05-25 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_insstr 3x 2024-06-08 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in X/Open Curses, Issue 4, which adds
- <EM>const</EM> qualifiers to the arguments.
+ X/Open Curses, Issue 4 describes these functions. It specifies no
+ error conditions for them.
- The Single Unix Specification, Version 2 states that <STRONG>insnstr</STRONG> and
- <STRONG>winsnstr</STRONG> perform wrapping. This is probably an error, since it makes
- this group of functions inconsistent. Also, no implementation of
- curses documents this inconsistency.
+ Issue 4 distinguished <STRONG>insnstr</STRONG> and <STRONG>winsnstr</STRONG> by stating they "do not
+ perform wrapping". This was probably an error, since it makes this
+ group of functions inconsistent. No implementation of <EM>curses</EM> documents
+ this inconsistency, and Issue 7 removed it.
- X/Open states that the entire string is inserted if <EM>n</EM> is less than 1.
+ Issue 4 states that the entire string is inserted if <EM>n</EM> is less than 1.
This is probably an error, because it is inconsistent with other
- functions, and differs from the SVr4 and X/Open implementations on
- Solaris.
+ functions, and differs from the SVr4 <EM>curses</EM> and Solaris <EM>xcurses</EM>
+ implementations. Nevertheless, Issue 7 retains it.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library
+ in its wide-character configuration (<EM>ncursesw</EM>).
+
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>, <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>, <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
-ncurses 6.5 2024-05-25 <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
+ncurses 6.5 2024-06-08 <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_instr.3x,v 1.55 2024/06/01 22:29:08 tom Exp @
+ * @Id: curs_instr.3x,v 1.57 2024/06/08 20:47:39 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_instr 3x 2024-06-01 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_instr 3x 2024-06-08 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_instr 3x 2024-06-01 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_instr 3x 2024-06-08 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
- <STRONG>int</STRONG> <STRONG>instr(char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>innstr(char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>winstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>winnstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>instr(char</STRONG> <STRONG>*</STRONG> <EM>str</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>winstr(WINDOW</STRONG> <STRONG>*</STRONG> <EM>win</EM><STRONG>,</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG> <EM>str</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvinstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG> <EM>str</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvwinstr(WINDOW</STRONG> <STRONG>*</STRONG> <EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG> <EM>str</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvinstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvinnstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvwinstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvwinnstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>innstr(char</STRONG> <STRONG>*</STRONG> <EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>winnstr(WINDOW</STRONG> <STRONG>*</STRONG> <EM>win</EM><STRONG>,</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG> <EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvinnstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG> <EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvwinnstr(WINDOW</STRONG> <STRONG>*</STRONG> <EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG> <EM>str</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- These routines return a string of characters in <EM>str</EM>, starting at the
- current cursor position in the named window. Attributes are stripped
- from the characters.
-
- The four functions with <EM>n</EM> as the last argument return a leading
- substring at most <EM>n</EM> characters long (exclusive of the trailing NUL).
- Transfer stops at the end of the current line, or when <EM>n</EM> characters
- have been stored at the location referenced by <EM>str</EM>.
+ <STRONG>winstr</STRONG> extracts a string from a <EM>curses</EM> window <EM>win</EM>, starting at the
+ cursor and stopping at the end of the line, and stores it in <EM>str</EM>,
+ terminating it with a null character and omitting any attributes and
+ color pair identifier that <EM>curses</EM> associates with each character.
+ <STRONG>winnstr</STRONG> does the same, but copies at most <EM>n</EM> characters from <EM>win</EM>. An <EM>n</EM>
+ of <STRONG>-1</STRONG> implies no limit; <STRONG>winnstr</STRONG> then works like <STRONG>winstr</STRONG>. <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
+ describes the variants of these functions.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- All of the functions return <STRONG>ERR</STRONG> upon failure, or the number of
- characters actually read into the string.
+ These functions return the count of characters copied from <EM>win</EM> to <EM>str</EM>,
+ or <STRONG>ERR</STRONG> upon failure.
- X/Open Curses defines no error conditions. This implementation returns
- <STRONG>ERR</STRONG>
+ In <EM>ncurses</EM>, they return <STRONG>ERR</STRONG> if
- <STRONG>o</STRONG> if the <EM>win</EM> parameter is null or
+ <STRONG>o</STRONG> <EM>win</EM> is <STRONG>NULL</STRONG> or
- <STRONG>o</STRONG> if the <EM>chstr</EM> parameter is null.
+ <STRONG>o</STRONG> <EM>str</EM> is <STRONG>NULL</STRONG>.
Functions prefixed with "mv" first perform cursor movement and fail if
the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- All routines except <STRONG>winnstr</STRONG> may be macros.
+ All of these functions except <STRONG>winnstr</STRONG> may be implemented as macros.
Reading a line that overflows the array pointed to by <EM>str</EM> with <STRONG>instr</STRONG>,
- <STRONG>mvinstr</STRONG>, <STRONG>mvwinstr</STRONG> or <STRONG>winstr</STRONG> causes undefined results. Therefore, the
- use of <STRONG>innstr</STRONG>, <STRONG>mvinnstr</STRONG>, <STRONG>mvwinnstr</STRONG>, or <STRONG>winnstr</STRONG> is recommended.
+ <STRONG>winstr</STRONG>, <STRONG>mvinstr</STRONG>, or <STRONG>mvwinstr</STRONG> causes undefined results. Use of <STRONG>innstr</STRONG>,
+ <STRONG>winnstr</STRONG>, <STRONG>mvinnstr</STRONG>, and <STRONG>mvwinnstr</STRONG> is recommended instead.
+
+
+</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
+ <STRONG>innstr</STRONG>, <STRONG>winnstr</STRONG>, <STRONG>mvinnstr</STRONG>, and <STRONG>mvwinnstr</STRONG>'s treatment of <STRONG>-1</STRONG> as a valid
+ value of <EM>n</EM> is an <EM>ncurses</EM> extension.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- SVr4 does not document whether a length limit includes or excludes the
- trailing NUL.
+ Applications employing <EM>ncurses</EM> extensions should condition their use on
+ the visibility of the <STRONG>NCURSES_VERSION</STRONG> preprocessor macro.
+
+ X/Open Curses, Issue 4 describes these functions. It specifies no
+ error conditions for them.
+
+ X/Open Curses Issues 4 and 7 both state that <STRONG>instr</STRONG>, <STRONG>winstr</STRONG>, <STRONG>mvinstr</STRONG>,
+ and <STRONG>mvwinstr</STRONG> return <STRONG>OK</STRONG> rather than a character count. This is likely
+ an erratum.
+
+ <STRONG>o</STRONG> SVr3.1 and SVr4 implemented <STRONG>winstr</STRONG> as a wrapper around <STRONG>winnstr</STRONG>,
+ returning the latter's return value. X/Open Curses's specification
+ thus may have been an editorial solecism copied from System V's
+ documentation (see below) by X/Open, rather than an intentional
+ change.
+
+ <STRONG>o</STRONG> <EM>ncurses</EM> retains compatibility with System V <EM>curses</EM> behavior.
+
+ SVr4 documents no return values apart from <STRONG>OK</STRONG> and <STRONG>ERR</STRONG> for any of these
+ functions. SVr4 does not document whether <EM>n</EM> counts the null terminator
+ that these functions write to <EM>str</EM>.
+
- The <EM>ncurses</EM> library extends the X/Open Curses description by allowing a
- negative value for <EM>n</EM>. In this case, the functions return the string
- ending at the right margin.
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+ SVr3.1 (1987) introduced these functions.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library
+ <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library
in its wide-character configuration (<EM>ncursesw</EM>).
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>, <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
-ncurses 6.5 2024-06-01 <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
+ncurses 6.5 2024-06-08 <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-HISTORY">HISTORY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_inwstr.3x,v 1.43 2024/05/25 20:10:58 tom Exp @
+ * @Id: curs_inwstr.3x,v 1.45 2024/06/08 21:19:18 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_inwstr 3x 2024-05-25 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_inwstr 3x 2024-06-08 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_inwstr 3x 2024-05-25 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_inwstr 3x 2024-06-08 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
- <STRONG>int</STRONG> <STRONG>inwstr(wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>innwstr(wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>winwstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>winnwstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>inwstr(wchar_t</STRONG> <STRONG>*</STRONG> <EM>wstr</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>winwstr(WINDOW</STRONG> <STRONG>*</STRONG> <EM>win</EM><STRONG>,</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG> <EM>wstr</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvinwstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG> <EM>wstr</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvwinwstr(WINDOW</STRONG> <STRONG>*</STRONG> <EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG> <EM>wstr</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvinwstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvinnwstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvwinwstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvwinnwstr(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG><EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>innwstr(wchar_t</STRONG> <STRONG>*</STRONG> <EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>winnwstr(WINDOW</STRONG> <STRONG>*</STRONG> <EM>win</EM><STRONG>,</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG> <EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvinnwstr(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG> <EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>mvwinnwstr(WINDOW</STRONG> <STRONG>*</STRONG> <EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>wchar_t</STRONG> <STRONG>*</STRONG> <EM>wstr</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>n</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- These routines return a string of <STRONG>wchar_t</STRONG> wide characters in <EM>wstr</EM>,
- starting at the current cursor position in the named window.
-
- The four functions with <EM>n</EM> as the last argument return a leading
- substring at most <EM>n</EM> characters long (exclusive of the trailing NUL).
- Transfer stops at the end of the current line, or when <EM>n</EM> characters
- have been stored at the location referenced by <EM>wstr</EM>.
-
- If the size <EM>n</EM> is not large enough to store a complete complex
- character, an error is generated.
+ <STRONG>winwstr</STRONG> extracts a wide-character string from a <EM>curses</EM> window <EM>win</EM>,
+ starting at the cursor and stopping at the end of the line, and stores
+ it in <EM>wstr</EM>, terminating it with a wide null character and omitting any
+ attributes and color pair identifier that <EM>curses</EM> associates with each
+ character. <STRONG>winnwstr</STRONG> does the same, but copies at most <EM>n</EM> characters
+ from <EM>win</EM>. An <EM>n</EM> of <STRONG>-1</STRONG> implies no limit; <STRONG>winnwstr</STRONG> then works like
+ <STRONG>winwstr</STRONG>. <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> describes the variants of these functions.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- All routines return <STRONG>ERR</STRONG> upon failure. Upon successful completion, the
- *<STRONG>inwstr</STRONG> routines return <STRONG>OK</STRONG>, and the *<STRONG>innwstr</STRONG> routines return the number
- of characters read into the string.
+ On successful operation, these functions return the count of wide
+ characters copied from <EM>win</EM> to <EM>wstr</EM>. They return <STRONG>ERR</STRONG> upon failure.
+ <STRONG>innwstr</STRONG>, <STRONG>winnwstr</STRONG>, <STRONG>mvinnwstr</STRONG>, and <STRONG>mvwinnwstr</STRONG> return <STRONG>ERR</STRONG> if <EM>n</EM> is
+ insufficiently large to store a complete wide character string.
+ (Recall that a <EM>curses</EM> complex character can contain multiple wide
+ characters, some of which may be non-spacing.)
- X/Open defines no error conditions. This implementation returns <STRONG>ERR</STRONG>
+ In <EM>ncurses</EM>, these functions return <STRONG>ERR</STRONG> if
- <STRONG>o</STRONG> if the <EM>win</EM> parameter is null or
+ <STRONG>o</STRONG> <EM>win</EM> is <STRONG>NULL</STRONG> or
- <STRONG>o</STRONG> if the <EM>wstr</EM> parameter is null, or
-
- <STRONG>o</STRONG> if no characters could be read.
+ <STRONG>o</STRONG> <EM>wstr</EM> is <STRONG>NULL</STRONG>.
Functions prefixed with "mv" first perform cursor movement and fail if
the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- All routines except <STRONG>winnwstr</STRONG> may be macros.
+ All of these functions except <STRONG>winnwstr</STRONG> may be implemented as macros.
+
+ Reading a line that overflows the array pointed to by <EM>str</EM> with <STRONG>inwstr</STRONG>,
+ <STRONG>winwstr</STRONG>, <STRONG>mvinwstr</STRONG>, or <STRONG>mvwinwstr</STRONG> causes undefined results. Use of
+ <STRONG>innwstr</STRONG>, <STRONG>winnwstr</STRONG>, <STRONG>mvinnwstr</STRONG>, and <STRONG>mvwinnwstr</STRONG> is recommended instead.
- Each cell in the window holds a complex character (a spacing character
- and zero or more non-spacing characters) together with attributes and
- color. These functions store only the wide characters, ignoring
- attributes and color. Use <STRONG>in_wchstr</STRONG> to return the complex characters
- from a window.
- Reading a line that overflows the array pointed to by <EM>wstr</EM> with <STRONG>inwstr</STRONG>,
- <STRONG>mvinwstr</STRONG>, <STRONG>mvwinwstr</STRONG> or <STRONG>winwstr</STRONG> causes undefined results. Therefore,
- the use of <STRONG>innwstr</STRONG>, <STRONG>mvinnwstr</STRONG>, <STRONG>mvwinnwstr</STRONG>, or <STRONG>winnwstr</STRONG> is recommended.
+</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
+ <STRONG>innwstr</STRONG>, <STRONG>winnwstr</STRONG>, <STRONG>mvinnwstr</STRONG>, and <STRONG>mvwinnwstr</STRONG>'s treatment of <STRONG>-1</STRONG> as a
+ valid value of <EM>n</EM> is an <EM>ncurses</EM> extension.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in X/Open Curses, Issue 4.
+ Applications employing <EM>ncurses</EM> extensions should condition their use on
+ the visibility of the <STRONG>NCURSES_VERSION</STRONG> preprocessor macro.
+
+ X/Open Curses, Issue 4 describes these functions. It specifies no
+ error conditions for them.
+
+ Notwithstanding the foregoing, X/Open Curses Issues 4 and 7 both state
+ that <STRONG>innwstr</STRONG>, <STRONG>winnwstr</STRONG>, <STRONG>mvinnwstr</STRONG>, and <STRONG>mvwinnwstr</STRONG> "fail ... [i]f the
+ array is not large enough to contain any complete characters".
+ Strictly interpreted, this means that a caller of these functions
+ cannot use their return values to detect truncation of a wide-character
+ string copied from more than one character cell in <EM>win</EM>. <EM>ncurses</EM>
+ reports any truncation with <STRONG>ERR</STRONG>.
+
+ X/Open Curses specifies <STRONG>inwstr</STRONG>, <STRONG>winwstr</STRONG>, <STRONG>mvinwstr</STRONG>, and <STRONG>mvwinwstr</STRONG> as
+ returning <STRONG>OK</STRONG> rather than a (wide) character count, unlike their non-
+ wide counterparts <STRONG>instr</STRONG>, <STRONG>winstr</STRONG>, <STRONG>mvinstr</STRONG>, and <STRONG>mvwinstr</STRONG>. <EM>ncurses</EM>
+ regards this inconsistency as an error in the standard.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>, <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>, <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>,
- <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
+ <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library in
+ its non-wide-character configuration.
+
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>, <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
-ncurses 6.5 2024-05-25 <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
+ncurses 6.5 2024-06-08 <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_kernel.3x,v 1.63 2024/05/25 21:13:56 tom Exp @
+ * @Id: curs_kernel.3x,v 1.65 2024/06/08 21:00:58 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_kernel 3x 2024-05-25 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_kernel 3x 2024-06-08 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_kernel 3x 2024-05-25 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_kernel 3x 2024-06-08 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
</PRE><H3><a name="h3-getsyx">getsyx</a></H3><PRE>
- The <STRONG>getsyx</STRONG> routine returns the current coordinates of the <EM>virtual</EM>
- <EM>screen</EM> cursor in <EM>y</EM> and <EM>x</EM>. If <STRONG>leaveok</STRONG> is currently <STRONG>TRUE</STRONG>, then <STRONG>-1</STRONG>,<STRONG>-1</STRONG> is
- returned. If lines have been removed from the top of the screen, using
- <STRONG>ripoffline</STRONG>, <EM>y</EM> and <EM>x</EM> include these lines; therefore, <EM>y</EM> and <EM>x</EM> should be
- used only as arguments for <STRONG>setsyx</STRONG>.
+ <STRONG>getsyx</STRONG> stores the coordinates of virtual screen (<STRONG>newscr</STRONG>) cursor in <EM>y</EM>
+ and <EM>x</EM>. If <STRONG>newscr</STRONG>'s <STRONG><A HREF="leaveok.3x.html">leaveok(3x)</A></STRONG> output option is <STRONG>TRUE</STRONG>, <STRONG>getsyx</STRONG> stores <STRONG>-1</STRONG>
+ in both <EM>y</EM> and <EM>x</EM>. If lines have been removed from the top of the screen
+ using <STRONG>ripoffline</STRONG>, <EM>y</EM> includes these lines; therefore, <EM>y</EM> and <EM>x</EM> populated
+ by <STRONG>getsyx</STRONG> should be used only as arguments for <STRONG>setsyx</STRONG>.
- Few applications will use this feature, most use <STRONG>getyx</STRONG> instead.
+ Few applications use this feature; most call <STRONG><A HREF="curs_getyx.3x.html">getyx(3x)</A></STRONG> instead.
</PRE><H3><a name="h3-setsyx">setsyx</a></H3><PRE>
- The <STRONG>setsyx</STRONG> routine sets the <EM>virtual</EM> <EM>screen</EM> cursor to <EM>y</EM>, <EM>x</EM>. If <EM>y</EM> and <EM>x</EM>
- are both <STRONG>-1</STRONG>, then <STRONG>leaveok</STRONG> is set. The two routines <STRONG>getsyx</STRONG> and <STRONG>setsyx</STRONG>
- are designed to be used by a library routine, which manipulates <STRONG>curses</STRONG>
- windows but does not want to change the current position of the
- program's cursor. The library routine would call <STRONG>getsyx</STRONG> at the
- beginning, do its manipulation of its own windows, do a <STRONG>wnoutrefresh</STRONG> on
- its windows, call <STRONG>setsyx</STRONG>, and then call <STRONG>doupdate</STRONG>.
+ <STRONG>setsyx</STRONG> sets the virtual screen (<STRONG>newscr</STRONG>) cursor location to (<EM>y</EM>, <EM>x</EM>).
+ <STRONG>setsyx(-1,</STRONG> <STRONG>-1)</STRONG> is equivalent to <STRONG>leaveok(newscr,</STRONG> <STRONG>TRUE)</STRONG>.
- Few applications will use this feature, most use <STRONG>wmove</STRONG> instead.
+ <STRONG>getsyx</STRONG> and <STRONG>setsyx</STRONG> are designed to be used by a function that
+ manipulates <EM>curses</EM> windows but seeks to avoid changing the cursor
+ position. Such a function would first call <STRONG>getsyx</STRONG>, modify its windows'
+ content, call <STRONG><A HREF="curs_refresh.3x.html">wnoutrefresh(3x)</A></STRONG> on them, call <STRONG>setsyx</STRONG>, then call
+ <STRONG><A HREF="curs_refresh.3x.html">doupdate(3x)</A></STRONG>.
+
+ Few applications use this feature; most call <STRONG><A HREF="curs_move.3x.html">wmove(3x)</A></STRONG> instead.
</PRE><H3><a name="h3-curs_set">curs_set</a></H3><PRE>
- The <STRONG>curs_set</STRONG> routine sets the cursor state to invisible, normal, or
- very visible for <STRONG>visibility</STRONG> equal to <STRONG>0</STRONG>, <STRONG>1</STRONG>, or <STRONG>2</STRONG> respectively. If the
- terminal supports the <EM>visibility</EM> requested, the previous <EM>cursor</EM> state
+ The <STRONG>curs_set</STRONG> routine sets the cursor state to invisible, normal, or
+ very visible for <STRONG>visibility</STRONG> equal to <STRONG>0</STRONG>, <STRONG>1</STRONG>, or <STRONG>2</STRONG> respectively. If the
+ terminal supports the <EM>visibility</EM> requested, the previous <EM>cursor</EM> state
is returned; otherwise, <STRONG>ERR</STRONG> is returned.
</PRE><H3><a name="h3-mvcur">mvcur</a></H3><PRE>
- <STRONG>mvcur</STRONG> provides low-level cursor motion. It takes effect immediately,
- rather than at the next refresh. Unlike the other low-level output
- functions, which either write to the standard output stream or are
- passed a function pointer to perform output, <STRONG>mvcur</STRONG> uses a file
+ <STRONG>mvcur</STRONG> provides low-level cursor motion. It takes effect immediately,
+ rather than at the next refresh. Unlike the other low-level output
+ functions, which either write to the standard output stream or are
+ passed a function pointer to perform output, <STRONG>mvcur</STRONG> uses a file
descriptor derived from the output stream parameter of <STRONG><A HREF="curs_initscr.3x.html">newterm(3x)</A></STRONG>.
- One application of <STRONG>mvcur</STRONG> accompanies the temporary use of another
- program to write to the terminal screen. For example, first call
- <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG> to ensure that the screen and the library's model of it is
- up to date; then call <STRONG>reset_shell_mode</STRONG>; write to the screen with the
- external application; call <STRONG>reset_prog_mode</STRONG>; and finally call <STRONG>mvcur</STRONG> to
- set the cursor's location to where <EM>curses</EM> thinks it is, since the
+ One application of <STRONG>mvcur</STRONG> accompanies the temporary use of another
+ program to write to the terminal screen. For example, first call
+ <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG> to ensure that the screen and the library's model of it is
+ up to date; then call <STRONG>reset_shell_mode</STRONG>; write to the screen with the
+ external application; call <STRONG>reset_prog_mode</STRONG>; and finally call <STRONG>mvcur</STRONG> to
+ set the cursor's location to where <EM>curses</EM> thinks it is, since the
library has no knowledge of how the external application moved it.
</PRE><H3><a name="h3-napms">napms</a></H3><PRE>
- <STRONG>napms</STRONG> sleeps for <EM>ms</EM> milliseconds. If <EM>ms</EM> exceeds 30,000 (thirty
+ <STRONG>napms</STRONG> sleeps for <EM>ms</EM> milliseconds. If <EM>ms</EM> exceeds 30,000 (thirty
seconds), it is capped at that value.
</PRE><H3><a name="h3-ripoffline">ripoffline</a></H3><PRE>
- <STRONG>ripoffline</STRONG> provides access to the same facility that <STRONG><A HREF="curs_slk.3x.html">slk_init(3x)</A></STRONG> uses
- to reduce the size of the screen. <STRONG>ripoffline</STRONG> must be called before
+ <STRONG>ripoffline</STRONG> provides access to the same facility that <STRONG><A HREF="curs_slk.3x.html">slk_init(3x)</A></STRONG> uses
+ to reduce the size of the screen. <STRONG>ripoffline</STRONG> must be called before
<STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> is called, to prepare these initial actions:
<STRONG>o</STRONG> If <EM>line</EM> is positive, a line is removed from the top of <STRONG>stdscr</STRONG>.
<STRONG>o</STRONG> if <EM>line</EM> is negative, a line is removed from the bottom.
- When the resulting initialization is done inside <STRONG>initscr</STRONG>, the routine
+ When the resulting initialization is done inside <STRONG>initscr</STRONG>, the routine
<STRONG>init</STRONG> (supplied by the user) is called with two arguments:
<STRONG>o</STRONG> a window pointer to the one-line window that has been allocated and
<STRONG>o</STRONG> an integer with the number of columns in the window.
- Inside this initialization routine, the integer variables <STRONG>LINES</STRONG> and
- <STRONG>COLS</STRONG> (defined in <STRONG><curses.h></STRONG>) are not guaranteed to be accurate and
- <STRONG>wrefresh</STRONG> or <STRONG>doupdate</STRONG> must not be called. It is allowable to call
+ Inside this initialization routine, the integer variables <STRONG>LINES</STRONG> and
+ <STRONG>COLS</STRONG> (defined in <STRONG><curses.h></STRONG>) are not guaranteed to be accurate and
+ <STRONG>wrefresh</STRONG> or <STRONG>doupdate</STRONG> must not be called. It is allowable to call
<STRONG>wnoutrefresh</STRONG> during the initialization routine.
- <STRONG>ripoffline</STRONG> can be called up to five times before calling <STRONG>initscr</STRONG> or
+ <STRONG>ripoffline</STRONG> can be called up to five times before calling <STRONG>initscr</STRONG> or
<STRONG>newterm</STRONG>.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
Except for <STRONG>curs_set</STRONG>, these routines always return <STRONG>OK</STRONG>.
- <STRONG>curs_set</STRONG> returns the previous cursor state, or <STRONG>ERR</STRONG> if the requested
+ <STRONG>curs_set</STRONG> returns the previous cursor state, or <STRONG>ERR</STRONG> if the requested
<EM>visibility</EM> is not supported.
X/Open defines no error conditions. In this implementation
to obtain the terminal settings fails.
<STRONG>ripoffline</STRONG>
- returns <STRONG>ERR</STRONG> if the maximum number of ripped-off lines exceeds the
+ returns <STRONG>ERR</STRONG> if the maximum number of ripped-off lines exceeds the
maximum (5).
Note that <STRONG>getsyx</STRONG> is a macro, so <STRONG>&</STRONG> is not necessary before the variables
<EM>y</EM> and <EM>x</EM>.
- Older SVr4 man pages warn that the return value of <STRONG>curs_set</STRONG> "is
+ Older SVr4 man pages warn that the return value of <STRONG>curs_set</STRONG> "is
currently incorrect". This implementation gets it right, but it may be
unwise to count on the correctness of the return value anywhere else.
Both <EM>ncurses</EM> and SVr4 will call <STRONG>curs_set</STRONG> in <STRONG>endwin</STRONG> if <STRONG>curs_set</STRONG> has been
- called to make the cursor other than normal, i.e., either invisible or
- very visible. There is no way for <EM>ncurses</EM> to determine the initial
+ called to make the cursor other than normal, i.e., either invisible or
+ very visible. There is no way for <EM>ncurses</EM> to determine the initial
cursor state to restore that.
</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
- In <EM>ncurses</EM>, <STRONG>mvcur</STRONG> accepts <STRONG>-1</STRONG> for either or both old coordinates. This
- value tells <EM>ncurses</EM> that the old location is unknown, and that it must
- use only absolute motion, as with the <STRONG>cursor_address</STRONG> (<STRONG>cup</STRONG>) capability,
- rather than the least costly combination of absolute and relative
+ In <EM>ncurses</EM>, <STRONG>mvcur</STRONG> accepts <STRONG>-1</STRONG> for either or both old coordinates. This
+ value tells <EM>ncurses</EM> that the old location is unknown, and that it must
+ use only absolute motion, as with the <STRONG>cursor_address</STRONG> (<STRONG>cup</STRONG>) capability,
+ rather than the least costly combination of absolute and relative
motion.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ Applications employing <EM>ncurses</EM> extensions should condition their use on
+ the visibility of the <STRONG>NCURSES_VERSION</STRONG> preprocessor macro.
+
The <EM>virtual</EM> <EM>screen</EM> functions <STRONG>setsyx</STRONG> and <STRONG>getsyx</STRONG> are not described in
X/Open Curses, Issue 4. All other functions are as described in X/Open
Curses.
-ncurses 6.5 2024-05-25 <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
+ncurses 6.5 2024-06-08 <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_scr_dump.3x,v 1.45 2024/06/01 22:29:45 tom Exp @
+ * @Id: curs_scr_dump.3x,v 1.47 2024/06/08 20:33:56 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_scr_dump 3x 2024-06-01 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_scr_dump 3x 2024-06-08 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_scr_dump 3x 2024-06-01 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_scr_dump 3x 2024-06-08 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
screen on this information rather than clearing it and starting from
scratch.
- <EM>curses</EM> regards the terminal being in an invalid state for computation
- of updates based on the contents of <EM>filename</EM> if
+ <EM>curses</EM> regards the terminal as in an invalid state for computation of
+ updates based on the contents of <EM>filename</EM> if
- <STRONG>o</STRONG> the terminal type supports the <EM>terminfo</EM> capabilities <STRONG>exit_ca_mode</STRONG>
- (<STRONG>rmcup</STRONG>) or <STRONG>non_rev_rmcup</STRONG> (<STRONG>nrrmc</STRONG>), or
+ <STRONG>o</STRONG> <EM>curses</EM> knows that the terminal has been written to since the
+ preceding <STRONG>scr_dump</STRONG> call, or
- <STRONG>o</STRONG> <EM>curses</EM> knows that the terminal has been written to since the
- preceding <STRONG>scr_dump</STRONG> call.
+ <STRONG>o</STRONG> the terminal type supports the <EM>terminfo</EM> capabilities <STRONG>exit_ca_mode</STRONG>
+ (<STRONG>rmcup</STRONG>) or <STRONG>non_rev_rmcup</STRONG> (<STRONG>nrrmc</STRONG>).
Either of the foregoing conditions means that <EM>curses</EM> cannot assume that
the terminal's contents match their representation in <EM>filename</EM>. The
former is due to terminal features (such as <STRONG>xterm(1)</STRONG>'s "alternate
screen") that couple cursor-positioning mode with a local cache of
- screen contents. <EM>curses</EM> cannot know whether terminal is displaying
+ screen contents. <EM>curses</EM> cannot know whether the terminal is displaying
from that local cache at the time the application calls <STRONG>scr_init</STRONG>, so it
makes a pessimistic assumption that a full redraw is required; see
subsection "Cursor Motions" of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
-ncurses 6.5 2024-06-01 <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
+ncurses 6.5 2024-06-08 <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_terminfo.3x,v 1.140 2024/06/01 22:29:08 tom Exp @
+ * @Id: curs_terminfo.3x,v 1.142 2024/06/08 23:05:52 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_terminfo 3x 2024-06-01 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_terminfo 3x 2024-06-08 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_terminfo 3x 2024-06-01 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_terminfo 3x 2024-06-08 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
-ncurses 6.5 2024-06-01 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+ncurses 6.5 2024-06-08 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_util.3x,v 1.106 2024/06/01 22:28:18 tom Exp @
+ * @Id: curs_util.3x,v 1.108 2024/06/08 22:38:18 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_util 3x 2024-06-01 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_util 3x 2024-06-08 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_util 3x 2024-06-01 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_util 3x 2024-06-08 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
</PRE><H3><a name="h3-unctrl">unctrl</a></H3><PRE>
- The <STRONG>unctrl</STRONG> routine returns a character string which is a printable
+ The <STRONG>unctrl</STRONG> routine returns a character string as a printable
representation of the character <EM>ch</EM>:
<STRONG>o</STRONG> Printable characters are displayed as themselves, e.g., a one-
from the terminal database.
<STRONG>o</STRONG> <EM>ncurses</EM> re-fetches the value of the environment variables so that
- it is still the environment variables which set the screen size.
+ it is still the environment variables that set the screen size.
The <STRONG>use_env</STRONG> and <STRONG>use_tioctl</STRONG> routines combine as follows.
<STRONG>o</STRONG> the window's character cells contain the color pair <EM>value</EM>, but not
the actual color <EM>numbers</EM>. If cells in the retrieved window use
- color pairs which have not been created in the application using
+ color pairs that have not been created in the application using
<STRONG>init_pair</STRONG>, they will not be colored when the window is refreshed.
returns <STRONG>ERR</STRONG> if the terminal was not initialized.
<STRONG>putwin</STRONG>
- returns <STRONG>ERR</STRONG> if the associated <STRONG>fwrite</STRONG> calls return <STRONG>ERR</STRONG>.
+ returns <STRONG>ERR</STRONG> if the associated <STRONG>write(2)</STRONG> calls return <STRONG>ERR</STRONG>.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
</PRE><H3><a name="h3-keyname">keyname</a></H3><PRE>
The <STRONG>keyname</STRONG> function may return the names of user-defined string
- capabilities which are defined in the terminfo entry via the <STRONG>-x</STRONG> option
+ capabilities that are defined in the terminfo entry via the <STRONG>-x</STRONG> option
of <STRONG>tic</STRONG>. This implementation automatically assigns at run-time key
- codes to user-defined strings which begin with "k". The key codes
- start at KEY_MAX, but are not guaranteed to be the same value for
- different runs because user-defined codes are merged from all terminal
- descriptions which have been loaded. The <STRONG><A HREF="curs_extend.3x.html">use_extended_names(3x)</A></STRONG>
+ codes to user-defined strings that begin with "k". The key codes start
+ at KEY_MAX, but are not guaranteed to be the same value for different
+ runs because user-defined codes are merged from all terminal
+ descriptions that have been loaded. The <STRONG><A HREF="curs_extend.3x.html">use_extended_names(3x)</A></STRONG>
function controls whether this data is loaded when the terminal
description is read by the library.
older <EM>ncurses</EM> versions. This implementation (as well as the X/Open
variant of Solaris curses, dated 1995) uses textual dumps.
- The implementations which use binary dumps use block-I/O (the
- <STRONG>fwrite</STRONG> and <STRONG>fread</STRONG> functions). Those that use textual dumps use
- buffered-I/O. A few applications may happen to write extra data in
- the file using these functions. Doing that can run into problems
- mixing block- and buffered-I/O. This implementation reduces the
- problem on writes by flushing the output. However, reading from a
- file written using mixed schemes may not be successful.
+ The implementations that use binary dumps use block-I/O (<STRONG>write(2)</STRONG>
+ and <STRONG>read(2)</STRONG> functions). Those that use textual dumps use buffered-
+ I/O. A few applications may happen to write extra data in the file
+ using these functions. Doing that can run into problems mixing
+ block- and buffered-I/O. This implementation reduces the problem
+ on writes by flushing the output. However, reading from a file
+ written using mixed schemes may not be successful.
</PRE><H3><a name="h3-unctrl_wunctrl">unctrl, wunctrl</a></H3><PRE>
-ncurses 6.5 2024-06-01 <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+ncurses 6.5 2024-06-08 <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* authorization. *
****************************************************************************
* Author: Thomas E. Dickey 1997
- * @Id: define_key.3x,v 1.46 2024/05/25 20:15:04 tom Exp @
+ * @Id: define_key.3x,v 1.48 2024/06/08 23:25:11 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>define_key 3x 2024-05-25 ncurses 6.5 Library calls</TITLE>
+<TITLE>define_key 3x 2024-06-08 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">define_key 3x 2024-05-25 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">define_key 3x 2024-06-08 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG> Library calls <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>, <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>, <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>, <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>,
- <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>, <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>, <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
-ncurses 6.5 2024-05-25 <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>
+ncurses 6.5 2024-06-08 <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* authorization. *
****************************************************************************
* Author: Thomas E. Dickey 2003
- * @Id: key_defined.3x,v 1.36 2024/05/18 20:04:53 tom Exp @
+ * @Id: key_defined.3x,v 1.38 2024/06/08 23:25:34 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>key_defined 3x 2024-05-18 ncurses 6.5 Library calls</TITLE>
+<TITLE>key_defined 3x 2024-06-08 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">key_defined 3x 2024-05-18 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">key_defined 3x 2024-06-08 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG> Library calls <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>, <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>, <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>, <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>, <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>, <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
-ncurses 6.5 2024-05-18 <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>
+ncurses 6.5 2024-06-08 <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* authorization. *
****************************************************************************
* Author: Thomas E. Dickey 1999
- * @Id: keybound.3x,v 1.38 2024/05/18 20:05:36 tom Exp @
+ * @Id: keybound.3x,v 1.40 2024/06/08 23:25:57 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>keybound 3x 2024-05-18 ncurses 6.5 Library calls</TITLE>
+<TITLE>keybound 3x 2024-06-08 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">keybound 3x 2024-05-18 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">keybound 3x 2024-06-08 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG> Library calls <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>, <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>, <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>, <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>, <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
-ncurses 6.5 2024-05-18 <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>
+ncurses 6.5 2024-06-08 <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* authorization. *
****************************************************************************
* Author: Thomas E. Dickey 1997
- * @Id: keyok.3x,v 1.42 2024/05/18 20:06:09 tom Exp @
+ * @Id: keyok.3x,v 1.44 2024/06/08 23:26:27 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>keyok 3x 2024-05-18 ncurses 6.5 Library calls</TITLE>
+<TITLE>keyok 3x 2024-06-08 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">keyok 3x 2024-05-18 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">keyok 3x 2024-06-08 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG> Library calls <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>, <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>, <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>, <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>,
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>, <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>, <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>, <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>.
-ncurses 6.5 2024-05-18 <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
+ncurses 6.5 2024-06-08 <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: ncurses.3x,v 1.221 2024/06/01 22:29:08 tom Exp @
+ * @Id: ncurses.3x,v 1.223 2024/06/08 20:45:43 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>ncurses 3x 2024-06-01 ncurses 6.5 Library calls</TITLE>
+<TITLE>ncurses 3x 2024-06-08 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">ncurses 3x 2024-06-01 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">ncurses 3x 2024-06-08 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> Library calls <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
terminals with output optimized to minimize screen updates. <EM>ncurses</EM>
replaces the <EM>curses</EM> libraries from System V Release 4 Unix ("SVr4") and
4.4BSD Unix, the development of which ceased in the 1990s. This
- document describes <EM>ncurses</EM> version 6.5 (patch 20240601).
+ document describes <EM>ncurses</EM> version 6.5 (patch 20240608).
<EM>ncurses</EM> permits control of the terminal screen's contents; abstraction
and subdivision thereof with <EM>windows</EM> and <EM>pads</EM>; acquisition of keyboard
</PRE><H3><a name="h3-Overview">Overview</a></H3><PRE>
A <EM>curses</EM> library abstracts the terminal screen by representing all or
part of it as a <EM>WINDOW</EM> data structure. A <EM>window</EM> is a rectangular grid
- of character cells, addressed by row and column coordinates (<EM>y</EM>, <EM>x</EM>),
+ of character cells, addressed by line and column coordinates (<EM>y</EM>, <EM>x</EM>),
with the upper left corner as (0, 0). A window called <STRONG>stdscr</STRONG>, the same
size as the terminal screen, is always available. Create others with
<STRONG><A HREF="curs_window.3x.html">newwin(3x)</A></STRONG>.
effects.
Functions permit manipulation of a window and the <EM>cursor</EM> identifying
- the cell within it at which the next output operation will occur.
- Among those, the most basic are <STRONG><A HREF="curs_move.3x.html">move(3x)</A></STRONG> and <STRONG><A HREF="curs_addch.3x.html">addch(3x)</A></STRONG>: these place the
+ the cell within it at which the next operation will occur. Among
+ those, the most basic are <STRONG><A HREF="curs_move.3x.html">move(3x)</A></STRONG> and <STRONG><A HREF="curs_addch.3x.html">addch(3x)</A></STRONG>: these place the
cursor within and write a character to <STRONG>stdscr</STRONG>, respectively.
Frequent changes to the terminal screen can cause unpleasant flicker or
type. In either case, they are accessed via an integral bit
mask.
- Each cell of a <EM>WINDOW</EM> is stored as a <EM>chtype</EM>.
+ Each cell of a <EM>WINDOW</EM> is stored as a <EM>chtype</EM>. X/Open Curses
+ does not specify the sizes of the character code or color
+ pair identifier, nor the quantity of attribute bits, in
+ <EM>chtype</EM>; these are implementation-dependent. <EM>ncurses</EM> uses
+ eight bits for the character code. An application requiring
+ a wider character type, for instance to represent Unicode,
+ should use the wide-character API.
<EM>ncursesw</EM> is the library in its "wide" configuration, which handles
character encodings requiring a larger data type than <EM>char</EM> (a
<EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> corresponds to the non-wide configuration's <EM>chtype</EM>.
It is a structure type because it requires more
- storage than fits into a standard scalar type. A
+ storage than a standard scalar type offers. A
character code may not be representable as a <EM>char</EM>,
and moreover more than one character may occupy a
cell (as with accent marks and other diacritics).
def_shell_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
define_key <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>*
del_curterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+
delay_output <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
delch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
deleteln <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
derwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
doupdate <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
dupwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
-
echo <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
echo_wchar <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
echochar <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
in_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
in_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
in_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
+
inch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
inchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
inchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
init_pair <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
initscr <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
innstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
-
innwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
ins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
ins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
mvaddchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
mvaddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
mvaddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
+
mvaddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
mvaddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
mvchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
mvget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
mvgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
mvgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
-
mvgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
mvgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
mvhline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
mvwinnwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
mvwins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
mvwins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
+
mvwins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
mvwinsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
mvwinsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
mvwvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
mvwvline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
napms <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
-
newpad <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
newterm <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
newwin <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
slk_attr <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>*
slk_attr_off <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
slk_attr_on <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
+
slk_attr_set <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
slk_attroff <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
slk_attron <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
slk_refresh <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
slk_restore <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
slk_set <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
-
slk_touch <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
slk_wset <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
standend <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
vwprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
vwscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
wadd_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
+
wadd_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
wadd_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
waddch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
wattr_off <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
wattr_on <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
wattr_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
-
wattroff <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
wattron <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
wattrset <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
winstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
winwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
wmouse_trafo <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
+
wmove <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
wnoutrefresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
wprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
wsyncdown <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
wsyncup <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
wtimeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
-
wtouchln <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
wunctrl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
wvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
-ncurses 6.5 2024-06-01 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
+ncurses 6.5 2024-06-08 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
have, by specifying how to perform screen operations, and by specifying
padding requirements and initialization sequences.
- This document describes <EM>ncurses</EM> version 6.5 (patch 20240601).
+ This document describes <EM>ncurses</EM> version 6.5 (patch 20240608).
</PRE><H3><a name="h3-terminfo-Entry-Syntax"><EM>terminfo</EM> Entry Syntax</a></H3><PRE>
printing terminal, with no soft copy unit, give it both <STRONG>hc</STRONG> and <STRONG>os</STRONG>. (<STRONG>os</STRONG>
applies to storage scope terminals, such as TEKTRONIX 4010 series, as
well as hard copy and APL terminals.) If there is a code to move the
- cursor to the left edge of the current row, give this as <STRONG>cr</STRONG>. (Normally
- this will be carriage return, control/M.) If there is a code to
- produce an audible signal (bell, beep, etc) give this as <STRONG>bel</STRONG>.
+ cursor to the left edge of the current line, give this as <STRONG>cr</STRONG>.
+ (Normally this will be carriage return, control/M.) If there is a code
+ to produce an audible signal (bell, beep, etc) give this as <STRONG>bel</STRONG>.
If there is a code to move the cursor one position to the left (such as
backspace) that capability should be given as <STRONG>cub1</STRONG>. Similarly, codes
the screen when text is output, but this does not necessarily apply to
a <STRONG>cuf1</STRONG> from the last column. The only local motion which is defined
from the left edge is if <STRONG>bw</STRONG> is given, then a <STRONG>cub1</STRONG> from the left edge
- will move to the right edge of the previous row. If <STRONG>bw</STRONG> is not given,
+ will move to the right edge of the previous line. If <STRONG>bw</STRONG> is not given,
the effect is undefined. This is useful for drawing a box around the
edge of the screen, for example. If the terminal has switch selectable
automatic margins, the <EM>terminfo</EM> file usually assumes that this is on;
Cursor addressing and other strings requiring parameters in the
terminal are described by a parameterized string capability, with
<EM>printf</EM>-like escapes such as <EM>%x</EM> in it. For example, to address the
- cursor, the <STRONG>cup</STRONG> capability is given, using two parameters: the row and
- column to address to. (Rows and columns are numbered from zero and
+ cursor, the <STRONG>cup</STRONG> capability is given, using two parameters: the line and
+ column to address to. (Lines and columns are numbered from zero and
refer to the physical screen visible to the user, not to any unseen
memory.) If the terminal has memory relative cursor addressing, that
can be indicated by <STRONG>mrcup</STRONG>.
order. That is, to get x-5 one would use "%gx%{5}%-". <STRONG>%P</STRONG> and <STRONG>%g</STRONG>
variables are persistent across escape-string evaluations.
- Consider the HP2645, which, to get to row 3 and column 12, needs to be
- sent \E&a12c03Y padded for 6 milliseconds. The order of the rows and
- columns is inverted here, and the row and column are printed as two
+ Consider the HP2645, which, to get to line 3 and column 12, needs to be
+ sent \E&a12c03Y padded for 6 milliseconds. The order of the lines and
+ columns is inverted here, and the lines and column are printed as two
digits. The corresponding terminal description is expressed thus:
cup=\E&a%p2%dc%p1%dY$<6>,
- The Microterm ACT-IV needs the current row and column sent preceded by
- a <STRONG>^T</STRONG>, with the row and column simply encoded in binary,
+ The Microterm ACT-IV needs the current line and column sent preceded by
+ a <STRONG>^T</STRONG>, with the line and column simply encoded in binary,
cup=^T%p1%c%p2%c
Terminals which use "%c" need to be able to backspace the cursor
with terminfo set tty modes so that tabs are never expanded, so \t is
safe to send. This turns out to be essential for the Ann Arbor 4080.)
- A final example is the LSI ADM-3a, which uses row and column offset by
+ A final example is the LSI ADM-3a, which uses line and column offset by
a blank character, thus
cup=\E=%p1%' '%+%c%p2%' '%+%c
corner of the screen, not of memory. (Thus, the \EH sequence on HP
terminals cannot be used for <STRONG>home</STRONG>.)
- If the terminal has row or column absolute cursor addressing, these can
- be given as single parameter capabilities <STRONG>hpa</STRONG> (horizontal position
+ If the terminal has line or column absolute cursor addressing, these
+ can be given as single parameter capabilities <STRONG>hpa</STRONG> (horizontal position
absolute) and <STRONG>vpa</STRONG> (vertical position absolute). Sometimes these are
shorter than the more general two parameter sequence (as with the
hp2645) and can be used in preference to <STRONG>cup</STRONG>. If there are
line position, and
<STRONG>o</STRONG> parameterized capabilities for setting the top, bottom, left,
- right margins given the number of rows or columns.
+ right margins given the number of lines or columns.
In practice, the categorization into "terminal" and "printer" is not
suitable:
If there are commands to set and clear tab stops, they can be given as
<STRONG>tbc</STRONG> (clear all tab stops) and <STRONG>hts</STRONG> (set a tab stop in the current column
- of every row). If a more complex sequence is needed to set the tabs
+ of every line). If a more complex sequence is needed to set the tabs
than can be described by this, the sequence can be placed in <STRONG>is2</STRONG> or <STRONG>if</STRONG>.
The <STRONG>tput</STRONG> <STRONG>reset</STRONG> command uses the same capability strings as the <STRONG>reset</STRONG>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: tput.1,v 1.114 2024/05/11 20:39:53 tom Exp @
+ * @Id: tput.1,v 1.116 2024/06/08 20:50:34 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>tput 1 2024-05-11 ncurses 6.5 User commands</TITLE>
+<TITLE>tput 1 2024-06-08 ncurses 6.5 User commands</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">tput 1 2024-05-11 ncurses 6.5 User commands</H1>
+<H1 class="no-header">tput 1 2024-06-08 ncurses 6.5 User commands</H1>
<PRE>
<STRONG><A HREF="tput.1.html">tput(1)</A></STRONG> User commands <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
- <STRONG>tput</STRONG> [<STRONG>-T</STRONG> <EM>terminal-type</EM>] {<EM>cap-code</EM> [<EM>parameter</EM> ...]} ...
+ <STRONG>tput</STRONG> [<STRONG>-v</STRONG>] [<STRONG>-T</STRONG> <EM>terminal-type</EM>] {<EM>cap-code</EM> [<EM>parameter</EM> ...]} ...
- <STRONG>tput</STRONG> [<STRONG>-T</STRONG> <EM>terminal-type</EM>] [<STRONG>-x</STRONG>] <STRONG>clear</STRONG>
+ <STRONG>tput</STRONG> [<STRONG>-v</STRONG>] [<STRONG>-T</STRONG> <EM>terminal-type</EM>] [<STRONG>-x</STRONG>] <STRONG>clear</STRONG>
- <STRONG>tput</STRONG> [<STRONG>-T</STRONG> <EM>terminal-type</EM>] <STRONG>init</STRONG>
+ <STRONG>tput</STRONG> [<STRONG>-v</STRONG>] [<STRONG>-T</STRONG> <EM>terminal-type</EM>] <STRONG>init</STRONG>
- <STRONG>tput</STRONG> [<STRONG>-T</STRONG> <EM>terminal-type</EM>] <STRONG>reset</STRONG>
+ <STRONG>tput</STRONG> [<STRONG>-v</STRONG>] [<STRONG>-T</STRONG> <EM>terminal-type</EM>] <STRONG>reset</STRONG>
- <STRONG>tput</STRONG> [<STRONG>-T</STRONG> <EM>terminal-type</EM>] <STRONG>longname</STRONG>
+ <STRONG>tput</STRONG> [<STRONG>-v</STRONG>] [<STRONG>-T</STRONG> <EM>terminal-type</EM>] <STRONG>longname</STRONG>
- <STRONG>tput</STRONG> <STRONG>-S</STRONG>
+ <STRONG>tput</STRONG> [<STRONG>-v</STRONG>] <STRONG>-S</STRONG>
- <STRONG>tput</STRONG> <STRONG>-V</STRONG>
+ <STRONG>tput</STRONG> [<STRONG>-v</STRONG>] <STRONG>-V</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
environment variable. If specified, the environment variables
<EM>LINES</EM> and <EM>COLUMNS</EM> are also ignored.
+ <STRONG>-v</STRONG> causes <STRONG>tput</STRONG> to operate verbosely, reporting warnings.
+
<STRONG>-V</STRONG> reports the version of <EM>ncurses</EM> associated with <STRONG>tput</STRONG>, and exits
with a successful status.
Set cursor to normal visibility.
<STRONG>tput</STRONG> <STRONG>home</STRONG>
- Move the cursor to row 0, column 0: the upper left corner of the
- screen, usually known as the "home" cursor position.
+ Move the cursor to line 0, column 0: the upper left corner of
+ the screen, usually known as the "home" cursor position.
<STRONG>tput</STRONG> <STRONG>clear</STRONG>
Clear the screen: write the <STRONG>clear_screen</STRONG> capability's value to
device.
<STRONG>tput</STRONG> <STRONG>cup</STRONG> <STRONG>23</STRONG> <STRONG>4</STRONG>
- Move the cursor to row 23, column 4.
+ Move the cursor to line 23, column 4.
<STRONG>tput</STRONG> <STRONG>cup</STRONG>
Report the value of the <STRONG>cursor_address</STRONG> (<STRONG>cup</STRONG>) capability (used
-ncurses 6.5 2024-05-11 <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>
+ncurses 6.5 2024-06-08 <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: tset.1,v 1.86 2024/05/11 20:39:53 tom Exp @
+ * @Id: tset.1,v 1.88 2024/06/08 20:51:12 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>tset 1 2024-05-11 ncurses 6.5 User commands</TITLE>
+<TITLE>tset 1 2024-06-08 ncurses 6.5 User commands</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">tset 1 2024-05-11 ncurses 6.5 User commands</H1>
+<H1 class="no-header">tset 1 2024-06-08 ncurses 6.5 User commands</H1>
<PRE>
<STRONG><A HREF="tset.1.html">tset(1)</A></STRONG> User commands <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
kill characters (among many other things) are set
<STRONG>o</STRONG> unless the "<STRONG>-I</STRONG>" option is enabled, the terminal and tab
- <EM>initialization</EM> strings are sent to the standard error output, and
- <STRONG>tset</STRONG> waits one second (in case a hardware reset was issued).
+ <EM>initialization</EM> strings are sent to the standard error output, and,
+ if the terminal device does not appear to be a pseudoterminal (as
+ might be used by a terminal emulator program), <STRONG>tset</STRONG> waits one
+ second in case a hardware reset was issued.
<STRONG>o</STRONG> Finally, if the erase, interrupt and line kill characters have
changed, or are not set to their default values, their values are
-ncurses 6.5 2024-05-11 <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
+ncurses 6.5 2024-06-08 <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: user_caps.5,v 1.49 2024/03/16 15:35:01 tom Exp @
+ * @Id: user_caps.5,v 1.51 2024/06/08 21:01:53 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>user_caps 5 2024-03-16 ncurses 6.5 File formats</TITLE>
+<TITLE>user_caps 5 2024-06-08 ncurses 6.5 File formats</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">user_caps 5 2024-03-16 ncurses 6.5 File formats</H1>
+<H1 class="no-header">user_caps 5 2024-06-08 ncurses 6.5 File formats</H1>
<PRE>
<STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG> File formats <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>
</PRE><H3><a name="h3-Background">Background</a></H3><PRE>
Before <EM>ncurses</EM> 5.0, terminfo databases used a <EM>fixed</EM> <EM>repertoire</EM> of
terminal capabilities designed for the SVr2 terminal database in 1984,
- and extended in stages through SVr4 (1989), and standardized in the
- Single Unix Specification beginning in 1995.
+ and extended in stages through SVr4 (1989), and standardized in X/Open
+ Curses starting in 1995.
Most of the <EM>extensions</EM> in this fixed repertoire were additions to the
tables of Boolean, numeric and string capabilities. Rather than change
-ncurses 6.5 2024-03-16 <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>
+ncurses 6.5 2024-06-08 <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>
</PRE>
<div class="nav">
<ul>
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2024 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* Author: Thomas E. Dickey 1997-on *
****************************************************************************/
/*
- * $Id: ncurses_cfg.hin,v 1.13 2020/03/08 12:37:59 tom Exp $
+ * $Id: ncurses_cfg.hin,v 1.15 2024/06/08 14:04:14 tom Exp $
*
* Both ncurses_cfg.h and ncurses_def.h are internal header-files used when
* building ncurses.
*
* See:
* https://invisible-island.net/autoconf/
- * ftp://ftp.invisible-island.net/autoconf/
+ * https://invisible-island.net/archives/autoconf/
*/
#ifndef NC_CONFIG_H
#define NC_CONFIG_H
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_addch.3x,v 1.90 2024/06/01 22:29:08 tom Exp $
-.TH curs_addch 3X 2024-06-01 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_addch.3x,v 1.92 2024/06/08 20:51:41 tom Exp $
+.TH curs_addch 3X 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
definitions are
.I char
constants.
-.PP
Some implementations are problematic.
.bP
Solaris
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_get_wch.3x,v 1.41 2024/05/11 20:39:53 tom Exp $
-.TH curs_get_wch 3X 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_get_wch.3x,v 1.43 2024/06/08 20:25:25 tom Exp $
+.TH curs_get_wch 3X 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
If \fB\%cbreak\fP(3X)
has been called,
this happens after one character is read.
-If \fB\%nocbreak\fP(3X)
+If \fB\%nocbreak\fP(3X) or \fB\%noraw\fP(3X)
has been called,
it occurs when the next newline is read.
+(Because the terminal's normal or \*(``cooked\*('' mode
+is line-buffered,
+multiple
+.B \%wget_wch
+calls may then be necessary to empty the input queue.)
If \fB\%halfdelay\fP(3X)
has been called,
.I curses
If \fB\%echo\fP(3X) has been called,
and the window is not a pad,
.I curses
-writes
-.I wch
+writes the wide character
+from the input queue
to the window
(at the cursor position)
per the following rules.
.bP
-If
-.I wch
-matches the terminal's erase character,
+If the wide character
+matches the terminal's erase character
+(see \fB\%erasewchar\fP(3X)),
the cursor moves leftward one position
and the new position is erased
as if \fB\%wmove\fP(3X) and then \fB\%wdelch\fP(3X) were called.
.bP
.I curses
writes any other
-.I wch
+wide character
to the window,
as with \fB\%wecho_wchar\fP(3X).
.bP
.B \%wrefresh
on it.
.PP
-If
-.I wch
+If the wide character
is a carriage return and \fBnl\fP(3X) has been called,
.B \%wgetch
-stores the the character code for line feed in
+stores the the wide character code for line feed in
.I wch
instead.
.SS "Ungetting Characters"
.B \%unget_wch
places
-.I wch
-into the input queue to be returned by the next call to
+.I wc
+into the input queue to be retrieved by the next call to
.BR \%wget_wch "."
A single input queue serves all windows associated with the terminal.
.SH RETURN VALUE
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_get_wstr.3x,v 1.50 2024/05/25 20:10:58 tom Exp $
-.TH curs_get_wstr 3X 2024-05-25 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_get_wstr.3x,v 1.52 2024/06/08 21:01:53 tom Exp $
+.TH curs_get_wstr 3X 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
These functions cannot return \fBKEY_\fP values because there
is no way to distinguish a \fBKEY_\fP value from a valid \fBwchar_t\fP value.
.SH PORTABILITY
-These functions are described in The Single Unix Specification, Version 2.
-No error conditions are defined.
+X/Open Curses,
+Issue 4 describes these functions.
+It specifies no error conditions for them.
.PP
This implementation returns \fBERR\fP if the window pointer is null,
or if the lower-level \fBwget_wch\fP call returns an \fBERR\fP.
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_getch.3x,v 1.95 2024/06/01 22:29:08 tom Exp $
-.TH curs_getch 3X 2024-06-01 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_getch.3x,v 1.97 2024/06/08 20:26:46 tom Exp $
+.TH curs_getch 3X 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
If \fB\%cbreak\fP(3X)
has been called,
this happens after one character is read.
-If \fB\%nocbreak\fP(3X)
+If \fB\%nocbreak\fP(3X) or \fB\%noraw\fP(3X)
has been called,
it occurs when the next newline is read.
+(Because the terminal's normal or \*(``cooked\*('' mode
+is line-buffered,
+multiple
+.B \%wgetch
+calls may then be necessary to empty the input queue.)
If \fB\%halfdelay\fP(3X)
has been called,
.I curses
.bP
If
.I c
-matches the terminal's erase character,
+matches the terminal's erase character
+(see \fB\%erasechar\fP(3X)),
the cursor moves leftward one position
and the new position is erased
as if \fB\%wmove\fP(3X) and then \fB\%wdelch\fP(3X) were called.
returns
.BR \%KEY_RESIZE ","
even if the window's keypad mode is disabled,
-when
+if
.I \%ncurses
-handles a
+has handled a
.B \%SIGWINCH
-signal;
+signal since
+.B \%wgetch
+was called;
see \fB\%initscr\fP(3X) and \fB\%resizeterm\fP(3X).
.bP
.B \%wgetch
.PP
The echo behavior of these functions on input of
.B KEY_
-or backspace characters was not specified in the SVr4 documentation.
-This description is adapted from X/Open Curses.
+or backspace characters is not documented in SVr4
+.IR curses "."
.PP
The behavior of
.B \%wgetch
-in the presence of signal handlers is unspecified in the SVr4
-documentation and X/Open Curses.
+in the presence of signal handlers is not documented in SVr4
+.I curses
+and is unspecified by X/Open Curses.
In historical
.I curses
implementations,
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_getstr.3x,v 1.63 2024/06/01 22:29:08 tom Exp $
-.TH curs_getstr 3X 2024-06-01 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_getstr.3x,v 1.65 2024/06/08 21:04:32 tom Exp $
+.TH curs_getstr 3X 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
\fBwgetnstr\fP,
respectively, is recommended.
.SH PORTABILITY
-These functions are described in The Single Unix Specification, Version 2.
-No error conditions are defined.
-.PP
-This implementation returns \fBERR\fP if the window pointer is null,
-or if the lower-level \fBwgetch\fP(3X) call returns an \fBERR\fP.
+X/Open Curses,
+Issue 4 describes these functions.
+It specifies no error conditions for them.
.PP
SVr3 and early SVr4 curses implementations did not reject function keys;
the SVr4.0 documentation claimed that \*(``special keys\*(''
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_getyx.3x,v 1.45 2024/05/11 20:39:53 tom Exp $
-.TH curs_getyx 3X 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_getyx.3x,v 1.47 2024/06/08 20:42:50 tom Exp $
+.TH curs_getyx 3X 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
.B \%getmaxyx
stores
.IR win "'s"
-maximum valid row and column numbers in
+maximum valid line and column numbers in
.I y
and
.IR x ","
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_inch.3x,v 1.58 2024/06/01 22:29:08 tom Exp $
-.TH curs_inch 3X 2024-06-01 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_inch.3x,v 1.60 2024/06/08 20:45:43 tom Exp $
+.TH curs_inch 3X 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
.\" the Alpha arrived in 1993. --GBR
SVr3.2 (1988)
added a 6-bit color pair identifier alongside the attributes.
-.PP
-X/Open Curses does not specify the sizes of the character code or
-color pair identifier,
-nor the quantity of attribute bits,
-in
-.IR chtype ";"
-these are implementation-dependent.
-.I \%ncurses
-uses eight bits for the character code.
-An application requiring a wider character type,
-for instance to represent Unicode,
-should use the wide-character counterparts of these functions.
.SH SEE ALSO
\fB\%curs_in_wch\fP(3X) describes comparable functions of the
.I \%ncurses
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_initscr.3x,v 1.73 2024/06/01 22:38:43 tom Exp $
-.TH curs_initscr 3X 2024-06-01 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_initscr.3x,v 1.75 2024/06/08 20:34:23 tom Exp $
+.TH curs_initscr 3X 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
This handles the window-size changes which were ignored in
the standardization efforts.
The handler sets a (signal-safe) variable
-that is later tested by \fB\%wgetch\fP(3X) and \fB\%wget_wch\fP(3X):
+that is later tested by \fB\%wgetch\fP(3X) and \fB\%wget_wch\fP(3X).
.RS
.bP
.B \%wgetch
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_inopts.3x,v 1.70 2024/06/01 22:28:41 tom Exp $
-.TH curs_inopts 3X 2024-06-01 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_inopts.3x,v 1.73 2024/06/08 23:24:17 tom Exp $
+.TH curs_inopts 3X 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
By default,
a
.I curses
-window has its echo flag set.
+screen's echo option is set.
Authors of most interactive programs prefer
to do their own echoing in a controlled area of the screen,
or not to echo at all,
Initially,
whether the terminal reports a carriage return
using the character code for a line feed
+in cbreak or raw modes
depends on the configuration of the terminal driver;
see \fI\%termios\fP(3).
.B nl
configures the terminal to perform this translation.
.B nonl
disables it.
+In normal (or \*(``cooked\*('') mode,
+the terminal driver always translates carriage returns to line feeds.
.\"
.SS nodelay
.B \%nodelay
(\*(``cooked\*('') mode from raw and cbreak modes,
respectively.
Mixing
-.BR raw / \%noraw
+.BR \%raw / noraw
calls with
-.BR cbreak / \%nocbreak
+.BR \%cbreak / nocbreak
calls leads to terminal driver control states that are hard to predict
or understand;
doing so is not recommended.
the function returns
.TP 5 \" "-1" + 2n tag separation + 1n fudge for typesetters like grops
.B 1
-if the flag is set,
+if the option is set,
.TP
.B 0
-if the flag is reset,
+if the option is reset,
or
.TP
.B \-1
\fB\%curs_initscr\fP(3X),
\fB\%curs_util\fP(3X),
\fB\%define_key\fP(3X),
-\fB\%term_variables\fP(3X),
-\fB\%termios\fP(3)
+\fB\%termios\fP(3),
+\fB\%term_variables\fP(3X).
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_ins_wstr.3x,v 1.40 2024/05/25 20:10:58 tom Exp $
-.TH curs_ins_wstr 3X 2024-05-25 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_ins_wstr.3x,v 1.42 2024/06/08 21:04:04 tom Exp $
+.TH curs_ins_wstr 3X 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
.PP
Special characters are handled as in \fBwadd_wch\fP(3X).
.SH RETURN VALUE
-All functions return the integer \fBERR\fP upon failure and \fBOK\fP on success.
+These functions return
+.B OK
+on success and
+.B ERR
+on failure.
.PP
X/Open Curses does not specify any error conditions.
-This implementation returns
+In
+.IR \%ncurses ","
+they return
.B ERR
+if
.bP
-if the \fIwin\fP parameter is null or
+.I win
+is
+.BR NULL ","
.bP
-if the \fIwstr\fP parameter is null or
+.I wstr
+is
+.BR NULL ","
+or
.bP
-if the \fBwins_wch\fP function returns
+an internal \fB\%wins_wch\fP(3X) call returns
.BR ERR "."
.PP
Functions prefixed with \*(``mv\*('' first perform cursor movement and
.IR x )
is outside the window boundaries.
.SH NOTES
-All but \fBwins_nwstr\fP may be macros.
+All of these functions except
+.B \%wins_nwstr
+may be implemented as macros.
.PP
-If the first character in the string is a non-spacing character, these
-functions will fail.
-X/Open Curses does not define what will happen
+If the first character in the string is a non-spacing character,
+these functions return
+.BR ERR "."
+X/Open Curses does not specify what happens
if a non-spacing character follows a control character.
.SH PORTABILITY
-These functions are described in X/Open Curses, Issue 4,
-which adds \fI\%const\fP qualifiers to the arguments.
+X/Open Curses,
+Issue 4 describes these functions.
+It specifies no error conditions for them.
.PP
-X/Open states that the entire string is inserted if \fIn\fP is less than 1.
+Issue 4 states that the entire string is inserted if
+.I n
+is less than 1.
This is probably an error,
because it is inconsistent with other functions,
-and differs from the X/Open implementation on Solaris.
+and differs from the SVr4
+.I curses
+and Solaris
+.I xcurses
+implementations.
+Nevertheless,
+Issue 7 retains it.
.SH SEE ALSO
\fB\%curs_insstr\fP(3X) describes comparable functions of the
.I \%ncurses
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_insstr.3x,v 1.53 2024/05/25 20:10:58 tom Exp $
-.TH curs_insstr 3X 2024-05-25 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_insstr.3x,v 1.55 2024/06/08 21:03:03 tom Exp $
+.TH curs_insstr 3X 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
.SH NOTES
All but \fBwinsnstr\fP may be macros.
.SH PORTABILITY
-These functions are described in X/Open Curses, Issue 4,
-which adds \fI\%const\fP qualifiers to the arguments.
+X/Open Curses,
+Issue 4 describes these functions.
+It specifies no error conditions for them.
.PP
-The Single Unix Specification, Version 2 states that
-\fBinsnstr\fP and \fBwinsnstr\fP perform wrapping.
-This is probably an error, since it makes this group of functions inconsistent.
-Also, no implementation of curses documents this inconsistency.
+Issue 4 distinguished
+.B \%insnstr
+and
+.B \%winsnstr
+by stating they \*(``do not perform wrapping\*(''.
+This was probably an error,
+since it makes this group of functions inconsistent.
+No implementation of
+.I curses
+documents this inconsistency,
+and Issue 7 removed it.
.PP
-X/Open states that the entire string is inserted if \fIn\fP is less than 1.
+Issue 4 states that the entire string is inserted if
+.I n
+is less than 1.
This is probably an error,
because it is inconsistent with other functions,
-and differs from the SVr4 and X/Open implementations on Solaris.
+and differs from the SVr4
+.I curses
+and Solaris
+.I xcurses
+implementations.
+Nevertheless,
+Issue 7 retains it.
.SH SEE ALSO
+\fB\%curs_ins_wstr\fP(3X) describes comparable functions of the
+.I \%ncurses
+library in its wide-character configuration
+.RI \%( ncursesw ).
+.PP
\fB\%curses\fP(3X),
\fB\%curs_inch\fP(3X),
\fB\%curs_ins_wstr\fP(3X),
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_instr.3x,v 1.55 2024/06/01 22:29:08 tom Exp $
-.TH curs_instr 3X 2024-06-01 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_instr.3x,v 1.57 2024/06/08 20:47:39 tom Exp $
+.TH curs_instr 3X 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
.nf
\fB#include <curses.h>
.PP
-\fBint instr(char *\fIstr\fP);
-\fBint innstr(char *\fIstr\fP, int \fIn\fP);
-\fBint winstr(WINDOW *\fIwin\fP, char *\fIstr\fP);
-\fBint winnstr(WINDOW *\fIwin\fP, char *\fIstr\fP, int \fIn\fP);
+\fBint instr(char *\ \fIstr\fP);
+\fBint winstr(WINDOW *\ \fIwin\fP, char *\ \fIstr\fP);
+\fBint mvinstr(int \fIy\fP, int \fIx\fP, char *\ \fIstr\fP);
+\fBint mvwinstr(WINDOW *\ \fIwin\fP, int \fIy\fP, int \fIx\fP, char *\ \fIstr\fP);
.PP
-\fBint mvinstr(int \fIy\fP, int \fIx\fP, char *\fIstr\fP);
-\fBint mvinnstr(int \fIy\fP, int \fIx\fP, char *\fIstr\fP, int \fIn\fP);
-\fBint mvwinstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, char *\fIstr\fP);
-\fBint mvwinnstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, char *\fIstr\fP, int \fIn\fP);
+\fBint innstr(char *\ \fIstr\fP, int \fIn\fP);
+\fBint winnstr(WINDOW *\ \fIwin\fP, char *\ \fIstr\fP, int \fIn\fP);
+\fBint mvinnstr(int \fIy\fP, int \fIx\fP, char *\ \fIstr\fP, int \fIn\fP);
+\fBint mvwinnstr(WINDOW *\ \fIwin\fP, int \fIy\fP, int \fIx\fP, char *\ \fIstr\fP, int \fIn\fP);
.fi
.SH DESCRIPTION
-These routines return a string of characters in \fIstr\fP,
-starting at the current cursor position in the named window.
-Attributes are stripped from the characters.
-.PP
-The four functions with \fIn\fP as the last argument return
-a leading substring at most \fIn\fP characters long
-(exclusive of the trailing NUL).
-Transfer stops at the end of the current line, or when \fIn\fP characters have
-been stored at the location referenced by \fIstr\fP.
+.B \%winstr
+extracts a string from a
+.I curses
+window
+.IR win ","
+starting at the cursor and stopping at the end of the line,
+and stores it in
+.IR str ","
+terminating it with a null character
+and
+omitting any attributes and color pair identifier
+that
+.I curses
+associates with each character.
+.B \%winnstr
+does the same,
+but copies at most
+.I n
+characters from
+.IR win "."
+An
+.I n
+of
+.B \-1
+implies no limit;
+.B \%winnstr
+then works like
+.BR \%winstr "."
+\fB\%ncurses\fP(3X) describes the variants of these functions.
.SH RETURN VALUE
-All of the functions return \fBERR\fP upon failure,
-or the number of characters actually read into the string.
+These functions return the count of characters copied from
+.I win
+to
+.IR str ","
+or
+.B ERR
+upon failure.
.PP
-X/Open Curses defines no error conditions.
-This implementation returns
+In
+.IR \%ncurses ","
+they return
.B ERR
+if
.bP
-if the \fIwin\fP parameter is null or
+.I win
+is
+.B NULL
+or
.bP
-if the \fIchstr\fP parameter is null.
+.I str
+is
+.BR NULL "."
.PP
Functions prefixed with \*(``mv\*('' first perform cursor movement and
fail if the position
.IR x )
is outside the window boundaries.
.SH NOTES
-All routines except \fBwinnstr\fP may be macros.
+All of these functions except
+.B \%winnstr
+may be implemented as macros.
.PP
Reading a line that overflows the array pointed to by
-\fIstr\fP
+.I str
with
-\fBinstr\fP,
-\fBmvinstr\fP,
-\fBmvwinstr\fP
+.BR \%instr ","
+.BR \%winstr ","
+.BR \%mvinstr ","
or
-\fBwinstr\fP
+.B \%mvwinstr
causes undefined results.
-Therefore, the use of
-\fBinnstr\fP,
-\fBmvinnstr\fP,
-\fBmvwinnstr\fP, or
-\fBwinnstr\fP
-is recommended.
+Use of
+.BR \%innstr ","
+.BR \%winnstr ","
+.BR \%mvinnstr ","
+and
+.B \%mvwinnstr
+is recommended instead.
+.SH EXTENSIONS
+.BR \%innstr ","
+.BR \%winnstr ","
+.BR \%mvinnstr ","
+and
+.BR \%mvwinnstr "'s"
+treatment of
+.B \-1
+as a valid value of
+.I n
+is an
+.I \%ncurses
+extension.
.SH PORTABILITY
-SVr4 does not
-document whether a length limit includes or excludes the trailing NUL.
+Applications employing
+.I \%ncurses
+extensions should condition their use on the visibility of the
+.B \%NCURSES_VERSION
+preprocessor macro.
.PP
-The \fI\%ncurses\fP library extends the X/Open Curses description by allowing a
-negative value for \fIn\fP.
-In this case, the functions return the string ending at the right margin.
+X/Open Curses,
+Issue 4 describes these functions.
+It specifies no error conditions for them.
+.PP
+X/Open Curses Issues 4 and 7 both state that
+.BR \%instr ","
+.BR \%winstr ","
+.BR \%mvinstr ","
+and
+.B \%mvwinstr
+return
+.B OK
+rather than a character count.
+This is likely an erratum.
+.bP
+SVr3.1 and SVr4 implemented
+.B \%winstr
+as a wrapper around
+.BR \%winnstr ","
+returning the latter's return value.
+X/Open Curses's specification thus may have been an editorial solecism
+copied from System\ V's documentation
+(see below)
+by X/Open,
+rather than an intentional change.
+.bP
+.I \%ncurses
+retains compatibility with System\ V
+.I curses
+behavior.
+.PP
+SVr4 documents no return values apart from
+.B OK
+and
+.B ERR
+for any of these functions.
+SVr4 does not
+document whether
+.I n
+counts the null terminator that these functions write to
+.IR str "."
+.SH HISTORY
+SVr3.1 (1987)
+introduced these functions.
.SH SEE ALSO
-\fB\%curs_ins_wstr\fP(3X) describes comparable functions of the
+\fB\%curs_inwstr\fP(3X) describes comparable functions of the
.I \%ncurses
library in its wide-character configuration
.RI \%( ncursesw ).
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_inwstr.3x,v 1.43 2024/05/25 20:10:58 tom Exp $
-.TH curs_inwstr 3X 2024-05-25 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_inwstr.3x,v 1.45 2024/06/08 21:19:18 tom Exp $
+.TH curs_inwstr 3X 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
.nf
\fB#include <curses.h>
.PP
-\fBint inwstr(wchar_t *\fIwstr\fP);
-\fBint innwstr(wchar_t *\fIwstr\fP, int \fIn\fP);
-\fBint winwstr(WINDOW *\fIwin\fP, wchar_t *\fIwstr\fP);
-\fBint winnwstr(WINDOW *\fIwin\fP, wchar_t *\fIwstr\fP, int \fIn\fP);
+\fBint inwstr(wchar_t *\ \fIwstr\fP);
+\fBint winwstr(WINDOW *\ \fIwin\fP, wchar_t *\ \fIwstr\fP);
+\fBint mvinwstr(int \fIy\fP, int \fIx\fP, wchar_t *\ \fIwstr\fP);
+\fBint mvwinwstr(WINDOW *\ \fIwin\fP, int \fIy\fP, int \fIx\fP, wchar_t *\ \fIwstr\fP);
.PP
-\fBint mvinwstr(int \fIy\fP, int \fIx\fP, wchar_t *\fIwstr\fP);
-\fBint mvinnwstr(int \fIy\fP, int \fIx\fP, wchar_t *\fIwstr\fP, int \fIn\fP);
-\fBint mvwinwstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, wchar_t *\fIwstr\fP);
-\fBint mvwinnwstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, wchar_t *\fIwstr\fP, int \fIn\fP);
+\fBint innwstr(wchar_t *\ \fIwstr\fP, int \fIn\fP);
+\fBint winnwstr(WINDOW *\ \fIwin\fP, wchar_t *\ \fIwstr\fP, int \fIn\fP);
+\fBint mvinnwstr(int \fIy\fP, int \fIx\fP, wchar_t *\ \fIwstr\fP, int \fIn\fP);
+\fBint mvwinnwstr(WINDOW *\ \fIwin\fP, int \fIy\fP, int \fIx\fP, wchar_t *\ \fIwstr\fP, int \fIn\fP);
.fi
.SH DESCRIPTION
-These routines return a string of \fBwchar_t\fP wide characters in \fIwstr\fP,
-starting at the current cursor position in the named window.
-.PP
-The four functions with \fIn\fP as the last argument return
-a leading substring at most \fIn\fP characters long
-(exclusive of the trailing NUL).
-Transfer stops at the end of the current line, or when \fIn\fP characters have
-been stored at the location referenced by \fIwstr\fP.
-.PP
-If the size \fIn\fP is not large enough to store a complete complex character,
-an error is generated.
+.B \%winwstr
+extracts a wide-character string from a
+.I curses
+window
+.IR win ","
+starting at the cursor and stopping at the end of the line,
+and stores it in
+.IR wstr ","
+terminating it with a wide null character
+and
+omitting any attributes and color pair identifier
+that
+.I curses
+associates with each character.
+.B \%winnwstr
+does the same,
+but copies at most
+.I n
+characters from
+.IR win "."
+An
+.I n
+of
+.B \-1
+implies no limit;
+.B \%winnwstr
+then works like
+.BR \%winwstr "."
+\fB\%ncurses\fP(3X) describes the variants of these functions.
.SH RETURN VALUE
-All routines return
-\fBERR\fP
+On successful operation,
+these functions return the count of wide characters copied from
+.I win
+to
+.IR wstr "."
+They return
+.B ERR
upon failure.
-Upon
-successful completion, the *\fBinwstr\fP
-routines return
-\fBOK\fP, and the *\fBinnwstr\fP
-routines return the
-number of characters read into the string.
+.BR \%innwstr ","
+.BR \%winnwstr ","
+.BR \%mvinnwstr ","
+and
+.B \%mvwinnwstr
+return
+.B ERR
+if
+.I n
+is insufficiently large to store a complete wide character string.
+(Recall that a
+.I curses
+complex character can contain multiple wide characters,
+some of which may be non-spacing.)
.PP
-X/Open defines no error conditions.
-This implementation returns
+In
+.IR \%ncurses ","
+these functions return
.B ERR
+if
.bP
-if the \fIwin\fP parameter is null or
-.bP
-if the \fIwstr\fP parameter is null, or
+.I win
+is
+.B NULL
+or
.bP
-if no characters could be read.
+.I wstr
+is
+.BR NULL "."
.PP
Functions prefixed with \*(``mv\*('' first perform cursor movement and
fail if the position
.IR x )
is outside the window boundaries.
.SH NOTES
-All routines except
-\fBwinnwstr\fP
-may be macros.
-.PP
-Each cell in the window holds a complex character
-(a spacing character and zero or more non-spacing characters)
-together with attributes and color.
-These functions store only the wide characters,
-ignoring attributes and color.
-Use \fBin_wchstr\fP to return the complex characters from a window.
+All of these functions except
+.B \%winnwstr
+may be implemented as macros.
.PP
Reading a line that overflows the array pointed to by
-\fIwstr\fP
+.I str
with
-\fBinwstr\fP,
-\fBmvinwstr\fP,
-\fBmvwinwstr\fP
+.BR \%inwstr ","
+.BR \%winwstr ","
+.BR \%mvinwstr ","
or
-\fBwinwstr\fP
+.B \%mvwinwstr
causes undefined results.
-Therefore, the use of
-\fBinnwstr\fP,
-\fBmvinnwstr\fP,
-\fBmvwinnwstr\fP, or
-\fBwinnwstr\fP
-is recommended.
+Use of
+.BR \%innwstr ","
+.BR \%winnwstr ","
+.BR \%mvinnwstr ","
+and
+.B \%mvwinnwstr
+is recommended instead.
+.SH EXTENSIONS
+.BR \%innwstr ","
+.BR \%winnwstr ","
+.BR \%mvinnwstr ","
+and
+.BR \%mvwinnwstr "'s"
+treatment of
+.B \-1
+as a valid value of
+.I n
+is an
+.I \%ncurses
+extension.
.SH PORTABILITY
-These functions are described in X/Open Curses, Issue 4.
+Applications employing
+.I \%ncurses
+extensions should condition their use on the visibility of the
+.B \%NCURSES_VERSION
+preprocessor macro.
+.PP
+X/Open Curses,
+Issue 4 describes these functions.
+It specifies no error conditions for them.
+.PP
+Notwithstanding the foregoing,
+X/Open Curses Issues 4 and 7 both state that
+.BR \%innwstr ","
+.BR \%winnwstr ","
+.BR \%mvinnwstr ","
+and
+.B \%mvwinnwstr
+\*(``fail .\|.\|. [i]f the array is not large enough to contain any
+complete characters\*(''.
+Strictly interpreted,
+this means that a caller of these functions cannot use their return
+values to detect truncation of a wide-character string copied from more
+than one character cell in
+.IR win "."
+.I \%ncurses
+reports any truncation with
+.BR ERR "."
+.PP
+X/Open Curses specifies
+.BR \%inwstr ","
+.BR \%winwstr ","
+.BR \%mvinwstr ","
+and
+.B \%mvwinwstr
+as returning
+.B OK
+rather than a (wide) character count,
+unlike their non-wide counterparts
+.BR \%instr ","
+.BR \%winstr ","
+.BR \%mvinstr ","
+and
+.BR \%mvwinstr "."
+.I \%ncurses
+regards this inconsistency as an error in the standard.
.SH SEE ALSO
+\fB\%curs_instr\fP(3X) describes comparable functions of the
+.I \%ncurses
+library in its non-wide-character configuration.
+.PP
\fB\%curses\fP(3X),
-\fB\%curs_inch\fP(3X),
-\fB\%curs_inchstr\fP(3X),
-\fB\%curs_instr\fP(3X),
+\fB\%curs_in_wch\fP(3X),
\fB\%curs_in_wchstr\fP(3X)
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_kernel.3x,v 1.63 2024/05/25 21:13:56 tom Exp $
-.TH curs_kernel 3X 2024-05-25 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_kernel.3x,v 1.65 2024/06/08 21:00:58 tom Exp $
+.TH curs_kernel 3X 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
a buffer and \fBresetty\fP restores the state to what it was at the
last call to \fBsavetty\fP.
.SS getsyx
-The \fBgetsyx\fP routine returns the current coordinates
-of the \fIvirtual screen\fP cursor in \fIy\fP and \fIx\fP.
-If \fBleaveok\fP is currently \fBTRUE\fP, then
-\fB\-1\fP,\fB\-1\fP is returned.
-If lines have been removed from the top of the
-screen, using \fBripoffline\fP, \fIy\fP and \fIx\fP include these lines;
-therefore, \fIy\fP and \fIx\fP should be used only as arguments for
-\fBsetsyx\fP.
+.B \%getsyx
+stores the coordinates of virtual screen
+.RB \%( newscr )
+cursor in
+.I y
+and
+.IR x "."
+If
+.BR \%newscr 's
+\fB\%leaveok\fP(3X) output option is
+.BR TRUE ","
+.B \%getsyx
+stores
+.B \-1
+in both
+.I y
+and
+.IR x "."
+If lines have been removed from the top of the screen using
+.BR \%ripoffline ","
+.I y
+includes these lines;
+therefore,
+.I y
+and
+.I x
+populated by
+.B \%getsyx
+should be used only as arguments for
+.BR \%setsyx "."
.PP
-Few applications will use this feature,
-most use \fBgetyx\fP instead.
+Few applications use this feature;
+most call \fB\%getyx\fP(3X) instead.
.SS setsyx
-The \fBsetsyx\fP routine sets
-the \fIvirtual screen\fP cursor to \fIy\fP, \fIx\fP.
-If \fIy\fP and \fIx\fP are both \fB\-1\fP, then
-\fBleaveok\fP is set.
-The two routines \fBgetsyx\fP and \fBsetsyx\fP
-are designed to be used by a library routine, which manipulates
-\fBcurses\fP windows but does not want to change the current position
-of the program's cursor.
-The library routine would call \fBgetsyx\fP
-at the beginning, do its manipulation of its own windows, do a
-\fBwnoutrefresh\fP on its windows, call \fBsetsyx\fP, and then call
-\fBdoupdate\fP.
+.B \%setsyx
+sets the virtual screen
+.RB \%( newscr )
+cursor location to
+.RI ( y ,
+.IR x ")."
+.B "\%setsyx(\-1, \-1)"
+is equivalent to
+.BR "\%leaveok(newscr, TRUE)" "."
.PP
-Few applications will use this feature,
-most use \fBwmove\fP instead.
+.B \%getsyx
+and
+.B \%setsyx
+are designed to be used by a function that manipulates
+.I curses
+windows but seeks to avoid changing the cursor position.
+Such a function would first call
+.BR \%getsyx ","
+modify its windows' content,
+call \fB\%wnoutrefresh\fP(3X) on them,
+call
+.BR \%setsyx ","
+then call \fB\%doupdate\fP(3X).
+.PP
+Few applications use this feature;
+most call \fB\%wmove\fP(3X) instead.
.SS curs_set
The \fBcurs_set\fP routine sets the cursor state to invisible,
normal, or very visible for \fBvisibility\fP equal to \fB0\fP,
rather than the least costly combination of absolute and relative
motion.
.SH PORTABILITY
+Applications employing
+.I \%ncurses
+extensions should condition their use on the visibility of the
+.B \%NCURSES_VERSION
+preprocessor macro.
+.PP
The \fIvirtual screen\fP functions \fBsetsyx\fP and \fBgetsyx\fP
are not described in X/Open Curses, Issue 4.
All other functions are as described in X/Open Curses.
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_scr_dump.3x,v 1.45 2024/06/01 22:29:45 tom Exp $
-.TH curs_scr_dump 3X 2024-06-01 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_scr_dump.3x,v 1.47 2024/06/08 20:33:56 tom Exp $
+.TH curs_scr_dump 3X 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
clearing it and starting from scratch.
.PP
.I curses
-regards the terminal being in an invalid state for computation of
-updates based on the contents of
+regards the terminal as in an invalid state for computation of updates
+based on the contents of
.I filename
if
.bP
+.I curses
+knows that the terminal has been written to since the preceding
+.B \%scr_dump
+call,
+or
+.bP
the terminal type supports the
.I \%term\%info
capabilities
.RB \%( rmcup )
or
.B \%non_rev_rmcup
-.RB \%( nrrmc ),
-or
-.bP
-.I curses
-knows that the terminal has been written to since the preceding
-.B \%scr_dump
-call.
+.RB \%( nrrmc ).
.PP
Either of the foregoing conditions means that
.I curses
that couple cursor-positioning mode with a local cache of screen
contents.
.I curses
-cannot know whether terminal is displaying from that local cache at the
-time the application calls
+cannot know whether the terminal is displaying from that local cache
+at the time the application calls
.BR \%scr_init ","
so it makes a pessimistic assumption that a full redraw is required;
see subsection \*(``Cursor Motions\*('' of \fB\%terminfo\fP(5).
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_terminfo.3x,v 1.140 2024/06/01 22:29:08 tom Exp $
-.TH curs_terminfo 3X 2024-06-01 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_terminfo.3x,v 1.142 2024/06/08 23:05:52 tom Exp $
+.TH curs_terminfo 3X 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
interface),
and reusing \fB\%tgoto\fP and \fB\%tputs\fP.
.PP
+.ne 4v
.TS
lB lB
lB lx.
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_util.3x,v 1.106 2024/06/01 22:28:18 tom Exp $
-.TH curs_util 3X 2024-06-01 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_util.3x,v 1.108 2024/06/08 22:38:18 tom Exp $
+.TH curs_util 3X 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
.fi
.SH DESCRIPTION
.SS unctrl
-The \fBunctrl\fP routine returns a character string which is a printable
+The \fBunctrl\fP routine returns a character string as a printable
representation of the character \fIch\fP:
.bP
Printable characters are displayed as themselves,
-e.g., a one-character string containing the key.
+e.g.,
+a one-character string containing the key.
.bP
Control characters are displayed in the \fB^\fIX\fR notation.
.bP
Printing characters are displayed as is.
.bP
-DEL (character 127) is displayed as \fB^?\fP.
+DEL
+(character 127)
+is displayed as \fB^?\fP.
.bP
Values above 128 are either meta characters
(if the screen has not been initialized,
or if \fBmeta\fP(3X) has been called with a \fBTRUE\fP parameter),
shown in the \fBM\-\fIX\fR notation,
or are displayed as themselves.
-In the latter case, the values may not be printable;
+In the latter case,
+the values may not be printable;
this follows the X/Open specification.
.PP
The corresponding \fBwunctrl\fP returns a printable representation of
a complex character \fIwch\fP.
.PP
-In both \fBunctrl\fP and \fBwunctrl\fP the attributes and color associated
+In both \fBunctrl\fP and \fBwunctrl\fP the attributes
+and color associated
with the character parameter are ignored.
.SS "keyname, key_name"
The \fBkeyname\fP routine returns a character string
Values above 256 may be the codes for function keys.
The function key name is displayed.
.bP
-Otherwise (if there is no corresponding name and the key is not a character)
-the function returns null, to denote an error.
+Otherwise
+(if there is no corresponding name and the key is not a character)
+the function returns null,
+to denote an error.
X/Open also lists an \*(``UNKNOWN KEY\*('' return value,
which some implementations return rather than null.
.LP
The corresponding \fBkey_name\fP returns
a multibyte character string corresponding
to the wide-character value \fIwc\fP.
-The two functions (\fBkeyname\fP and \fBkey_name\fP)
+The two functions
+(\fBkeyname\fP and \fBkey_name\fP)
do not return the same set of strings:
.bP
-\fBkeyname\fP returns null where \fBkey_name\fP would display a meta character.
+\fBkeyname\fP returns null where \fBkey_name\fP
+would display a meta character.
.bP
\fBkey_name\fP does not return the name of a function key.
.SS "filter, nofilter"
-The \fBfilter\fP routine, if used, must be called before \fBinitscr\fP or
+The \fBfilter\fP routine,
+if used,
+must be called before \fBinitscr\fP or
\fBnewterm\fP are called.
Calling \fBfilter\fP causes these changes in initialization:
.bP
.bP
and the \fBhome\fP string is set to the value of \fBcr\fP.
.PP
-The \fBnofilter\fP routine cancels the effect of a preceding \fBfilter\fP
-call.
+The \fBnofilter\fP routine cancels the effect
+of a preceding \fBfilter\fP call.
That allows the caller to initialize a screen on a different device,
using a different value of \fB$TERM\fP.
The limitation arises because the \fBfilter\fP routine modifies the
in-memory copy of the terminal information.
.SS use_env
-The \fBuse_env\fP routine, if used,
+The \fBuse_env\fP routine,
+if used,
should be called before \fBinitscr\fP or
\fBnewterm\fP are called
(because those compute the screen size).
If successful,
it overrides the values from the terminal database.
.bP
-Finally (unless \fBuse_env\fP was called with \fBFALSE\fP parameter),
+Finally
+(unless \fBuse_env\fP was called with \fBFALSE\fP parameter),
\fI\%ncurses\fP examines the \fILINES\fP or \fI\%COLUMNS\fP environment
variables,
using a value in those to override the results
unless overridden by the \fILINES\fP or \fI\%COLUMNS\fP environment
variables,
.SS use_tioctl
-The \fBuse_tioctl\fP routine, if used,
+The \fBuse_tioctl\fP routine,
+if used,
should be called before \fBinitscr\fP or \fBnewterm\fP are called
(because those compute the screen size).
After \fBuse_tioctl\fP is called with \fBTRUE\fP as an argument,
checks if the \fILINES\fP and \fI\%COLUMNS\fP environment variables
are set to a number greater than zero.
.bP
-for each, \fI\%ncurses\fP updates the corresponding environment variable
+for each,
+\fI\%ncurses\fP updates the corresponding environment variable
with the value that it has obtained via operating system call
or from the terminal database.
.bP
\fI\%ncurses\fP re-fetches the value of the environment variables so
-that it is still the environment variables which set the screen size.
+that it is still the environment variables that set the screen size.
.PP
The \fB\%use_env\fP and \fB\%use_tioctl\fP routines combine as follows.
.IP
.TE
.SS "putwin, getwin"
The \fBputwin\fP routine writes all data associated
-with window (or pad) \fIwin\fP into
+with window
+(or pad)
+\fIwin\fP into
the file to which \fIfilep\fP points.
This information can be later retrieved
using the \fBgetwin\fP function.
and its associated character cells.
The format differs between the wide-character (\fI\%ncursesw\fP) and
non-wide (\fI\%ncurses\fP) libraries.
-You can transfer data between the two, however.
+You can transfer data between the two,
+however.
.bP
-the retrieved window is always created as a top-level window (or pad),
+the retrieved window is always created as a top-level window
+(or pad),
rather than a subwindow.
.bP
the window's character cells contain the color pair \fIvalue\fP,
but not the actual color \fInumbers\fP.
-If cells in the retrieved window use color pairs which have not been
+If cells in the retrieved window use color pairs that have not been
created in the application using \fBinit_pair\fP,
they will not be colored when the window is refreshed.
.SS delay_output
instead of sleeping and requesting resumption from the operating system.
Padding is used unless:
.bP
-the terminal description has \fBnpc\fP (\fBno_pad_char\fP) capability, or
+the terminal description has \fBnpc\fP (\fBno_pad_char\fP) capability,
+or
.bP
the environment variable \fB\%NCURSES_NO_PADDING\fP is set.
.PP
(thirty seconds),
it is capped at that value.
.SS flushinp
-The \fBflushinp\fP routine throws away any typeahead that has been typed by the
-user and has not yet been read by the program.
+The \fBflushinp\fP routine throws away any typeahead
+that has been typed by the user
+and has not yet been read by the program.
.SH RETURN VALUE
-Except for \fBflushinp\fP, routines that return an integer return \fBERR\fP
-upon failure and \fBOK\fP (SVr4 specifies only "an integer value other than
-\fBERR\fP") upon successful completion.
+Except for \fBflushinp\fP,
+routines that return an integer
+return \fBERR\fP upon failure and \fBOK\fP
+(SVr4 specifies only "an integer value other than \fBERR\fP")
+upon successful completion.
.PP
Routines that return pointers return \fBNULL\fP on error.
.PP
\fBputwin\fP
returns
.B ERR
-if the associated \fBfwrite\fP calls return
+if the associated \fIwrite\fP(2) calls return
.BR ERR "."
.RE
.SH PORTABILITY
.SS filter
-The SVr4 documentation describes the action of \fBfilter\fP only in the vaguest
-terms.
-The description here is adapted from X/Open Curses (which
-erroneously fails to describe the disabling of \fBcuu\fP).
+The SVr4 documentation describes the action of \fBfilter\fP
+only in the vaguest terms.
+The description here is adapted from X/Open Curses
+(which erroneously fails to describe the disabling of \fBcuu\fP).
.SS "delay_output padding"
The limitation to 30 seconds
and the use of \fBnapms\fP
Neither limits the delay.
.SS keyname
The \fBkeyname\fP function may return the names of user-defined
-string capabilities which are defined in the terminfo entry via the \fB\-x\fP
+string capabilities that are defined in the terminfo entry
+via the \fB\-x\fP
option of \fB@TIC@\fP.
This implementation automatically assigns at run-time key codes to
-user-defined strings which begin with \*(``k\*(''.
-The key codes start at KEY_MAX, but are not guaranteed to be
-the same value for different runs because user-defined codes are
-merged from all terminal descriptions which have been loaded.
+user-defined strings that begin with \*(``k\*(''.
+The key codes start at KEY_MAX,
+but are not guaranteed to be the same value for different runs
+because user-defined codes are merged
+from all terminal descriptions that have been loaded.
The \fBuse_extended_names\fP(3X) function controls whether this data is
loaded when the terminal description is read by the library.
.SS "nofilter, use_tioctl"
The \fBnofilter\fP and \fBuse_tioctl\fP routines are specific to
\fI\%ncurses\fP.
-They were not supported on Version 7, BSD or System V implementations.
+They were not supported on Version 7,
+BSD or System V implementations.
It is recommended that any code depending on \fI\%ncurses\fP extensions
be conditioned using \fBNCURSES_VERSION\fP.
.SS "putwin/getwin file-format"
Although the format is an obvious target for standardization,
it has been overlooked.
.IP
-Interestingly enough, according to the copyright dates in Solaris source,
-the functions (along with \fBscr_init\fP, etc.) originated with
-the University of California, Berkeley (in 1982)
-and were later (in 1988) incorporated into SVr4.
-Oddly, there are no such functions in the 4.3BSD curses sources.
+Interestingly enough,
+according to the copyright dates in Solaris source,
+the functions
+(along with \fBscr_init\fP,
+etc.\&)
+originated with the University of California,
+Berkeley
+(in 1982)
+and were later
+(in 1988)
+incorporated into SVr4.
+Oddly,
+there are no such functions in the 4.3BSD curses sources.
.bP
Most implementations simply dump the binary \fI\%WINDOW\fP structure
to the file.
-These include SVr4 curses, NetBSD and PDCurses,
+These include SVr4 curses,
+NetBSD and PDCurses,
as well as older \fI\%ncurses\fP versions.
This implementation
-(as well as the X/Open variant of Solaris curses, dated 1995)
+(as well as the X/Open variant of Solaris curses,
+dated 1995)
uses textual dumps.
.IP
-The implementations which use binary dumps use block-I/O
-(the \fBfwrite\fP and \fBfread\fP functions).
+The implementations that use binary dumps use block-I/O
+(\fIwrite\fP(2) and \fIread\fP(2) functions).
Those that use textual dumps use buffered-I/O.
A few applications may happen to write extra data in the file using
these functions.
Doing that can run into problems mixing block- and buffered-I/O.
-This implementation reduces the problem on writes by flushing the output.
-However, reading from a file written using mixed schemes may not be successful.
+This implementation reduces the problem on writes by flushing the
+output.
+However,
+reading from a file written using mixed schemes may not be successful.
.SS "unctrl, wunctrl"
-X/Open Curses, Issue 4 describes these functions.
-It states that \fBunctrl\fP and \fBwunctrl\fP will return a null pointer if
-unsuccessful, but does not define any error conditions.
+X/Open Curses,
+Issue 4 describes these functions.
+It states that \fBunctrl\fP and \fBwunctrl\fP will return a null pointer
+if unsuccessful,
+but does not define any error conditions.
This implementation checks for three cases:
.bP
the parameter is a 7-bit US\-ASCII code.
This is the case that X/Open Curses documented.
.bP
-the parameter is in the range 128\-159, i.e., a C1 control code.
+the parameter is in the range 128\-159,
+i.e.,
+a C1 control code.
If \fBuse_legacy_coding\fP(3X) has been called with a \fB2\fP parameter,
-\fBunctrl\fP returns the parameter, i.e., a one-character string with
+\fBunctrl\fP returns the parameter,
+i.e.,
+a one-character string with
the parameter as the first character.
-Otherwise, it returns \*(``~@\*('', \*(``~A\*('', etc.,
-analogous to \*(``^@\*('', \*(``^A\*('', C0 controls.
+Otherwise,
+it returns \*(``~@\*('',
+\*(``~A\*('',
+etc.,
+analogous to \*(``^@\*('',
+\*(``^A\*('',
+C0 controls.
.IP
-X/Open Curses does not document whether \fBunctrl\fP can be called before
-initializing curses.
+X/Open Curses does not document whether \fBunctrl\fP can be called
+before initializing curses.
This implementation permits that,
-and returns the \*(``~@\*('', etc., values in that case.
+and returns the \*(``~@\*('',
+etc.,
+values in that case.
.bP
parameter values outside the 0 to 255 range.
\fBunctrl\fP returns a null pointer.
.PP
-The strings returned by \fBunctrl\fP in this implementation are determined
-at compile time,
+The strings returned by \fBunctrl\fP in this implementation
+are determined at compile time,
showing C1 controls from the upper-128 codes
with a \*(``~\*('' prefix rather than \*(``^\*(''.
Other implementations have different conventions.
-For example, they may show both sets of control characters with \*(``^\*('',
+For example,
+they may show both sets of control characters with \*(``^\*('',
and strip the parameter to 7 bits.
Or they may ignore C1 controls and treat all of the upper-128 codes as
printable.
-This implementation uses 8 bits but does not modify the string to reflect
-locale.
+This implementation uses 8 bits
+but does not modify the string to reflect locale.
The \fBuse_legacy_coding\fP(3X) function allows the caller to
change the output of \fBunctrl\fP.
.PP
-Likewise, the \fBmeta\fP(3X) function allows the caller to change the
-output of \fBkeyname\fP, i.e.,
+Likewise,
+the \fBmeta\fP(3X) function allows the caller to change the output
+of \fBkeyname\fP,
+i.e.,
it determines whether to use the \*(``M\-\*('' prefix
for \*(``meta\*('' keys (codes in the range 128 to 255).
Both \fBuse_legacy_coding\fP(3X) and \fBmeta\fP(3X) succeed only after
X/Open Curses does not document the treatment of codes 128 to 159.
When treating them as \*(``meta\*('' keys
(or if \fBkeyname\fP is called before initializing curses),
-this implementation returns strings \*(``M\-^@\*('', \*(``M\-^A\*('', etc.
+this implementation returns strings \*(``M\-^@\*('',
+\*(``M\-^A\*('',
+etc.
.PP
X/Open Curses documents \fBunctrl\fP as declared in \fB<unctrl.h>\fP,
which \fI\%ncurses\fP does.
-However, \fI\%ncurses\fP' \fB<curses.h>\fP includes \fB<unctrl.h>\fP,
+However,
+\fI\%ncurses\fP' \fB<curses.h>\fP includes \fB<unctrl.h>\fP,
matching the behavior of SVr4 curses.
Other implementations may not do that.
.SS "use_env, use_tioctl"
.\"
.\" Author: Thomas E. Dickey 1997
.\"
-.\" $Id: define_key.3x,v 1.46 2024/05/25 20:15:04 tom Exp $
-.TH define_key 3X 2024-05-25 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: define_key.3x,v 1.48 2024/06/08 23:25:11 tom Exp $
+.TH define_key 3X 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.
.de bP
.ie n .IP \(bu 4
.SH AUTHORS
Thomas Dickey
.SH SEE ALSO
-\fB\%ncurses\fP(3X),
-\fB\%keyok\fP(3X),
-\fB\%key_defined\fP(3X),
+\fB\%curses\fP(3X),
\fB\%keybound\fP(3X),
\fB\%keyok\fP(3X),
+\fB\%key_defined\fP(3X),
\fB\%terminfo\fP(5)
.\"
.\" Author: Thomas E. Dickey 2003
.\"
-.\" $Id: key_defined.3x,v 1.36 2024/05/18 20:04:53 tom Exp $
-.TH key_defined 3X 2024-05-18 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: key_defined.3x,v 1.38 2024/06/08 23:25:34 tom Exp $
+.TH key_defined 3X 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
\fB\%key_defined\fP \-
test whether a \fIcurses\fP function key code is defined
.SH AUTHORS
Thomas Dickey
.SH SEE ALSO
-\fB\%ncurses\fP(3X),
+\fB\%curses\fP(3X),
\fB\%define_key\fP(3X),
-\fB\%keyok\fP(3X),
\fB\%keybound\fP(3X),
\fB\%keyok\fP(3X)
.\"
.\" Author: Thomas E. Dickey 1999
.\"
-.\" $Id: keybound.3x,v 1.38 2024/05/18 20:05:36 tom Exp $
-.TH keybound 3X 2024-05-18 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: keybound.3x,v 1.40 2024/06/08 23:25:57 tom Exp $
+.TH keybound 3X 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.SH NAME
\fB\%keybound\fP \-
get definition of a \fIcurses\fP function key code
.SH AUTHORS
Thomas Dickey
.SH SEE ALSO
-\fB\%ncurses\fP(3X),
+\fB\%curses\fP(3X),
\fB\%define_key\fP(3X),
-\fB\%key_defined\fP(3X),
\fB\%keyok\fP(3X),
+\fB\%key_defined\fP(3X),
\fB\%terminfo\fP(5)
.\"
.\" Author: Thomas E. Dickey 1997
.\"
-.\" $Id: keyok.3x,v 1.42 2024/05/18 20:06:09 tom Exp $
-.TH keyok 3X 2024-05-18 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: keyok.3x,v 1.44 2024/06/08 23:26:27 tom Exp $
+.TH keyok 3X 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.
.de bP
.ie n .IP \(bu 4
.SH AUTHORS
Thomas Dickey
.SH SEE ALSO
-\fB\%ncurses\fP(3X),
+\fB\%curses\fP(3X),
\fB\%define_key\fP(3X),
-\fB\%key_defined\fP(3X),
\fB\%keybound\fP(3X),
\fB\%keyok\fP(3X),
+\fB\%key_defined\fP(3X).
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: man_db.renames.in,v 1.75 2024/05/25 20:26:02 tom Exp $
+# $Id: man_db.renames.in,v 1.76 2024/06/08 20:52:35 Branden.Robinson Exp $
# Manual-page renamings for the man_db program
#
# Files:
doupdate.3x doupdate.3ncurses
echo.3x echo.3ncurses
endwin.3x endwin.3ncurses
+erasechar.3x erasechar.3ncurses
+erasewchar.3x erasewchar.3ncurses
extended_slk_color.3x extended_slk_color.3ncurses
filter.3x filter.3ncurses
flushinp.3x flushinp.3ncurses
getcchar.3x getcchar.3ncurses
getch.3x getch.3ncurses
getwin.3x getwin.3ncurses
+getyx.3x getyx.3ncurses
halfdelay.3x halfdelay.3ncurses
has_key.3x has_key.3ncurses
idcok.3x idcok.3ncurses
nocbreak.3x nocbreak.3ncurses
nodelay.3x nodelay.3ncurses
nonl.3x nonl.3ncurses
+noraw.3x noraw.3ncurses
notimeout.3x notimeout.3ncurses
pnoutrefresh.3x pnoutrefresh.3ncurses
prefresh.3x prefresh.3ncurses
-# $Id: manhtml.aliases,v 1.37 2024/05/25 22:40:43 tom Exp $
+# $Id: manhtml.aliases,v 1.39 2024/06/08 23:34:02 tom Exp $
#***************************************************************************
# Copyright 2019-2023,2024 Thomas E. Dickey *
# Copyright 2013,2017 Free Software Foundation, Inc. *
doupdate(3X) curs_refresh(3X)
echo(3X) curs_inopts(3X)
endwin(3X) curs_initscr(3X)
+erasechar(3X) curs_termattrs(3X)
+erasewchar(3X) curs_termattrs(3X)
extended_slk_color(3X) curs_slk(3X)
filter(3X) curs_util(3X)
flushinp(3X) curs_util(3X)
getcchar(3X) curs_getcchar(3X)
getch(3X) curs_getch(3X)
getwin(3X) curs_util(3X)
+getyx(3X) curs_getyx(3X)
halfdelay(3X) curs_inopts(3X)
has_key(3X) curs_getch(3X)
immedok(3X) curs_outopts(3X)
nl(3X) curs_inopts(3X)
nocbreak(3X) curs_inopts(3X)
nonl(3X) curs_inopts(3X)
+noraw(3X) curs_inopts(3X)
pnoutrefresh(3X) curs_pad(3X)
prefresh(3X) curs_pad(3X)
printw(3X) curs_printw(3X)
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: ncurses.3x,v 1.221 2024/06/01 22:29:08 tom Exp $
-.TH ncurses 3X 2024-06-01 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: ncurses.3x,v 1.223 2024/06/08 20:45:43 tom Exp $
+.TH ncurses 3X 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
A
.I window
is a rectangular grid of character cells,
-addressed by row and column coordinates
+addressed by line and column coordinates
.RI ( y ,
.IR x ),
with the upper left corner as (0, 0).
.PP
Functions permit manipulation of a window and the
.I cursor
-identifying the cell within it at which the next output operation will
-occur.
+identifying the cell within it at which the next operation will occur.
Among those,
the most basic are \fB\%move\fP(3X) and \fB\%addch\fP(3X):
these place the cursor within and write a character to
.I \%WINDOW
is stored as a
.IR \%chtype .
+X/Open Curses does not specify the sizes of the character code or
+color pair identifier,
+nor the quantity of attribute bits,
+in
+.IR chtype ";"
+these are implementation-dependent.
+.I \%ncurses
+uses eight bits for the character code.
+An application requiring a wider character type,
+for instance to represent Unicode,
+should use the wide-character API.
.TP 10
.I \%ncursesw
is the library in its \*(``wide\*('' configuration,
.BR \%addwstr ,
.BR \%inwstr ,
and their variants.)
+.\" This is because they operate on "plain" wide-character strings
+.\" (`wchar_t*`) and not curses complex character strings (`cchar_t*`).
+.\" SVID 4 did specify functions like `addwch()` and `inswch()` that
+.\" operated on `chtype`s assuming that they were wide enough for a
+.\" `wchar_t` plus attribute and color pair bits; X/Open Curses did not
+.\" standardize these.
.IP
This convention is inapplicable to some non-wide function names,
so other transformations are used for the wide configuration:
corresponds to the non-wide configuration's
.IR \%chtype .
It is a structure type
-because it requires more storage than fits into a standard scalar type.
+because it requires more storage than a standard scalar type offers.
A character code may not be representable as a
.IR \%char ,
and moreover more than one character may occupy a cell
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: terminfo.tail,v 1.149 2024/05/11 20:28:54 tom Exp $
+.\" $Id: terminfo.tail,v 1.150 2024/06/08 20:42:50 Branden.Robinson Exp $
.ps +1
.SS "User-Defined Capabilities"
.
applies to storage scope terminals, such as \s-1TEKTRONIX\s+1 4010
series, as well as hard copy and APL terminals.)
If there is a code to move the cursor to the left edge of the current
-row, give this as
+line, give this as
.BR cr .
(Normally this will be carriage return, control/M.)
If there is a code to produce an audible signal (bell, beep, etc)
.B bw
is given, then a
.B cub1
-from the left edge will move to the right edge of the previous row.
+from the left edge will move to the right edge of the previous line.
If
.B bw
is not given, the effect is undefined.
For example, to address the cursor, the
.B cup
capability is given, using two parameters:
-the row and column to address to.
-(Rows and columns are numbered from zero and refer to the
+the line and column to address to.
+(Lines and columns are numbered from zero and refer to the
physical screen visible to the user, not to any unseen memory.)
If the terminal has memory relative cursor addressing,
that can be indicated by
\fB%P\fP and \fB%g\fP variables are
persistent across escape-string evaluations.
.PP
-Consider the HP2645, which, to get to row 3 and column 12, needs
+Consider the HP2645, which, to get to line 3 and column 12, needs
to be sent \eE&a12c03Y padded for 6 milliseconds.
-The order of the rows and columns is inverted here,
-and the row and column are printed as two digits.
+The order of the lines and columns is inverted here,
+and the lines and column are printed as two digits.
The corresponding terminal description is expressed thus:
.RS
cup=\eE&a%p2%dc%p1%dY$<6>,
.RE
.PP
-The Microterm \s-1ACT-IV\s0 needs the current row and column sent
-preceded by a \fB\*^T\fP, with the row and column simply encoded in binary,
+The Microterm \s-1ACT-IV\s0 needs the current line and column sent
+preceded by a \fB\*^T\fP, with the line and column simply encoded in binary,
.RS
cup=\*^T%p1%c%p2%c
.RE
tabs are never expanded, so \et is safe to send.
This turns out to be essential for the Ann Arbor 4080.)
.PP
-A final example is the \s-1LSI ADM\s0-3a, which uses row and column
+A final example is the \s-1LSI ADM\s0-3a, which uses line and column
offset by a blank character, thus
.RS
cup=\eE=%p1%\*' \*'%+%c%p2%\*' \*'%+%c
(Thus, the \eEH sequence on HP terminals cannot be used for
.BR home .)
.PP
-If the terminal has row or column absolute cursor addressing,
+If the terminal has line or column absolute cursor addressing,
these can be given as single parameter capabilities
.B hpa
(horizontal position absolute)
line position, and
.bP
parameterized capabilities for setting the top, bottom, left, right margins
-given the number of rows or columns.
+given the number of lines or columns.
.RE
.PP
In practice, the categorization into \*(``terminal\*('' and \*(``printer\*(''
(clear all tab stops)
and
.B hts
-(set a tab stop in the current column of every row).
+(set a tab stop in the current column of every line).
If a more complex sequence is needed to set the tabs than can be
described by this, the sequence can be placed in
.B is2
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: tput.1,v 1.114 2024/05/11 20:39:53 tom Exp $
-.TH @TPUT@ 1 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
+.\" $Id: tput.1,v 1.116 2024/06/08 20:50:34 tom Exp $
+.TH @TPUT@ 1 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
\fB\%@TPUT@\fP \-
initialize a terminal, exercise its capabilities, or query \fI\%term\%info\fP database
.SH SYNOPSIS
-\fB@TPUT@\fP [\fB\-T\fP \fIterminal-type\fP]
+\fB@TPUT@\fP [\fB\-v\fP] [\fB\-T\fP \fIterminal-type\fP]
{\fIcap-code\fP [\fIparameter\fP .\|.\|.\&]} .\|.\|.
.PP
-\fB@TPUT@\fP [\fB\-T\fP \fIterminal-type\fP] [\fB\-x\fP] \fBclear\fP
+\fB@TPUT@\fP [\fB\-v\fP] [\fB\-T\fP \fIterminal-type\fP] [\fB\-x\fP] \fBclear\fP
.PP
-\fB@TPUT@\fP [\fB\-T\fP \fIterminal-type\fP] \fBinit\fP
+\fB@TPUT@\fP [\fB\-v\fP] [\fB\-T\fP \fIterminal-type\fP] \fBinit\fP
.PP
-\fB@TPUT@\fP [\fB\-T\fP \fIterminal-type\fP] \fB\%reset\fP
+\fB@TPUT@\fP [\fB\-v\fP] [\fB\-T\fP \fIterminal-type\fP] \fB\%reset\fP
.PP
-\fB@TPUT@\fP [\fB\-T\fP \fIterminal-type\fP] \fB\%longname\fP
+\fB@TPUT@\fP [\fB\-v\fP] [\fB\-T\fP \fIterminal-type\fP] \fB\%longname\fP
.PP
-\fB@TPUT@ \-S\fP
+\fB@TPUT@\fP [\fB\-v\fP] \fB\-S\fP
.PP
-\fB@TPUT@ \-V\fP
+\fB@TPUT@\fP [\fB\-v\fP] \fB\-V\fP
.SH DESCRIPTION
\fB\%@TPUT@\fP uses the
.I \%term\%info
.I \%COLUMNS
are also ignored.
.TP
+.B \-v
+causes \fB\%@TPUT@\fP to operate verbosely,
+reporting warnings.
+.TP
.B \-V
reports the version of
.I \%ncurses
Set cursor to normal visibility.
.TP
.B "@TPUT@ home"
-Move the cursor to row 0,
+Move the cursor to line 0,
column 0:
the upper left corner of the screen,
usually known as the \*(``home\*('' cursor position.
Indicate via exit status whether the terminal is a hard copy device.
.TP
.B "@TPUT@ cup 23 4"
-Move the cursor to row 23,
+Move the cursor to line 23,
column 4.
.TP
.B "@TPUT@ cup"
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: tset.1,v 1.86 2024/05/11 20:39:53 tom Exp $
-.TH @TSET@ 1 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
+.\" $Id: tset.1,v 1.88 2024/06/08 20:51:12 tom Exp $
+.TH @TSET@ 1 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
unless the \*(``\fB\-I\fP\*('' option is enabled,
the terminal
and tab \fIinitialization\fP strings are sent to the standard error output,
-and \fB@TSET@\fP waits one second (in case a hardware reset was issued).
+and,
+if the terminal device does not appear to be a pseudoterminal
+(as might be used by a terminal emulator program),
+\fB@TSET@\fP waits one second in case a hardware reset was issued.
.bP
Finally, if the erase, interrupt and line kill characters have changed,
or are not set to their default values, their values are displayed to the
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: user_caps.5,v 1.49 2024/03/16 15:35:01 tom Exp $
-.TH user_caps 5 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "File formats"
+.\" $Id: user_caps.5,v 1.51 2024/06/08 21:01:53 tom Exp $
+.TH user_caps 5 2024-06-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "File formats"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
terminfo databases used a \fIfixed repertoire\fP of terminal
capabilities designed for the SVr2 terminal database in 1984,
and extended in stages through SVr4 (1989),
-and standardized in the Single Unix Specification beginning in 1995.
+and standardized in X/Open Curses starting in 1995.
+.\" That date is a surmise based on the capability list appearing in
+.\" Issue 4, Version 2 (1996). That list is not in man page format in
+.\" the standard, so lacks a "HISTORY" section. However, `tigetstr()`
+.\" and `tputs()` are identified in the same document as new to Issue 4,
+.\" so GBR conjectures that the list came in at the same time.
.PP
Most of the \fIextensions\fP in this fixed repertoire were additions
to the tables of Boolean, numeric and string capabilities.
/****************************************************************************
- * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2020,2024 Thomas E. Dickey *
* Copyright 2002-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
#include <curses.priv.h>
-MODULE_ID("$Id: lib_inwstr.c,v 1.9 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_inwstr.c,v 1.10 2024/06/08 21:22:24 tom Exp $")
NCURSES_EXPORT(int)
winnwstr(WINDOW *win, wchar_t *wstr, int n)
returnCode(count);
}
-/*
- * X/Open says winwstr() returns OK if not ERR. If that is not a blunder, it
- * must have a null termination on the string (see above). Unlike winnstr(),
- * it does not define what happens for a negative count with winnwstr().
- */
NCURSES_EXPORT(int)
winwstr(WINDOW *win, wchar_t *wstr)
{
- int result = OK;
+ int result = ERR;
T((T_CALLED("winwstr(%p,%p)"), (void *) win, (void *) wstr));
- if (win == 0) {
- result = ERR;
- } else if (winnwstr(win, wstr,
- CCHARW_MAX * (win->_maxx - win->_curx + 1)) == ERR) {
- result = ERR;
+ if (win != 0) {
+ result = winnwstr(win, wstr,
+ CCHARW_MAX * (win->_maxx - win->_curx + 1));
}
returnCode(result);
}
-ncurses6 (6.5+20240601) unstable; urgency=low
+ncurses6td (6.5+20240608) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 01 Jun 2024 07:06:41 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 08 Jun 2024 05:49:40 -0400
ncurses6 (5.9+20131005) unstable; urgency=low
-Source: ncurses6
+Source: ncurses6td
Section: libdevel
Priority: optional
Maintainer: Thomas E. Dickey <dickey@invisible-island.net>
binutils-mingw-w64-i686
Standards-Version: 4.6.1.0
-Package: mingw32-ncurses6
+Package: mingw32-ncurses6td
Architecture: any
+Conflicts: mingw32-ncurses6
+Provides: mingw32-ncurses6
+Replaces: mingw32-ncurses6
Depends: ${misc:Depends}
Description: shared libraries for terminal handling
The ncurses library routines are a terminal-independent method of
+++ /dev/null
-mingw32-ncurses6: latest-debian-changelog-entry-changed-to-native
-
-mingw32-ncurses6: non-standard-dir-in-usr
-mingw32-ncurses6: file-in-unusual-dir
-
-mingw32-ncurses6: binary-without-manpage
-mingw32-ncurses6: executable-not-elf-or-script
--- /dev/null
+mingw32-ncurses6td: latest-debian-changelog-entry-changed-to-native
+
+mingw32-ncurses6td: non-standard-dir-in-usr
+mingw32-ncurses6td: file-in-unusual-dir
+
+mingw32-ncurses6td: binary-without-manpage
+mingw32-ncurses6td: executable-not-elf-or-script
TARGET = i686-w64-mingw32
MINGW_BIN = /usr/bin
MINGW_TOP = /usr/$(TARGET)
-MINGW_TMP = $(CURDIR)/debian/mingw32-ncurses$(MY_ABI)
+MINGW_TMP = $(CURDIR)/debian/mingw32-ncurses$(MY_ABI)td
CFLAGS = $(CC_NORMAL)
--target=$(TARGET) \
--prefix=$(MINGW_TOP) \
--with-build-cc=$(BUILD_CC) \
- --with-pc-suffix=$(MY_ABI) \
+ --with-pc-suffix=$(MY_ABI)td \
--with-pkg-config-libdir=/usr/$(TARGET)/lib/pkgconfig \
$(CONFIG_OPTIONS)
version=3
-opts=passive ftp://ftp.invisible-island.net/ncurses/current/ncurses\.tar.gz \
+opts=passive https://invisible-island.net/archives/ncurses/current/ncurses\.tar.gz \
debian uupdate
-ncurses6 (6.5+20240601) unstable; urgency=low
+ncurses6td (6.5+20240608) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 01 Jun 2024 07:06:41 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 08 Jun 2024 05:49:40 -0400
ncurses6 (5.9+20131005) unstable; urgency=low
-Source: ncurses6
+Source: ncurses6td
Section: libdevel
Priority: optional
Maintainer: Thomas E. Dickey <dickey@invisible-island.net>
binutils-mingw-w64-x86-64
Standards-Version: 4.6.1.0
-Package: mingw64-ncurses6
+Package: mingw64-ncurses6td
Architecture: any
+Conflicts: mingw64-ncurses6
+Provides: mingw64-ncurses6
+Replaces: mingw64-ncurses6
Depends: ${misc:Depends}
Description: shared libraries for terminal handling
The ncurses library routines are a terminal-independent method of
+++ /dev/null
-mingw64-ncurses6: latest-debian-changelog-entry-changed-to-native
-
-mingw64-ncurses6: non-standard-dir-in-usr
-mingw64-ncurses6: file-in-unusual-dir
-
-mingw64-ncurses6: binary-without-manpage
-mingw64-ncurses6: executable-not-elf-or-script
--- /dev/null
+mingw64-ncurses6td: latest-debian-changelog-entry-changed-to-native
+
+mingw64-ncurses6td: non-standard-dir-in-usr
+mingw64-ncurses6td: file-in-unusual-dir
+
+mingw64-ncurses6td: binary-without-manpage
+mingw64-ncurses6td: executable-not-elf-or-script
TARGET = x86_64-w64-mingw32
MINGW_BIN = /usr/bin
MINGW_TOP = /usr/$(TARGET)
-MINGW_TMP = $(CURDIR)/debian/mingw64-ncurses$(MY_ABI)
+MINGW_TMP = $(CURDIR)/debian/mingw64-ncurses$(MY_ABI)td
CFLAGS = $(CC_NORMAL)
--target=$(TARGET) \
--prefix=$(MINGW_TOP) \
--with-build-cc=$(BUILD_CC) \
- --with-pc-suffix=$(MY_ABI) \
+ --with-pc-suffix=$(MY_ABI)td \
--with-pkg-config-libdir=/usr/$(TARGET)/lib/pkgconfig \
$(CONFIG_OPTIONS)
version=3
-opts=passive ftp://ftp.invisible-island.net/ncurses/current/ncurses\.tar.gz \
+opts=passive https://invisible-island.net/archives/ncurses/current/ncurses\.tar.gz \
debian uupdate
-ncurses6 (6.5+20240601) unstable; urgency=low
+ncurses6td (6.5+20240608) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 01 Jun 2024 07:06:41 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 08 Jun 2024 05:49:40 -0400
ncurses6 (5.9+20120608) unstable; urgency=low
-Source: ncurses6
+Source: ncurses6td
Section: libdevel
Priority: optional
Maintainer: Thomas E. Dickey <dickey@invisible-island.net>
Build-Depends: debhelper (>= 8.1.3)
Standards-Version: 4.6.1.0
-Package: ncurses6
+Package: ncurses6td
Architecture: any
+Conflicts: ncurses6 (>= 6.5)
+Provides: ncurses6 (= 6.5)
+Replaces: ncurses6 (>= 6.5)
Depends: ${misc:Depends}, libc6 (>= 2.4)
Description: shared libraries for terminal handling
The ncurses library routines are a terminal-independent method of
.
This package is used for testing ABI 6.
-Package: ncursest6
+Package: ncursest6td
Architecture: any
+Conflicts: ncursest6 (>= 6.5)
+Provides: ncursest6 (= 6.5)
+Replaces: ncursest6 (>= 6.5)
Depends: ${misc:Depends}, libc6 (>= 2.4)
Description: shared libraries for terminal handling
The ncurses library routines are a terminal-independent method of
.
This package is used for testing ABI 6 with pthreads.
-Package: ncurses6-doc
+Package: ncurses6td-doc
Section: doc
Architecture: all
+Conflicts: ncurses6-doc
+Provides: ncurses6-doc
+Replaces: ncurses6-doc
Depends: groff-base
Description: shared libraries for terminal handling
The ncurses library routines are a terminal-independent method of
.
This package is used for testing ncurses6 document packaging.
-Package: ncurses6-doc-html
+Package: ncurses6td-doc-html
Section: doc
Architecture: all
+Conflicts: ncurses6-doc-html
+Provides: ncurses6-doc-html
+Replaces: ncurses6-doc-html
Description: shared libraries for terminal handling
The ncurses library routines are a terminal-independent method of
updating character screens with reasonable optimization.
+++ /dev/null
-# This is intentional.
-ncurses6: package-name-doesnt-match-sonames libformw6-6 libmenuw6-6 libncurses++w6-6 libncursesw6-6 libpanelw6-6 libticw6-6 libtinfow6-6
-
-# This is intentional.
-ncurses6: binary-without-manpage
-ncurses6: non-dev-pkg-with-shlib-symlink
-ncurses6: embedded-library ncurses [usr/lib/x86_64-linux-gnu/libtinfow6.so.6.5]
-
-# vile: confmode
--- /dev/null
+# This is intentional.
+ncurses6td: package-name-doesnt-match-sonames libformw6-6 libmenuw6-6 libncurses++w6-6 libncursesw6-6 libpanelw6-6 libticw6-6 libtinfow6-6
+
+# This is intentional.
+ncurses6td: binary-without-manpage
+ncurses6td: non-dev-pkg-with-shlib-symlink
+ncurses6td: embedded-library ncurses [usr/lib/x86_64-linux-gnu/libtinfow6.so.6.5]
+
+# vile: confmode
+++ /dev/null
-# This is intentional.
-ncursest6: package-name-doesnt-match-sonames libformtw6-6 libmenutw6-6 libncurses++tw6-6 libncursestw6-6 libpaneltw6-6 libtictw6-6 libtinfotw6-6
-
-# This is intentional.
-ncursest6: binary-without-manpage
-ncursest6: non-dev-pkg-with-shlib-symlink
-ncursest6: embedded-library ncurses [usr/lib/x86_64-linux-gnu/libtinfotw6.so.6.5]
-
-# vile: confmode
--- /dev/null
+# This is intentional.
+ncursest6td: package-name-doesnt-match-sonames libformtw6-6 libmenutw6-6 libncurses++tw6-6 libncursestw6-6 libpaneltw6-6 libtictw6-6 libtinfotw6-6
+
+# This is intentional.
+ncursest6td: binary-without-manpage
+ncursest6td: non-dev-pkg-with-shlib-symlink
+ncursest6td: embedded-library ncurses [usr/lib/x86_64-linux-gnu/libtinfotw6.so.6.5]
+
+# vile: confmode
#!/usr/bin/make -f
-# $Id: rules,v 1.53 2024/04/08 15:31:32 tom Exp $
+# $Id: rules,v 1.57 2024/06/08 17:51:52 tom Exp $
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
include /usr/share/dpkg/buildflags.mk
# packages
-PACKAGES.indep = ncurses6-doc ncurses6-doc-html
-PACKAGES.arch = ncurses6 ncursest6
+PACKAGES.indep = ncurses6td-doc ncurses6td-doc-html
+PACKAGES.arch = ncurses6td ncursest6td
# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
--program-suffix=$(MY_ABI) \
--verbose \
--with-abi-version=$(MY_ABI) \
- --with-config-suffix=dev \
+ --with-config-suffix=td \
+ --with-pc-suffix=td \
--with-cxx-shared \
--with-default-terminfo-dir=$(MYDATA) \
--with-develop \
--with-manpage-symlinks \
--without-normal
-NCURSES6_DIR = $(CURDIR)/debian/ncurses6
-NCURSEST6_DIR = $(CURDIR)/debian/ncursest6
+NCURSES6_DIR = $(CURDIR)/debian/ncurses6td
+NCURSEST6_DIR = $(CURDIR)/debian/ncursest6td
.PHONY: all config build install binary clean config-indep config-arch \
build-indep build-arch install-indep install-arch binary-indep \
install: install-indep install-arch
binary: binary-indep binary-arch
clean:
+ pwd; ls -l
dh_testdir
dh_testroot
dh_clean $(verbose)
install-arch: $(PACKAGES.arch:%=install-%-stamp)
# make the doc-package installable by renaming everything to avoid clashing
-patch-ncurses6-stamp:
+patch-ncurses6td-stamp:
dh_testdir
sed -i.bak \
-e 's/-config\.1$$/dev-config.1/;t' \
diff -u man/man_db.renames.in.bak man/man_db.renames.in || true
touch $@
-config-ncurses6-stamp: patch-ncurses6-stamp
+config-ncurses6td-stamp: patch-ncurses6td-stamp
dh_testdir
- rm -rf t/ncurses6
- mkdir -p t/ncurses6
- cd t/ncurses6; $(configure)
+ rm -rf t/ncurses6td
+ mkdir -p t/ncurses6td
+ cd t/ncurses6td; $(configure)
touch $@
-config-ncursest6-stamp: patch-ncurses6-stamp
+config-ncursest6td-stamp: patch-ncurses6td-stamp
dh_testdir
- rm -rf t/ncursest6
- mkdir -p t/ncursest6
- cd t/ncursest6; $(configure) \
+ rm -rf t/ncursest6td
+ mkdir -p t/ncursest6td
+ cd t/ncursest6td; $(configure) \
--enable-interop \
--enable-sp-funcs \
--program-suffix=t$(MY_ABI) \
--with-pthread
touch $@
-config-ncurses6-doc-stamp \
-config-ncurses6-doc-html-stamp: config-ncurses6-stamp
+config-ncurses6td-doc-stamp \
+config-ncurses6td-doc-html-stamp: config-ncurses6td-stamp
touch $@
-build-ncurses6-stamp: config-ncurses6-stamp
+build-ncurses6td-stamp: config-ncurses6td-stamp
dh_testdir
- $(MAKE) -C t/ncurses6
+ $(MAKE) -C t/ncurses6td
touch $@
-build-ncursest6-stamp: config-ncursest6-stamp
+build-ncursest6td-stamp: config-ncursest6td-stamp
dh_testdir
- $(MAKE) -C t/ncursest6
+ $(MAKE) -C t/ncursest6td
touch $@
-build-ncurses6-doc-stamp \
-build-ncurses6-doc-html-stamp: build-ncurses6-stamp
+build-ncurses6td-doc-stamp \
+build-ncurses6td-doc-html-stamp: build-ncurses6td-stamp
touch $@
-install-ncurses6-stamp: build-ncurses6-stamp
+install-ncurses6td-stamp: build-ncurses6td-stamp
dh_testdir
dh_testroot
dh_installdirs $(verbose)
- dh_prep $(verbose) -pncurses6
+ dh_prep $(verbose) -pncurses6td
- $(MAKE) -C t/ncurses6 install.libs install.progs DESTDIR=$(NCURSES6_DIR)
- $(MAKE) -C t/ncurses6/test ncurses LOCAL_LIBDIR=$(LIBDIR)
+ $(MAKE) -C t/ncurses6td install.libs install.progs DESTDIR=$(NCURSES6_DIR)
+ $(MAKE) -C t/ncurses6td/test ncurses LOCAL_LIBDIR=$(LIBDIR)
- mv t/ncurses6/test/ncurses $(NCURSES6_DIR)$(BINDIR)/ncurses$(MY_ABI)
+ mv t/ncurses6td/test/ncurses $(NCURSES6_DIR)$(BINDIR)/ncurses$(MY_ABI)
touch $@
-install-ncursest6-stamp: build-ncursest6-stamp
+install-ncursest6td-stamp: build-ncursest6td-stamp
dh_testdir
dh_testroot
dh_installdirs $(verbose)
- dh_prep $(verbose) -pncursest6
+ dh_prep $(verbose) -pncursest6td
- $(MAKE) -C t/ncursest6 install.libs install.progs DESTDIR=$(NCURSEST6_DIR)
- $(MAKE) -C t/ncursest6/test ncurses LOCAL_LIBDIR=$(LIBDIR)
+ $(MAKE) -C t/ncursest6td install.libs install.progs DESTDIR=$(NCURSEST6_DIR)
+ $(MAKE) -C t/ncursest6td/test ncurses LOCAL_LIBDIR=$(LIBDIR)
- mv t/ncursest6/test/ncurses $(NCURSEST6_DIR)$(BINDIR)/ncursest$(MY_ABI)
+ mv t/ncursest6td/test/ncurses $(NCURSEST6_DIR)$(BINDIR)/ncursest$(MY_ABI)
touch $@
-install-ncurses6-doc-stamp: build-ncurses6-stamp
+install-ncurses6td-doc-stamp: build-ncurses6td-stamp
dh_testdir
dh_testroot
dh_installdirs $(verbose)
- dh_prep $(verbose) -pncurses6-doc
+ dh_prep $(verbose) -pncurses6td-doc
- $(MAKE) -C t/ncurses6 install.man DESTDIR=$(NCURSES6_DIR)-doc
+ $(MAKE) -C t/ncurses6td install.man DESTDIR=$(NCURSES6_DIR)-doc
find $(NCURSES6_DIR)-doc -name 'ncursesw6-config.*' -print -delete
cd $(NCURSES6_DIR)-doc/usr/share/man/man1 && ln -sf tset6.1.gz reset6.1.gz
touch $@
-HTML_DESTDIR=$(NCURSES6_DIR)-doc-html/usr/share/doc/ncurses6-doc-html
-install-ncurses6-doc-html-stamp: build-ncurses6-stamp
+HTML_DESTDIR=$(NCURSES6_DIR)-doc-html/usr/share/doc/ncurses6td-doc-html
+install-ncurses6td-doc-html-stamp: build-ncurses6td-stamp
dh_testdir
dh_testroot
dh_installdirs $(verbose)
- dh_prep $(verbose) -pncurses6-doc-html
+ dh_prep $(verbose) -pncurses6td-doc-html
cd doc/html && find * -type d | sort | xargs -I{} mkdir -p -v $(HTML_DESTDIR)/{}
cd doc/html && find * -type f -name '*.html' | sort | xargs -I{} install -m 644 -p -v -T {} $(HTML_DESTDIR)/{}
version=3
-opts=passive ftp://ftp.invisible-island.net/ncurses/current/ncurses\.tar.gz \
+opts=passive https://invisible-island.net/archives/ncurses/current/ncurses\.tar.gz \
debian uupdate
-; $Id: mingw-ncurses.nsi,v 1.651 2024/06/01 11:06:41 tom Exp $\r
+; $Id: mingw-ncurses.nsi,v 1.652 2024/06/08 09:49:40 tom Exp $\r
\r
; TODO add examples\r
; TODO bump ABI to 6\r
!define VERSION_MAJOR "6"\r
!define VERSION_MINOR "5"\r
!define VERSION_YYYY "2024"\r
-!define VERSION_MMDD "0601"\r
+!define VERSION_MMDD "0608"\r
!define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}\r
\r
!define MY_ABI "5"\r
Summary: shared libraries for terminal handling
Name: mingw32-ncurses6
Version: 6.5
-Release: 20240601
+Release: 20240608
License: X11
Group: Development/Libraries
URL: https://invisible-island.net/ncurses/
Summary: shared libraries for terminal handling
Name: ncurses6
Version: 6.5
-Release: 20240601
+Release: 20240608
License: X11
Group: Development/Libraries
URL: https://invisible-island.net/ncurses/
Summary: Curses library with POSIX thread support.
Name: ncursest6
Version: 6.5
-Release: 20240601
+Release: 20240608
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
--prefix=$(MINGW_TOP) \
--bindir=\$${prefix}/bin/$(NCURSES_PKG) \
--datadir=\$${prefix}/share/$(NCURSES_PKG) \
- --with-screen=ncursesw6 \
+ --with-screen=ncursesw6td \
--with-pkg-config-libdir=/usr/$(TARGET)/lib/pkgconfig
touch configure-stamp
version=3
-opts=passive ftp://ftp.invisible-island.net/ncurses-examples/ncurses-examples-([\d.]+)\.tgz \
+opts=passive https://invisible-island.net/archives/ncurses-examples/ncurses-examples-([\d.]+)\.tgz \
debian uupdate
--prefix=$(MINGW_TOP) \
--bindir=\$${prefix}/bin/$(NCURSES_PKG) \
--datadir=\$${prefix}/share/$(NCURSES_PKG) \
- --with-screen=ncursesw6 \
+ --with-screen=ncursesw6td \
--with-pkg-config-libdir=/usr/$(TARGET)/lib/pkgconfig
touch configure-stamp
version=3
-opts=passive ftp://ftp.invisible-island.net/ncurses-examples/ncurses-examples-([\d.]+)\.tgz \
+opts=passive https://invisible-island.net/archives/ncurses-examples/ncurses-examples-([\d.]+)\.tgz \
debian uupdate
cd t/ncurses6; $(configure) \
--datadir=\$${datarootdir}/$(NCURSES_PKG) \
- --with-screen=ncurses6
+ --with-screen=ncursesw6td
touch $@
cd t/ncursest6; $(configure) \
--datadir=\$${datarootdir}/$(NCURSEST_PKG) \
- --with-screen=ncursest6
+ --with-screen=ncursestw6td
touch $@
version=3
-opts=passive ftp://ftp.invisible-island.net/ncurses-examples/ncurses-examples-([\d.]+)\.tgz \
+opts=passive https://invisible-island.net/archives/ncurses-examples/ncurses-examples-([\d.]+)\.tgz \
debian uupdate