Patrick Welche <prlw1@cam.ac.uk>
[netbsd-mini2440.git] / lib / libcurses / PSD.doc / intro.5
blob1168682efbeca80bbb0f08a2bb4e8cdabf498f72
1 .\"     $NetBSD: intro.5,v 1.7 2003/08/07 16:44:28 agc Exp $
2 .\"
3 .\" Copyright (c) 1980, 1993
4 .\"     The Regents of the University of California.  All rights reserved.
5 .\"
6 .\" Redistribution and use in source and binary forms, with or without
7 .\" modification, are permitted provided that the following conditions
8 .\" are met:
9 .\" 1. Redistributions of source code must retain the above copyright
10 .\"    notice, this list of conditions and the following disclaimer.
11 .\" 2. Redistributions in binary form must reproduce the above copyright
12 .\"    notice, this list of conditions and the following disclaimer in the
13 .\"    documentation and/or other materials provided with the distribution.
14 .\" 3. Neither the name of the University nor the names of its contributors
15 .\"    may be used to endorse or promote products derived from this software
16 .\"    without specific prior written permission.
17 .\"
18 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
19 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
22 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 .\" SUCH DAMAGE.
29 .\"
30 .\"     @(#)intro.5     8.1 (Berkeley) 6/4/93
31 .\"
32 .sh 1 "Character Output and Scrolling"
33 .pp
34 The character output policy deals with the following problems.
35 First, where is the location of the cursor after a character is printed, and
36 secondly, when does the screen scroll if scrolling is enabled.
37 .pp
38 In the normal case the characters are output as expected, with the cursor
39 occupying the position of the next character to be output.
40 However, when the
41 cursor is on the last column of the line, the cursor will remain on that
42 position after the last character on the line is output and will only assume
43 the position on the next line when the next character (the first on the next
44 line) is output.
45 .pp
46 Likewise, if scrolling is enabled, a scroll will be invoked only when the
47 first character on he first line past the bottom line of the window is
48 output.
49 If scrolling is not enabled the chracters will to be output to the
50 bottom right corner of the window which is the cursor location.
51 .pp
52 This policy allows consistent behavior of the cursor at the boundary
53 conditions.
54 Furthermore, it prevents a scroll from happening before it is
55 actually needed (the old package used to scroll when the bottom right position
56 was output a character).
57 As a precedent, it models the
58 .i xterm
59 character output conventions.
60 .sh 1 "Terminal State Handling"
61 .pp
62 The variable
63 .Vn curses_termios
64 contains the terminal state of the terminal.
65 Certain historical routines return information:
66 .Fn baudrate ,
67 .Fn erasechar ,
68 .Fn killchar ,
69 and
70 .Fn ospeed .
71 These routines are obsolete and exist only for backward compatibility.
72 If you wish to use the information in the
73 .Vn curses_termios
74 structure, you should use the
75 \fItsetattr\fP(3)
76 routines.
77 .sh 1 "Subwindows"
78 .pp
79 Subwindows are windows which do not have an independent text structure,
80 .i i.e. ,
81 they are windows whose text is a subset of the text of a larger window: the
82 .i parent
83 window.
84 One consequence of this is that changes to either the parent or the
85 child window are destructive to the other,
86 .i i.e. ,
87 a change to the subwindow is also a change to the parent window and a change
88 to the parent window in the region defined by the subwindow is implicitly a
89 change to the subwindow as well.
90 Apart from this detail, subwindows function like any other window.