Fix mdoc(7)/man(7) mix up.
[netbsd-mini2440.git] / lib / libcurses / PSD.doc / fns.doc
blob8880dcfb133700c61eee7b11e39f6a32c8359680
1 .\" Copyright (c) 1992, 1993
2 .\"     The Regents of the University of California.  All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\"    notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\"    notice, this list of conditions and the following disclaimer in the
11 .\"    documentation and/or other materials provided with the distribution.
12 .\" 3. Neither the name of the University nor the names of its contributors
13 .\"    may be used to endorse or promote products derived from this software
14 .\"    without specific prior written permission.
15 .\"
16 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 .\" SUCH DAMAGE.
27 .\"
28 .\"     @(#)fns.doc     8.2 (Berkeley) 6/1/94
29 .\"
30 .Ds
31 .Fn addbytes "char *str" "int len"
32 .De
33 This function is the low level character output function.
34 .Vn Len
35 characters of the string
36 .Vn str
37 are output to the current \*y position of the window.
38 .Ds
39 .Fn addch "chtype ch" \(dg
40 .De
41 Add the character
42 .Vn ch
43 on the window
44 at the current \*y.
45 If the character is a newline
46 (\'\en\')
47 the line will be cleared to the end,
48 and the current \*y will be changed to the
49 beginning off the next line
50 if newline mapping is on,
51 or to the next line at the same x co-ordinate
52 if it is off.
53 A return
54 (\'\er\')
55 will move to the beginning of the line on the window.
56 Tabs
57 (\'\et\')
58 will be expanded into spaces
59 in the normal tabstop positions of
60 every eight characters.
61 \*(Es
62 .Ds
63 .Fn addchstr "chtype *str" \(dg
64 .De
65 Add the characters and attributes in the string pointed to by
66 .Vn str
67 on the window at the current \*y.
68 \*(Es
69 In this case, it will put on as much as it can.
70 .Ds
71 .Fn addchnstr "chtype *str" "int len" \(dg
72 .De
73 Add no more than
74 .Vn len
75 characters and attributes of the string pointed to by
76 .Vn str
77 on the window at the current \*y.
78 \*(Es
79 In this case, it will put on as much as it can.
80 .Ds
81 .Fn addstr "char *str" \(dg
82 .De
83 Add the string pointed to by
84 .Vn str
85 on the window at the current \*y.
86 \*(Es
87 In this case, it will put on as much as it can.
88 .Ds
89 .Fn addnstr "char *str" "int len" \(dg
90 .De
91 Add no more than
92 .Vn len
93 characters of the string pointed to by
94 .Vn str
95 on the window at the current \*y.
96 \*(Es
97 In this case, it will put on as much as it can.
98 .Ds
99 .Fn assume_default_colors "short fore" "short back"
101 Set the curses default foreground and background colors to
102 .Vn fore
104 .Vn back .
106 .Fn attr_get "attr_t *attr" "short *pair" "void *opt" \(dg
108 Get the attributes and colour pair for the window.
109 Either
110 .Vn attr
112 .Vn pair
113 may be NULL.
115 .Vn opt
116 argument is not used.
118 .Fn attr_off "attr_t attr" "void *opt" \(dg
120 Remove character attributes set by
121 .Fn attr_on
123 .Fn attr_set .
125 .Fn attr_on "attr_t attr" "void *opt" \(dg
127 Add character attributes for any characters
128 added to the window (if it has that capability).
129 The attributes that can be set are \fBA_UNDERLINE\fR,
130 \fBA_REVERSE\fR, \fBA_BLINK\fR, \fBA_DIM\fR,
131 \fBA_BOLD\fR, \fBA_BLANK\fR, \fBA_PROTECT\fB,
132 \fBA_ALTCHARSET\fR and \fBCOLOR_PAIR(n)\fR.
134 .Fn attr_set "attr_t attr" "short pair" "void *opt" \(dg
136 Set character attributes and color pair for any characters
137 added to the window (if it has that capability).
139 .Fn attroff "int attribute" \(dg
141 Remove character attributes set by
142 .Fn attron
144 .Fn attrset .
145 To clear all character attributes, use
146 .Fn attroff "A_ATTRIBUTES" .
147 .Fn attroff "A_STANDOUT"
148 is equivalent to
149 .Fn standend .
150 .Fn attroff "A_UNDERLINE"
151 is equivalent to
152 .Fn underend .
154 .Fn attron "int attribute" \(dg
156 Add character attributes for any characters
157 added to the window (if it has that capability).
158 .Fn attron "A_STANDOUT"
159 is equivalent to
160 .Fn standout .
161 .Fn attron "A_UNDERLINE"
162 is equivalent to
163 .Fn underscore .
165 .Fn attrset "int attribute" \(dg
167 Set character attributes for any characters
168 added to the window (if it has that capability).
170 .Fn baudrate "" \(dg
172 Returns the output baud rate of the terminal.
173 This is a system dependent constant
174 (defined in
175 .b <sys/tty.h>
176 on BSD systems,
177 which is included by
178 .b <curses.h> ).
180 .Fn beep ""
182 Sound the terminal bell.  If the terminal has no bell capability,
183 but has the ability to flash the screen, do that instead.  See also
184 .Fn flash
186 .Fn bkgd "chtype ch"
188 Sets the background rendition to
189 .Vn ch .
191 .Fn bkgdset "chtype ch"
193 Sets the background rendition to
194 .Vn ch 
195 and applies this rendition to the window.
197 .Fn border "chtype left" "chtype right" "chtype top" "chtype bottom" "chtype topleft" "chtype topright" "chtype botleft" "chtype botright"
200 Draws a border around the window using the characters:
201 .Vn left
202 for drawing the left side, 
203 .Vn right
204 for drawing the left side, 
205 .Vn top
206 for drawing the top edge, 
207 .Vn bottom
208 for drawing the top edge, 
209 .Vn topleft
210 for drawing the top-left corner, 
211 .Vn topright
212 for drawing the top-right corner, 
213 .Vn botleft
214 for drawing the bottom-left corner, and 
215 .Vn botright
216 for drawing the bottom-right corner.  If scrolling is not allowed,
217 and the window encompasses the lower right-hand corner of the terminal,
218 the corners are left blank to avoid a scroll.
220 .Fn box "WINDOW win" "chtype vert" "chtype hor"
223 Draws a box around the window using
224 .Vn vert
225 as the character for drawing the vertical sides, and
226 .Vn hor
227 for drawing the horizontal lines.
228 If scrolling is not allowed,
229 and the window encompasses the lower right-hand corner of the terminal,
230 the corners are left blank to avoid a scroll.
232 .Fn can_change_color ""
234 Check if terminal can change colors.
236 .Fn cbreak ""
238 Set the terminal to cbreak mode.
240 .Fn clear "" \(dg
242 Resets the entire window to blanks.
244 .Vn win
245 is a screen,
246 this sets the clear flag,
247 which will cause a clear-screen sequence to be sent
248 on the next
249 .Fn refresh
250 call.
251 This also moves the current \*y
252 to (0\*,0).
254 .Fn clearok "WINDOW *scr" "int boolf" \(dg
256 Sets the clear flag for the screen
257 .Vn scr .
259 .Vn boolf
260 is non-zero,
261 this will force a clear-screen to be printed on the next
262 .Fn refresh ,
263 or stop it from doing so if
264 .Vn boolf
265 is 0.
266 This only works on screens,
267 and,
268 unlike
269 .Fn clear ,
270 does not alter the contents of the screen.
272 .Vn scr
274 .Vn curscr ,
275 the next
276 .Fn refresh
277 call will cause a clear-screen,
278 even if the window passed to
279 .Fn refresh
280 is not a screen.
282 .Fn clrtobot "" \(dg
284 Wipes the window clear from the current \*y to the bottom.
285 This does not force a clear-screen sequence on the next refresh
286 under any circumstances.
287 \*(Nm
289 .Fn clrtoeol "" \(dg
291 Wipes the window clear from the current \*y to the end of the line.
292 \*(Nm
294 .Fn color_content "short color" "short *red" "short *green" "short *blue"
296 Get the red, green and blue values of color
297 .Vn color .
299 .Fn color_set "short pair" "void *opt" \(dg
301 Set color pair for any characters added to the window (if it has
302 that capability).
304 .Fn copywin "const WINDOW *src" "WINDOW *dst" "int sminrow" "int smincol" "int dminrow" "int dmincol" "int dmaxrow" "int dmaxcol" "int overlay"
306 Copies the contents of the window
307 .Vn src
308 starting at (
309 .Vn sminrow ,
310 .Vn smincol )
311 to the destination window
312 .Vn dst
313 starting at (
314 .Vn dminrow ,
315 .Vn dmincol )
316 and ending at either the end of the source window or (
317 .Vn dmaxrow ,
318 .Vn dmaxcol )
319 whichever is the lesser.  The parameter
320 .Vn overlay
321 determines the nature of the copy.  If 
322 .Vn overlay
323 is TRUE then only the non-space characters from
324 .Vn src
325 are copied to
326 .Vn dst .
327 If 
328 .Vn overlay
329 is FALSE then all characters are copied from
330 .Vn src
332 .Vn dst.
334 .Fn curs_set "int visibility"
336 Sets the visibility of the screen cursor.  The parameter
337 .Vn visibility
338 can be one of three values, 0 means make the cursor invisible, 1 means
339 set the cursor to normal visibility and 2 sets the cursor to high
340 visibility.  In all cases the old mode of the cursor is returned if
341 the call was successful and
342 .b ERR
343 is returned if the terminal cannot support the requested visibility
344 mode.
346 .Fn crmode "" \(dg
348 Identical to
349 .Fn cbreak .
350 The misnamed macro
351 .Fn crmode
353 .Fn nocrmode
354 is retained for backwards compatibility
355 with ealier versions of the library.
357 .Fn delay_output "int ms"
359 Pause output for
360 .Vn ms
361 milliseconds using the terminal pad character.
363 .Fn def_prog_mode ""
365 Save the current terminal modes as the \'in curses\' state for use with
366 .Fn reset_prog_mode .
368 .Fn def_shell_mode ""
370 Save the current terminal modes as the \'not in curses\' state for use with
371 .Fn reset_shell_mode .
373 .Fn define_key "char *sequence" "int key_symbol" 
375 Assigns the character sequence given in
376 .Vn sequence
377 to the key symbol
378 .Vn key_symbol .
379 If 
380 .Fn keypad
381 has set been set TRUE and the character sequence is found in the input
382 stream then the key symbol defined will be returned.  Normally the
383 sequences are found in the
384 .b termcap
385 database but this function allows extensions to be added by the
386 application.  If 
387 .Vn sequence
388 is a NULL pointer then all the sequences associated with
389 .Vn key_symbol
390 will be removed, including any definitions inserted by
391 .b termcap .
393 .Fn delch ""
395 Delete the character at the current \*y.
396 Each character after it on the line shifts to the left,
397 and the last character becomes blank.
399 .Fn deleteln ""
401 Delete the current line.
402 Every line below the current one will move up,
403 and the bottom line will become blank.
404 The current \*y will remain unchanged.
406 .Fn delscreen "SCREEN *screen"
408 Delete the screen and frees all associated resources.
410 .Fn delwin "WINDOW *win"
412 Deletes the window from existence.
413 All resources are freed for future use by
414 .b calloc (3).
415 If a window has a
416 .Fn subwin
417 allocated window inside of it,
418 deleting the outer window
419 the subwindow is not affected,
420 even though this does invalidate it.
421 Therefore,
422 subwindows should be deleted before their
423 outer windows are.
425 .Fn derwin "WINDOW *orig" "int nlines" "int ncols" "int by" "int bx"
427 Performs a function very similar to that of
428 .Fn subwin .
429 The difference being that with
430 .Fn derwin
431 the origin of the child window given by (
432 .Vn by ,
433 .Vn bx )
434 is relative to the origin of the parent window
435 .Vn orig
436 instead of being absolute screen coordinates as they are in
437 .Fn subwin .
439 .Fn doupdate ""
441 Synchronize the terminal screen with the virtual screen that
442 has had window contents added to it by calls to
443 .Fn wnoutrefresh .
445 .Fn dupwin "WINDOW *win"
447 Creates an exact copy of the window
448 .Vn win .
450 .Fn echo "" \(dg
452 Sets the terminal to echo characters.
454 .Fn echochar "const chtype ch" \(dg
456 Add the character
457 .Vn ch
458 on the window
459 at the current \*y and immediately refresh the window.
461 .Fn endwin ""
463 Finish up window routines before exit.
464 This restores the terminal to the state it was before
465 .Fn initscr
467 .Fn gettmode
469 .Fn setterm )
470 was called.
471 It should always be called before exiting and before the final calls to
472 .Fn delwin .
473 It does not exit.
474 This is especially useful for resetting tty stats
475 when trapping rubouts via
476 .b signal (2).
478 .Fn erase "" \(dg
480 Erases the window to blanks without setting the clear flag.
481 This is analagous to
482 .Fn clear ,
483 except that it never causes a clear-screen sequence to be generated
484 on a
485 .Fn refresh .
486 \*(Nm
488 .Fn erasechar "" \(dg
490 Returns the erase character
491 for the terminal,
492 .i i.e. ,
493 the character used by the user to erase a single character from the input.
495 .Fn flash ""
497 Flash the terminal screen.  If the terminal has no flash capability,
498 but has the ability to sound the bell, do that instead.  See also
499 .Fn bell
501 .Fn flushinp ""
503 Throw away any input that has been typed by the user but has not yet
504 been read by the program.
506 .Fn flushok "WINDOW *win" "int boolf"
508 Normally,
509 .Fn refresh
510 .Fn fflush 's
511 .Vn stdout
512 when it is finished.
513 .Fn flushok
514 allows you to control this.
516 .Vn boolf
517 is non-zero
519 .i i.e. ,
520 non-zero)
521 it will do the
522 .Fn fflush ,
523 otherwise it will not.
525 .Fn getattrs "WINDOW *win"
527 Gets the attributes for
528 .Vn win .
530 .Fn getbkgd "WINDOW *win"
532 Gets the background rendition for
533 .Vn win .
535 .Fn getcap "char *name"
537 Get the terminal capability
538 .Vn name .
540 .Fn getch "" \(dg
542 Gets a character from the terminal and (if necessary)
543 echos it on the window.
544 \*(Es
545 Otherwise, the character gotten is returned.
547 .i noecho
548 has been set, then the window is left unaltered.
549 In order to retain control of the terminal,
550 it is necessary to have one of
551 .i noecho ,
552 .i cbreak ,
554 .i rawmode
555 set.
556 If you do not set one,
557 whatever routine you call to read characters will set
558 .i cbreak
559 for you,
560 and then reset to the original mode when finished.
562 .Fn getcury "WINDOW *win"
564 Get current y position on
565 .Vn win .
567 .Fn getcurx "WINDOW *win"
569 Get current x position on
570 .Vn win .
572 .Fn getbegy "WINDOW *win"
574 Get start y position on
575 .Vn win .
577 .Fn getbegx "WINDOW *win"
579 Get start x position on
580 .Vn win .
582 .Fn getmaxy "WINDOW *win"
584 Get maximum y position on
585 .Vn win .
587 .Fn getmaxx "WINDOW *win"
589 Get maximum x position on
590 .Vn win .
592 .Fn getnstr "char *str" \(dg
594 Get a string through the window
595 and put it in the location pointed to by
596 .Vn str .
597 A maximum of
598 .Vn n
599 characters is returned (including the trailing null).
600 It sets tty modes if necessary,
601 and then calls
602 .Fn getch
604 .Fn wgetch )
605 to get the characters needed to fill in the string
606 until a newline or EOF is encountered.
607 The newline stripped off the string.
608 \*(Es
610 .Fn getstr "char *str" \(dg
612 Get a string through the window
613 and put it in the location pointed to by
614 .Vn str ,
615 which is assumed to be large enough to handle it.
616 It sets tty modes if necessary,
617 and then calls
618 .Fn getch
620 .Fn wgetch )
621 to get the characters needed to fill in the string
622 until a newline or EOF is encountered.
623 The newline stripped off the string.
624 \*(Es
626 .Fn getparx "WINDOW *win"
628 Returns the x location of the given subwindow relative to the parent
629 window.  If the window is not a subwindow then -1 is returned.
631 .Fn getpary "WINDOW *win"
633 Returns the y location of the given subwindow relative to the parent
634 window.  If the window is not a subwindow then -1 is returned.
636 .Fn getpary "WINDOW *win" "int y" "int x"
638 Is a macro that sets the 
639 .Vn y
641 .Vn x
642 parameters to the respective coordinates of the top left hand corner
643 of the subwindow relative to the parent window.  If the given window
644 .Vn win
645 is not a subwindow then both
646 .Vn y
647 and 
648 .Vn x
649 will be set to -1.
651 .Fn gettmode ""
653 Get the tty stats.
654 This is normally called by
655 .Fn initscr .
656 .Ds 
657 .Fn getwin "FILE *fp"
659 Creates a window from a file written by
660 .Fn putwin .
662 .Fn getyx "WINDOW *win" "int y" "int x"
664 Puts the current \*y of
665 .Vn win
666 in the variables
667 .Vn y
669 .Vn x .
670 Since it is a macro,
671 not a function,
672 you do not pass the address
674 .Vn y
676 .Vn x .
678 .Fn halfdelay "int timeout"
680 Sets the terminal into a mode similar to that done by
681 .Fn cbreak
682 with the exception that the input routines will wait for
683 .Vn timeout
684 number of tenths of a second, if at this time there is no input then
685 ERR will be returned.
687 .Fn has_colors ""
689 Check if terminal has colors.
691 .Fn hline "chtype ch" "int count"
693 Draw a horizontal line of the character ch starting at the current
694 cursor position and moving towards the rightmost column.  At most
695 .Vn count
696 characters will be written, less if the edge of the screen is reached
697 before 
698 .Vn count
699 is reached.
701 .Fn idcok "WINDOW *win" "int boolf"
703 Reserved for future use.
704 This will eventually signal to
705 .Fn refresh
706 that it is all right to use the insert and delete char sequences
707 when updating the window.
709 .Fn idlok "WINDOW *win" "int boolf"
711 Reserved for future use.
712 This will eventually signal to
713 .Fn refresh
714 that it is all right to use the insert and delete line sequences
715 when updating the window.
716 .ne 1i
718 .Fn inch "" \(dg
720 Returns the character at the current position on the given window.
721 This does not make any changes to the window.
723 .Fn inchnstr "chtype *chstr" "int n"
725 Get an array of at most
726 .Vn n
727 characters and renditions starting at the current cursor position and
728 ending at the end of the line and put it in the location pointed to by
729 .Vn chstr .
731 .Fn inchstr "chtype *chstr"
733 Get an array of characters and renditions starting at the current cursor
734 position and ending at the end of the line and put it in the location
735 pointed to by
736 .Vn chstr ,
737 which is assumed to be large enough to handle it.
739 .Fn innstr "char *str" "int n"
741 Get a string of at most
742 .Vn n
743 characters starting at the current cursor position and ending at the end
744 of the line and put it in the location pointed to by
745 .Vn str .
747 .Fn init_color "short color" "short red" "short green" "short blue"
749 Set the red, green and blue values of color
750 .Vn color .
752 .Fn init_pair "short pair" "short fore" "short back"
754 Set the foreground and background colors of pair
755 .Vn pair .
757 .Fn initscr ""
759 Initialize the screen routines.
760 This must be called before any of the screen routines are used.
761 It initializes the terminal-type data and such,
762 and without it none of the routines can operate.
763 If standard input is not a tty,
764 it sets the specifications to the terminal
765 whose name is pointed to by
766 .Vn Def\*_term
767 (initially "dumb").
768 If the boolean
769 .Vn My\*_term
770 is non-zero,
771 .Vn Def\*_term
772 is always used.
773 If the system supports the
774 .b TIOCGWINSZ
775 .i ioctl(2)
776 call,
777 it is used to get the number of lines and columns for the terminal,
778 otherwise it is taken from the
779 .b termcap
780 description.
782 .Fn insch "char c"
784 Insert
785 .Vn c
786 at the current \*y
787 Each character after it shifts to the right,
788 and the last character disappears.
789 \*(Es
791 .Fn insdelln "int n"
794 .Vn n
795 is positive insert
796 .Vn n
797 lines above the current one.
798 Every line below the current line
799 will be shifted down,
800 and the last
801 .Vn n
802 lines will disappear.
804 .Vn n
805 is negative, delete
806 .Vn n
807 lines starting from the current one.
808 The last
809 .Vn n
810 lines are cleared.
811 The current \*y will remain unchanged.
813 .Fn insertln ""
815 Insert a line above the current one.
816 Every line below the current line
817 will be shifted down,
818 and the bottom line will disappear.
819 The current line will become blank,
820 and the current \*y will remain unchanged.
822 .Fn instr "char *str"
824 Get an string starting at the current cursor position and ending at the
825 end of the line and put it in the location pointed to by
826 .Vn str ,
827 which is assumed to be large enough to handle it.
829 .Fn is_linetouched "WINDOW *win" "int line"
831 Returns TRUE if 
832 .Vn line
833 in the window
834 .Vn win
835 has been modified since the last call to
836 .Fn wrefresh .
838 .Fn is_wintouched "WINDOW *win" "int line"
840 Returns TRUE if the window
841 .Vn win
842 has been modified since the last call to
843 .Fn wrefresh .
845 .Fn isendwin ""
847 Returns TRUE if
848 .Fn endwin
849 has been called without a subsequent call to
850 .Fn wrefresh ,
851 and FALSE otherwise.
853 .Fn intrflush "WINDOW *win" "int boolf"
855 Sets the terminal flush on interrupt mode.  If
856 .Vn boolf
857 is non-zero, flushing of the output buffer will occur when an
858 interrupt key is pressed.  The default is inherited from the
859 terminal settings.
861 .Fn keyok "int key_symbol" "bool flag"
863 Controls the recognition of the key symbol
864 .Vn key_symbol .
865 By setting
866 .Vn flag
867 to FALSE the recognition of any sequence of characters
868 that have been associated with the key symbol will be disabled.
869 By default, this flag is TRUE so sequences will be recognised.
871 .Fn keyname "int key"
873 Returns a description of the key
874 .Vn key .
876 .Fn keypad "WINDOW *win" "int boolf"
878 Sets the boolean flag for interpretation of escape sequences.  If
879 .Vn boolf
880 is non-zero, escape sequences from terminal keypad and function
881 keys will be interpreted by the library.  Escape sequences are not
882 interpreted by default.  The include file
883 .b <curses.h>
884 contains the list of recognised keypad and function keys.  See also
885 .Fn notimeout .
887 .Fn killchar "" \(dg
889 Returns the line kill character
890 for the terminal,
891 .i i.e. ,
892 the character used by the user to erase an entire line from the input.
894 .Fn leaveok "WINDOW *win" "int boolf" \(dg
896 Sets the boolean flag for leaving the cursor after the last change.
898 .Vn boolf
899 is non-zero,
900 the cursor will be left after the last update on the terminal,
901 and the current \*y for
902 .Vn win
903 will be changed accordingly.
905 .Vn boolf
906  is 0 the cursor will be moved to the current \*y.
907 This flag
908 (initially 0)
909 retains its value until changed by the user.
911 .Fn longname "" \(dg
913 Returns a string containing the verbose description of the terminal.
915 .Fn meta "WINDOW *win" "bool bf"
917 Manipulates the meta mode on terminals that support this capability.
918 Note that 
919 .Vn win
920 is always ignored.
922 .Fn move "int y" "int x"
924 Change the current \*y of the window to
925 .Vn y\*,x ). (
926 \*(Es
928 .Fn mvaddch "int y" "int x" "chtype ch"
930 Moves the cursor to the position
931 .Vn (y ,
932 .Vn x )
933 and then adds a character in the same manner as
934 .Fn addch .
936 .Fn mvaddchstr "int y" "int x" "chtype *str" \(dg
938 Moves the cursor to the position
939 .Vn (y ,
940 .Vn x )
941 and then adds characters and attributes in the same manner as
942 .Fn addchstr .
944 .Fn mvaddchnstr "int y" "int x" "chtype *str" \(dg
946 Moves the cursor to the position
947 .Vn (y ,
948 .Vn x )
949 and then adds characters and attributes in the same manner as
950 .Fn addchnstr .
952 .Fn mvaddstr "int y" "int x" "char *str" \(dg
954 Moves the cursor to the position
955 .Vn (y ,
956 .Vn x )
957 and then adds a string in the same manner as
958 .Fn addstr .
960 .Fn mvaddnstr "int y" "int x" "char *str" \(dg
962 Moves the cursor to the position
963 .Vn (y ,
964 .Vn x )
965 and then adds a string in the same manner as
966 .Fn addnstr .
968 .Fn mvcur "int lasty" "int lastx" "int newy" "int newx"
970 Moves the terminal's cursor from
971 .Vn lasty\*,lastx ) (
973 .Vn newy\*,newx ) (
974 in an approximation of optimal fashion.
975 This routine uses the functions borrowed from
976 .i ex
977 version 2.6.
978 It is possible to use this optimization
979 without the benefit of the screen routines.
980 With the screen routines, this should not be called by the user.
981 .Fn move
983 .Fn refresh
984 should be used to move the cursor position,
985 so that the routines know what's going on.
987 .Fn mvderwin "WINDOW *win" "int y" "int x"
989 Moves the subwindow
990 .Vn win
991 to the location
992 .Vn y\*,x ) (
993 where the location is relative to the top left hand corner of the
994 parent window.  This call will return ERR if 
995 .Vn win
996 is not a subwindow or if the relocated window would lie outside the
997 parent window.
999 .Fn mvhline "int y" "int x" "chtype ch" "int count"
1001 Moves the cursor to the position
1002 .Vn (y ,
1003 .Vn x )
1004 and then draws a horizontal line in the same manner as
1005 .Fn hline .
1007 .Fn mvprintw "int y" "int x" "const char *fmt" "..."
1009 Equivalent to:
1011 move(y, x);
1012 printw(fmt, ...);
1015 .Fn mvscanw "int y" "int x" "const char *fmt" "..."
1017 Equivalent to:
1019 move(y, x);
1020 scanw(fmt, ...);
1023 .Fn mvvline "int y" "int x" "chtype ch" "int count"
1025 Moves the cursor to the position
1026 .Vn (y ,
1027 .Vn x )
1028 and then draws a vertical line in the same manner as
1029 .Fn vline .
1031 .Fn mvwhline "WINDOW *win" "int y" "int x" "chtype ch" "int count"
1033 Moves the cursor to the position
1034 .Vn (y ,
1035 .Vn x )
1036 on window 
1037 .Vn win
1038 and then draws a horizontal line in the same manner as
1039 .Fn whline .
1041 .Fn mvwvline "WINDOW *win" "int y" "int x" "chtype ch" "int count"
1043 Moves the cursor to the position
1044 .Vn (y ,
1045 .Vn x )
1046 on window 
1047 .Vn win
1048 and then draws a horizontal line in the same manner as
1049 .Fn wvline .
1051 .Fn mvwin "WINDOW *win" "int y" "int x"
1053 Move the home position of the window
1054 .Vn win
1055 from its current starting coordinates
1057 .Vn y\*,x ). (
1058 If that would put part or all of the window
1059 off the edge of the terminal screen,
1060 .Fn mvwin
1061 returns ERR and does not change anything.
1062 For subwindows,
1063 .Fn mvwin
1064 also returns ERR if you attempt to move it off its main window.
1065 If you move a main window,
1066 all subwindows are moved along with it.
1068 .Fn mvwprintw "WINDOW *win" "int y" "int x" "const char *fmt" "..."
1070 Equivalent to:
1072 wmove(win, y, x);
1073 printw(fmt, ...);
1076 .Fn mvwscanw "WINDOW *win" "int y" "int x" "const char *fmt" "..."
1078 Equivalent to:
1080 wmove(win, y, x);
1081 scanw(fmt, ...);
1084 .Fn napms "int ms"
1086 Sleep for
1087 .Vn ms
1088 milliseconds.
1090 .Ft "WINDOW *"
1091 .Fn newpad "int lines" "int cols"
1093 Create a new pad with
1094 .Vn lines
1095 lines and
1096 .Vn cols
1097 columns.
1099 .Ft "SCREEN *"
1100 .Fn newterm "char *type" "FILE *outfd" "FILE *infd"
1102 Iinitialise the curses subsystem to use the terminal of type
1103 .Vn type
1104 connected via the input and output streams
1105 .Vn infd,outfd. 
1106 The 
1107 .Fn newterm
1108 is used in multi-terminal applications and returns a pointer to a
1109 .Ft "SCREEN"
1110 structure that holds the state for that particular terminal.  The
1111 application may swap between the terminals by calling the
1112 .Fn set_term
1113 function.  If the 
1114 .Vn type
1115 parameter is NULL then the $TERM variable is used as the terminal type.
1117 .Ft "WINDOW *"
1118 .Fn newwin "int lines" "int cols" "int begin_y" "int begin_x"
1120 Create a new window with
1121 .Vn lines
1122 lines and
1123 .Vn cols
1124 columns starting at position
1125 .Vn begin\*_y\*,begin\*_x ). (
1126 If either
1127 .Vn lines
1129 .Vn cols
1130 is 0 (zero),
1131 that dimension will be set to
1132 .Vn "LINES \- begin\*_y" ) (
1134 .Vn "COLS \- begin\*_x" ) (
1135 respectively.
1136 Thus, to get a new window of dimensions
1137 .Vn LINES
1138 \(mu
1139 .Vn COLS ,
1141 .Fn newwin 0 0 0 0 .
1143 .Fn nl ""
1145 Set the terminal to nl mode,
1146 .i i.e. ,
1147 start/stop the system from mapping
1148 .b <RETURN>
1150 .b <LINE-FEED> .
1151 If the mapping is not done,
1152 .Fn refresh
1153 can do more optimization,
1154 so it is recommended, but not required, to turn it off.
1156 .Fn no_color_video ""
1158 Return attributes that cannot be combined with color.
1160 .Fn nocbreak ""
1162 Unset the terminal from cbreak mode.
1164 .Fn nocrmode "" \(dg
1166 Identical to
1167 .Fn nocbreak .
1168 The misnamed macro
1169 .Fn nocrmode
1170 is retained for backwards compatibility
1171 with ealier versions of the library.
1173 .Fn nodelay "WINDOW *win1" "int boolf"
1175 Sets the boolean flag for non-blocking
1176 .Fn getch .
1178 .Vn boolf
1179 is non-zero,
1180 .Fn getch
1181 will return ERR is no input is waiting.  The default
1182 is to for
1183 .Fn getch
1184 to block indefinitely.  See also
1185 .Fn timeout .
1187 .Fn noecho "" \(dg
1189 Turn echoing of characters off.
1191 .Fn nonl ""
1193 Unset the terminal to from nl mode.  See
1194 .Fn nl .
1195 .ne 1i
1197 .Fn noqiflush \(dg
1199 Unset the terminal flush on interrupt mode.
1200 This is equivalent to
1201 .Fn intrflush stdscr FALSE .
1203 .Fn noraw ""
1205 Unset the terminal from raw mode.  See
1206 .Fn raw .
1208 .Fn notimeout "WINDOW *win1" "int boolf"
1210 Sets the boolean flag for inter-key timeouts
1211 for escape sequences interpreted when
1212 .Fn keypad
1213 is set.
1214 By default,
1215 .Fn keypad
1216 sets a timer while waiting for the next character of
1217 an escape sequence.
1219 .Vn boolf
1220 is non-zero,
1221 .Fn getch
1222 will wait indefinitely between escape sequence characters,
1223 or until a delay set by
1224 .Fn timeout
1225 expires.
1227 .Fn overlay "WINDOW *win1" "WINDOW *win2"
1229 Overlay
1230 .Vn win1
1232 .Vn win2 .
1233 The contents of
1234 .Vn win1 ,
1235 insofar as they fit,
1236 are placed on
1237 .Vn win2
1238 at their starting \*y.
1239 This is done non-destructively,
1240 i.e., blanks on
1241 .Vn win1
1242 leave the contents of the space on
1243 .Vn win2
1244 untouched.  Note that all non-blank characters are overwritten
1245 destructively in the overlay.
1247 .Fn overwrite "WINDOW *win1" "WINDOW *win2"
1249 Overwrite
1250 .Vn win1
1252 .Vn win2 .
1253 The contents of
1254 .Vn win1 ,
1255 insofar as they fit,
1256 are placed on
1257 .Vn win2
1258 at their starting \*y.
1259 This is done destructively,
1260 .i i.e. ,
1261 blanks on
1262 .Vn win1
1263 become blank on
1264 .Vn win2 .
1266 .Fn pair_content "short pair" "short *fore" "short *back"
1268 Get the foreground and background colors of pair
1269 .Vn pair .
1271 .Fn pechochar "const chtype ch" \(dg
1273 Add the character
1274 .Vn ch
1275 on the pad
1276 at the current \*y and immediately refresh the pad.
1277 .Ds 
1278 .Fn pnoutrefresh "WINDOW *pad" "int pbeg_y" "int pbeg_x" "int sbeg_y" "int sbeg_x" "int smax_y" "int smax_x"
1279 .De    
1280 Add the pad contents to a virtual screen.  Several pads can be added
1281 before a call to
1282 .Fn doupdate ,
1283 thus allowing the screen to updated in an efficient manner.
1285 .Fn prefresh "WINDOW *pad" "int pbeg_y" "int pbeg_x" "int sbeg_y" "int sbeg_x" "int smax_y" "int smax_x"
1286 .De 
1287 Synchronize the terminal screen with the desired pad.
1289 .Fn printw "char *fmt" "..."
1291 Performs a
1292 .Fn printf
1293 on the window starting at the current \*y.
1294 It uses
1295 .Fn addstr
1296 to add the string on the window.
1297 It is often advisable to use the field width options of
1298 .Fn printf
1299 to avoid leaving things on the window from earlier calls.
1300 \*(Es
1301 .Ds 
1302 .Fn putwin "WINDOW *win" "FILE *fp"
1304 Writes the window data to a file.
1306 .Fn qiflush \(dg
1308 Set the terminal flush on interrupt mode.
1309 This is equivalent to
1310 .Fn intrflush stdscr TRUE .
1312 .Fn raw ""
1314 Set the terminal to raw mode.
1315 On version 7
1316 .Un \**
1320 is a trademark of Unix System Laboratories.
1322 this also turns off newline mapping
1323 (see
1324 .Fn nl ).
1326 .Fn redrawwin "WINDOW *win" \(dg
1328 Mark the entire window as having been corrupted.
1329 This is equivalent to the
1330 .Fn touchwin
1331 function.
1333 .Fn refresh "" \(dg
1335 Synchronize the terminal screen with the desired window.
1336 If the window is not a screen,
1337 only that part covered by it is updated.
1338 \*(Es
1339 In this case, it will update whatever it can
1340 without causing the scroll.
1342 As a special case,
1344 .Fn wrefresh
1345 is called with the window
1346 .Vn curscr
1347 the screen is cleared
1348 and repainted as it is currently.
1349 This is very useful for allowing the redrawing of the screen
1350 when the user has garbage dumped on his terminal.
1352 .Fn reset_prog_mode ""
1354 Restore the terminal to the \'in curses\' state.
1356 .Fn reset_shell_mode ""
1358 Restore the terminal to the \'not in curses\' state.
1360 .Fn resetty "" \(dg
1362 .Fn resetty
1363 restores them to what
1364 .Fn savetty
1365 stored.
1366 These functions are performed automatically by
1367 .Fn initscr
1369 .Fn endwin .
1370 This function should not be used by the user.
1372 .Fn resizeterm "int lines" "int columns" \(dg
1374 Resizes the curses terminal to the given size.  All internal curses
1375 structures are resized to the new dimensions and all curses windows that
1376 would have boundaries outside the new terminal size will be resized to fit
1377 within the new boundaries.  All windows will be cleared and it is expected
1378 that the application will redraw the window contents.
1380 .Fn savetty "" \(dg
1382 .Fn savetty
1383 saves the current tty characteristic flags. See
1384 .Fn resetty .
1385 This function should not be used by the user.
1387 .Fn scanw "char *fmt" "..."
1389 Perform a
1390 .Fn scanf
1391 through the window using
1392 .Vn fmt .
1393 It does this using consecutive calls to
1394 .Fn getch
1396 .Fn wgetch ).
1397 \*(Es
1398 .ne 1i
1400 .Fn scrl "int n"
1402 Scroll the window by
1403 .Vn n
1404 lines. If
1405 .Vn n
1406 is positive, scroll upward, otherwise
1407 scroll downward.
1409 .Fn scroll "WINDOW *win"
1411 Scroll the window upward one line.
1412 This is normally not used by the user.
1414 .Fn scrollok "WINDOW *win" "int boolf" \(dg
1416 Set the scroll flag for the given window.
1418 .Vn boolf
1419 is 0, scrolling is not allowed.
1420 This is its default setting.
1422 .Ft "SCREEN *"
1423 .Fn set_term "SCREEN *new"
1425 Sets the current screen for input and output to be the one given.  The 
1426 .Vn new
1427 structure must be one that has been previously created by the 
1428 .Fn newterm
1429 function.  The 
1430 .Fn set_term
1431 function returns the previous screen on successful completion.
1433 .Fn standend "" \(dg
1435 End standout mode initiated by
1436 .Fn standout .
1437 This function is provided for compatibility
1438 with older curses implementations.
1440 .Fn standout "" \(dg
1442 Causes any characters added to the window
1443 to be put in standout mode on the terminal
1444 (if it has that capability).  This function
1445 is provided for compatibility with older curses
1446 implementations.  A larger range of character
1447 attributes supported by modern terminals can be
1448 accessed using
1449 .Fn attron
1451 .Fn attrset .
1453 .Fn start_color ""
1455 Initialize the color routines. 
1456 This must be called before any of the color routines are used.
1457 The terminal is setup to use the curses default colors of white foreground
1458 on black background, unless
1459 .Fn assume_default_colors
1461 .Fn use_default_colors
1462 are called.
1464 .Ft "WINDOW *"
1465 .Fn subpad "WINDOW *win" "int lines" "int cols" "int begin_y" "int begin_x"
1467 Create a new pad with
1468 .Vn lines
1469 lines and
1470 .Vn cols
1471 columns starting at position
1472 .Vn begin\*_y\*,begin\*_x ) (
1473 inside the pad
1474 .i win .
1475 This means that any change made to either pad
1476 in the area covered
1477 by the subpad will be made on both pads.
1478 .Vn begin\*_y\*,begin\*_x
1479 are specified relative to the relative (0\*,0) of
1480 .Vn win .
1482 .Ft "WINDOW *"
1483 .Fn subwin "WINDOW *win" "int lines" "int cols" "int begin_y" "int begin_x"
1485 Create a new window with
1486 .Vn lines
1487 lines and
1488 .Vn cols
1489 columns starting at position
1490 .Vn begin\*_y\*,begin\*_x ) (
1491 inside the window
1492 .i win .
1493 This means that any change made to either window
1494 in the area covered
1495 by the subwindow will be made on both windows.
1496 .Vn begin\*_y\*,begin\*_x
1497 are specified relative to the overall screen,
1498 not the relative (0\*,0) of
1499 .Vn win .
1500 If either
1501 .Vn lines
1503 .Vn cols
1504 is 0 (zero),
1505 that dimension will be set to
1506 .Vn "LINES \- begin\*_y" ) (
1508 .Vn "COLS \- begin\*_x" ) (
1509 respectively.
1511 .Fn termattrs ""
1513 Returns the attributes that can be applied to the screen.
1515 .Fn term_attrs ""
1517 Returns the wide attributes that can be applied to the screen.
1519 .Fn timeout "int delay" \(dg
1521 Sets blocking or non-blocking
1522 .Fn getch .
1524 .Vn delay
1525 is positive,
1526 .Fn getch
1527 will block for
1528 .Vn delay
1529 milliseconds before returning.  If
1530 .Vn delay
1531 is zero,
1532 .Fn getch
1533 will return ERR is no input is waiting.  If
1534 .Vn delay
1535 is negative,
1536 .Fn getch
1537 will block indefinitely.  See also
1538 .Fn keypad ,
1539 .Fn nodelay
1541 .Fn notimeout .
1543 .Fn touchline "WINDOW *win" "int y" "int startx" "int endx"
1545 This function performs a function similar to
1546 .Fn touchwin
1547 on a single line.
1548 It marks the first change for the given line
1549 to be
1550 .Vn startx ,
1551 if it is before the current first change mark,
1553 the last change mark is set to be
1554 .Vn endx
1555 if it is currently less than
1556 .Vn endx .
1558 .Fn touchoverlap "WINDOW *win1" "WINDOW *win2"
1560 Touch the window
1561 .Vn win2
1562 in the area which overlaps with
1563 .Vn win1 .
1564 If they do not overlap,
1565 no changes are made.
1567 .Fn touchwin "WINDOW *win"
1569 Make it appear that the every location on the window
1570 has been changed.
1571 This is usually only needed for refreshes with overlapping windows.
1573 .Fn tstp
1575 This function
1576 will save the current tty state
1577 and then put the process to sleep.
1578 When the process gets restarted,
1579 it restores the saved tty state
1580 and then calls
1581 .Fn wrefresh "curscr"
1582 to redraw the screen.
1583 .Fn Initscr
1584 sets the signal
1585 SIGTSTP
1586 to trap to this routine.
1588 .Fn unctrl "char *ch" \(dg
1590 Returns a string which is an ASCII representation of
1591 .Vn ch .
1592 Characters are 8 bits long.
1594 .Fn unctrllen "char *ch" \(dg
1596 Returns the length of the ASCII representation of
1597 .Vn ch .
1598 .ne 1i
1600 .Fn underend "" \(dg
1602 End underscore mode initiated by
1603 .Fn underscore .
1604 This is equivalent to
1605 .Fn attroff "A_UNDERLINE" .
1607 .Fn underscore "" \(dg
1609 Causes any characters added to the window
1610 to be put in underscore mode on the terminal
1611 (if it has that capability).
1612 This is equivalent to
1613 .Fn attron "A_UNDERLINE" .
1615 .Fn ungetch "int c"
1617 Places the contents of
1618 .Vn c
1619 converted to a character back into the input queue.  Only one
1620 character of push back before a subsequent call to
1621 .Fn getch
1623 .Fn wgetch
1624 is guaranteed to function correctly.  The results of attempting more
1625 than one character of push back is undefined.
1627 .Fn untouchwin "WINDOW *win"
1629 Make the window appear to have not been updated even if it has been.
1631 .Fn use_default_colors ""
1633 Use the terminal foreground and background colors as the curses default
1634 foreground and background colors.
1636 .Fn vline "chtype ch" "int count"
1638 Draws a vertical line of character
1639 .Vn ch
1640 starting at the current cursor location and moving towards the bottom
1641 of the screen.  At most
1642 .Vn count
1643 characters are drawn, less if the bottom of the screen is reached
1644 before
1645 .Vn count
1646 expires.
1648 .Fn vwprintw "WINDOW *win" "const char *fmt" "va_list ap"
1650 Identical to
1651 .Fn printw
1652 except that it takes both a window specification and a pointer to a variable
1653 length argument list.
1655 .Fn vwscanw "WINDOW *win" "const char *fmt" "va_list ap"
1657 Identical to
1658 .Fn scanw
1659 except that it takes both a window specification and a pointer to a variable
1660 length argument list.
1662 .Fn wnoutrefresh "WINDOW *win"
1664 Add the window contents to a virtual screen.  Several windows can be added
1665 before a call to
1666 .Fn doupdate ,
1667 thus allowing the screen to updated in an efficient manner.
1669 .Fn wredrawln "WINDOW *win" "int line" "int n" \(dg
1671 Mark
1672 .Vn n
1673 lines starting at
1674 .Vn line
1675 in the window as corrupted.
1676 This is equivalent to
1677 .Fn wtouchln "win" "line" "n" "1" .
1679 .Fn wresize "WINDOW *win" "int lines" "int columns"
1681 Resize the specified window to the given dimensions.  The window will be
1682 cleared and the application is expected to redraw the window contents.
1684 .Fn wtouchln "WINDOW *win" "int line" "int n" "int changed"
1686 If 
1687 .Vn changed
1688 is 1 then 
1689 .Vn n
1690 lines starting at
1691 .Vn line
1692 in the window are touched.  If
1693 .Vn changed
1694 is 0 then 
1695 .Vn n
1696 lines starting at
1697 .Vn line
1698 in the window are untouched.
1699 .sp 2
1701 \fIThe following functions differ from the standard functions only in their
1702 specification of a window, rather than the use of the default
1703 .Vn stdscr.\fP
1705 .Fn waddbytes "WINDOW *win" "char* str" "int len"
1706 .Fn waddch "WINDOW *win" "chtype ch"
1707 .Fn waddchnstr "WINDOW *win" "chtype *str" "int len"
1708 .Fn waddchstr "WINDOW *win" "chtype *str" "int len"
1709 .Fn waddnstr "WINDOW *win" "char *str" "int len"
1710 .Fn waddstr "WINDOW *win" "char *str"
1711 .Fn wattroff "WINDOW *win" "int attr"
1712 .Fn wattron "WINDOW *win" "int attr"
1713 .Fn wattrset "WINDOW *win" "int attr"
1714 .Fn wbkgd "WINDOW *win" "chtype ch"
1715 .Fn wbkgdset "WINDOW *win" "chtype ch"
1716 .Fn wborder "WINDOW *win" "chtype left" "chtype right" "chtype top" "chtype bottom" "chtype topleft" "chtype topright" "chtype botleft" "chtype botright"
1717 .Fn wclear "WINDOW *win"
1718 .Fn wclrtobot "WINDOW *win"
1719 .Fn wclrtoeol "WINDOW *win"
1720 .Fn wdelch "WINDOW *win"
1721 .Fn wdeleteln "WINDOW *win"
1722 .Fn wechochar "WINDOW *win" "chtype ch"
1723 .Fn werase "WINDOW *win"
1724 .Fn wgetch "WINDOW *win"
1725 .Fn wgetnstr "WINDOW *win" "char *str" "int len"
1726 .Fn wgetstr "WINDOW *win" "char *str"
1727 .Fn whline "WINDOW *win" "chtype ch" "int count"
1728 .Fn winch "WINDOW *win" \(dg
1729 .Fn winchnstr "WINDOW *win" "chtype *chstr" "int n"
1730 .Fn winchstr "WINDOW *win" "chtype *chstr"
1731 .Fn winnstr "WINDOW *win" "char *str" "int n"
1732 .Fn winsch "WINDOW *win" "char c"
1733 .Fn winsdelln "WINDOW *win" "int n"
1734 .Fn winsertln "WINDOW *win"
1735 .Fn winstr "WINDOW *win" "char *str"
1736 .Fn wmove "WINDOW *win" "int y" int x"
1737 .Fn wprintw "WINDOW *win" "char *fmt" "..."
1738 .Fn wrefresh "WINDOW *win"
1739 .Fn wscanw "WINDOW *win" "char *fmt" "..."
1740 .Fn wscrl "WINDOW *win" "int n"
1741 .Fn wstandend "WINDOW *win"
1742 .Fn wstandout "WINDOW *win"
1743 .Fn wtimeout "WINDOW *win" "int delay"
1744 .Fn wunderend "WINDOW *win"
1745 .Fn wunderscore "WINDOW *win"
1746 .Fn wvline "WINDOW *win" "chtype ch" "int count"
1747 .Fn mvwaddch "WINDOW *win" "int y" "int x" "chtype ch"
1748 .Fn mvwaddchstr "WINDOW *win" "int y" "int x" "chtype *str" \(dg
1749 .Fn mvwaddchnstr "WINDOW *win" "int y" "int x" "chtype *str" \(dg
1750 .Fn mvwaddnstr "WINDOW *win" "int y" "int x" "char *str" "int len"
1751 .Fn mvwaddstr "WINDOW *win" "int y" "int x" "char *str"
1752 .Fn mvwgetnstr "WINDOW *win" "int y" "int x" "char *str" "int len"
1753 .Fn mvwgetstr "WINDOW *win" "int y" "int x" "char *str"
1754 .Fn mvwhline "WINDOW *win" "int y" "int x" "chtype ch" "int count"
1755 .Fn mvwvline "WINDOW *win" "int y" "int x" "chtype ch" "int count"