NetBSD/lib/libcurses/PSD.doc/intro.5

91 lines
3.9 KiB
Groff

.\" $NetBSD: intro.5,v 1.8 2003/11/02 11:16:03 wiz Exp $
.\"
.\" Copyright (c) 1980, 1993
.\" The Regents of the University of California. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\" 3. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" @(#)intro.5 8.1 (Berkeley) 6/4/93
.\"
.sh 1 "Character Output and Scrolling"
.pp
The character output policy deals with the following problems.
First, where is the location of the cursor after a character is printed, and
secondly, when does the screen scroll if scrolling is enabled.
.pp
In the normal case the characters are output as expected, with the cursor
occupying the position of the next character to be output.
However, when the
cursor is on the last column of the line, the cursor will remain on that
position after the last character on the line is output and will only assume
the position on the next line when the next character (the first on the next
line) is output.
.pp
Likewise, if scrolling is enabled, a scroll will be invoked only when the
first character on he first line past the bottom line of the window is
output.
If scrolling is not enabled the chracters will to be output to the
bottom right corner of the window which is the cursor location.
.pp
This policy allows consistent behavior of the cursor at the boundary
conditions.
Furthermore, it prevents a scroll from happening before it is
actually needed (the old package used to scroll when the bottom right position
was output a character).
As a precedent, it models the
.i xterm
character output conventions.
.sh 1 "Terminal State Handling"
.pp
The variable
.Vn curses_termios
contains the terminal state of the terminal.
Certain historical routines return information:
.Fn baudrate ,
.Fn erasechar ,
.Fn killchar ,
and
.Fn ospeed .
These routines are obsolete and exist only for backward compatibility.
If you wish to use the information in the
.Vn curses_termios
structure, you should use the
\fItsetattr\fP(3)
routines.
.sh 1 "Subwindows"
.pp
Subwindows are windows which do not have an independent text structure,
.i i.e. ,
they are windows whose text is a subset of the text of a larger window: the
.i parent
window.
One consequence of this is that changes to either the parent or the
child window are destructive to the other,
.i i.e. ,
a change to the subwindow is also a change to the parent window and a change
to the parent window in the region defined by the subwindow is implicitly a
change to the subwindow as well.
Apart from this detail, subwindows function like any other window.