TERMCAP.3
上传用户:jnzhq888
上传日期:2007-01-18
资源大小:51694k
文件大小:4k
- ." Copyright (c) 1980 Regents of the University of California.
- ." All rights reserved. The Berkeley software License Agreement
- ." specifies the terms and conditions for redistribution.
- ."
- ." @(#)termcap.3x 6.1 (Berkeley) 5/15/85
- ."
- .TH TERMCAP 3 "May 15, 1985"
- .UC 4
- .SH NAME
- termcap, tgetent, tgetnum, tgetflag, tgetstr, tgoto, tputs - terminal independent operation routines
- .SH SYNOPSIS
- .nf
- .ft B
- #include <termcap.h>
- int tgetent(char *fIbpfP, char *fInamefP)
- int tgetflag(char *fIidfP)
- int tgetnum(char *fIidfP)
- char *tgetstr(char *fIidfP, char **fIareafP)
- char *tgoto(char *fIcmfP, int fIdestcolfP, int fIdestlinefP)
- int tputs(char *fIcpfP, int fIaffcntfP, void (*fIoutcfP)(int))
- .ft R
- .fi
- .SH DESCRIPTION
- These functions extract and use capabilities from the terminal capability data
- base
- .BR termcap (5).
- These are low level routines;
- see
- .BR curses (3)
- for a higher level package.
- .PP
- .B Tgetent
- extracts the entry for terminal
- .I name
- into the buffer at
- .IR bp .
- .I Bp
- should be a character buffer of size
- 1024 and must be retained through all subsequent calls
- to
- .BR tgetnum ,
- .BR tgetflag ,
- and
- .BR tgetstr .
- .B Tgetent
- returns -1 if it cannot find a termcap
- file, 0 if the terminal name given does not have an entry,
- and 1 if all goes well.
- .PP
- .B Tgetent
- uses the following recipe to find the termcap file and entry
- .IR name :
- .PP
- .in +5n
- if $TERMCAP is itself a termcap entry for
- .I name
- .br
- then
- .in +5n
- use $TERMCAP
- .in -5n
- elif $TERMCAP names a file
- .br
- then
- .in +5n
- use entry
- .I name
- found in that file
- .in -5n
- elif this is Minix-vmd
- .br
- then
- .in +5n
- if $TERMPATH is defined
- .br
- then
- .in +5n
- search the termcap files named in $TERMPATH for the first occurance of a
- .I name
- entry and use that entry
- .in -5n
- else
- .in +5n
- the path
- .B $HOME/.termcap:/etc/termcap:/usr/etc/termcap"
- is searched for entry
- .I name
- .in -5n
- fi
- .in -5n
- fi
- .in -5n
- .RE
- .PP
- .B Tgetnum
- gets the numeric value of capability
- .IR id ,
- returning -1 if is not given for the terminal.
- .B Tgetflag
- returns 1 if the specified capability is present in
- the terminal's entry, 0 if it is not.
- .B Tgetstr
- returns the string value of the capability
- .IR id ,
- places it in the buffer at
- .IR area ,
- and advances the
- .I area
- pointer.
- It decodes the abbreviations for this field described in
- .BR termcap (5),
- except for cursor addressing and padding information.
- .B Tgetstr
- returns NULL if the capability was not found.
- .PP
- .B Tgoto
- returns a cursor addressing string decoded from
- .I cm
- to go to column
- .I destcol
- in line
- .IR destline .
- It uses the external variables
- .B UP
- (from the fBupfR capability)
- and
- .B BC
- (if fBbcfR is given rather than fBbsfR)
- if necessary to avoid placing fBenfR, fB^DfR or fB^@fR in
- the returned string.
- (Programs which call tgoto should be sure to turn off the XTABS bit(s),
- since
- .B tgoto
- may now output a tab.
- Note that programs using termcap should in general turn off XTABS
- anyway since some terminals use CTRL-I for other functions,
- such as nondestructive space.)
- If a fB%fR sequence is given which is not understood, then
- .B tgoto
- returns *(lqOOPS*(rq.
- .PP
- .B Tputs
- decodes the leading padding information of the string
- .IR cp ;
- .I affcnt
- gives the number of lines affected by the operation, or 1 if this is
- not applicable,
- .I outc
- is a routine which is called with each character in turn.
- The external variable
- .B ospeed
- should contain the output speed of the terminal as encoded by
- .BR stty (3).
- The external variable
- .B PC
- should contain a pad character to be used (from the fBpcfR capability)
- if a null (fB^@fR) is inappropriate.
- .SH SEE ALSO
- .BR curses (3),
- .BR termcap (5).
- .SH AUTHOR
- William Joy
- .SH NOTES
- The Minix implementation does not support any of the external variables,
- only the functions calls. The Minix-vmd termcap does support it all,
- although noone in his right mind meddles with those variables.