1Curses(3) User Contributed Perl Documentation Curses(3)
2
3
4
6 Curses - terminal screen handling and optimization
7
9 use Curses;
10
11 initscr;
12 ...
13 endwin;
14
16 "Curses" is the interface between Perl and your system's curses(3)
17 library. For descriptions on the usage of a given function, variable,
18 or constant, consult your system's documentation, as such information
19 invariably varies (:-) between different curses(3) libraries and
20 operating systems. This document describes the interface itself, and
21 assumes that you already know how your system's curses(3) library
22 works.
23
24 Unified Functions
25 Many curses(3) functions have variants starting with the prefixes w-,
26 mv-, and/or wmv-. These variants differ only in the explicit addition
27 of a window, or by the addition of two coordinates that are used to
28 move the cursor first. For example, "addch()" has three other
29 variants: "waddch()", "mvaddch()", and "mvwaddch()". The variants
30 aren't very interesting; in fact, we could roll all of the variants
31 into original function by allowing a variable number of arguments and
32 analyzing the argument list for which variant the user wanted to call.
33
34 Unfortunately, curses(3) predates varargs(3), so in C we were stuck
35 with all the variants. However, "Curses" is a Perl interface, so we
36 are free to "unify" these variants into one function. The section
37 "Available Functions" below lists all curses(3) functions "Curses"
38 makes available as Perl equivalents, along with a column listing if it
39 is unified. If so, it takes a varying number of arguments as follows:
40
41 "function( [win], [y, x], args );"
42
43 win is an optional window argument, defaulting to "stdscr" if not
44 specified.
45
46 y, x is an optional coordinate pair used to move the cursor,
47 defaulting to no move if not specified.
48
49 args are the required arguments of the function. These are the
50 arguments you would specify if you were just calling the base
51 function and not any of the variants.
52
53 This makes the variants obsolete, since their functionality has been
54 merged into a single function, so "Curses" does not define them by
55 default. You can still get them if you want, by setting the variable
56 $Curses::OldCurses to a non-zero value before using the "Curses"
57 package. See "Perl 4.X "cursperl" Compatibility" for an example of
58 this.
59
60 Wide-Character-Aware Functions
61 The following are the preferred functions for working with strings,
62 though they don't follow the normal unified function naming convention
63 (based on the names in the Curses library) described above. Despite
64 the naming, each corresponds to a Curses library function. For
65 example, a "getchar" call performs a Curses library function in the
66 "getch" family.
67
68 In addition to these functions, The "Curses" module contains
69 corresponding functions with the conventional naming (e.g. "getch");
70 the duplication is for historical reasons. The preferred functions
71 were new in Curses 1.29 (April 2014). They use the wide character
72 functions in the Curses library if available (falling back to using the
73 traditional non-wide-character versions). They also have a more Perl-
74 like interface, taking care of some gory details under the hood about
75 which a Perl programmer shouldn't have to worry.
76
77 The reason for two sets of string-handling functions is historical.
78 The original Curses Perl module predates Curses libraries that
79 understand multiple byte character encodings. Moreover, the module was
80 designed to have a Perl interface that closely resembles the C
81 interface syntactically and directly passes the internal byte
82 representation of Perl strings to C code. This was probably fine
83 before Perl got Unicode function, but today, Perl stores strings
84 internally in either Latin-1 or Unicode UTF-8 and the original module
85 was not sensitive to which encoding was used.
86
87 While most of the problems could be worked around in Perl code using
88 the traditional interface, it's hard to get right and you need a wide-
89 character-aware curses library (e.g. ncursesw) anyway to make it work
90 properly. Because existing consumers of the Curses module may be
91 relying on the traditional behavior, Curses module designers couldn't
92 simply modify the existing functions to understand wide characters and
93 convert from and to Perl strings.
94
95 None of these functions exist if Perl is older than 5.6.
96
97 "getchar"
98
99 This calls "wget_wch()". It returns a character -- more precisely, a
100 one-character (not necessarily one-byte!) string holding the character
101 -- for a normal key and a two-element list "(undef, key-number)" for a
102 function key. It returns "undef" on error.
103
104 If you don't expect function keys (i.e. with "keypad(0))", you can
105 simply do
106
107 my $ch = getchar;
108 die "getchar failed" unless defined $ch;
109
110 If you do expect function keys (i.e. with keypad(1)), you can still
111 assign the result to a scalar variable as above. Because of of the way
112 the comma operator works, that variable will receive either "undef" or
113 the string or the number, and you can decode it yourself.
114
115 my $ch = getchar;
116 die "getchar failed" unless defined $ch;
117 if (<$ch looks like a number >= 0x100>) {
118 <handle function key>
119 } else {
120 <handle normal key>
121 }
122
123 or do
124
125 my ($ch, $key) = getchar;
126 if (defined $key) {
127 <handle function key $key>
128 } else if (defined $ch) {
129 <handle normal key $ch>
130 } else {
131 die "getchar failed";
132 }
133
134 If "wget_wch()" is not available (i.e. The Curses library does not
135 understand wide characters), this calls "wgetch()", but returns the
136 values described above nonetheless. This can be a problem because with
137 a multibyte character encoding like UTF-8, you will receive two one-
138 character strings for a two-byte-character (e.g. "Ã" and "¤" for
139 "ä"). If you append these characters to a Perl string, that string
140 may internally contain a valid UTF-8 encoding of a character, but Perl
141 will not interpret it that way. Perl may even try to convert what it
142 believes to be two characters to UTF-8, giving you four bytes.
143
144 "getstring"
145
146 This calls "wgetn_wstr" and returns a string or "undef". It cannot
147 return a function key value; the Curses library will itself interpret
148 KEY_LEFT and KEY_BACKSPACE.
149
150 If "wgett_wstr()" is unavailable, this calls "wgetstr()".
151
152 In both cases, the function allocates a buffer of fixed size to hold
153 the result of the Curses library call.
154
155 my $s = getstring();
156 die "getstring failed" unless defined $s;
157
158 "addstring"/"insstring"
159
160 This adds/inserts the Perl string passed as an argument to the Curses
161 window using "waddnwstr()"/"wins_nwstr()" or, if unavailable,
162 "waddnstr()"/"winsnstr()". It returns a true value on success, false
163 on failure.
164
165 addstring("Hällö, Wörld") || die "addstring failed";
166
167 "instring"
168
169 This returns a Perl string (or "undef" on failure) holding the
170 characters from the current cursor position up to the end of the line.
171 It uses "winnwstr()" if available, and otherwise "innstr()".
172
173 my $s = instring();
174 die "instring failed" unless defined $s;
175
176 "ungetchar"
177
178 This pushes one character (passed as a one-character Perl string) back
179 to the input queue. It uses "unget_wch()" or "ungetch()". It returns a
180 true value on success, false on failure. It cannot push back a
181 function key; the Curses library provides no way to push back function
182 keys, only characters.
183
184 ungetchar("X") || die "ungetchar failed";
185
186 The "Curses" module provides no interface to the complex-character
187 routines ("wadd_wch()", "wadd_wchnstr()", "wecho_wchar()", "win_wch()",
188 "win_wchnstr()", "wins_wch()") because there is no sensible way of
189 converting from Perl to a C "cchar_t" or back.
190
191 Objects
192 Objects work. Example:
193
194 $win = new Curses;
195 $win->addstr(10, 10, 'foo');
196 $win->refresh;
197 ...
198
199 Any function that has been marked as unified (see "Available Functions"
200 below and "Unified Functions" above) can be called as a method for a
201 Curses object.
202
203 Do not use "initscr()" if using objects, as the first call to get a
204 "new Curses" will do it for you.
205
206 Security Concerns
207 It has always been the case with the curses functions, but please note
208 that the following functions:
209
210 getstr() (and optional wgetstr(), mvgetstr(), and mvwgetstr())
211 inchstr() (and optional winchstr(), mvinchstr(), and mvwinchstr())
212 instr() (and optional winstr(), mvinstr(), and mvwinstr())
213
214 are subject to buffer overflow attack. This is because you pass in the
215 buffer to be filled in, which has to be of finite length, but there is
216 no way to stop a bad guy from typing.
217
218 In order to avoid this problem, use the alternate functions:
219
220 getnstr()
221 inchnstr()
222 innstr()
223
224 which take an extra "size of buffer" argument or the wide-character-
225 aware getstring() and instring() versions.
226
228 Perl 4.X "cursperl" Compatibility
229 "Curses" was written to take advantage of features of Perl 5 and later.
230 The author thought it was better to provide an improved curses
231 programming environment than to be 100% compatible. However, many old
232 "curseperl" applications will probably still work by starting the
233 script with:
234
235 BEGIN { $Curses::OldCurses = 1; }
236 use Curses;
237
238 Any old application that still does not work should print an
239 understandable error message explaining the problem.
240
241 Some functions and variables are not available through "Curses", even
242 with the "BEGIN" line. They are listed under "Curses items not
243 available through Perl Curses".
244
245 The variables $stdscr and $curscr are also available as functions
246 "stdscr" and "curscr". This is because of a Perl bug. See the
247 LIMITATIONS section for details.
248
249 Incompatibilities with previous versions of "Curses"
250 In previous versions of this software, some Perl functions took a
251 different set of parameters than their C counterparts. This is not
252 true in the current version. You should now use "getstr($str)" and
253 "getyx($y, $x)" instead of "$str = getstr()" and "($y, $x) = getyx()".
254
256 · Curses function '%s' called with too %s arguments at ...
257
258 You have called a "Curses" function with a wrong number of
259 arguments.
260
261 · argument %d to Curses function '%s' is not a Curses %s at ...
262
263 · argument is not a Curses %s at ...
264
265 The argument you gave to the function wasn't of a valid type for
266 the place you used it.
267
268 This probably means that you didn't give the right arguments to a
269 unified function. See the DESCRIPTION section on "Unified
270 Functions" for more information.
271
272 · Curses function '%s' is not defined in your Curses library at ...
273
274 Your code has a call to a Perl "Curses" function that your system's
275 Curses library doesn't provide.
276
277 · Curses variable '%s' is not defined in your Curses library at ...
278
279 Your code has a Perl "Curses" variable that your system's Curses
280 library doesn't provide.
281
282 · Curses constant '%s' is not defined in your Curses library at ...
283
284 Your code references the specified "Curses" constant, and your
285 system's Curses library doesn't provide it.
286
287 · Curses::Vars::FETCH called with bad index at ...
288
289 · Curses::Vars::STORE called with bad index at ...
290
291 You've been playing with the "tie" interface to the "Curses"
292 variables. Don't do that. :-)
293
294 · Anything else
295
296 Check out the perldiag man page to see if the error is in there.
297
299 If you use the variables $stdscr and $curscr instead of their
300 functional counterparts ("stdscr" and "curscr"), you might run into a
301 bug in Perl where the "magic" isn't called early enough. This is
302 manifested by the "Curses" package telling you $stdscr isn't a window.
303 One workaround is to put a line like "$stdscr = $stdscr" near the front
304 of your program.
305
307 William Setzer <William_Setzer@ncsu.edu>
308
310 Available Functions
311 Available Function Unified? Available via $OldCurses[*]
312 ------------------ -------- ------------------------
313 addch Yes waddch mvaddch mvwaddch
314 echochar Yes wechochar
315 addchstr Yes waddchstr mvaddchstr mvwaddchstr
316 addchnstr Yes waddchnstr mvaddchnstr mvwaddchnstr
317 addstr Yes waddstr mvaddstr mvwaddstr
318 addnstr Yes waddnstr mvaddnstr mvwaddnstr
319 attroff Yes wattroff
320 attron Yes wattron
321 attrset Yes wattrset
322 standend Yes wstandend
323 standout Yes wstandout
324 attr_get Yes wattr_get
325 attr_off Yes wattr_off
326 attr_on Yes wattr_on
327 attr_set Yes wattr_set
328 chgat Yes wchgat mvchgat mvwchgat
329 COLOR_PAIR No
330 PAIR_NUMBER No
331 beep No
332 flash No
333 bkgd Yes wbkgd
334 bkgdset Yes wbkgdset
335 getbkgd Yes
336 border Yes wborder
337 box Yes
338 hline Yes whline mvhline mvwhline
339 vline Yes wvline mvvline mvwvline
340 erase Yes werase
341 clear Yes wclear
342 clrtobot Yes wclrtobot
343 clrtoeol Yes wclrtoeol
344 start_color No
345 init_pair No
346 init_color No
347 has_colors No
348 can_change_color No
349 color_content No
350 pair_content No
351 delch Yes wdelch mvdelch mvwdelch
352 deleteln Yes wdeleteln
353 insdelln Yes winsdelln
354 insertln Yes winsertln
355 getch Yes wgetch mvgetch mvwgetch
356 ungetch No
357 has_key No
358 KEY_F No
359 getstr Yes wgetstr mvgetstr mvwgetstr
360 getnstr Yes wgetnstr mvgetnstr mvwgetnstr
361 getyx Yes
362 getparyx Yes
363 getbegyx Yes
364 getmaxyx Yes
365 inch Yes winch mvinch mvwinch
366 inchstr Yes winchstr mvinchstr mvwinchstr
367 inchnstr Yes winchnstr mvinchnstr mvwinchnstr
368 initscr No
369 endwin No
370 isendwin No
371 newterm No
372 set_term No
373 delscreen No
374 cbreak No
375 nocbreak No
376 echo No
377 noecho No
378 halfdelay No
379 intrflush Yes
380 keypad Yes
381 meta Yes
382 nodelay Yes
383 notimeout Yes
384 raw No
385 noraw No
386 qiflush No
387 noqiflush No
388 timeout Yes wtimeout
389 typeahead No
390 insch Yes winsch mvinsch mvwinsch
391 insstr Yes winsstr mvinsstr mvwinsstr
392 insnstr Yes winsnstr mvinsnstr mvwinsnstr
393 instr Yes winstr mvinstr mvwinstr
394 innstr Yes winnstr mvinnstr mvwinnstr
395 def_prog_mode No
396 def_shell_mode No
397 reset_prog_mode No
398 reset_shell_mode No
399 resetty No
400 savetty No
401 getsyx No
402 setsyx No
403 curs_set No
404 napms No
405 move Yes wmove
406 clearok Yes
407 idlok Yes
408 idcok Yes
409 immedok Yes
410 leaveok Yes
411 setscrreg Yes wsetscrreg
412 scrollok Yes
413 nl No
414 nonl No
415 overlay No
416 overwrite No
417 copywin No
418 newpad No
419 subpad No
420 prefresh No
421 pnoutrefresh No
422 pechochar No
423 refresh Yes wrefresh
424 noutrefresh Yes wnoutrefresh
425 doupdate No
426 redrawwin Yes
427 redrawln Yes wredrawln
428 scr_dump No
429 scr_restore No
430 scr_init No
431 scr_set No
432 scroll Yes
433 scrl Yes wscrl
434 slk_init No
435 slk_set No
436 slk_refresh No
437 slk_noutrefresh No
438 slk_label No
439 slk_clear No
440 slk_restore No
441 slk_touch No
442 slk_attron No
443 slk_attrset No
444 slk_attr No
445 slk_attroff No
446 slk_color No
447 baudrate No
448 erasechar No
449 has_ic No
450 has_il No
451 killchar No
452 longname No
453 termattrs No
454 termname No
455 touchwin Yes
456 touchline Yes
457 untouchwin Yes
458 touchln Yes wtouchln
459 is_linetouched Yes
460 is_wintouched Yes
461 unctrl No
462 keyname No
463 filter No
464 use_env No
465 putwin No
466 getwin No
467 delay_output No
468 flushinp No
469 newwin No
470 delwin Yes
471 mvwin Yes
472 subwin Yes
473 derwin Yes
474 mvderwin Yes
475 dupwin Yes
476 syncup Yes wsyncup
477 syncok Yes
478 cursyncup Yes wcursyncup
479 syncdown Yes wsyncdown
480 getmouse No
481 ungetmouse No
482 mousemask No
483 enclose Yes wenclose
484 mouse_trafo Yes wmouse_trafo
485 mouseinterval No
486 BUTTON_RELEASE No
487 BUTTON_PRESS No
488 BUTTON_CLICK No
489 BUTTON_DOUBLE_CLICK No
490 BUTTON_TRIPLE_CLICK No
491 BUTTON_RESERVED_EVENT No
492 use_default_colors No
493 assume_default_colors No
494 define_key No
495 keybound No
496 keyok No
497 resizeterm No
498 resize Yes wresize
499 getmaxy Yes
500 getmaxx Yes
501 flusok Yes
502 getcap No
503 touchoverlap No
504 new_panel No
505 bottom_panel No
506 top_panel No
507 show_panel No
508 update_panels No
509 hide_panel No
510 panel_window No
511 replace_panel No
512 move_panel No
513 panel_hidden No
514 panel_above No
515 panel_below No
516 set_panel_userptr No
517 panel_userptr No
518 del_panel No
519 set_menu_fore No
520 menu_fore No
521 set_menu_back No
522 menu_back No
523 set_menu_grey No
524 menu_grey No
525 set_menu_pad No
526 menu_pad No
527 pos_menu_cursor No
528 menu_driver No
529 set_menu_format No
530 menu_format No
531 set_menu_items No
532 menu_items No
533 item_count No
534 set_menu_mark No
535 menu_mark No
536 new_menu No
537 free_menu No
538 menu_opts No
539 set_menu_opts No
540 menu_opts_on No
541 menu_opts_off No
542 set_menu_pattern No
543 menu_pattern No
544 post_menu No
545 unpost_menu No
546 set_menu_userptr No
547 menu_userptr No
548 set_menu_win No
549 menu_win No
550 set_menu_sub No
551 menu_sub No
552 scale_menu No
553 set_current_item No
554 current_item No
555 set_top_row No
556 top_row No
557 item_index No
558 item_name No
559 item_description No
560 new_item No
561 free_item No
562 set_item_opts No
563 item_opts_on No
564 item_opts_off No
565 item_opts No
566 item_userptr No
567 set_item_userptr No
568 set_item_value No
569 item_value No
570 item_visible No
571 menu_request_name No
572 menu_request_by_name No
573 set_menu_spacing No
574 menu_spacing No
575 pos_form_cursor No
576 data_ahead No
577 data_behind No
578 form_driver No
579 set_form_fields No
580 form_fields No
581 field_count No
582 move_field No
583 new_form No
584 free_form No
585 set_new_page No
586 new_page No
587 set_form_opts No
588 form_opts_on No
589 form_opts_off No
590 form_opts No
591 set_current_field No
592 current_field No
593 set_form_page No
594 form_page No
595 field_index No
596 post_form No
597 unpost_form No
598 set_form_userptr No
599 form_userptr No
600 set_form_win No
601 form_win No
602 set_form_sub No
603 form_sub No
604 scale_form No
605 set_field_fore No
606 field_fore No
607 set_field_back No
608 field_back No
609 set_field_pad No
610 field_pad No
611 set_field_buffer No
612 field_buffer No
613 set_field_status No
614 field_status No
615 set_max_field No
616 field_info No
617 dynamic_field_info No
618 set_field_just No
619 field_just No
620 new_field No
621 dup_field No
622 link_field No
623 free_field No
624 set_field_opts No
625 field_opts_on No
626 field_opts_off No
627 field_opts No
628 set_field_userptr No
629 field_userptr No
630 field_arg No
631 form_request_name No
632 form_request_by_name No
633
634 [*] To use any functions in this column, the program must set the
635 variable $Curses::OldCurses variable to a non-zero value before using
636 the "Curses" package. See "Perl 4.X cursperl Compatibility" for an
637 example of this.
638
639 Available Wide-Character-Aware Functions
640 Function Uses wide-character call Reverts to legacy call
641 -------- ------------------------ ----------------------
642 getchar wget_wch wgetch
643 getstring wgetn_wstr wgetnstr
644 ungetchar unget_wch ungetch
645 instring winnwtr winnstr
646 addstring waddnwstr waddnstr
647 insstring wins_nwstr winsnstr
648
649 Available Variables
650 LINES COLS stdscr
651 curscr COLORS COLOR_PAIRS
652
653 Available Constants
654 ERR OK ACS_BLOCK
655 ACS_BOARD ACS_BTEE ACS_BULLET
656 ACS_CKBOARD ACS_DARROW ACS_DEGREE
657 ACS_DIAMOND ACS_HLINE ACS_LANTERN
658 ACS_LARROW ACS_LLCORNER ACS_LRCORNER
659 ACS_LTEE ACS_PLMINUS ACS_PLUS
660 ACS_RARROW ACS_RTEE ACS_S1
661 ACS_S9 ACS_TTEE ACS_UARROW
662 ACS_ULCORNER ACS_URCORNER ACS_VLINE
663 A_ALTCHARSET A_ATTRIBUTES A_BLINK
664 A_BOLD A_CHARTEXT A_COLOR
665 A_DIM A_INVIS A_NORMAL
666 A_PROTECT A_REVERSE A_STANDOUT
667 A_UNDERLINE COLOR_BLACK COLOR_BLUE
668 COLOR_CYAN COLOR_GREEN COLOR_MAGENTA
669 COLOR_RED COLOR_WHITE COLOR_YELLOW
670 KEY_A1 KEY_A3 KEY_B2
671 KEY_BACKSPACE KEY_BEG KEY_BREAK
672 KEY_BTAB KEY_C1 KEY_C3
673 KEY_CANCEL KEY_CATAB KEY_CLEAR
674 KEY_CLOSE KEY_COMMAND KEY_COPY
675 KEY_CREATE KEY_CTAB KEY_DC
676 KEY_DL KEY_DOWN KEY_EIC
677 KEY_END KEY_ENTER KEY_EOL
678 KEY_EOS KEY_EVENT KEY_EXIT
679 KEY_F0
680 KEY_FIND KEY_HELP KEY_HOME
681 KEY_IC KEY_IL KEY_LEFT
682 KEY_LL KEY_MARK KEY_MAX
683 KEY_MESSAGE KEY_MIN KEY_MOVE
684 KEY_NEXT KEY_NPAGE KEY_OPEN
685 KEY_OPTIONS KEY_PPAGE KEY_PREVIOUS
686 KEY_PRINT KEY_REDO KEY_REFERENCE
687 KEY_REFRESH KEY_REPLACE KEY_RESET
688 KEY_RESIZE KEY_RESTART KEY_RESUME
689 KEY_RIGHT
690 KEY_SAVE KEY_SBEG KEY_SCANCEL
691 KEY_SCOMMAND KEY_SCOPY KEY_SCREATE
692 KEY_SDC KEY_SDL KEY_SELECT
693 KEY_SEND KEY_SEOL KEY_SEXIT
694 KEY_SF KEY_SFIND KEY_SHELP
695 KEY_SHOME KEY_SIC KEY_SLEFT
696 KEY_SMESSAGE KEY_SMOVE KEY_SNEXT
697 KEY_SOPTIONS KEY_SPREVIOUS KEY_SPRINT
698 KEY_SR KEY_SREDO KEY_SREPLACE
699 KEY_SRESET KEY_SRIGHT KEY_SRSUME
700 KEY_SSAVE KEY_SSUSPEND KEY_STAB
701 KEY_SUNDO KEY_SUSPEND KEY_UNDO
702 KEY_UP KEY_MOUSE BUTTON1_RELEASED
703 BUTTON1_PRESSED BUTTON1_CLICKED BUTTON1_DOUBLE_CLICKED
704 BUTTON1_TRIPLE_CLICKED BUTTON1_RESERVED_EVENT BUTTON2_RELEASED
705 BUTTON2_PRESSED BUTTON2_CLICKED BUTTON2_DOUBLE_CLICKED
706 BUTTON2_TRIPLE_CLICKED BUTTON2_RESERVED_EVENT BUTTON3_RELEASED
707 BUTTON3_PRESSED BUTTON3_CLICKED BUTTON3_DOUBLE_CLICKED
708 BUTTON3_TRIPLE_CLICKED BUTTON3_RESERVED_EVENT BUTTON4_RELEASED
709 BUTTON4_PRESSED BUTTON4_CLICKED BUTTON4_DOUBLE_CLICKED
710 BUTTON4_TRIPLE_CLICKED BUTTON4_RESERVED_EVENT BUTTON_CTRL
711 BUTTON_SHIFT BUTTON_ALT ALL_MOUSE_EVENTS
712 REPORT_MOUSE_POSITION NCURSES_MOUSE_VERSION E_OK
713 E_SYSTEM_ERROR E_BAD_ARGUMENT E_POSTED
714 E_CONNECTED E_BAD_STATE E_NO_ROOM
715 E_NOT_POSTED E_UNKNOWN_COMMAND E_NO_MATCH
716 E_NOT_SELECTABLE E_NOT_CONNECTED E_REQUEST_DENIED
717 E_INVALID_FIELD E_CURRENT REQ_LEFT_ITEM
718 REQ_RIGHT_ITEM REQ_UP_ITEM REQ_DOWN_ITEM
719 REQ_SCR_ULINE REQ_SCR_DLINE REQ_SCR_DPAGE
720 REQ_SCR_UPAGE REQ_FIRST_ITEM REQ_LAST_ITEM
721 REQ_NEXT_ITEM REQ_PREV_ITEM REQ_TOGGLE_ITEM
722 REQ_CLEAR_PATTERN REQ_BACK_PATTERN REQ_NEXT_MATCH
723 REQ_PREV_MATCH MIN_MENU_COMMAND MAX_MENU_COMMAND
724 O_ONEVALUE O_SHOWDESC O_ROWMAJOR
725 O_IGNORECASE O_SHOWMATCH O_NONCYCLIC
726 O_SELECTABLE REQ_NEXT_PAGE REQ_PREV_PAGE
727 REQ_FIRST_PAGE REQ_LAST_PAGE REQ_NEXT_FIELD
728 REQ_PREV_FIELD REQ_FIRST_FIELD REQ_LAST_FIELD
729 REQ_SNEXT_FIELD REQ_SPREV_FIELD REQ_SFIRST_FIELD
730 REQ_SLAST_FIELD REQ_LEFT_FIELD REQ_RIGHT_FIELD
731 REQ_UP_FIELD REQ_DOWN_FIELD REQ_NEXT_CHAR
732 REQ_PREV_CHAR REQ_NEXT_LINE REQ_PREV_LINE
733 REQ_NEXT_WORD REQ_PREV_WORD REQ_BEG_FIELD
734 REQ_END_FIELD REQ_BEG_LINE REQ_END_LINE
735 REQ_LEFT_CHAR REQ_RIGHT_CHAR REQ_UP_CHAR
736 REQ_DOWN_CHAR REQ_NEW_LINE REQ_INS_CHAR
737 REQ_INS_LINE REQ_DEL_CHAR REQ_DEL_PREV
738 REQ_DEL_LINE REQ_DEL_WORD REQ_CLR_EOL
739 REQ_CLR_EOF REQ_CLR_FIELD REQ_OVL_MODE
740 REQ_INS_MODE REQ_SCR_FLINE REQ_SCR_BLINE
741 REQ_SCR_FPAGE REQ_SCR_BPAGE REQ_SCR_FHPAGE
742 REQ_SCR_BHPAGE REQ_SCR_FCHAR REQ_SCR_BCHAR
743 REQ_SCR_HFLINE REQ_SCR_HBLINE REQ_SCR_HFHALF
744 REQ_SCR_HBHALF REQ_VALIDATION REQ_NEXT_CHOICE
745 REQ_PREV_CHOICE MIN_FORM_COMMAND MAX_FORM_COMMAND
746 NO_JUSTIFICATION JUSTIFY_LEFT JUSTIFY_CENTER
747 JUSTIFY_RIGHT O_VISIBLE O_ACTIVE
748 O_PUBLIC O_EDIT O_WRAP
749 O_BLANK O_AUTOSKIP O_NULLOK
750 O_PASSOK O_STATIC O_NL_OVERLOAD
751 O_BS_OVERLOAD
752
753 Curses functions not available through Perl "Curses"
754 tstp _putchar fullname scanw wscanw mvscanw mvwscanw ripoffline
755 setupterm setterm set_curterm del_curterm restartterm tparm tputs
756 putp vidputs vidattr mvcur tigetflag tigetnum tigetstr tgetent
757 tgetflag tgetnum tgetstr tgoto tputs
758
759 Curses menu functions not available through Perl "Curses"
760 set_item_init item_init set_item_term item_term set_menu_init
761 menu_init set_menu_term menu_term
762
763 Curses form functions not available through Perl "Curses"
764 new_fieldtype free_fieldtype set_fieldtype_arg
765 set_fieldtype_choice link_fieldtype set_form_init form_init
766 set_form_term form_term set_field_init field_init set_field_term
767 field_term set_field_type field_type
768
769
770
771perl v5.28.0 2016-08-14 Curses(3)