403Webshell
Server IP : 103.119.228.120  /  Your IP : 3.145.85.74
Web Server : Apache
System : Linux v8.techscape8.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64
User : nobody ( 99)
PHP Version : 5.6.40
Disable Function : shell_exec,symlink,system,exec,proc_get_status,proc_nice,proc_terminate,define_syslog_variables,syslog,openlog,closelog,escapeshellcmd,passthru,ocinum cols,ini_alter,leak,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dl,dll,myshellexec,proc_open,socket_bind,proc_close,escapeshellarg,parse_ini_filepopen,fpassthru,exec,passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,popen,show_source,proc_nice,proc_terminate,proc_get_status,proc_close,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,dl,symlink,shell_exec,system,dl,passthru,escapeshellarg,escapeshellcmd,myshellexec,c99_buff_prepare,c99_sess_put,fpassthru,getdisfunc,fx29exec,fx29exec2,is_windows,disp_freespace,fx29sh_getupdate,fx29_buff_prepare,fx29_sess_put,fx29shexit,fx29fsearch,fx29ftpbrutecheck,fx29sh_tools,fx29sh_about,milw0rm,imagez,sh_name,myshellexec,checkproxyhost,dosyayicek,c99_buff_prepare,c99_sess_put,c99getsource,c99sh_getupdate,c99fsearch,c99shexit,view_perms,posix_getpwuid,posix_getgrgid,posix_kill,parse_perms,parsesort,view_perms_color,set_encoder_input,ls_setcheckboxall,ls_reverse_all,rsg_read,rsg_glob,selfURL,dispsecinfo,unix2DosTime,addFile,system,get_users,view_size,DirFiles,DirFilesWide,DirPrintHTMLHeaders,GetFilesTotal,GetTitles,GetTimeTotal,GetMatchesCount,GetFileMatchesCount,GetResultFiles,fs_copy_dir,fs_copy_obj,fs_move_dir,fs_move_obj,fs_rmdir,SearchText,getmicrotime
MySQL : ON |  cURL : ON |  WGET : ON |  Perl : ON |  Python : ON |  Sudo : ON |  Pkexec : ON
Directory :  /usr/local/ssl/local/ssl/local/ssl/local/ssl/local/ssl/local/share/man/man3/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /usr/local/ssl/local/ssl/local/ssl/local/ssl/local/ssl/local/share/man/man3/Curses.3pm
.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
.    ds C`
.    ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{
.    if \nF \{
.        de IX
.        tm Index:\\$1\t\\n%\t"\\$2"
..
.        if !\nF==2 \{
.            nr % 0
.            nr F 2
.        \}
.    \}
.\}
.rr rF
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
.    \" fudge factors for nroff and troff
.if n \{\
.    ds #H 0
.    ds #V .8m
.    ds #F .3m
.    ds #[ \f1
.    ds #] \fP
.\}
.if t \{\
.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
.    ds #V .6m
.    ds #F 0
.    ds #[ \&
.    ds #] \&
.\}
.    \" simple accents for nroff and troff
.if n \{\
.    ds ' \&
.    ds ` \&
.    ds ^ \&
.    ds , \&
.    ds ~ ~
.    ds /
.\}
.if t \{\
.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
.    \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
.    \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
.    \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
.    ds : e
.    ds 8 ss
.    ds o a
.    ds d- d\h'-1'\(ga
.    ds D- D\h'-1'\(hy
.    ds th \o'bp'
.    ds Th \o'LP'
.    ds ae ae
.    ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "Curses 3"
.TH Curses 3 "2016-08-15" "perl v5.16.3" "User Contributed Perl Documentation"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
Curses \- terminal screen handling and optimization
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 1
\&    use Curses;
\&
\&    initscr;
\&    ...
\&    endwin;
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\f(CW\*(C`Curses\*(C'\fR is the interface between Perl and your system's \fIcurses\fR\|(3)
library.  For descriptions on the usage of a given function, variable,
or constant, consult your system's documentation, as such information
invariably varies (:\-) between different \fIcurses\fR\|(3) libraries and
operating systems.  This document describes the interface itself, and
assumes that you already know how your system's \fIcurses\fR\|(3) library
works.
.SS "Unified Functions"
.IX Subsection "Unified Functions"
Many \fIcurses\fR\|(3) functions have variants starting with the prefixes
\&\fIw\-\fR, \fImv\-\fR, and/or \fIwmv\-\fR.  These variants differ only in the
explicit addition of a window, or by the addition of two coordinates
that are used to move the cursor first.  For example, \f(CW\*(C`addch()\*(C'\fR has
three other variants: \f(CW\*(C`waddch()\*(C'\fR, \f(CW\*(C`mvaddch()\*(C'\fR, and \f(CW\*(C`mvwaddch()\*(C'\fR.
The variants aren't very interesting; in fact, we could roll all of
the variants into original function by allowing a variable number
of arguments and analyzing the argument list for which variant the
user wanted to call.
.PP
Unfortunately, \fIcurses\fR\|(3) predates \fIvarargs\fR\|(3), so in C we were stuck
with all the variants.  However, \f(CW\*(C`Curses\*(C'\fR is a Perl interface, so we
are free to \*(L"unify\*(R" these variants into one function.  The section
\&\*(L"Available Functions\*(R" below lists all \fIcurses\fR\|(3) functions \f(CW\*(C`Curses\*(C'\fR
makes available as Perl equivalents, along with a column listing if it
is \fIunified\fR.  If so, it takes a varying number of arguments as
follows:
.Sp
.RS 4
\&\f(CW\*(C`function( [win], [y, x], args );\*(C'\fR
.Sp
\&\fIwin\fR is an optional window argument, defaulting to \f(CW\*(C`stdscr\*(C'\fR if not
specified.
.Sp
\&\fIy, x\fR is an optional coordinate pair used to move the cursor,
defaulting to no move if not specified.
.Sp
\&\fIargs\fR are the required arguments of the function.  These are the
arguments you would specify if you were just calling the base function
and not any of the variants.
.RE
.PP
This makes the variants obsolete, since their functionality has been
merged into a single function, so \f(CW\*(C`Curses\*(C'\fR does not define them by
default.  You can still get them if you want, by setting the
variable \f(CW$Curses::OldCurses\fR to a non-zero value before using the
\&\f(CW\*(C`Curses\*(C'\fR package.  See "Perl 4.X \f(CW\*(C`cursperl\*(C'\fR Compatibility"
for an example of this.
.SS "Wide-Character-Aware Functions"
.IX Subsection "Wide-Character-Aware Functions"
The following are the preferred functions for working with strings, though
they don't follow the normal unified function naming convention (based on the
names in the Curses library) described above.  Despite the naming, each
corresponds to a Curses library function.  For example, a \f(CW\*(C`getchar\*(C'\fR
call performs a Curses library function in the \f(CW\*(C`getch\*(C'\fR family.
.PP
In addition to these functions, The \f(CW\*(C`Curses\*(C'\fR module contains corresponding
functions with the conventional naming (e.g. \f(CW\*(C`getch\*(C'\fR); the duplication is for
historical reasons.  The preferred functions were new in Curses 1.29 (April
2014).  They use the wide character functions in the Curses library if
available (falling back to using the traditional non-wide-character versions).
They also have a more Perl-like interface, taking care of some gory details
under the hood about which a Perl programmer shouldn't have to worry.
.PP
The reason for two sets of string-handling functions is historical.  The
original Curses Perl module predates Curses libraries that understand multiple
byte character encodings.  Moreover, the module was designed to have a Perl
interface that closely resembles the C interface syntactically and directly
passes the internal byte representation of Perl strings to C code.  This was
probably fine before Perl got Unicode function, but today, Perl stores strings
internally in either Latin\-1 or Unicode \s-1UTF\-8\s0 and the original module was not
sensitive to which encoding was used.
.PP
While most of the problems could be worked around in Perl code using the
traditional interface, it's hard to get right and you need a
wide-character-aware curses library (e.g. ncursesw) anyway to make it work
properly.  Because existing consumers of the Curses module may be relying on
the traditional behavior, Curses module designers couldn't simply modify the
existing functions to understand wide characters and convert from and to Perl
strings.
.PP
None of these functions exist if Perl is older than 5.6.
.PP
\fI\f(CI\*(C`getchar\*(C'\fI\fR
.IX Subsection "getchar"
.PP
This calls \f(CW\*(C`wget_wch()\*(C'\fR.  It returns a character \*(-- more precisely, a
one-character (not necessarily one-byte!) string holding the character \*(-- for
a normal key and a two-element list \f(CW\*(C`(undef, key\-number)\*(C'\fR for a function key.
It returns \f(CW\*(C`undef\*(C'\fR on error.
.PP
If you don't expect function keys (i.e. with \f(CW\*(C`keypad(0))\*(C'\fR, you can simply do
.Sp
.Vb 2
\&        my $ch = getchar;
\&        die "getchar failed" unless defined $ch;
.Ve
.PP
If you do expect function keys (i.e. with \f(CWkeypad(1)\fR), you can still assign
the result to a scalar variable as above.  Because of of the way the comma
operator works, that variable will receive either \f(CW\*(C`undef\*(C'\fR or the string or
the number, and you can decode it yourself.
.Sp
.Vb 7
\&        my $ch = getchar;
\&        die "getchar failed" unless defined $ch;
\&        if (<$ch looks like a number >= 0x100>) {
\&                <handle function key>
\&        } else {
\&                <handle normal key>
\&        }
.Ve
.PP
or do
.Sp
.Vb 8
\&        my ($ch, $key) = getchar;
\&        if (defined $key) {
\&                <handle function key $key>
\&        } else if (defined $ch) {
\&                <handle normal key $ch>
\&        } else {
\&                die "getchar failed";
\&        }
.Ve
.PP
If \f(CW\*(C`wget_wch()\*(C'\fR is not available (i.e. The Curses library does not understand
wide characters), this calls \f(CW\*(C`wgetch()\*(C'\fR, but returns the values described
above nonetheless.  This can be a problem because with a multibyte character
encoding like \s-1UTF\-8,\s0 you will receive two one-character strings for a
two-byte-character (e.g. \*(L"XA\*~\*(R" and \*(L"\s-1XX\*(R"\s0 for \*(L"Xa\*:\*(R").  If you append
these characters to a Perl string, that string may internally contain a valid
\&\s-1UTF\-8\s0 encoding of a character, but Perl will not interpret it that way. Perl
may even try to convert what it believes to be two characters to \s-1UTF\-8,\s0 giving
you four bytes.
.PP
\fI\f(CI\*(C`getstring\*(C'\fI\fR
.IX Subsection "getstring"
.PP
This calls \f(CW\*(C`wgetn_wstr\*(C'\fR and returns a string or \f(CW\*(C`undef\*(C'\fR.  It cannot return a
function key value; the Curses library will itself interpret \s-1KEY_LEFT\s0 and
\&\s-1KEY_BACKSPACE.\s0
.PP
If \f(CW\*(C`wgett_wstr()\*(C'\fR is unavailable, this calls \f(CW\*(C`wgetstr()\*(C'\fR.
.PP
In both cases, the function allocates a buffer of fixed size to hold the
result of the Curses library call.
.Sp
.Vb 2
\&        my $s = getstring();
\&        die "getstring failed" unless defined $s;
.Ve
.PP
\fI\f(CI\*(C`addstring\*(C'\fI/\f(CI\*(C`insstring\*(C'\fI\fR
.IX Subsection "addstring/insstring"
.PP
This adds/inserts the Perl string passed as an argument to the Curses window
using \f(CW\*(C`waddnwstr()\*(C'\fR/\f(CW\*(C`wins_nwstr()\*(C'\fR or, if unavailable,
\&\f(CW\*(C`waddnstr()\*(C'\fR/\f(CW\*(C`winsnstr()\*(C'\fR.  It returns a true value on success, false on
failure.
.Sp
.Vb 1
\&        addstring("HXa\*:llXo\*:, WXo\*:rld") ||\ die "addstring failed";
.Ve
.PP
\fI\f(CI\*(C`instring\*(C'\fI\fR
.IX Subsection "instring"
.PP
This returns a Perl string (or \f(CW\*(C`undef\*(C'\fR on failure) holding the characters
from the current cursor position up to the end of the line.  It uses
\&\f(CW\*(C`winnwstr()\*(C'\fR if available, and otherwise \f(CW\*(C`innstr()\*(C'\fR.
.Sp
.Vb 2
\&        my $s = instring();
\&        die "instring failed" unless defined $s;
.Ve
.PP
\fI\f(CI\*(C`ungetchar\*(C'\fI\fR
.IX Subsection "ungetchar"
.PP
This pushes one character (passed as a one-character Perl string) back to the
input queue. It uses \f(CW\*(C`unget_wch()\*(C'\fR or \f(CW\*(C`ungetch()\*(C'\fR.  It returns a true value
on success, false on failure.  It cannot push back a function key; the Curses
library provides no way to push back function keys, only characters.
.Sp
.Vb 1
\&        ungetchar("X") ||\ die "ungetchar failed";
.Ve
.PP
The \f(CW\*(C`Curses\*(C'\fR module provides no interface to the complex-character routines
(\f(CW\*(C`wadd_wch()\*(C'\fR, \f(CW\*(C`wadd_wchnstr()\*(C'\fR, \f(CW\*(C`wecho_wchar()\*(C'\fR, \f(CW\*(C`win_wch()\*(C'\fR,
\&\f(CW\*(C`win_wchnstr()\*(C'\fR, \f(CW\*(C`wins_wch()\*(C'\fR) because there is no sensible way of
converting from Perl to a C \f(CW\*(C`cchar_t\*(C'\fR or back.
.SS "Objects"
.IX Subsection "Objects"
Objects work.  Example:
.PP
.Vb 4
\&    $win = new Curses;
\&    $win\->addstr(10, 10, \*(Aqfoo\*(Aq);
\&    $win\->refresh;
\&    ...
.Ve
.PP
Any function that has been marked as \fIunified\fR (see
\&\*(L"Available Functions\*(R" below and \*(L"Unified Functions\*(R" above)
can be called as a method for a Curses object.
.PP
Do not use \f(CW\*(C`initscr()\*(C'\fR if using objects, as the first call to get
a \f(CW\*(C`new Curses\*(C'\fR will do it for you.
.SS "Security Concerns"
.IX Subsection "Security Concerns"
It has always been the case with the curses functions, but please note
that the following functions:
.PP
.Vb 3
\&    getstr()   (and optional wgetstr(), mvgetstr(), and mvwgetstr())
\&    inchstr()  (and optional winchstr(), mvinchstr(), and mvwinchstr())
\&    instr()    (and optional winstr(), mvinstr(), and mvwinstr())
.Ve
.PP
are subject to buffer overflow attack.  This is because you pass in
the buffer to be filled in, which has to be of finite length, but
there is no way to stop a bad guy from typing.
.PP
In order to avoid this problem, use the alternate functions:
.PP
.Vb 3
\&   getnstr()
\&   inchnstr()
\&   innstr()
.Ve
.PP
which take an extra \*(L"size of buffer\*(R" argument
or the wide-character-aware \fIgetstring()\fR and \fIinstring()\fR versions.
.SH "COMPATIBILITY"
.IX Header "COMPATIBILITY"
.ie n .SS "Perl 4.X ""cursperl"" Compatibility"
.el .SS "Perl 4.X \f(CWcursperl\fP Compatibility"
.IX Subsection "Perl 4.X cursperl Compatibility"
\&\f(CW\*(C`Curses\*(C'\fR was written to take advantage of features of Perl 5 and later.  The
author thought it was better to provide an improved curses programming
environment than to be 100% compatible.  However, many old \f(CW\*(C`curseperl\*(C'\fR
applications will probably still work by starting the script with:
.PP
.Vb 2
\&    BEGIN { $Curses::OldCurses = 1; }
\&    use Curses;
.Ve
.PP
Any old application that still does not work should print an understandable
error message explaining the problem.
.PP
Some functions and variables are not available through \f(CW\*(C`Curses\*(C'\fR, even with
the \f(CW\*(C`BEGIN\*(C'\fR line.  They are listed under
\&\*(L"Curses items not available through Perl Curses\*(R".
.PP
The variables \f(CW$stdscr\fR and \f(CW$curscr\fR are also available as
functions \f(CW\*(C`stdscr\*(C'\fR and \f(CW\*(C`curscr\*(C'\fR.  This is because of a Perl bug.
See the \s-1LIMITATIONS\s0 section for details.
.ie n .SS "Incompatibilities with previous versions of ""Curses"""
.el .SS "Incompatibilities with previous versions of \f(CWCurses\fP"
.IX Subsection "Incompatibilities with previous versions of Curses"
In previous versions of this software, some Perl functions took a different
set of parameters than their C counterparts.  This is not true in the current
version.  You should now use \f(CW\*(C`getstr($str)\*(C'\fR and \f(CW\*(C`getyx($y, $x)\*(C'\fR instead of
\&\f(CW\*(C`$str = getstr()\*(C'\fR and \f(CW\*(C`($y, $x) = getyx()\*(C'\fR.
.SH "DIAGNOSTICS"
.IX Header "DIAGNOSTICS"
.IP "\(bu" 4
Curses function '%s' called with too \f(CW%s\fR arguments at ...
.Sp
You have called a \f(CW\*(C`Curses\*(C'\fR function with a wrong number of
arguments.
.IP "\(bu" 4
argument \f(CW%d\fR to Curses function '%s' is not a Curses \f(CW%s\fR at ...
.IP "\(bu" 4
argument is not a Curses \f(CW%s\fR at ...
.Sp
The argument you gave to the function wasn't of a valid type for the
place you used it.
.Sp
This probably means that you didn't give the right arguments to a \fIunified\fR
function.  See the \s-1DESCRIPTION\s0 section on \*(L"Unified Functions\*(R" for more
information.
.IP "\(bu" 4
Curses function '%s' is not defined in your Curses library at ...
.Sp
Your code has a call to a Perl \f(CW\*(C`Curses\*(C'\fR function that your system's Curses
library doesn't provide.
.IP "\(bu" 4
Curses variable '%s' is not defined in your Curses library at ...
.Sp
Your code has a Perl \f(CW\*(C`Curses\*(C'\fR variable that your system's Curses library
doesn't provide.
.IP "\(bu" 4
Curses constant '%s' is not defined in your Curses library at ...
.Sp
Your code references the specified \f(CW\*(C`Curses\*(C'\fR constant, and your system's
Curses library doesn't provide it.
.IP "\(bu" 4
Curses::Vars::FETCH called with bad index at ...
.IP "\(bu" 4
Curses::Vars::STORE called with bad index at ...
.Sp
You've been playing with the \f(CW\*(C`tie\*(C'\fR interface to the \f(CW\*(C`Curses\*(C'\fR variables.
Don't do that.  :\-)
.IP "\(bu" 4
Anything else
.Sp
Check out the \fIperldiag\fR man page to see if the error is in there.
.SH "LIMITATIONS"
.IX Header "LIMITATIONS"
If you use the variables \f(CW$stdscr\fR and \f(CW$curscr\fR instead of their
functional counterparts (\f(CW\*(C`stdscr\*(C'\fR and \f(CW\*(C`curscr\*(C'\fR), you might run into
a bug in Perl where the \*(L"magic\*(R" isn't called early enough.  This is
manifested by the \f(CW\*(C`Curses\*(C'\fR package telling you \f(CW$stdscr\fR isn't a
window.  One workaround is to put a line like \f(CW\*(C`$stdscr = $stdscr\*(C'\fR
near the front of your program.
.SH "AUTHOR"
.IX Header "AUTHOR"
William Setzer <William_Setzer@ncsu.edu>
.SH "SYNOPSIS OF PERL CURSES AVAILABILITY"
.IX Header "SYNOPSIS OF PERL CURSES AVAILABILITY"
.SS "Available Functions"
.IX Subsection "Available Functions"
.Vb 10
\&    Available Function   Unified?     Available via $OldCurses[*]
\&    \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-   \-\-\-\-\-\-\-\-     \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
\&    addch                  Yes        waddch mvaddch mvwaddch
\&    echochar               Yes        wechochar
\&    addchstr               Yes        waddchstr mvaddchstr mvwaddchstr
\&    addchnstr              Yes        waddchnstr mvaddchnstr mvwaddchnstr
\&    addstr                 Yes        waddstr mvaddstr mvwaddstr
\&    addnstr                Yes        waddnstr mvaddnstr mvwaddnstr
\&    attroff                Yes        wattroff
\&    attron                 Yes        wattron
\&    attrset                Yes        wattrset
\&    standend               Yes        wstandend
\&    standout               Yes        wstandout
\&    attr_get               Yes        wattr_get
\&    attr_off               Yes        wattr_off
\&    attr_on                Yes        wattr_on
\&    attr_set               Yes        wattr_set
\&    chgat                  Yes        wchgat mvchgat mvwchgat
\&    COLOR_PAIR              No
\&    PAIR_NUMBER             No
\&    beep                    No
\&    flash                   No
\&    bkgd                   Yes        wbkgd
\&    bkgdset                Yes        wbkgdset
\&    getbkgd                Yes
\&    border                 Yes        wborder
\&    box                    Yes
\&    hline                  Yes        whline mvhline mvwhline
\&    vline                  Yes        wvline mvvline mvwvline
\&    erase                  Yes        werase
\&    clear                  Yes        wclear
\&    clrtobot               Yes        wclrtobot
\&    clrtoeol               Yes        wclrtoeol
\&    start_color             No
\&    init_pair               No
\&    init_color              No
\&    has_colors              No
\&    can_change_color        No
\&    color_content           No
\&    pair_content            No
\&    delch                  Yes        wdelch mvdelch mvwdelch
\&    deleteln               Yes        wdeleteln
\&    insdelln               Yes        winsdelln
\&    insertln               Yes        winsertln
\&    getch                  Yes        wgetch mvgetch mvwgetch
\&    ungetch                 No
\&    has_key                 No
\&    KEY_F                   No
\&    getstr                 Yes        wgetstr mvgetstr mvwgetstr
\&    getnstr                Yes        wgetnstr mvgetnstr mvwgetnstr
\&    getyx                  Yes
\&    getparyx               Yes
\&    getbegyx               Yes
\&    getmaxyx               Yes
\&    inch                   Yes        winch mvinch mvwinch
\&    inchstr                Yes        winchstr mvinchstr mvwinchstr
\&    inchnstr               Yes        winchnstr mvinchnstr mvwinchnstr
\&    initscr                 No
\&    endwin                  No
\&    isendwin                No
\&    newterm                 No
\&    set_term                No
\&    delscreen               No
\&    cbreak                  No
\&    nocbreak                No
\&    echo                    No
\&    noecho                  No
\&    halfdelay               No
\&    intrflush              Yes
\&    keypad                 Yes
\&    meta                   Yes
\&    nodelay                Yes
\&    notimeout              Yes
\&    raw                     No
\&    noraw                   No
\&    qiflush                 No
\&    noqiflush               No
\&    timeout                Yes        wtimeout
\&    typeahead               No
\&    insch                  Yes        winsch mvinsch mvwinsch
\&    insstr                 Yes        winsstr mvinsstr mvwinsstr
\&    insnstr                Yes        winsnstr mvinsnstr mvwinsnstr
\&    instr                  Yes        winstr mvinstr mvwinstr
\&    innstr                 Yes        winnstr mvinnstr mvwinnstr
\&    def_prog_mode           No
\&    def_shell_mode          No
\&    reset_prog_mode         No
\&    reset_shell_mode        No
\&    resetty                 No
\&    savetty                 No
\&    getsyx                  No
\&    setsyx                  No
\&    curs_set                No
\&    napms                   No
\&    move                   Yes        wmove
\&    clearok                Yes
\&    idlok                  Yes
\&    idcok                  Yes
\&    immedok                Yes
\&    leaveok                Yes
\&    setscrreg              Yes        wsetscrreg
\&    scrollok               Yes
\&    nl                      No
\&    nonl                    No
\&    overlay                 No
\&    overwrite               No
\&    copywin                 No
\&    newpad                  No
\&    subpad                  No
\&    prefresh                No
\&    pnoutrefresh            No
\&    pechochar               No
\&    refresh                Yes        wrefresh
\&    noutrefresh            Yes        wnoutrefresh
\&    doupdate                No
\&    redrawwin              Yes
\&    redrawln               Yes        wredrawln
\&    scr_dump                No
\&    scr_restore             No
\&    scr_init                No
\&    scr_set                 No
\&    scroll                 Yes
\&    scrl                   Yes        wscrl
\&    slk_init                No
\&    slk_set                 No
\&    slk_refresh             No
\&    slk_noutrefresh         No
\&    slk_label               No
\&    slk_clear               No
\&    slk_restore             No
\&    slk_touch               No
\&    slk_attron              No
\&    slk_attrset             No
\&    slk_attr                No
\&    slk_attroff             No
\&    slk_color               No
\&    baudrate                No
\&    erasechar               No
\&    has_ic                  No
\&    has_il                  No
\&    killchar                No
\&    longname                No
\&    termattrs               No
\&    termname                No
\&    touchwin               Yes
\&    touchline              Yes
\&    untouchwin             Yes
\&    touchln                Yes        wtouchln
\&    is_linetouched         Yes
\&    is_wintouched          Yes
\&    unctrl                  No
\&    keyname                 No
\&    filter                  No
\&    use_env                 No
\&    putwin                  No
\&    getwin                  No
\&    delay_output            No
\&    flushinp                No
\&    newwin                  No
\&    delwin                 Yes
\&    mvwin                  Yes
\&    subwin                 Yes
\&    derwin                 Yes
\&    mvderwin               Yes
\&    dupwin                 Yes
\&    syncup                 Yes        wsyncup
\&    syncok                 Yes
\&    cursyncup              Yes        wcursyncup
\&    syncdown               Yes        wsyncdown
\&    getmouse                No
\&    ungetmouse              No
\&    mousemask               No
\&    enclose                Yes        wenclose
\&    mouse_trafo            Yes        wmouse_trafo
\&    mouseinterval           No
\&    BUTTON_RELEASE          No
\&    BUTTON_PRESS            No
\&    BUTTON_CLICK            No
\&    BUTTON_DOUBLE_CLICK     No
\&    BUTTON_TRIPLE_CLICK     No
\&    BUTTON_RESERVED_EVENT   No
\&    use_default_colors      No
\&    assume_default_colors   No
\&    define_key              No
\&    keybound                No
\&    keyok                   No
\&    resizeterm              No
\&    resize                 Yes        wresize
\&    getmaxy                Yes
\&    getmaxx                Yes
\&    flusok                 Yes
\&    getcap                  No
\&    touchoverlap            No
\&    new_panel               No
\&    bottom_panel            No
\&    top_panel               No
\&    show_panel              No
\&    update_panels           No
\&    hide_panel              No
\&    panel_window            No
\&    replace_panel           No
\&    move_panel              No
\&    panel_hidden            No
\&    panel_above             No
\&    panel_below             No
\&    set_panel_userptr       No
\&    panel_userptr           No
\&    del_panel               No
\&    set_menu_fore           No
\&    menu_fore               No
\&    set_menu_back           No
\&    menu_back               No
\&    set_menu_grey           No
\&    menu_grey               No
\&    set_menu_pad            No
\&    menu_pad                No
\&    pos_menu_cursor         No
\&    menu_driver             No
\&    set_menu_format         No
\&    menu_format             No
\&    set_menu_items          No
\&    menu_items              No
\&    item_count              No
\&    set_menu_mark           No
\&    menu_mark               No
\&    new_menu                No
\&    free_menu               No
\&    menu_opts               No
\&    set_menu_opts           No
\&    menu_opts_on            No
\&    menu_opts_off           No
\&    set_menu_pattern        No
\&    menu_pattern            No
\&    post_menu               No
\&    unpost_menu             No
\&    set_menu_userptr        No
\&    menu_userptr            No
\&    set_menu_win            No
\&    menu_win                No
\&    set_menu_sub            No
\&    menu_sub                No
\&    scale_menu              No
\&    set_current_item        No
\&    current_item            No
\&    set_top_row             No
\&    top_row                 No
\&    item_index              No
\&    item_name               No
\&    item_description        No
\&    new_item                No
\&    free_item               No
\&    set_item_opts           No
\&    item_opts_on            No
\&    item_opts_off           No
\&    item_opts               No
\&    item_userptr            No
\&    set_item_userptr        No
\&    set_item_value          No
\&    item_value              No
\&    item_visible            No
\&    menu_request_name       No
\&    menu_request_by_name    No
\&    set_menu_spacing        No
\&    menu_spacing            No
\&    pos_form_cursor         No
\&    data_ahead              No
\&    data_behind             No
\&    form_driver             No
\&    set_form_fields         No
\&    form_fields             No
\&    field_count             No
\&    move_field              No
\&    new_form                No
\&    free_form               No
\&    set_new_page            No
\&    new_page                No
\&    set_form_opts           No
\&    form_opts_on            No
\&    form_opts_off           No
\&    form_opts               No
\&    set_current_field       No
\&    current_field           No
\&    set_form_page           No
\&    form_page               No
\&    field_index             No
\&    post_form               No
\&    unpost_form             No
\&    set_form_userptr        No
\&    form_userptr            No
\&    set_form_win            No
\&    form_win                No
\&    set_form_sub            No
\&    form_sub                No
\&    scale_form              No
\&    set_field_fore          No
\&    field_fore              No
\&    set_field_back          No
\&    field_back              No
\&    set_field_pad           No
\&    field_pad               No
\&    set_field_buffer        No
\&    field_buffer            No
\&    set_field_status        No
\&    field_status            No
\&    set_max_field           No
\&    field_info              No
\&    dynamic_field_info      No
\&    set_field_just          No
\&    field_just              No
\&    new_field               No
\&    dup_field               No
\&    link_field              No
\&    free_field              No
\&    set_field_opts          No
\&    field_opts_on           No
\&    field_opts_off          No
\&    field_opts              No
\&    set_field_userptr       No
\&    field_userptr           No
\&    field_arg               No
\&    form_request_name       No
\&    form_request_by_name    No
.Ve
.PP
[*] To use any functions in this column, the program must set the variable
\&\f(CW$Curses::OldCurses\fR variable to a non-zero value before using the
\&\f(CW\*(C`Curses\*(C'\fR package.  See \*(L"Perl 4.X cursperl Compatibility\*(R" for an
example of this.
.SS "Available Wide-Character-Aware Functions"
.IX Subsection "Available Wide-Character-Aware Functions"
.Vb 8
\&    Function    Uses wide\-character call  Reverts to legacy call
\&    \-\-\-\-\-\-\-\-    \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-  \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
\&    getchar     wget_wch                  wgetch
\&    getstring   wgetn_wstr                wgetnstr
\&    ungetchar   unget_wch                 ungetch
\&    instring    winnwtr                   winnstr
\&    addstring   waddnwstr                 waddnstr
\&    insstring   wins_nwstr                winsnstr
.Ve
.SS "Available Variables"
.IX Subsection "Available Variables"
.Vb 2
\&    LINES                   COLS                    stdscr
\&    curscr                  COLORS                  COLOR_PAIRS
.Ve
.SS "Available Constants"
.IX Subsection "Available Constants"
.Vb 10
\&    ERR                     OK                      ACS_BLOCK
\&    ACS_BOARD               ACS_BTEE                ACS_BULLET
\&    ACS_CKBOARD             ACS_DARROW              ACS_DEGREE
\&    ACS_DIAMOND             ACS_HLINE               ACS_LANTERN
\&    ACS_LARROW              ACS_LLCORNER            ACS_LRCORNER
\&    ACS_LTEE                ACS_PLMINUS             ACS_PLUS
\&    ACS_RARROW              ACS_RTEE                ACS_S1
\&    ACS_S9                  ACS_TTEE                ACS_UARROW
\&    ACS_ULCORNER            ACS_URCORNER            ACS_VLINE
\&    A_ALTCHARSET            A_ATTRIBUTES            A_BLINK
\&    A_BOLD                  A_CHARTEXT              A_COLOR
\&    A_DIM                   A_INVIS                 A_NORMAL
\&    A_PROTECT               A_REVERSE               A_STANDOUT
\&    A_UNDERLINE             COLOR_BLACK             COLOR_BLUE
\&    COLOR_CYAN              COLOR_GREEN             COLOR_MAGENTA
\&    COLOR_RED               COLOR_WHITE             COLOR_YELLOW
\&    KEY_A1                  KEY_A3                  KEY_B2
\&    KEY_BACKSPACE           KEY_BEG                 KEY_BREAK
\&    KEY_BTAB                KEY_C1                  KEY_C3
\&    KEY_CANCEL              KEY_CATAB               KEY_CLEAR
\&    KEY_CLOSE               KEY_COMMAND             KEY_COPY
\&    KEY_CREATE              KEY_CTAB                KEY_DC
\&    KEY_DL                  KEY_DOWN                KEY_EIC
\&    KEY_END                 KEY_ENTER               KEY_EOL
\&    KEY_EOS                 KEY_EVENT               KEY_EXIT
\&    KEY_F0
\&    KEY_FIND                KEY_HELP                KEY_HOME
\&    KEY_IC                  KEY_IL                  KEY_LEFT
\&    KEY_LL                  KEY_MARK                KEY_MAX
\&    KEY_MESSAGE             KEY_MIN                 KEY_MOVE
\&    KEY_NEXT                KEY_NPAGE               KEY_OPEN
\&    KEY_OPTIONS             KEY_PPAGE               KEY_PREVIOUS
\&    KEY_PRINT               KEY_REDO                KEY_REFERENCE
\&    KEY_REFRESH             KEY_REPLACE             KEY_RESET
\&    KEY_RESIZE              KEY_RESTART             KEY_RESUME
\&    KEY_RIGHT
\&    KEY_SAVE                KEY_SBEG                KEY_SCANCEL
\&    KEY_SCOMMAND            KEY_SCOPY               KEY_SCREATE
\&    KEY_SDC                 KEY_SDL                 KEY_SELECT
\&    KEY_SEND                KEY_SEOL                KEY_SEXIT
\&    KEY_SF                  KEY_SFIND               KEY_SHELP
\&    KEY_SHOME               KEY_SIC                 KEY_SLEFT
\&    KEY_SMESSAGE            KEY_SMOVE               KEY_SNEXT
\&    KEY_SOPTIONS            KEY_SPREVIOUS           KEY_SPRINT
\&    KEY_SR                  KEY_SREDO               KEY_SREPLACE
\&    KEY_SRESET              KEY_SRIGHT              KEY_SRSUME
\&    KEY_SSAVE               KEY_SSUSPEND            KEY_STAB
\&    KEY_SUNDO               KEY_SUSPEND             KEY_UNDO
\&    KEY_UP                  KEY_MOUSE               BUTTON1_RELEASED
\&    BUTTON1_PRESSED         BUTTON1_CLICKED         BUTTON1_DOUBLE_CLICKED
\&    BUTTON1_TRIPLE_CLICKED  BUTTON1_RESERVED_EVENT  BUTTON2_RELEASED
\&    BUTTON2_PRESSED         BUTTON2_CLICKED         BUTTON2_DOUBLE_CLICKED
\&    BUTTON2_TRIPLE_CLICKED  BUTTON2_RESERVED_EVENT  BUTTON3_RELEASED
\&    BUTTON3_PRESSED         BUTTON3_CLICKED         BUTTON3_DOUBLE_CLICKED
\&    BUTTON3_TRIPLE_CLICKED  BUTTON3_RESERVED_EVENT  BUTTON4_RELEASED
\&    BUTTON4_PRESSED         BUTTON4_CLICKED         BUTTON4_DOUBLE_CLICKED
\&    BUTTON4_TRIPLE_CLICKED  BUTTON4_RESERVED_EVENT  BUTTON_CTRL
\&    BUTTON_SHIFT            BUTTON_ALT              ALL_MOUSE_EVENTS
\&    REPORT_MOUSE_POSITION   NCURSES_MOUSE_VERSION   E_OK
\&    E_SYSTEM_ERROR          E_BAD_ARGUMENT          E_POSTED
\&    E_CONNECTED             E_BAD_STATE             E_NO_ROOM
\&    E_NOT_POSTED            E_UNKNOWN_COMMAND       E_NO_MATCH
\&    E_NOT_SELECTABLE        E_NOT_CONNECTED         E_REQUEST_DENIED
\&    E_INVALID_FIELD         E_CURRENT               REQ_LEFT_ITEM
\&    REQ_RIGHT_ITEM          REQ_UP_ITEM             REQ_DOWN_ITEM
\&    REQ_SCR_ULINE           REQ_SCR_DLINE           REQ_SCR_DPAGE
\&    REQ_SCR_UPAGE           REQ_FIRST_ITEM          REQ_LAST_ITEM
\&    REQ_NEXT_ITEM           REQ_PREV_ITEM           REQ_TOGGLE_ITEM
\&    REQ_CLEAR_PATTERN       REQ_BACK_PATTERN        REQ_NEXT_MATCH
\&    REQ_PREV_MATCH          MIN_MENU_COMMAND        MAX_MENU_COMMAND
\&    O_ONEVALUE              O_SHOWDESC              O_ROWMAJOR
\&    O_IGNORECASE            O_SHOWMATCH             O_NONCYCLIC
\&    O_SELECTABLE            REQ_NEXT_PAGE           REQ_PREV_PAGE
\&    REQ_FIRST_PAGE          REQ_LAST_PAGE           REQ_NEXT_FIELD
\&    REQ_PREV_FIELD          REQ_FIRST_FIELD         REQ_LAST_FIELD
\&    REQ_SNEXT_FIELD         REQ_SPREV_FIELD         REQ_SFIRST_FIELD
\&    REQ_SLAST_FIELD         REQ_LEFT_FIELD          REQ_RIGHT_FIELD
\&    REQ_UP_FIELD            REQ_DOWN_FIELD          REQ_NEXT_CHAR
\&    REQ_PREV_CHAR           REQ_NEXT_LINE           REQ_PREV_LINE
\&    REQ_NEXT_WORD           REQ_PREV_WORD           REQ_BEG_FIELD
\&    REQ_END_FIELD           REQ_BEG_LINE            REQ_END_LINE
\&    REQ_LEFT_CHAR           REQ_RIGHT_CHAR          REQ_UP_CHAR
\&    REQ_DOWN_CHAR           REQ_NEW_LINE            REQ_INS_CHAR
\&    REQ_INS_LINE            REQ_DEL_CHAR            REQ_DEL_PREV
\&    REQ_DEL_LINE            REQ_DEL_WORD            REQ_CLR_EOL
\&    REQ_CLR_EOF             REQ_CLR_FIELD           REQ_OVL_MODE
\&    REQ_INS_MODE            REQ_SCR_FLINE           REQ_SCR_BLINE
\&    REQ_SCR_FPAGE           REQ_SCR_BPAGE           REQ_SCR_FHPAGE
\&    REQ_SCR_BHPAGE          REQ_SCR_FCHAR           REQ_SCR_BCHAR
\&    REQ_SCR_HFLINE          REQ_SCR_HBLINE          REQ_SCR_HFHALF
\&    REQ_SCR_HBHALF          REQ_VALIDATION          REQ_NEXT_CHOICE
\&    REQ_PREV_CHOICE         MIN_FORM_COMMAND        MAX_FORM_COMMAND
\&    NO_JUSTIFICATION        JUSTIFY_LEFT            JUSTIFY_CENTER
\&    JUSTIFY_RIGHT           O_VISIBLE               O_ACTIVE
\&    O_PUBLIC                O_EDIT                  O_WRAP
\&    O_BLANK                 O_AUTOSKIP              O_NULLOK
\&    O_PASSOK                O_STATIC                O_NL_OVERLOAD
\&    O_BS_OVERLOAD
.Ve
.ie n .SS "Curses functions not available through Perl ""Curses"""
.el .SS "Curses functions not available through Perl \f(CWCurses\fP"
.IX Subsection "Curses functions not available through Perl Curses"
.Vb 4
\&    tstp _putchar fullname scanw wscanw mvscanw mvwscanw ripoffline
\&    setupterm setterm set_curterm del_curterm restartterm tparm tputs
\&    putp vidputs vidattr mvcur tigetflag tigetnum tigetstr tgetent
\&    tgetflag tgetnum tgetstr tgoto tputs
.Ve
.ie n .SS "Curses menu functions not available through Perl ""Curses"""
.el .SS "Curses menu functions not available through Perl \f(CWCurses\fP"
.IX Subsection "Curses menu functions not available through Perl Curses"
.Vb 2
\&    set_item_init item_init set_item_term item_term set_menu_init
\&    menu_init set_menu_term menu_term
.Ve
.ie n .SS "Curses form functions not available through Perl ""Curses"""
.el .SS "Curses form functions not available through Perl \f(CWCurses\fP"
.IX Subsection "Curses form functions not available through Perl Curses"
.Vb 4
\&    new_fieldtype free_fieldtype set_fieldtype_arg
\&    set_fieldtype_choice link_fieldtype set_form_init form_init
\&    set_form_term form_term set_field_init field_init set_field_term
\&    field_term set_field_type field_type
.Ve

Youez - 2016 - github.com/yon3zu
LinuXploit