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