-<!--
+<!--
****************************************************************************
- * Copyright (c) 1998-2017,2018 Free Software Foundation, Inc. *
+ * Copyright 2018-2023,2024 Thomas E. Dickey *
+ * Copyright 1998-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_pad.3x,v 1.25 2018/07/28 22:20:54 tom Exp @
+ * @Id: curs_pad.3x,v 1.53 2024/01/05 21:46: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_pad 3x</TITLE>
-<link rev=made href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<TITLE>curs_pad 3x 2024-01-05 ncurses 6.4 Library calls</TITLE>
+<link rel="author" href="mailto:bug-ncurses@gnu.org">
+
</HEAD>
<BODY>
-<H1 class="no-header">curs_pad 3x</H1>
+<H1 class="no-header">curs_pad 3x 2024-01-05 ncurses 6.4 Library calls</H1>
<PRE>
-<STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG> <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
+<STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
<STRONG>newpad</STRONG>, <STRONG>subpad</STRONG>, <STRONG>prefresh</STRONG>, <STRONG>pnoutrefresh</STRONG>, <STRONG>pechochar</STRONG>, <STRONG>pecho_wchar</STRONG> - create
- and display <STRONG>curses</STRONG> pads
+ and display <EM>curses</EM> pads
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
</PRE><H3><a name="h3-newpad">newpad</a></H3><PRE>
- The <STRONG>newpad</STRONG> routine creates and returns a pointer to a new pad data
- structure with the given number of lines, <EM>nlines</EM>, and columns, <EM>ncols</EM>.
- A pad is like a window, except that it is not restricted by the screen
- size, and is not necessarily associated with a particular part of the
- screen. Pads can be used when a large window is needed, and only a
- part of the window will be on the screen at one time. Automatic re-
- freshes of pads (e.g., from scrolling or echoing of input) do not oc-
- cur.
-
- It is not legal to call <STRONG>wrefresh</STRONG> with a <EM>pad</EM> as an argument; the rou-
- tines <STRONG>prefresh</STRONG> or <STRONG>pnoutrefresh</STRONG> should be called instead. Note that
- these routines require additional parameters to specify the part of the
- pad to be displayed and the location on the screen to be used for the
- display.
+ <STRONG>newpad</STRONG> creates and returns a pointer to a new pad data structure with
+ the given number of lines, <EM>nlines</EM>, and columns, <EM>ncols</EM>. A pad is like a
+ window, except that it is not restricted by the screen size, and is not
+ necessarily associated with a particular part of the screen. Pads can
+ be used when a large window is needed, and only a part of the window
+ will be on the screen at one time. Automatic refreshes of pads (as
+ from scrolling or echoing of input) do not occur.
+
+ It is not valid to call <STRONG>wrefresh</STRONG> with a <EM>pad</EM> argument; call <STRONG>prefresh</STRONG> or
+ <STRONG>pnoutrefresh</STRONG> instead. They require additional parameters to specify
+ the part of the pad to be displayed and the location on the screen to
+ be used for the display.
</PRE><H3><a name="h3-subpad">subpad</a></H3><PRE>
The <STRONG>subpad</STRONG> routine creates and returns a pointer to a subwindow within
- a pad with the given number of lines, <EM>nlines</EM>, and columns, <EM>ncols</EM>. Un-
- like <STRONG>subwin</STRONG>, which uses screen coordinates, the window is at position
+ a pad with the given number of lines, <EM>nlines</EM>, and columns, <EM>ncols</EM>.
+ Unlike <STRONG>subwin</STRONG>, which uses screen coordinates, the window is at position
(<EM>begin</EM>_<EM>x</EM><STRONG>,</STRONG> <EM>begin</EM>_<EM>y</EM>) on the pad. The window is made in the middle of the
window <EM>orig</EM>, so that changes made to one window affect both windows.
During the use of this routine, it will often be necessary to call
<STRONG>touchwin</STRONG> or <STRONG>touchline</STRONG> on <EM>orig</EM> before calling <STRONG>prefresh</STRONG>.
-</PRE><H3><a name="h3-prefresh_-pnoutrefresh">prefresh, pnoutrefresh</a></H3><PRE>
+</PRE><H3><a name="h3-prefresh_pnoutrefresh">prefresh, pnoutrefresh</a></H3><PRE>
The <STRONG>prefresh</STRONG> and <STRONG>pnoutrefresh</STRONG> routines are analogous to <STRONG>wrefresh</STRONG> and
<STRONG>wnoutrefresh</STRONG> except that they relate to pads instead of windows. The
additional parameters are needed to indicate what part of the pad and
screen are involved.
- <STRONG>o</STRONG> The <EM>pminrow</EM> and <EM>pmincol</EM> parameters specify the upper left-hand cor-
- ner of the rectangle to be displayed in the pad.
+ <STRONG>o</STRONG> The <EM>pminrow</EM> and <EM>pmincol</EM> parameters specify the upper left-hand
+ corner of the rectangle to be displayed in the pad.
<STRONG>o</STRONG> The <EM>sminrow</EM>, <EM>smincol</EM>, <EM>smaxrow</EM>, and <EM>smaxcol</EM> parameters specify the
edges of the rectangle to be displayed on the screen.
followed by a call to <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG>, a call to <STRONG>waddch</STRONG> followed by a call
to <STRONG>wrefresh</STRONG>, or a call to <STRONG>waddch</STRONG> followed by a call to <STRONG>prefresh</STRONG>. The
knowledge that only a single character is being output is taken into
- consideration and, for non-control characters, a considerable perfor-
- mance gain might be seen by using these routines instead of their
+ consideration and, for non-control characters, a considerable
+ performance gain might be seen by using these routines instead of their
equivalents. In the case of <STRONG>pechochar</STRONG>, the last location of the pad on
the screen is reused for the arguments to <STRONG>prefresh</STRONG>.
</PRE><H3><a name="h3-pecho_wchar">pecho_wchar</a></H3><PRE>
- The <STRONG>pecho_wchar</STRONG> function is the analogous wide-character form of <STRONG>pe-</STRONG>
- <STRONG>chochar</STRONG>. It outputs one character to a pad and immediately refreshes
- the pad. It does this by a call to <STRONG>wadd_wch</STRONG> followed by a call to <STRONG>pre-</STRONG>
- <STRONG>fresh</STRONG>.
+ The <STRONG>pecho_wchar</STRONG> function is the analogous wide-character form of
+ <STRONG>pechochar</STRONG>. It outputs one character to a pad and immediately refreshes
+ the pad. It does this by a call to <STRONG>wadd_wch</STRONG> followed by a call to
+ <STRONG>prefresh</STRONG>.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- Routines that return an integer return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4
- only specifies "an integer value other than <STRONG>ERR</STRONG>") upon successful com-
- pletion.
+ Functions that return an integer return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4
+ specifies only "an integer value other than <STRONG>ERR</STRONG>") upon successful
+ completion.
- Routines that return pointers return <STRONG>NULL</STRONG> on error, and set <STRONG>errno</STRONG> to
+ Functions that return pointers return <STRONG>NULL</STRONG> on error, and set <STRONG>errno</STRONG> to
<STRONG>ENOMEM</STRONG>.
- X/Open does not define any error conditions. In this implementation
+ X/Open Curses does not define any error conditions. In this
+ implementation
<STRONG>prefresh</STRONG> and <STRONG>pnoutrefresh</STRONG>
return an error if the window pointer is null, or if the window
- is not really a pad or if the area to refresh extends off-
- screen or if the minimum coordinates are greater than the maxi-
- mum.
+ is not really a pad or if the area to refresh extends off-
+ screen or if the minimum coordinates are greater than the
+ maximum.
<STRONG>pechochar</STRONG>
- returns an error if the window is not really a pad, and the as-
- sociated call to <STRONG>wechochar</STRONG> returns an error.
+ returns an error if the window is not really a pad, and the
+ associated call to <STRONG>wechochar</STRONG> returns an error.
<STRONG>pecho_wchar</STRONG>
- returns an error if the window is not really a pad, and the as-
- sociated call to <STRONG>wecho_wchar</STRONG> returns an error.
+ returns an error if the window is not really a pad, and the
+ associated call to <STRONG>wecho_wchar</STRONG> returns an error.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- Note that <STRONG>pechochar</STRONG> may be a macro.
+ <STRONG>pechochar</STRONG> may be a macro.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- BSD curses has no <EM>pad</EM> feature.
+ BSD <EM>curses</EM> has no <EM>pad</EM> feature.
- SVr2 curses (1986) provided the <STRONG>newpad</STRONG> and related functions, document-
- ing them in a single line each. SVr3 (1987) provided more extensive
- documentation.
+ SVr2 <EM>curses</EM> (1986) provided the <STRONG>newpad</STRONG> and related functions,
+ documenting them in a single line each. SVr3 (1987) provided more
+ extensive documentation.
- The documentation does not explain the term <EM>pad</EM>. However, the Apollo
+ The documentation does not explain the term <EM>pad</EM>. However, the Apollo
<EM>Aegis</EM> workstation operating system supported a graphical <EM>pad</EM> feature:
- <STRONG>o</STRONG> These graphical pads could be much larger than the computer's dis-
- play.
+ <STRONG>o</STRONG> These graphical pads could be much larger than the computer's
+ display.
- <STRONG>o</STRONG> The read-only output from a command could be scrolled back to in-
- spect, and select text from the pad.
+ <STRONG>o</STRONG> The read-only output from a command could be scrolled back to
+ inspect, and select text from the pad.
The two uses may be related.
- The XSI Curses standard, Issue 4 describes these functions, without
- significant change from the SVr3 documentation. It describes no error
- conditions. The behavior of <STRONG>subpad</STRONG> if the parent window is not a pad
+ The XSI Curses standard, Issue 4 describes these functions, without
+ significant change from the SVr3 documentation. It describes no error
+ conditions. The behavior of <STRONG>subpad</STRONG> if the parent window is not a pad
is undocumented, and is not checked by the vendor Unix implementations:
- <STRONG>o</STRONG> SVr4 curses sets a flag in the <STRONG>WINDOW</STRONG> structure in <STRONG>newpad</STRONG> which
+ <STRONG>o</STRONG> SVr4 <EM>curses</EM> sets a flag in the <EM>WINDOW</EM> structure in <STRONG>newpad</STRONG> which
tells if the window is a <EM>pad</EM>.
- However, it uses this information only in <STRONG>waddch</STRONG> (to decide if it
- should call <STRONG>wrefresh</STRONG>) and <STRONG>wscrl</STRONG> (to avoid scrolling a pad), and
- does not check in <STRONG>wrefresh</STRONG> to ensure that the pad is refreshed
+ However, it uses this information only in <STRONG>waddch</STRONG> (to decide if it
+ should call <STRONG>wrefresh</STRONG>) and <STRONG>wscrl</STRONG> (to avoid scrolling a pad), and
+ does not check in <STRONG>wrefresh</STRONG> to ensure that the pad is refreshed
properly.
- <STRONG>o</STRONG> Solaris X/Open Curses checks if a window is a pad in <STRONG>wnoutrefresh</STRONG>,
+ <STRONG>o</STRONG> Solaris <EM>xcurses</EM> checks whether a window is a pad in <STRONG>wnoutrefresh</STRONG>,
returning <STRONG>ERR</STRONG> in that case.
- However, it only sets the flag for subwindows if the parent window
- is a pad. Its <STRONG>newpad</STRONG> function does not set this information. Con-
- sequently, the check will never fail.
+ However, it only sets the flag for subwindows if the parent window
+ is a pad. Its <STRONG>newpad</STRONG> function does not set this information.
+ Consequently, the check will never fail.
- It makes no comparable check in <STRONG>pnoutrefresh</STRONG>, though interestingly
- enough, a comment in the source code states that the lack of a
+ It makes no comparable check in <STRONG>pnoutrefresh</STRONG>, though interestingly
+ enough, a comment in the source code states that the lack of a
check was an MKS extension.
- <STRONG>o</STRONG> NetBSD 7 curses sets a flag in the <STRONG>WINDOW</STRONG> structure for <STRONG>newpad</STRONG> and
- <STRONG>subpad</STRONG>, using this to help with the distinction between <STRONG>wnoutre-</STRONG>
- <STRONG>fresh</STRONG> and <STRONG>pnoutrefresh</STRONG>.
+ <STRONG>o</STRONG> NetBSD 7 <EM>curses</EM> sets a flag in the <EM>WINDOW</EM> structure for <STRONG>newpad</STRONG> and
+ <STRONG>subpad</STRONG>, using this to help with the distinction between
+ <STRONG>wnoutrefresh</STRONG> and <STRONG>pnoutrefresh</STRONG>.
- It does not check for the case where a subwindow is created in a
+ It does not check for the case where a subwindow is created in a
pad using <STRONG>subwin</STRONG> or <STRONG>derwin</STRONG>.
- The <STRONG>dupwin</STRONG> function returns a regular window when duplicating a
- pad. Likewise, <STRONG>getwin</STRONG> always returns a window, even if the saved
+ The <STRONG>dupwin</STRONG> function returns a regular window when duplicating a
+ pad. Likewise, <STRONG>getwin</STRONG> always returns a window, even if the saved
data was from a pad.
This implementation
- <STRONG>o</STRONG> sets a flag in the <STRONG>WINDOW</STRONG> structure for <STRONG>newpad</STRONG> and <STRONG>subpad</STRONG>,
+ <STRONG>o</STRONG> sets a flag in the <EM>WINDOW</EM> structure for <STRONG>newpad</STRONG> and <STRONG>subpad</STRONG>,
- <STRONG>o</STRONG> allows a <STRONG>subwin</STRONG> or <STRONG>derwin</STRONG> call to succeed having a pad parent by
+ <STRONG>o</STRONG> allows a <STRONG>subwin</STRONG> or <STRONG>derwin</STRONG> call to succeed having a pad parent by
forcing the subwindow to be a pad,
- <STRONG>o</STRONG> checks in both <STRONG>wnoutrefresh</STRONG> and <STRONG>pnoutrefresh</STRONG> to ensure that pads
+ <STRONG>o</STRONG> checks in both <STRONG>wnoutrefresh</STRONG> and <STRONG>pnoutrefresh</STRONG> to ensure that pads
and windows are handled distinctly, and
- <STRONG>o</STRONG> ensures that <STRONG>dupwin</STRONG> and <STRONG>getwin</STRONG> treat pads versus windows consis-
- tently.
+ <STRONG>o</STRONG> ensures that <STRONG>dupwin</STRONG> and <STRONG>getwin</STRONG> treat pads versus windows
+ consistently.
</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_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(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_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
- <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
+ncurses 6.4 2024-01-05 <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<ul>
<li><a href="#h3-newpad">newpad</a></li>
<li><a href="#h3-subpad">subpad</a></li>
-<li><a href="#h3-prefresh_-pnoutrefresh">prefresh, pnoutrefresh</a></li>
+<li><a href="#h3-prefresh_pnoutrefresh">prefresh, pnoutrefresh</a></li>
<li><a href="#h3-pechochar">pechochar</a></li>
<li><a href="#h3-pecho_wchar">pecho_wchar</a></li>
</ul>