12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169 |
- '\" t
- .\"***************************************************************************
- .\" Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- .\" *
- .\" Permission is hereby granted, free of charge, to any person obtaining a *
- .\" copy of this software and associated documentation files (the *
- .\" "Software"), to deal in the Software without restriction, including *
- .\" without limitation the rights to use, copy, modify, merge, publish, *
- .\" distribute, distribute with modifications, sublicense, and/or sell *
- .\" copies of the Software, and to permit persons to whom the Software is *
- .\" furnished to do so, subject to the following conditions: *
- .\" *
- .\" The above copyright notice and this permission notice shall be included *
- .\" in all copies or substantial portions of the Software. *
- .\" *
- .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- .\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- .\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- .\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- .\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- .\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- .\" *
- .\" Except as contained in this notice, the name(s) of the above copyright *
- .\" holders shall not be used in advertising or otherwise to promote the *
- .\" sale, use or other dealings in this Software without prior written *
- .\" authorization. *
- .\"***************************************************************************
- .\"
- .\" $Id: ncurses.3x,v 1.92 2008/10/25 23:31:45 tom Exp $
- .hy 0
- .TH ncurses 3X ""
- .ds n 5
- .ds d @TERMINFO@
- .SH NAME
- \fBncurses\fR - CRT screen handling and optimization package
- .SH SYNOPSIS
- \fB#include <curses.h>\fR
- .br
- .SH DESCRIPTION
- The \fBncurses\fR library routines give the user a terminal-independent method
- of updating character screens with reasonable optimization.
- This implementation is ``new curses'' (ncurses) and
- is the approved replacement for
- 4.4BSD classic curses, which has been discontinued.
- This describes \fBncurses\fR
- version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
- .PP
- The \fBncurses\fR library emulates the \fBcurses\fR(3X) library of
- System V Release 4 UNIX,
- and XPG4 (X/Open Portability Guide) curses (also known as XSI curses).
- XSI stands for X/Open System Interfaces Extension.
- The \fBncurses\fR library is freely redistributable in source form.
- Differences from the SVr4
- curses are summarized under the \fBEXTENSIONS\fP and \fBPORTABILITY\fP sections below and
- described in detail in the respective \fBEXTENSIONS\fP, \fBPORTABILITY\fP and \fBBUGS\fP sections
- of individual man pages.
- .PP
- The \fBncurses\fR library also provides many useful extensions,
- i.e., features which cannot be implemented by a simple add-on library
- but which require access to the internals of the library.
- .PP
- A program using these routines must be linked with the \fB-lncurses\fR option,
- or (if it has been generated) with the debugging library \fB-lncurses_g\fR.
- (Your system integrator may also have installed these libraries under
- the names \fB-lcurses\fR and \fB-lcurses_g\fR.)
- The ncurses_g library generates trace logs (in a file called 'trace' in the
- current directory) that describe curses actions.
- See also the section on \fBALTERNATE CONFIGURATIONS\fP.
- .PP
- The \fBncurses\fR package supports: overall screen, window and pad
- manipulation; output to windows and pads; reading terminal input; control over
- terminal and \fBcurses\fR input and output options; environment query
- routines; color manipulation; use of soft label keys; terminfo capabilities;
- and access to low-level terminal-manipulation routines.
- .PP
- The library uses the locale which the calling program has initialized.
- That is normally done with \fBsetlocale\fP:
- .sp
- \fBsetlocale(LC_ALL, "");\fP
- .sp
- If the locale is not initialized,
- the library assumes that characters are printable as in ISO-8859-1,
- to work with certain legacy programs.
- You should initialize the locale and not rely on specific details of
- the library when the locale has not been setup.
- .PP
- The function \fBinitscr\fR or \fBnewterm\fR
- must be called to initialize the library
- before any of the other routines that deal with windows
- and screens are used.
- The routine \fBendwin\fR must be called before exiting.
- .PP
- To get character-at-a-time input without echoing (most
- interactive, screen oriented programs want this), the following
- sequence should be used:
- .sp
- \fBinitscr(); cbreak(); noecho();\fR
- .sp
- Most programs would additionally use the sequence:
- .sp
- \fBnonl();\fR
- \fBintrflush(stdscr, FALSE);\fR
- \fBkeypad(stdscr, TRUE);\fR
- .sp
- Before a \fBcurses\fR program is run, the tab stops of the terminal
- should be set and its initialization strings, if defined, must be output.
- This can be done by executing the \fBtput init\fR command
- after the shell environment variable \fBTERM\fR has been exported.
- \fBtset(1)\fR is usually responsible for doing this.
- [See \fBterminfo\fR(\*n) for further details.]
- .PP
- The \fBncurses\fR library permits manipulation of data structures,
- called \fIwindows\fR, which can be thought of as two-dimensional
- arrays of characters representing all or part of a CRT screen.
- A default window called \fBstdscr\fR, which is the size of the terminal
- screen, is supplied.
- Others may be created with \fBnewwin\fR.
- .PP
- Note that \fBcurses\fR does not handle overlapping windows, that's done by
- the \fBpanel\fR(3X) library.
- This means that you can either use
- \fBstdscr\fR or divide the screen into tiled windows and not using
- \fBstdscr\fR at all.
- Mixing the two will result in unpredictable, and undesired, effects.
- .PP
- Windows are referred to by variables declared as \fBWINDOW *\fR.
- These data structures are manipulated with routines described here and
- elsewhere in the \fBncurses\fR manual pages.
- Among those, the most basic
- routines are \fBmove\fR and \fBaddch\fR.
- More general versions of
- these routines are included with names beginning with \fBw\fR,
- allowing the user to specify a window.
- The routines not beginning
- with \fBw\fR affect \fBstdscr\fR.
- .PP
- After using routines to manipulate a window, \fBrefresh\fR is called,
- telling \fBcurses\fR to make the user's CRT screen look like
- \fBstdscr\fR.
- The characters in a window are actually of type
- \fBchtype\fR, (character and attribute data) so that other information
- about the character may also be stored with each character.
- .PP
- Special windows called \fIpads\fR may also be manipulated.
- These are windows
- which are not constrained to the size of the screen and whose contents need not
- be completely displayed.
- See \fBcurs_pad\fR(3X) for more information.
- .PP
- In addition to drawing characters on the screen, video attributes and colors
- may be supported, causing the characters to show up in such modes as
- underlined, in reverse video, or in color on terminals that support such
- display enhancements.
- Line drawing characters may be specified to be output.
- On input, \fBcurses\fR is also able to translate arrow and function keys that
- transmit escape sequences into single values.
- The video attributes, line
- drawing characters, and input values use names, defined in \fB<curses.h>\fR,
- such as \fBA_REVERSE\fR, \fBACS_HLINE\fR, and \fBKEY_LEFT\fR.
- .PP
- If the environment variables \fBLINES\fR and \fBCOLUMNS\fR are set, or if the
- program is executing in a window environment, line and column information in
- the environment will override information read by \fIterminfo\fR.
- This would affect a program running in an AT&T 630 layer,
- for example, where the size of a
- screen is changeable (see \fBENVIRONMENT\fR).
- .PP
- If the environment variable \fBTERMINFO\fR is defined, any program using
- \fBcurses\fR checks for a local terminal definition before checking in the
- standard place.
- For example, if \fBTERM\fR is set to \fBatt4424\fR, then the
- compiled terminal definition is found in
- .sp
- \fB\*d/a/att4424\fR.
- .sp
- (The \fBa\fR is copied from the first letter of \fBatt4424\fR to avoid
- creation of huge directories.) However, if \fBTERMINFO\fR is set to
- \fB$HOME/myterms\fR, \fBcurses\fR first checks
- .sp
- \fB$HOME/myterms/a/att4424\fR,
- .sp
- and if that fails, it then checks
- .sp
- \fB\*d/a/att4424\fR.
- .sp
- This is useful for developing experimental definitions or when write
- permission in \fB\*d\fR is not available.
- .PP
- The integer variables \fBLINES\fR and \fBCOLS\fR are defined in
- \fB<curses.h>\fR and will be filled in by \fBinitscr\fR with the size of the
- screen.
- The constants \fBTRUE\fR and \fBFALSE\fR have the values \fB1\fR and
- \fB0\fR, respectively.
- .PP
- The \fBcurses\fR routines also define the \fBWINDOW *\fR variable \fBcurscr\fR
- which is used for certain low-level operations like clearing and redrawing a
- screen containing garbage.
- The \fBcurscr\fR can be used in only a few routines.
- .\"
- .SS Routine and Argument Names
- Many \fBcurses\fR routines have two or more versions.
- The routines prefixed with \fBw\fR require a window argument.
- The routines prefixed with \fBp\fR require a pad argument.
- Those without a prefix generally use \fBstdscr\fR.
- .PP
- The routines prefixed with \fBmv\fR require a \fIy\fR and \fIx\fR
- coordinate to move to before performing the appropriate action.
- The \fBmv\fR routines imply a call to \fBmove\fR before the call to the
- other routine.
- The coordinate \fIy\fR always refers to the row (of
- the window), and \fIx\fR always refers to the column.
- The upper left-hand corner is always (0,0), not (1,1).
- .PP
- The routines prefixed with \fBmvw\fR take both a window argument and
- \fIx\fR and \fIy\fR coordinates.
- The window argument is always specified before the coordinates.
- .PP
- In each case, \fIwin\fR is the window affected, and \fIpad\fR is the
- pad affected; \fIwin\fR and \fIpad\fR are always pointers to type
- \fBWINDOW\fR.
- .PP
- Option setting routines require a Boolean flag \fIbf\fR with the value
- \fBTRUE\fR or \fBFALSE\fR; \fIbf\fR is always of type \fBbool\fR.
- Most of the data types used in the library routines,
- such as \fBWINDOW\fR, \fBSCREEN\fR, \fBbool\fR, and \fBchtype\fR
- are defined in \fB<curses.h>\fR.
- Types used for the terminfo routines such as
- \fBTERMINAL\fR are defined in \fB<term.h>\fR.
- .PP
- This manual page describes functions which may appear in any configuration
- of the library.
- There are two common configurations of the library:
- .RS
- .TP 5
- ncurses
- the "normal" library, which handles 8-bit characters.
- The normal (8-bit) library stores characters combined with attributes
- in \fBchtype\fP data.
- .IP
- Attributes alone (no corresponding character) may be stored in \fBchtype\fP
- or the equivalent \fBattr_t\fP data.
- In either case, the data is stored in something like an integer.
- .IP
- Each cell (row and column) in a \fBWINDOW\fP is stored as a \fBchtype\fP.
- .TP 5
- ncursesw
- the so-called "wide" library, which handles multibyte characters
- (See the section on \fBALTERNATE CONFIGURATIONS\fP).
- The "wide" library includes all of the calls from the "normal" library.
- It adds about one third more calls using data types which store
- multibyte characters:
- .RS
- .TP 5
- .B cchar_t
- corresponds to \fBchtype\fP.
- However it is a structure, because more data is stored than can fit into
- an integer.
- The characters are large enough to require a full integer value - and there
- may be more than one character per cell.
- The video attributes and color are stored in separate fields of the structure.
- .IP
- Each cell (row and column) in a \fBWINDOW\fP is stored as a \fBcchar_t\fP.
- .TP 5
- .B wchar_t
- stores a "wide" character.
- Like \fBchtype\fP, this may be an integer.
- .TP 5
- .B wint_t
- stores a \fBwchar_t\fP or \fBWEOF\fP - not the same, though both may have
- the same size.
- .RE
- .IP
- The "wide" library provides new functions which are analogous to
- functions in the "normal" library.
- There is a naming convention which relates many of the normal/wide variants:
- a "_w" is inserted into the name.
- For example, \fBwaddch\fP becomes \fBwadd_wch\fP.
- .RE
- .PP
- .\"
- .SS Routine Name Index
- The following table lists each \fBcurses\fR routine and the name of
- the manual page on which it is described.
- Routines flagged with `*'
- are ncurses-specific, not described by XPG4 or present in SVr4.
- .PP
- .TS
- center tab(/);
- l l
- l l .
- \fBcurses\fR Routine Name/Manual Page Name
- =
- COLOR_PAIR/\fBcurs_color\fR(3X)
- PAIR_NUMBER/\fBcurs_attr\fR(3X)
- _nc_free_and_exit/\fBcurs_memleaks\fR(3X)*
- _nc_freeall/\fBcurs_memleaks\fR(3X)*
- _nc_tracebits/\fBcurs_trace\fR(3X)*
- _traceattr/\fBcurs_trace\fR(3X)*
- _traceattr2/\fBcurs_trace\fR(3X)*
- _tracechar/\fBcurs_trace\fR(3X)*
- _tracechtype/\fBcurs_trace\fR(3X)*
- _tracechtype2/\fBcurs_trace\fR(3X)*
- _tracedump/\fBcurs_trace\fR(3X)*
- _tracef/\fBcurs_trace\fR(3X)*
- _tracemouse/\fBcurs_trace\fR(3X)*
- add_wch/\fBcurs_add_wch\fR(3X)
- add_wchnstr/\fBcurs_add_wchstr\fR(3X)
- add_wchstr/\fBcurs_add_wchstr\fR(3X)
- addch/\fBcurs_addch\fR(3X)
- addchnstr/\fBcurs_addchstr\fR(3X)
- addchstr/\fBcurs_addchstr\fR(3X)
- addnstr/\fBcurs_addstr\fR(3X)
- addnwstr/\fBcurs_addwstr\fR(3X)
- addstr/\fBcurs_addstr\fR(3X)
- addwstr/\fBcurs_addwstr\fR(3X)
- assume_default_colors/\fBdefault_colors\fR(3X)*
- attr_get/\fBcurs_attr\fR(3X)
- attr_off/\fBcurs_attr\fR(3X)
- attr_on/\fBcurs_attr\fR(3X)
- attr_set/\fBcurs_attr\fR(3X)
- attroff/\fBcurs_attr\fR(3X)
- attron/\fBcurs_attr\fR(3X)
- attrset/\fBcurs_attr\fR(3X)
- baudrate/\fBcurs_termattrs\fR(3X)
- beep/\fBcurs_beep\fR(3X)
- bkgd/\fBcurs_bkgd\fR(3X)
- bkgdset/\fBcurs_bkgd\fR(3X)
- bkgrnd/\fBcurs_bkgrnd\fR(3X)
- bkgrndset/\fBcurs_bkgrnd\fR(3X)
- border/\fBcurs_border\fR(3X)
- border_set/\fBcurs_border_set\fR(3X)
- box/\fBcurs_border\fR(3X)
- box_set/\fBcurs_border_set\fR(3X)
- can_change_color/\fBcurs_color\fR(3X)
- cbreak/\fBcurs_inopts\fR(3X)
- chgat/\fBcurs_attr\fR(3X)
- clear/\fBcurs_clear\fR(3X)
- clearok/\fBcurs_outopts\fR(3X)
- clrtobot/\fBcurs_clear\fR(3X)
- clrtoeol/\fBcurs_clear\fR(3X)
- color_content/\fBcurs_color\fR(3X)
- color_set/\fBcurs_attr\fR(3X)
- copywin/\fBcurs_overlay\fR(3X)
- curs_set/\fBcurs_kernel\fR(3X)
- curses_version/\fBcurs_extend\fR(3X)*
- def_prog_mode/\fBcurs_kernel\fR(3X)
- def_shell_mode/\fBcurs_kernel\fR(3X)
- define_key/\fBdefine_key\fR(3X)*
- del_curterm/\fBcurs_terminfo\fR(3X)
- delay_output/\fBcurs_util\fR(3X)
- delch/\fBcurs_delch\fR(3X)
- deleteln/\fBcurs_deleteln\fR(3X)
- delscreen/\fBcurs_initscr\fR(3X)
- delwin/\fBcurs_window\fR(3X)
- derwin/\fBcurs_window\fR(3X)
- doupdate/\fBcurs_refresh\fR(3X)
- dupwin/\fBcurs_window\fR(3X)
- echo/\fBcurs_inopts\fR(3X)
- echo_wchar/\fBcurs_add_wch\fR(3X)
- echochar/\fBcurs_addch\fR(3X)
- endwin/\fBcurs_initscr\fR(3X)
- erase/\fBcurs_clear\fR(3X)
- erasechar/\fBcurs_termattrs\fR(3X)
- erasewchar/\fBcurs_termattrs\fR(3X)
- filter/\fBcurs_util\fR(3X)
- flash/\fBcurs_beep\fR(3X)
- flushinp/\fBcurs_util\fR(3X)
- get_wch/\fBcurs_get_wch\fR(3X)
- get_wstr/\fBcurs_get_wstr\fR(3X)
- getattrs/\fBcurs_attr\fR(3X)
- getbegx/\fBcurs_legacy\fR(3X)*
- getbegy/\fBcurs_legacy\fR(3X)*
- getbegyx/\fBcurs_getyx\fR(3X)
- getbkgd/\fBcurs_bkgd\fR(3X)
- getbkgrnd/\fBcurs_bkgrnd\fR(3X)
- getcchar/\fBcurs_getcchar\fR(3X)
- getch/\fBcurs_getch\fR(3X)
- getcurx/\fBcurs_legacy\fR(3X)*
- getcury/\fBcurs_legacy\fR(3X)*
- getmaxx/\fBcurs_legacy\fR(3X)*
- getmaxy/\fBcurs_legacy\fR(3X)*
- getmaxyx/\fBcurs_getyx\fR(3X)
- getmouse/\fBcurs_mouse\fR(3X)*
- getn_wstr/\fBcurs_get_wstr\fR(3X)
- getnstr/\fBcurs_getstr\fR(3X)
- getparx/\fBcurs_legacy\fR(3X)*
- getpary/\fBcurs_legacy\fR(3X)*
- getparyx/\fBcurs_getyx\fR(3X)
- getstr/\fBcurs_getstr\fR(3X)
- getsyx/\fBcurs_kernel\fR(3X)
- getwin/\fBcurs_util\fR(3X)
- getyx/\fBcurs_getyx\fR(3X)
- halfdelay/\fBcurs_inopts\fR(3X)
- has_colors/\fBcurs_color\fR(3X)
- has_ic/\fBcurs_termattrs\fR(3X)
- has_il/\fBcurs_termattrs\fR(3X)
- has_key/\fBcurs_getch\fR(3X)*
- hline/\fBcurs_border\fR(3X)
- hline_set/\fBcurs_border_set\fR(3X)
- idcok/\fBcurs_outopts\fR(3X)
- idlok/\fBcurs_outopts\fR(3X)
- immedok/\fBcurs_outopts\fR(3X)
- in_wch/\fBcurs_in_wch\fR(3X)
- in_wchnstr/\fBcurs_in_wchstr\fR(3X)
- in_wchstr/\fBcurs_in_wchstr\fR(3X)
- inch/\fBcurs_inch\fR(3X)
- inchnstr/\fBcurs_inchstr\fR(3X)
- inchstr/\fBcurs_inchstr\fR(3X)
- init_color/\fBcurs_color\fR(3X)
- init_pair/\fBcurs_color\fR(3X)
- initscr/\fBcurs_initscr\fR(3X)
- innstr/\fBcurs_instr\fR(3X)
- innwstr/\fBcurs_inwstr\fR(3X)
- ins_nwstr/\fBcurs_ins_wstr\fR(3X)
- ins_wch/\fBcurs_ins_wch\fR(3X)
- ins_wstr/\fBcurs_ins_wstr\fR(3X)
- insch/\fBcurs_insch\fR(3X)
- insdelln/\fBcurs_deleteln\fR(3X)
- insertln/\fBcurs_deleteln\fR(3X)
- insnstr/\fBcurs_insstr\fR(3X)
- insstr/\fBcurs_insstr\fR(3X)
- instr/\fBcurs_instr\fR(3X)
- intrflush/\fBcurs_inopts\fR(3X)
- inwstr/\fBcurs_inwstr\fR(3X)
- is_cleared/\fBcurs_opaque\fR(3X)*
- is_idcok/\fBcurs_opaque\fR(3X)*
- is_idlok/\fBcurs_opaque\fR(3X)*
- is_immedok/\fBcurs_opaque\fR(3X)*
- is_keypad/\fBcurs_opaque\fR(3X)*
- is_leaveok/\fBcurs_opaque\fR(3X)*
- is_linetouched/\fBcurs_touch\fR(3X)
- is_nodelay/\fBcurs_opaque\fR(3X)*
- is_notimeout/\fBcurs_opaque\fR(3X)*
- is_scrollok/\fBcurs_opaque\fR(3X)*
- is_syncok/\fBcurs_opaque\fR(3X)*
- is_term_resized/\fBresizeterm\fR(3X)*
- is_wintouched/\fBcurs_touch\fR(3X)
- isendwin/\fBcurs_initscr\fR(3X)
- key_defined/\fBkey_defined\fR(3X)*
- key_name/\fBcurs_util\fR(3X)
- keybound/\fBkeybound\fR(3X)*
- keyname/\fBcurs_util\fR(3X)
- keyok/\fBkeyok\fR(3X)*
- keypad/\fBcurs_inopts\fR(3X)
- killchar/\fBcurs_termattrs\fR(3X)
- killwchar/\fBcurs_termattrs\fR(3X)
- leaveok/\fBcurs_outopts\fR(3X)
- longname/\fBcurs_termattrs\fR(3X)
- mcprint/\fBcurs_print\fR(3X)*
- meta/\fBcurs_inopts\fR(3X)
- mouse_trafo/\fBcurs_mouse\fR(3X)*
- mouseinterval/\fBcurs_mouse\fR(3X)*
- mousemask/\fBcurs_mouse\fR(3X)*
- move/\fBcurs_move\fR(3X)
- mvadd_wch/\fBcurs_add_wch\fR(3X)
- mvadd_wchnstr/\fBcurs_add_wchstr\fR(3X)
- mvadd_wchstr/\fBcurs_add_wchstr\fR(3X)
- mvaddch/\fBcurs_addch\fR(3X)
- mvaddchnstr/\fBcurs_addchstr\fR(3X)
- mvaddchstr/\fBcurs_addchstr\fR(3X)
- mvaddnstr/\fBcurs_addstr\fR(3X)
- mvaddnwstr/\fBcurs_addwstr\fR(3X)
- mvaddstr/\fBcurs_addstr\fR(3X)
- mvaddwstr/\fBcurs_addwstr\fR(3X)
- mvchgat/\fBcurs_attr\fR(3X)
- mvcur/\fBcurs_terminfo\fR(3X)
- mvdelch/\fBcurs_delch\fR(3X)
- mvderwin/\fBcurs_window\fR(3X)
- mvget_wch/\fBcurs_get_wch\fR(3X)
- mvget_wstr/\fBcurs_get_wstr\fR(3X)
- mvgetch/\fBcurs_getch\fR(3X)
- mvgetn_wstr/\fBcurs_get_wstr\fR(3X)
- mvgetnstr/\fBcurs_getstr\fR(3X)
- mvgetstr/\fBcurs_getstr\fR(3X)
- mvhline/\fBcurs_border\fR(3X)
- mvhline_set/\fBcurs_border_set\fR(3X)
- mvin_wch/\fBcurs_in_wch\fR(3X)
- mvin_wchnstr/\fBcurs_in_wchstr\fR(3X)
- mvin_wchstr/\fBcurs_in_wchstr\fR(3X)
- mvinch/\fBcurs_inch\fR(3X)
- mvinchnstr/\fBcurs_inchstr\fR(3X)
- mvinchstr/\fBcurs_inchstr\fR(3X)
- mvinnstr/\fBcurs_instr\fR(3X)
- mvinnwstr/\fBcurs_inwstr\fR(3X)
- mvins_nwstr/\fBcurs_ins_wstr\fR(3X)
- mvins_wch/\fBcurs_ins_wch\fR(3X)
- mvins_wstr/\fBcurs_ins_wstr\fR(3X)
- mvinsch/\fBcurs_insch\fR(3X)
- mvinsnstr/\fBcurs_insstr\fR(3X)
- mvinsstr/\fBcurs_insstr\fR(3X)
- mvinstr/\fBcurs_instr\fR(3X)
- mvinwstr/\fBcurs_inwstr\fR(3X)
- mvprintw/\fBcurs_printw\fR(3X)
- mvscanw/\fBcurs_scanw\fR(3X)
- mvvline/\fBcurs_border\fR(3X)
- mvvline_set/\fBcurs_border_set\fR(3X)
- mvwadd_wch/\fBcurs_add_wch\fR(3X)
- mvwadd_wchnstr/\fBcurs_add_wchstr\fR(3X)
- mvwadd_wchstr/\fBcurs_add_wchstr\fR(3X)
- mvwaddch/\fBcurs_addch\fR(3X)
- mvwaddchnstr/\fBcurs_addchstr\fR(3X)
- mvwaddchstr/\fBcurs_addchstr\fR(3X)
- mvwaddnstr/\fBcurs_addstr\fR(3X)
- mvwaddnwstr/\fBcurs_addwstr\fR(3X)
- mvwaddstr/\fBcurs_addstr\fR(3X)
- mvwaddwstr/\fBcurs_addwstr\fR(3X)
- mvwchgat/\fBcurs_attr\fR(3X)
- mvwdelch/\fBcurs_delch\fR(3X)
- mvwget_wch/\fBcurs_get_wch\fR(3X)
- mvwget_wstr/\fBcurs_get_wstr\fR(3X)
- mvwgetch/\fBcurs_getch\fR(3X)
- mvwgetn_wstr/\fBcurs_get_wstr\fR(3X)
- mvwgetnstr/\fBcurs_getstr\fR(3X)
- mvwgetstr/\fBcurs_getstr\fR(3X)
- mvwhline/\fBcurs_border\fR(3X)
- mvwhline_set/\fBcurs_border_set\fR(3X)
- mvwin/\fBcurs_window\fR(3X)
- mvwin_wch/\fBcurs_in_wch\fR(3X)
- mvwin_wchnstr/\fBcurs_in_wchstr\fR(3X)
- mvwin_wchstr/\fBcurs_in_wchstr\fR(3X)
- mvwinch/\fBcurs_inch\fR(3X)
- mvwinchnstr/\fBcurs_inchstr\fR(3X)
- mvwinchstr/\fBcurs_inchstr\fR(3X)
- mvwinnstr/\fBcurs_instr\fR(3X)
- mvwinnwstr/\fBcurs_inwstr\fR(3X)
- mvwins_nwstr/\fBcurs_ins_wstr\fR(3X)
- mvwins_wch/\fBcurs_ins_wch\fR(3X)
- mvwins_wstr/\fBcurs_ins_wstr\fR(3X)
- mvwinsch/\fBcurs_insch\fR(3X)
- mvwinsnstr/\fBcurs_insstr\fR(3X)
- mvwinsstr/\fBcurs_insstr\fR(3X)
- mvwinstr/\fBcurs_instr\fR(3X)
- mvwinwstr/\fBcurs_inwstr\fR(3X)
- mvwprintw/\fBcurs_printw\fR(3X)
- mvwscanw/\fBcurs_scanw\fR(3X)
- mvwvline/\fBcurs_border\fR(3X)
- mvwvline_set/\fBcurs_border_set\fR(3X)
- napms/\fBcurs_kernel\fR(3X)
- newpad/\fBcurs_pad\fR(3X)
- newterm/\fBcurs_initscr\fR(3X)
- newwin/\fBcurs_window\fR(3X)
- nl/\fBcurs_outopts\fR(3X)
- nocbreak/\fBcurs_inopts\fR(3X)
- nodelay/\fBcurs_inopts\fR(3X)
- noecho/\fBcurs_inopts\fR(3X)
- nofilter/\fBcurs_util\fR(3X)*
- nonl/\fBcurs_outopts\fR(3X)
- noqiflush/\fBcurs_inopts\fR(3X)
- noraw/\fBcurs_inopts\fR(3X)
- notimeout/\fBcurs_inopts\fR(3X)
- overlay/\fBcurs_overlay\fR(3X)
- overwrite/\fBcurs_overlay\fR(3X)
- pair_content/\fBcurs_color\fR(3X)
- pechochar/\fBcurs_pad\fR(3X)
- pnoutrefresh/\fBcurs_pad\fR(3X)
- prefresh/\fBcurs_pad\fR(3X)
- printw/\fBcurs_printw\fR(3X)
- putp/\fBcurs_terminfo\fR(3X)
- putwin/\fBcurs_util\fR(3X)
- qiflush/\fBcurs_inopts\fR(3X)
- raw/\fBcurs_inopts\fR(3X)
- redrawwin/\fBcurs_refresh\fR(3X)
- refresh/\fBcurs_refresh\fR(3X)
- reset_prog_mode/\fBcurs_kernel\fR(3X)
- reset_shell_mode/\fBcurs_kernel\fR(3X)
- resetty/\fBcurs_kernel\fR(3X)
- resizeterm/\fBresizeterm\fR(3X)*
- restartterm/\fBcurs_terminfo\fR(3X)
- ripoffline/\fBcurs_kernel\fR(3X)
- savetty/\fBcurs_kernel\fR(3X)
- scanw/\fBcurs_scanw\fR(3X)
- scr_dump/\fBcurs_scr_dump\fR(3X)
- scr_init/\fBcurs_scr_dump\fR(3X)
- scr_restore/\fBcurs_scr_dump\fR(3X)
- scr_set/\fBcurs_scr_dump\fR(3X)
- scrl/\fBcurs_scroll\fR(3X)
- scroll/\fBcurs_scroll\fR(3X)
- scrollok/\fBcurs_outopts\fR(3X)
- set_curterm/\fBcurs_terminfo\fR(3X)
- set_term/\fBcurs_initscr\fR(3X)
- setcchar/\fBcurs_getcchar\fR(3X)
- setscrreg/\fBcurs_outopts\fR(3X)
- setsyx/\fBcurs_kernel\fR(3X)
- setterm/\fBcurs_terminfo\fR(3X)
- setupterm/\fBcurs_terminfo\fR(3X)
- slk_attr/\fBcurs_slk\fR(3X)*
- slk_attr_off/\fBcurs_slk\fR(3X)
- slk_attr_on/\fBcurs_slk\fR(3X)
- slk_attr_set/\fBcurs_slk\fR(3X)
- slk_attroff/\fBcurs_slk\fR(3X)
- slk_attron/\fBcurs_slk\fR(3X)
- slk_attrset/\fBcurs_slk\fR(3X)
- slk_clear/\fBcurs_slk\fR(3X)
- slk_color/\fBcurs_slk\fR(3X)
- slk_init/\fBcurs_slk\fR(3X)
- slk_label/\fBcurs_slk\fR(3X)
- slk_noutrefresh/\fBcurs_slk\fR(3X)
- slk_refresh/\fBcurs_slk\fR(3X)
- slk_restore/\fBcurs_slk\fR(3X)
- slk_set/\fBcurs_slk\fR(3X)
- slk_touch/\fBcurs_slk\fR(3X)
- standend/\fBcurs_attr\fR(3X)
- standout/\fBcurs_attr\fR(3X)
- start_color/\fBcurs_color\fR(3X)
- subpad/\fBcurs_pad\fR(3X)
- subwin/\fBcurs_window\fR(3X)
- syncok/\fBcurs_window\fR(3X)
- term_attrs/\fBcurs_termattrs\fR(3X)
- termattrs/\fBcurs_termattrs\fR(3X)
- termname/\fBcurs_termattrs\fR(3X)
- tgetent/\fBcurs_termcap\fR(3X)
- tgetflag/\fBcurs_termcap\fR(3X)
- tgetnum/\fBcurs_termcap\fR(3X)
- tgetstr/\fBcurs_termcap\fR(3X)
- tgoto/\fBcurs_termcap\fR(3X)
- tigetflag/\fBcurs_terminfo\fR(3X)
- tigetnum/\fBcurs_terminfo\fR(3X)
- tigetstr/\fBcurs_terminfo\fR(3X)
- timeout/\fBcurs_inopts\fR(3X)
- touchline/\fBcurs_touch\fR(3X)
- touchwin/\fBcurs_touch\fR(3X)
- tparm/\fBcurs_terminfo\fR(3X)
- tputs/\fBcurs_termcap\fR(3X)
- tputs/\fBcurs_terminfo\fR(3X)
- trace/\fBcurs_trace\fR(3X)*
- typeahead/\fBcurs_inopts\fR(3X)
- unctrl/\fBcurs_util\fR(3X)
- unget_wch/\fBcurs_get_wch\fR(3X)
- ungetch/\fBcurs_getch\fR(3X)
- ungetmouse/\fBcurs_mouse\fR(3X)*
- untouchwin/\fBcurs_touch\fR(3X)
- use_default_colors/\fBdefault_colors\fR(3X)*
- use_env/\fBcurs_util\fR(3X)
- use_extended_names/\fBcurs_extend\fR(3X)*
- use_legacy_coding/\fBlegacy_coding\fR(3X)*
- vid_attr/\fBcurs_terminfo\fR(3X)
- vid_puts/\fBcurs_terminfo\fR(3X)
- vidattr/\fBcurs_terminfo\fR(3X)
- vidputs/\fBcurs_terminfo\fR(3X)
- vline/\fBcurs_border\fR(3X)
- vline_set/\fBcurs_border_set\fR(3X)
- vw_printw/\fBcurs_printw\fR(3X)
- vw_scanw/\fBcurs_scanw\fR(3X)
- vwprintw/\fBcurs_printw\fR(3X)
- vwscanw/\fBcurs_scanw\fR(3X)
- wadd_wch/\fBcurs_add_wch\fR(3X)
- wadd_wchnstr/\fBcurs_add_wchstr\fR(3X)
- wadd_wchstr/\fBcurs_add_wchstr\fR(3X)
- waddch/\fBcurs_addch\fR(3X)
- waddchnstr/\fBcurs_addchstr\fR(3X)
- waddchstr/\fBcurs_addchstr\fR(3X)
- waddnstr/\fBcurs_addstr\fR(3X)
- waddnwstr/\fBcurs_addwstr\fR(3X)
- waddstr/\fBcurs_addstr\fR(3X)
- waddwstr/\fBcurs_addwstr\fR(3X)
- wattr_get/\fBcurs_attr\fR(3X)
- wattr_off/\fBcurs_attr\fR(3X)
- wattr_on/\fBcurs_attr\fR(3X)
- wattr_set/\fBcurs_attr\fR(3X)
- wattroff/\fBcurs_attr\fR(3X)
- wattron/\fBcurs_attr\fR(3X)
- wattrset/\fBcurs_attr\fR(3X)
- wbkgd/\fBcurs_bkgd\fR(3X)
- wbkgdset/\fBcurs_bkgd\fR(3X)
- wbkgrnd/\fBcurs_bkgrnd\fR(3X)
- wbkgrndset/\fBcurs_bkgrnd\fR(3X)
- wborder/\fBcurs_border\fR(3X)
- wborder_set/\fBcurs_border_set\fR(3X)
- wchgat/\fBcurs_attr\fR(3X)
- wclear/\fBcurs_clear\fR(3X)
- wclrtobot/\fBcurs_clear\fR(3X)
- wclrtoeol/\fBcurs_clear\fR(3X)
- wcolor_set/\fBcurs_attr\fR(3X)
- wcursyncup/\fBcurs_window\fR(3X)
- wdelch/\fBcurs_delch\fR(3X)
- wdeleteln/\fBcurs_deleteln\fR(3X)
- wecho_wchar/\fBcurs_add_wch\fR(3X)
- wechochar/\fBcurs_addch\fR(3X)
- wenclose/\fBcurs_mouse\fR(3X)*
- werase/\fBcurs_clear\fR(3X)
- wget_wch/\fBcurs_get_wch\fR(3X)
- wget_wstr/\fBcurs_get_wstr\fR(3X)
- wgetbkgrnd/\fBcurs_bkgrnd\fR(3X)
- wgetch/\fBcurs_getch\fR(3X)
- wgetn_wstr/\fBcurs_get_wstr\fR(3X)
- wgetnstr/\fBcurs_getstr\fR(3X)
- wgetstr/\fBcurs_getstr\fR(3X)
- whline/\fBcurs_border\fR(3X)
- whline_set/\fBcurs_border_set\fR(3X)
- win_wch/\fBcurs_in_wch\fR(3X)
- win_wchnstr/\fBcurs_in_wchstr\fR(3X)
- win_wchstr/\fBcurs_in_wchstr\fR(3X)
- winch/\fBcurs_inch\fR(3X)
- winchnstr/\fBcurs_inchstr\fR(3X)
- winchstr/\fBcurs_inchstr\fR(3X)
- winnstr/\fBcurs_instr\fR(3X)
- winnwstr/\fBcurs_inwstr\fR(3X)
- wins_nwstr/\fBcurs_ins_wstr\fR(3X)
- wins_wch/\fBcurs_ins_wch\fR(3X)
- wins_wstr/\fBcurs_ins_wstr\fR(3X)
- winsch/\fBcurs_insch\fR(3X)
- winsdelln/\fBcurs_deleteln\fR(3X)
- winsertln/\fBcurs_deleteln\fR(3X)
- winsnstr/\fBcurs_insstr\fR(3X)
- winsstr/\fBcurs_insstr\fR(3X)
- winstr/\fBcurs_instr\fR(3X)
- winwstr/\fBcurs_inwstr\fR(3X)
- wmouse_trafo/\fBcurs_mouse\fR(3X)*
- wmove/\fBcurs_move\fR(3X)
- wnoutrefresh/\fBcurs_refresh\fR(3X)
- wprintw/\fBcurs_printw\fR(3X)
- wredrawln/\fBcurs_refresh\fR(3X)
- wrefresh/\fBcurs_refresh\fR(3X)
- wresize/\fBwresize\fR(3X)*
- wscanw/\fBcurs_scanw\fR(3X)
- wscrl/\fBcurs_scroll\fR(3X)
- wsetscrreg/\fBcurs_outopts\fR(3X)
- wstandend/\fBcurs_attr\fR(3X)
- wstandout/\fBcurs_attr\fR(3X)
- wsyncdown/\fBcurs_window\fR(3X)
- wsyncup/\fBcurs_window\fR(3X)
- wtimeout/\fBcurs_inopts\fR(3X)
- wtouchln/\fBcurs_touch\fR(3X)
- wunctrl/\fBcurs_util\fR(3X)
- wvline/\fBcurs_border\fR(3X)
- wvline_set/\fBcurs_border_set\fR(3X)
- .TE
- .SH RETURN VALUE
- Routines that return an integer return \fBERR\fR upon failure and an
- integer value other than \fBERR\fR upon successful completion, unless
- otherwise noted in the routine descriptions.
- .PP
- All macros return the value of the \fBw\fR version, except \fBsetscrreg\fR,
- \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and \fBgetmaxyx\fR.
- The return values of \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and
- \fBgetmaxyx\fR are undefined (i.e., these should not be used as the
- right-hand side of assignment statements).
- .PP
- Routines that return pointers return \fBNULL\fR on error.
- .SH ENVIRONMENT
- The following environment symbols are useful for customizing the
- runtime behavior of the \fBncurses\fR library.
- The most important ones have been already discussed in detail.
- .TP 5
- BAUDRATE
- The debugging library checks this environment symbol when the application
- has redirected output to a file.
- The symbol's numeric value is used for the baudrate.
- If no value is found, \fBncurses\fR uses 9600.
- This allows testers to construct repeatable test-cases
- that take into account costs that depend on baudrate.
- .TP 5
- CC
- When set, change occurrences of the command_character
- (i.e., the \fBcmdch\fP capability)
- of the loaded terminfo entries to the value of this symbol.
- Very few terminfo entries provide this feature.
- .TP 5
- COLUMNS
- Specify the width of the screen in characters.
- Applications running in a windowing environment usually are able to
- obtain the width of the window in which they are executing.
- If neither the \fBCOLUMNS\fP value nor the terminal's screen size is available,
- \fBncurses\fR uses the size which may be specified in the terminfo database
- (i.e., the \fBcols\fR capability).
- .IP
- It is important that your application use a correct size for the screen.
- This is not always possible because your application may be
- running on a host which does not honor NAWS (Negotiations About Window
- Size), or because you are temporarily running as another user.
- However, setting \fBCOLUMNS\fP and/or \fBLINES\fP overrides the library's
- use of the screen size obtained from the operating system.
- .IP
- Either \fBCOLUMNS\fP or \fBLINES\fP symbols may be specified independently.
- This is mainly useful to circumvent legacy misfeatures of terminal descriptions,
- e.g., xterm which commonly specifies a 65 line screen.
- For best results, \fBlines\fR and \fBcols\fR should not be specified in
- a terminal description for terminals which are run as emulations.
- .IP
- Use the \fBuse_env\fR function to disable all use of external environment
- (including system calls) to determine the screen size.
- .TP 5
- ESCDELAY
- Specifies the total time, in milliseconds, for which ncurses will
- await a character sequence, e.g., a function key.
- The default value, 1000 milliseconds, is enough for most uses.
- However, it is made a variable to accommodate unusual applications.
- .IP
- The most common instance where you may wish to change this value
- is to work with slow hosts, e.g., running on a network.
- If the host cannot read characters rapidly enough, it will have the same
- effect as if the terminal did not send characters rapidly enough.
- The library will still see a timeout.
- .IP
- Note that xterm mouse events are built up from character sequences
- received from the xterm.
- If your application makes heavy use of multiple-clicking, you may
- wish to lengthen this default value because the timeout applies
- to the composed multi-click event as well as the individual clicks.
- .IP
- In addition to the environment variable,
- this implementation provides a global variable with the same name.
- Portable applications should not rely upon the presence of ESCDELAY
- in either form,
- but setting the environment variable rather than the global variable
- does not create problems when compiling an application.
- .TP 5
- HOME
- Tells \fBncurses\fR where your home directory is.
- That is where it may read and write auxiliary terminal descriptions:
- .IP
- $HOME/.termcap
- .br
- $HOME/.terminfo
- .TP 5
- LINES
- Like COLUMNS, specify the height of the screen in characters.
- See COLUMNS for a detailed description.
- .TP 5
- MOUSE_BUTTONS_123
- This applies only to the OS/2 EMX port.
- It specifies the order of buttons on the mouse.
- OS/2 numbers a 3-button mouse inconsistently from other
- platforms:
- .sp
- 1 = left
- .br
- 2 = right
- .br
- 3 = middle.
- .sp
- This symbol lets you customize the mouse.
- The symbol must be three numeric digits 1-3 in any order, e.g., 123 or 321.
- If it is not specified, \fBncurses\fR uses 132.
- .TP 5
- NCURSES_ASSUMED_COLORS
- Override the compiled-in assumption that the
- terminal's default colors are white-on-black
- (see \fBdefault_colors\fR(3X)).
- You may set the foreground and background color values with this environment
- variable by proving a 2-element list: foreground,background.
- For example, to tell ncurses to not assume anything
- about the colors, set this to "-1,-1".
- To make it green-on-black, set it to "2,0".
- Any positive value from zero to the terminfo \fBmax_colors\fR value is allowed.
- .TP 5
- NCURSES_GPM_TERMS
- This applies only to ncurses configured to use the GPM interface.
- .IP
- If present,
- the environment variable is a list of one or more terminal names
- against which the TERM environment variable is matched.
- Setting it to an empty value disables the GPM interface;
- using the built-in support for xterm, etc.
- .IP
- If the environment variable is absent,
- ncurses will attempt to open GPM if TERM contains "linux".
- .TP 5
- NCURSES_NO_HARD_TABS
- \fBNcurses\fP may use tabs as part of the cursor movement optimization.
- In some cases,
- your terminal driver may not handle these properly.
- Set this environment variable to disable the feature.
- You can also adjust your \fBstty\fP settings to avoid the problem.
- .TP 5
- NCURSES_NO_MAGIC_COOKIES
- Some terminals use a magic-cookie feature which requires special handling
- to make highlighting and other video attributes display properly.
- You can suppress the highlighting entirely for these terminals by
- setting this environment variable.
- .TP 5
- NCURSES_NO_PADDING
- Most of the terminal descriptions in the terminfo database are written
- for real "hardware" terminals.
- Many people use terminal emulators
- which run in a windowing environment and use curses-based applications.
- Terminal emulators can duplicate
- all of the important aspects of a hardware terminal, but they do not
- have the same limitations.
- The chief limitation of a hardware terminal from the standpoint
- of your application is the management of dataflow, i.e., timing.
- Unless a hardware terminal is interfaced into a terminal concentrator
- (which does flow control),
- it (or your application) must manage dataflow, preventing overruns.
- The cheapest solution (no hardware cost)
- is for your program to do this by pausing after
- operations that the terminal does slowly, such as clearing the display.
- .IP
- As a result, many terminal descriptions (including the vt100)
- have delay times embedded.
- You may wish to use these descriptions,
- but not want to pay the performance penalty.
- .IP
- Set the NCURSES_NO_PADDING symbol to disable all but mandatory
- padding.
- Mandatory padding is used as a part of special control
- sequences such as \fIflash\fR.
- .TP 5
- NCURSES_NO_SETBUF
- Normally \fBncurses\fR enables buffered output during terminal initialization.
- This is done (as in SVr4 curses) for performance reasons.
- For testing purposes, both of \fBncurses\fR and certain applications,
- this feature is made optional.
- Setting the NCURSES_NO_SETBUF variable
- disables output buffering, leaving the output in the original (usually
- line buffered) mode.
- .TP 5
- NCURSES_NO_UTF8_ACS
- During initialization, the \fBncurses\fR library
- checks for special cases where VT100 line-drawing (and the corresponding
- alternate character set capabilities) described in the terminfo are known
- to be missing.
- Specifically, when running in a UTF-8 locale,
- the Linux console emulator and the GNU screen program ignore these.
- Ncurses checks the TERM environment variable for these.
- For other special cases, you should set this environment variable.
- Doing this tells ncurses to use Unicode values which correspond to
- the VT100 line-drawing glyphs.
- That works for the special cases cited,
- and is likely to work for terminal emulators.
- .IP
- When setting this variable, you should set it to a nonzero value.
- Setting it to zero (or to a nonnumber)
- disables the special check for Linux and screen.
- .TP 5
- NCURSES_TRACE
- During initialization, the \fBncurses\fR debugging library
- checks the NCURSES_TRACE symbol.
- If it is defined, to a numeric value, \fBncurses\fR calls the \fBtrace\fR
- function, using that value as the argument.
- .IP
- The argument values, which are defined in \fBcurses.h\fR, provide several
- types of information.
- When running with traces enabled, your application will write the
- file \fBtrace\fR to the current directory.
- .TP 5
- TERM
- Denotes your terminal type.
- Each terminal type is distinct, though many are similar.
- .TP 5
- TERMCAP
- If the \fBncurses\fR library has been configured with \fItermcap\fR
- support, \fBncurses\fR will check for a terminal's description in
- termcap form if it is not available in the terminfo database.
- .IP
- The TERMCAP symbol contains either a terminal description (with
- newlines stripped out),
- or a file name telling where the information denoted by the TERM symbol exists.
- In either case, setting it directs \fBncurses\fR to ignore
- the usual place for this information, e.g., /etc/termcap.
- .TP 5
- TERMINFO
- Overrides the directory in which \fBncurses\fR searches for your terminal
- description.
- This is the simplest, but not the only way to change the list of directories.
- The complete list of directories in order follows:
- .RS
- .TP 3
- -
- the last directory to which \fBncurses\fR wrote, if any, is searched first
- .TP 3
- -
- the directory specified by the TERMINFO symbol
- .TP 3
- -
- $HOME/.terminfo
- .TP 3
- -
- directories listed in the TERMINFO_DIRS symbol
- .TP 3
- -
- one or more directories whose names are configured and compiled into the
- ncurses library, e.g.,
- @TERMINFO@
- .RE
- .TP 5
- TERMINFO_DIRS
- Specifies a list of directories to search for terminal descriptions.
- The list is separated by colons (i.e., ":") on Unix, semicolons on OS/2 EMX.
- All of the terminal descriptions are in terminfo form, which makes
- a subdirectory named for the first letter of the terminal names therein.
- .TP 5
- TERMPATH
- If TERMCAP does not hold a file name then \fBncurses\fR checks
- the TERMPATH symbol.
- This is a list of filenames separated by spaces or colons (i.e., ":") on Unix, semicolons on OS/2 EMX.
- If the TERMPATH symbol is not set, \fBncurses\fR looks in the files
- /etc/termcap, /usr/share/misc/termcap and $HOME/.termcap, in that order.
- .PP
- The library may be configured to disregard the following variables when the
- current user is the superuser (root), or if the application uses setuid or
- setgid permissions:
- $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME.
- .SH ALTERNATE CONFIGURATIONS
- Several different configurations are possible,
- depending on the configure script options used when building \fBncurses\fP.
- There are a few main options whose effects are visible to the applications
- developer using \fBncurses\fP:
- .TP 5
- --disable-overwrite
- The standard include for \fBncurses\fP is as noted in \fBSYNOPSIS\fP:
- .RS
- .sp
- \fB#include <curses.h>\fR
- .RE
- .IP
- This option is used to avoid filename conflicts when \fBncurses\fP
- is not the main implementation of curses of the computer.
- If \fBncurses\fP is installed disabling overwrite, it puts its headers in
- a subdirectory, e.g.,
- .RS
- .sp
- \fB#include <ncurses/curses.h>\fR
- .RE
- .IP
- It also omits a symbolic link which would allow you to use \fB-lcurses\fP
- to build executables.
- .TP 5
- --enable-widec
- The configure script renames the library and (if the \fB--disable-overwrite\fP
- option is used) puts the header files in a different subdirectory.
- All of the library names have a "w" appended to them,
- i.e., instead of
- .RS
- .sp
- \fB-lncurses\fR
- .RE
- .IP
- you link with
- .RS
- .sp
- \fB-lncursesw\fR
- .RE
- .IP
- You must also define \fB_XOPEN_SOURCE_EXTENDED\fP when compiling for the
- wide-character library to use the extended (wide-character) functions.
- The \fBcurses.h\fP file which is installed for the wide-character
- library is designed to be compatible with the normal library's header.
- Only the size of the \fBWINDOW\fP structure differs, and very few
- applications require more than a pointer to \fBWINDOW\fPs.
- If the headers are installed allowing overwrite,
- the wide-character library's headers should be installed last,
- to allow applications to be built using either library
- from the same set of headers.
- .TP 5
- --with-shared
- .TP
- --with-normal
- .TP
- --with-debug
- .TP
- --with-profile
- The shared and normal (static) library names differ by their suffixes,
- e.g., \fBlibncurses.so\fP and \fBlibncurses.a\fP.
- The debug and profiling libraries add a "_g" and a "_p" to the root
- names respectively,
- e.g., \fBlibncurses_g.a\fP and \fBlibncurses_p.a\fP.
- .TP 5
- --with-trace
- The \fBtrace\fP function normally resides in the debug library,
- but it is sometimes useful to configure this in the shared library.
- Configure scripts should check for the function's existence rather
- than assuming it is always in the debug library.
- .SH FILES
- .TP 5
- @DATADIR@/tabset
- directory containing initialization files for the terminal capability database
- @TERMINFO@
- terminal capability database
- .SH SEE ALSO
- \fBterminfo\fR(\*n) and related pages whose names begin "curs_" for detailed routine
- descriptions.
- .SH EXTENSIONS
- The \fBncurses\fR library can be compiled with an option (\fB-DUSE_GETCAP\fR)
- that falls back to the old-style /etc/termcap file if the terminal setup code
- cannot find a terminfo entry corresponding to \fBTERM\fR.
- Use of this feature
- is not recommended, as it essentially includes an entire termcap compiler in
- the \fBncurses\fR startup code, at significant cost in core and startup cycles.
- .PP
- The \fBncurses\fR library includes facilities for capturing mouse events on
- certain terminals (including xterm).
- See the \fBcurs_mouse\fR(3X)
- manual page for details.
- .PP
- The \fBncurses\fR library includes facilities for responding to window
- resizing events, e.g., when running in an xterm.
- See the \fBresizeterm\fR(3X)
- and \fBwresize\fR(3X) manual pages for details.
- In addition, the library may be configured with a SIGWINCH handler.
- .PP
- The \fBncurses\fR library extends the fixed set of function key capabilities
- of terminals by allowing the application designer to define additional
- key sequences at runtime.
- See the \fBdefine_key\fR(3X)
- \fBkey_defined\fR(3X),
- and \fBkeyok\fR(3X) manual pages for details.
- .PP
- The \fBncurses\fR library can exploit the capabilities of terminals which
- implement the ISO-6429 SGR 39 and SGR 49 controls, which allow an application
- to reset the terminal to its original foreground and background colors.
- From the users' perspective, the application is able to draw colored
- text on a background whose color is set independently, providing better
- control over color contrasts.
- See the \fBdefault_colors\fR(3X) manual page for details.
- .PP
- The \fBncurses\fR library includes a function for directing application output
- to a printer attached to the terminal device.
- See the \fBcurs_print\fR(3X) manual page for details.
- .SH PORTABILITY
- The \fBncurses\fR library is intended to be BASE-level conformant with XSI
- Curses.
- The EXTENDED XSI Curses functionality
- (including color support) is supported.
- .PP
- A small number of local differences (that is, individual differences between
- the XSI Curses and \fBncurses\fR calls) are described in \fBPORTABILITY\fR
- sections of the library man pages.
- .PP
- This implementation also contains several extensions:
- .RS 5
- .PP
- The routine \fBhas_key\fR is not part of XPG4, nor is it present in SVr4.
- See the \fBcurs_getch\fR(3X) manual page for details.
- .PP
- The routine \fBslk_attr\fR is not part of XPG4, nor is it present in SVr4.
- See the \fBcurs_slk\fR(3X) manual page for details.
- .PP
- The routines \fBgetmouse\fR, \fBmousemask\fR, \fBungetmouse\fR,
- \fBmouseinterval\fR, and \fBwenclose\fR relating to mouse interfacing are not
- part of XPG4, nor are they present in SVr4.
- See the \fBcurs_mouse\fR(3X) manual page for details.
- .PP
- The routine \fBmcprint\fR was not present in any previous curses implementation.
- See the \fBcurs_print\fR(3X) manual page for details.
- .PP
- The routine \fBwresize\fR is not part of XPG4, nor is it present in SVr4.
- See the \fBwresize\fR(3X) manual page for details.
- .PP
- The WINDOW structure's internal details can be hidden from application
- programs.
- See \fBcurs_opaque\fR(3X) for the discussion of \fBis_scrollok\fR, etc.
- .RE
- .PP
- In historic curses versions, delays embedded in the capabilities \fBcr\fR,
- \fBind\fR, \fBcub1\fR, \fBff\fR and \fBtab\fR activated corresponding delay
- bits in the UNIX tty driver.
- In this implementation, all padding is done by sending NUL bytes.
- This method is slightly more expensive, but narrows the interface
- to the UNIX kernel significantly and increases the package's portability
- correspondingly.
- .SH NOTES
- The header file \fB<curses.h>\fR automatically includes the header files
- \fB<stdio.h>\fR and \fB<unctrl.h>\fR.
- .PP
- If standard output from a \fBncurses\fR program is re-directed to something
- which is not a tty, screen updates will be directed to standard error.
- This was an undocumented feature of AT&T System V Release 3 curses.
- .SH AUTHORS
- Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
- Based on pcurses by Pavel Curtis.
- .\"#
- .\"# The following sets edit modes for GNU EMACS
- .\"# Local Variables:
- .\"# mode:nroff
- .\"# fill-column:79
- .\"# End:
|