1 04/15/88 CURSES
2
3 This segment briefly describes CURSES and contains a lists of all
4 CURSES functions, TERMINFO routines, TERMCAP compatibiity routines,
5 function keys, and video attributes.
6
7
8 For information on the differences between UNIX CURSES and Multics
9 CURSES, type
10
11 help curses_changes.gi.info
12
13 For a information on using CURSES, type
14
15 help curses_user_guide.gi.info
16
17 and for information on TERMINFO, TERM and TIC, type
18
19 help terminal_information.gi.info
20
21
22 Name:
23
24 curses -- CRT screen handling and optimization package
25
26
27 Synopsis:
28
29 include <curses.h>
30 cc flags files -lb >sl3p>cc>e>libcurses.archive libraries
31
32
33 Description:
34
35 These routines give the user a method of updating screens with
36 reasonable optimization. In order to initialize the routines, the
37 routine initscr must be called before any of the other routines
38 that deal with windows and screens are used. The routine endwin
39 should be called before exiting. To get character-at-a-time input
40 without echoing, most interactive screen oriented-programs want
41 this after calling initscr you should call "nonl; cbreak;
42 noecho."
43
44 The full curses interface permits manipulation of data structures
45 called "windows" which can be thought of as two dimensional arrays of
46 characters representing all or part of a CRT screen. A default
47 window called stdscr is supplied, and others can be created with
48
49
50 newwin. Windows are referred to by variables declared "WINDOW *",
51 the type WINDOW is defined in curses.h to be a C structure. These
52 data sructures are manipulated with functions described below, among
53 which the most basic are move, and addch. More general versions of
54 these functions are included with names beginninng with 'w' allowing
55 you to specify a window. The routines not beginning with 'w' affect
56 stdscr. Then refresh is called, telling the routines to make the
57 users CRT screen look like stdscr.
58
59 MINICURSES is a subset of curses which does not allow manipulation of
60 more than one window. To invoke this subset, use -def MINICURSES as
61 a cc option. This level is smaller and faster than full curses.
62
63 If the environment variable TERMINFO is defined, any program using
64 curses will check for a local terminal definition before checking in
65
66
67 the standard place. For example, if the standard place is
68 sl3p>cc>e>terminfo, and TERM is set to "vt100", then normally the
69 compiled file is found in >sl3p>cc>e>terminfo>v>vt100. The "v" is
70 copied from the first letter of "vt100" to avoid creation of huge
71 directories. However, if TERMINFO is set to
72 >udd>Calgary>Mark>myterms, curses will first check
73 >udd>Calgary>Mark>myterms>v>vt100, and if that fails, will then check
74 >sl3p>cc>e>terminfo>v>vt100. This is useful for developing
75 experimental definitions or when write permission in
76 >sl3p>cc>e>terminfo is not available.
77
78
79 Functions:
80
81 Routines listed here may be called when using the full curses. Those
82 marked with an asterisk may be called when using MINICURSES.
83
84 addchch* add a character to stdscr like putchar
85 wraps to next line at end of line
86 addstrstr* calls addch with each character in str
87 attroffattrs* turn off attributes named
88 attronattrs* turn on attributes named
89 attrsetattrs* set current attributes to attrs
90 baudrate* current terminal speed
91 beep* sound beep on terminal
92
93
94 boxwin vert hor draw a box around edges of win
95 vert and hor are chars to use for vert. and hor.
96 edges of box
97 clear clear stdscr
98 clearokwinbf clear screen before next redraw of win
99 clrtobot clear to botton of stdscr
100 clrtoeol clear to end of line on stdscr
101 cbreak* set cbreak mode
102 delay_outputms* insert ms millisecond pause in output
103 delch delete a character
104 deleteln delete a line
105 delwinwin delete win
106 doupdate update screen from all wnooutrefresh
107 echo* set echo mode
108 endwin* end window modes
109
110
111 erase erase stdscr
112 erasechar return user's erase character
113 fixterm restore tty to "in curses" state
114 flash flash screen or beep
115 flushinp* throw away any typeahead
116 getch* get a char from tty
117 getstrstr get a string through stdscr
118 gettmode establish current tty modes
119 getyxwin y x get y x co-ordinates
120 has_ic true if terminal can do insert character
121 has_il true if terminal can do insert line
122 idlokwin bf* use terminal's insert/delete line if bf!= 0
123 inch get char at current y x co-ordinates
124 initscr * initialize screens
125 insch c insert a char
126
127
128 insertln insert a line
129 intrflush win bf interrupts flush output if bf is TRUE
130 keypad win bf enable keypad input
131 killchar return current user's kill character
132 leaveokwin flag OK to leave cursor anywhere after refresh if
133 flag!=0 for win, otherwise cursor must be left
134 at current position.
135 longname return verbose name of terminal
136 meta win flag* allow meta characters on input if flag!=0
137 movey x* move to y x on stdscr
138 mvaddch y x ch move y x then addch ch
139 mvaddstr y x str similar...
140 mvcur oldrow oldcol newrow newcol low level cursor motion
141 mvdelch y x like delch, but move y x first
142 mvgetch y x etc.
143
144
145 mvgetstr y x
146 mvinch y x
147 mvinsch y x c
148 mvprintwy x. fmt args
149 mvscanwy x fmt args
150 mvwaddchwin y x ch
151 mvwaddstrwin y x. str
152 mvwdelch win y x
153 mvwgetchwin y x
154 mvwgetstrwin y x
155 mvwinwin by bx
156 mvwinchwin y x
157 mvwinschwin y x c
158 mvwprintwwin y x fmt args
159 mvwscanwwin y x fmt args
160
161
162 newpadnlines ncols create a new pad with given dimensions
163 newtermtype fd set up new terminal of given type to output on fd
164 newwinlines cols begin_y begin_x create a new window
165 nl* set newline mapping
166 nocbreak* unset cbreak mode
167 nodelaywin bf enable nodelay input mode through getch
168 noecho* unset echo mode
169 nonl* unset newline mapping
170 noraw* unset raw mode
171 overlaywin1 win2 overlay win1 on win2
172 overwritewin1 win2 overwrite win1 on top of win2
173 pnoutrefreshpad pminrow pmincol sminrow smincol smaxrow smaxcol
174 like prefresh but with no output until
175 doupdate called
176
177
178 prefreshpad pminrow pmincol sminrow smincol smaxrow smaxcol
179 refresh from pad starting with given upper left
180 corner of pad with output to given portion of screen
181 printwfmt arg1 arg2 ... printf on stdscr
182 raw* set raw mode
183 refresh* make current screen look like stdscr
184 resetterm* set tty modes to "out of curses" state
185 resetty* reset tty flags to stored value
186 saveterm* save current modes as "in curses" state
187 savetty* store current tty flags
188 scanwfmt arg1 arg2 ... scanf through stdscr
189 scrollwin scroll win one line
190 scrollokwin flag allow terminal to scroll if flag!= 0
191 set_termnew now talk to terminal new
192 setscrregt b set user scrolling region to lines t through b
193
194
195 settermtype establish terminal with given type
196 setuptermterm filenum errret
197 standend* clear standout mode attribute
198 standout* set standout mode attribute
199 subwinwin lines cols begin_y begin_x create a subwindow
200 touchwinwin change all of win
201 traceoff turn off debugging trace output
202 traceon turn on debugging trace output
203 typeaheadfd use file descriptor fd to check typeahead
204 unctrlch* printable version of ch
205 waddchwin ch add char to win
206 waddstrwin str add string to win
207 wattroffwin attrs turn off attrs in win
208 wattronwin attrs turn on attrs in win
209 wattrsetwin attrs set attrs in win to attrs
210
211
212 wclearwin clear win
213 wclrtobot)win) clear to bottom of win
214 wclrtoeolwin clear to end of line on win
215 wdelchwin c delete char from win
216 wdeletelnwin delete line from win
217 werasewin erase win
218 wgetchwin get a char through win
219 wgetstrwin str get a string through win
220 winchwin get char at current y x in win
221 winschwin c insert char into win
222 winsertlnwin insert line into win
223 wmovewin y x set current y x co-ordinates on win
224 wnoutrefreshwin refresh but no screen output
225 wprintwwin fmt arg1 arg2 ... printf on win
226 wrefreshwin make screen look like win
227
228
229 wscanwin fmt arg1 arg2 ... scanf through win
230 wsetscrregwin t b set scrolling region of win
231 wstandendwin clear standout attribute in win
232 wstandoutwin set standout attribute in win
233
234
235 TERMINFO Level Routines:
236
237 These routines should be called by programs wishing to deal directly
238 with the terminfo database. Due to the low level of this interface,
239 it is discouraged. Initially, setupterm should be called. This will
240 define the set of terminal dependent variables which are defined in
241 the info segment terminfo.gi.info. The include files <curses.h>
242 and <term.h> should be included to get the definitions for these
243 strings, numbers, and flags. Parmeterized strings should be passed
244 through tparm to instantiate them. All terminfo strings including
245 the output of tparm should be printed with tputs or putp. Before
246 exiting, resetterm should be called to restore the tty modes.
247 Programs desiring shell escapes or suspending with control Z can
248 call resetterm before the shell is called and fixterm after returning
249 from the shell.
250
251
252 fixterm restore tty modes for terminfo use
253 called by setupterm
254 resetterm reset tty modes to state before program entry
255 setuptermterm fd rc read in database. Terminal type is the
256 character string term, all output is to
257 file descriptor fd. A status value is
258 returned in the integer pointed to by rc: 1 is
259 normal. The simplest call would be
260 setuptermNULL 1 NULL which uses all the
261 defaults.
262 tparmstr p1 p2 ... p9 instantiate string with parms pp1...pn
263 tputsstr affcnt putc apply padding info to string str.
264 affcnt is the number of lines affected, or 1 if
265 not applicable. Putc is a putchar-like function
266 to which the characters are passed, one at a time.
267
268
269 putpstr handy function that calls tputsstr 1 putchar.
270 vidputsattrs putc output the string to put terminal in vide
271 attribute mode attrs, which is any combination
272 of the attributes listed below. Chars are passed
273 to putchar-like function putc.
274 vidattrattrs Like vidputs but outputs through putchar
275
276
277 Termcap Compatibility Routines:
278
279 These routines were included as a conversion aid for programs that
280 use termcap. Their parameters are the same as for termcap. They are
281 emulated using the terminfo database. They may go away at a later
282 date.
283
284 tgetentbp name look up termcap entry for name
285 tgetflagid get boolean entry for id
286 tgetnumid get numeric entry for id
287 tgetstrid area get string entry for id
288 tgotocap col row apply parms to given cap
289 tputscap affcnt fn apply padding to cap calling fn as putchar
290
291
292 Attributes:
293
294 The following video attributes can be passed to the functions attron,
295 attroff, attrset.
296
297 A_STANDOUT Terminal's best highlighting mode
298 A_UNDERLINE Underlining
299 A_REVERSE Reverse video
300 A_BLINK Blinking
301 A_DIM Half bright
302 A-BOLD Extra bright or bold
303 A-BLANK Blanking invisible
304 A_PROTECT Protected
305 A_ALTCHARSET Alternate character set
306
307
308 Function Keys:
309
310 The following function keys might be returned by getch if keypad has
311 been enabled. Note that not all of these are currently supported,
312 due to lack of definitions in terminfo or the terminal not transmitting
313 a unique code when the key is pressed.
314
315 Name Value Key Name
316
317 KEY_BREAK 0401 break key unreliable
318 KEY_DOWN 0402 The four arrow keys ...
319 KEY_UP 0403
320 KEY_LEFT 0404
321 KEY_RIGHT 0405 ...
322 KEY_HOME 0406 Home key upward+left arrow
323
324
325 KEY_BACKSPACE 0407 backspace unreliable
326 FEY_FO 0410 Function keys. Space for 64 is
327 reserved.
328 KEY_Fn KEY_F0+n Formula for fn.
329 KEY_DL 0510 Delete line
330 KEY_IL 0511 Insert line
331 KEY_DC 0512 Delete character
332 KEY_IC 0513 Insert char or enter insert mode
333 KEY_EIC 0514 Exit inset char mode
334 KEY_CLEAR 0515 Clear screen
335 KEY_EOS 0516 Clear to end of screen
336 KEY_EOL 0517 Clear to end of line
337 KEY_SF 0520 Scroll 1 line forward
338 KEY_SR 0521 Scroll 1 line backwards reverse
339 KEY_NPAGE 0522 Next page
340
341
342 KEY_PPAGE 0523 Previous page
343 KEY_STAB 0524 Set tab
344 KEY_CTAB 0525 Clear tab
345 KEY_CATAB 0526 Clear all tabs
346 KEY_ENTER 0527 Enter or send unreliable
347 KEY_SRESET 0530 soft partial reset unreliable
348 KEY_RESET 0531 reset or hard reset unreliable
349 KEY_PRINT 0532 print or copy
350 KEY_LL 0533 home down or botton lower left
351