xref: /minix3/lib/libterminfo/terminfo.3 (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1*0a6a1f1dSLionel Sambuc.\"	$NetBSD: terminfo.3,v 1.12 2014/03/18 18:20:38 riastradh Exp $
251e66a47SVivek Prakash.\"
30c3ae37fSLionel Sambuc.\" Copyright (c) 2009, 2011 The NetBSD Foundation, Inc.
451e66a47SVivek Prakash.\" All rights reserved.
551e66a47SVivek Prakash.\"
651e66a47SVivek Prakash.\" This code is derived from software contributed to The NetBSD Foundation
751e66a47SVivek Prakash.\" by Roy Marples.
851e66a47SVivek Prakash.\"
951e66a47SVivek Prakash.\" Redistribution and use in source and binary forms, with or without
1051e66a47SVivek Prakash.\" modification, are permitted provided that the following conditions
1151e66a47SVivek Prakash.\" are met:
1251e66a47SVivek Prakash.\" 1. Redistributions of source code must retain the above copyright
1351e66a47SVivek Prakash.\"    notice, this list of conditions and the following disclaimer.
1451e66a47SVivek Prakash.\" 2. Redistributions in binary form must reproduce the above copyright
1551e66a47SVivek Prakash.\"    notice, this list of conditions and the following disclaimer in the
1651e66a47SVivek Prakash.\"    documentation and/or other materials provided with the distribution.
1751e66a47SVivek Prakash.\"
1851e66a47SVivek Prakash.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
1951e66a47SVivek Prakash.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
2051e66a47SVivek Prakash.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
2151e66a47SVivek Prakash.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
2251e66a47SVivek Prakash.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
2351e66a47SVivek Prakash.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
2451e66a47SVivek Prakash.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
2551e66a47SVivek Prakash.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
2651e66a47SVivek Prakash.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
2751e66a47SVivek Prakash.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
2851e66a47SVivek Prakash.\" POSSIBILITY OF SUCH DAMAGE.
2951e66a47SVivek Prakash.\"
3084d9c625SLionel Sambuc.Dd January 25, 2013
3151e66a47SVivek Prakash.Dt TERMINFO 3
3251e66a47SVivek Prakash.Os
3351e66a47SVivek Prakash.Sh NAME
3451e66a47SVivek Prakash.Nm setupterm ,
3551e66a47SVivek Prakash.Nm set_curterm ,
3651e66a47SVivek Prakash.Nm del_curterm ,
370c3ae37fSLionel Sambuc.Nm termname ,
380c3ae37fSLionel Sambuc.Nm longname ,
3951e66a47SVivek Prakash.Nm tigetflag ,
4051e66a47SVivek Prakash.Nm tigetnum ,
4151e66a47SVivek Prakash.Nm tigetstr ,
4251e66a47SVivek Prakash.Nm tparm ,
4351e66a47SVivek Prakash.Nm tputs ,
4451e66a47SVivek Prakash.Nm putp
4551e66a47SVivek Prakash.Nd terminal independent operation routines
4651e66a47SVivek Prakash.Sh LIBRARY
4751e66a47SVivek Prakash.Lb libterminfo
4851e66a47SVivek Prakash.Sh SYNOPSIS
4951e66a47SVivek Prakash.In term.h
5051e66a47SVivek Prakash.Vt char PC ;
5151e66a47SVivek Prakash.Vt short ospeed ;
5251e66a47SVivek Prakash.Vt TERMINAL *cur_term ;
5351e66a47SVivek Prakash.Ft int
5451e66a47SVivek Prakash.Fn setupterm "const char *name" "int fildes" "int *errret"
5551e66a47SVivek Prakash.Ft TERMINAL *
560c3ae37fSLionel Sambuc.Fn set_curterm "TERMINAL *nterm"
5751e66a47SVivek Prakash.Ft int
580c3ae37fSLionel Sambuc.Fn del_curterm "TERMINAL *oterm"
590c3ae37fSLionel Sambuc.Ft char *
600c3ae37fSLionel Sambuc.Fn termname "void"
610c3ae37fSLionel Sambuc.Ft char *
620c3ae37fSLionel Sambuc.Fn longname "void"
6351e66a47SVivek Prakash.Ft int
6451e66a47SVivek Prakash.Fn tigetnum "const char *id"
6551e66a47SVivek Prakash.Ft int
6651e66a47SVivek Prakash.Fn tigetflag "const char *id"
6751e66a47SVivek Prakash.Ft char *
6851e66a47SVivek Prakash.Fn tigetstr "const char *id"
6951e66a47SVivek Prakash.Ft char *
7051e66a47SVivek Prakash.Fn tparm "const char *cm" "long p1" "long p2" "long p3" "long p4" "long p5" "long p6" "long p7" "long p8" "long p9"
7151e66a47SVivek Prakash.Ft int
7251e66a47SVivek Prakash.Fn tputs "const char *cp" "int affcnt" "int (*outc)(int)"
7351e66a47SVivek Prakash.Ft int
7451e66a47SVivek Prakash.Fn putp "const char *cp"
7551e66a47SVivek Prakash.Ft int
7651e66a47SVivek Prakash.Fn ti_setupterm "TERMINAL **" "const char *name" "int fildes" "int *error"
7751e66a47SVivek Prakash.Ft int
7851e66a47SVivek Prakash.Fn ti_getflag "const TERMINAL *" "const char *id"
7951e66a47SVivek Prakash.Ft int
8051e66a47SVivek Prakash.Fn ti_getnum "const TERMINAL *" "const char *id"
8151e66a47SVivek Prakash.Ft const char *
8251e66a47SVivek Prakash.Fn ti_getstr "const TERMINAL *" "const char *id"
8351e66a47SVivek Prakash.Ft char *
840c3ae37fSLionel Sambuc.Fn tiparm "const char *cm" "..."
8551e66a47SVivek Prakash.Ft char *
860c3ae37fSLionel Sambuc.Fn ti_tiparm "TERMINAL *" "const char *cm" "..."
8751e66a47SVivek Prakash.Ft int
8851e66a47SVivek Prakash.Fn ti_puts "const TERMINAL *term" "const char *str" "int affcnt" "int (*outc)(int, void *)"
8951e66a47SVivek Prakash.Ft int
9051e66a47SVivek Prakash.Fn ti_putp "const TERMINAL *term" "const char *str"
9151e66a47SVivek Prakash.Sh DESCRIPTION
9251e66a47SVivek PrakashThese functions extract and use capabilities from a terminal capability
9351e66a47SVivek Prakashdatabase, usually
9451e66a47SVivek Prakash.Pa /usr/share/misc/terminfo ,
9551e66a47SVivek Prakashthe format of which is described in
9651e66a47SVivek Prakash.Xr terminfo 5 .
9751e66a47SVivek PrakashThese are low level routines;
9851e66a47SVivek Prakashsee
9951e66a47SVivek Prakash.Xr curses 3
10051e66a47SVivek Prakashfor a higher level package.
10151e66a47SVivek Prakash.Pp
10251e66a47SVivek PrakashThe
10351e66a47SVivek Prakash.Fn setupterm
10451e66a47SVivek Prakashfunction extracts the entry for terminal
10551e66a47SVivek Prakash.Fa name
10651e66a47SVivek Prakashand then calls
10751e66a47SVivek Prakash.Fn set_curterm
10851e66a47SVivek Prakashto set
10951e66a47SVivek Prakash.Va cur_term
11051e66a47SVivek Prakashto it.
11151e66a47SVivek PrakashIf
11251e66a47SVivek Prakash.Fa name
11351e66a47SVivek Prakashis
11451e66a47SVivek Prakash.Dv NULL
11551e66a47SVivek Prakashthen it is replaced by the environment variable
11651e66a47SVivek Prakash.Ev TERM .
11751e66a47SVivek PrakashThe
11851e66a47SVivek Prakash.Fn setupterm
11951e66a47SVivek Prakashfunction returns 0 on success and \-1 on error.
12051e66a47SVivek Prakash.Va errret
12151e66a47SVivek Prakashis set to \-1 if the
12251e66a47SVivek Prakash.Nm terminfo
12351e66a47SVivek Prakashdatabase could not be opened,
12451e66a47SVivek Prakash0 if the terminal could not be found in the database, and
12551e66a47SVivek Prakash1 if all went well.
12651e66a47SVivek Prakash.Pp
12751e66a47SVivek PrakashThe
12851e66a47SVivek Prakash.Fn set_curterm
12951e66a47SVivek Prakashfunction sets the variable
13051e66a47SVivek Prakash.Va cur_term
13151e66a47SVivek Prakashto
13251e66a47SVivek Prakash.Va nterm
13351e66a47SVivek Prakashand makes all of the
13451e66a47SVivek Prakash.Nm terminfo
13551e66a47SVivek Prakashboolean, numeric and string variables use the values from
13651e66a47SVivek Prakash.Va nterm .
13751e66a47SVivek PrakashThe global variables
13851e66a47SVivek Prakash.Va PC
13951e66a47SVivek Prakashand
14051e66a47SVivek Prakash.Va ospeed
14151e66a47SVivek Prakashare then set.
14251e66a47SVivek PrakashThe old value of
14351e66a47SVivek Prakash.Va cur_term
14451e66a47SVivek Prakashis returned.
14551e66a47SVivek PrakashThe
14651e66a47SVivek Prakash.Fn del_curterm
14751e66a47SVivek Prakashfunction frees space pointed to by
14851e66a47SVivek Prakash.Va oterm .
14951e66a47SVivek Prakash.Pp
15051e66a47SVivek PrakashThe
1510c3ae37fSLionel Sambuc.Fn termname
1520c3ae37fSLionel Sambucfunction returns the name of
1530c3ae37fSLionel Sambuc.Va cur_term .
1540c3ae37fSLionel SambucThe
1550c3ae37fSLionel Sambuc.Fn longname
1560c3ae37fSLionel Sambucfunction returns the description of
1570c3ae37fSLionel Sambuc.Va cur_term .
1580c3ae37fSLionel Sambuc.Pp
1590c3ae37fSLionel SambucThe
16051e66a47SVivek Prakash.Fn tigetflag
16151e66a47SVivek Prakashfunction gets the boolean value of capability
16251e66a47SVivek Prakash.Va id ,
16351e66a47SVivek Prakashreturning \-1 if it is not a valid capability.
16451e66a47SVivek PrakashThe
16551e66a47SVivek Prakash.Fn tigetnum
16651e66a47SVivek Prakashfunction gets the numeric value of the capability
16751e66a47SVivek Prakash.Va id ,
16851e66a47SVivek Prakashreturning \-2 if it is not a valid capability.
16951e66a47SVivek PrakashThe
17051e66a47SVivek Prakash.Fn tigetstr
17151e66a47SVivek Prakashfunction returns the string value of the capability
17251e66a47SVivek Prakash.Va id ,
17351e66a47SVivek Prakashreturning (char *)-1 if it is not a valid capability.
17451e66a47SVivek Prakash.Pp
17551e66a47SVivek PrakashThe
17651e66a47SVivek Prakash.Fn tparm
17751e66a47SVivek Prakashfunction returns a string decoded from
17851e66a47SVivek Prakash.Va cm
17951e66a47SVivek Prakashwith the parameters
18051e66a47SVivek Prakash.Va p1
18151e66a47SVivek Prakash\&...
18251e66a47SVivek Prakash.Va p9
18351e66a47SVivek Prakashapplied.
18451e66a47SVivek PrakashSome capabilities require string parameters and only platforms that can fit
18551e66a47SVivek Prakasha
18651e66a47SVivek Prakash.Vt char *
18751e66a47SVivek Prakashpointer inside a
18851e66a47SVivek Prakash.Vt long
18951e66a47SVivek Prakashcan use them.
19084d9c625SLionel SambucFor platforms which don't support this,
19184d9c625SLionel Sambuc.Dv NULL
19284d9c625SLionel Sambucis returned and
19384d9c625SLionel Sambuc.Va errno
19484d9c625SLionel Sambucis set to
19584d9c625SLionel Sambuc.Er ENOTSUPP .
19651e66a47SVivek PrakashThe string encoding and parameter application is described in
19751e66a47SVivek Prakash.Xr terminfo 5 .
19851e66a47SVivek Prakash.Pp
19951e66a47SVivek PrakashThe
20051e66a47SVivek Prakash.Fn tputs
20151e66a47SVivek Prakashfunction applies padding information to the string
20251e66a47SVivek Prakash.Va cp ;
20351e66a47SVivek Prakash.Va affcnt
20451e66a47SVivek Prakashgives the number of lines affected by the operation,
20551e66a47SVivek Prakashor 1 if this is not applicable;
20651e66a47SVivek Prakash.Va outc
20751e66a47SVivek Prakashis a function which is called by each character in turn.
20851e66a47SVivek PrakashThe external variable
20951e66a47SVivek Prakash.Va ospeed
21051e66a47SVivek Prakashcontrols how many padding characters are sent in relation to the terminal
21151e66a47SVivek Prakashspeed.
21251e66a47SVivek PrakashThe
21351e66a47SVivek Prakash.Fn putp
21451e66a47SVivek Prakashfunction calls tputs(str, 1, putchar).
21551e66a47SVivek PrakashThe output from
21651e66a47SVivek Prakash.Fn putp
21751e66a47SVivek Prakashalways goes to stdout.
21851e66a47SVivek Prakash.Ss NetBSD Extensions To Terminfo
21951e66a47SVivek PrakashThe
2200c3ae37fSLionel Sambuc.Fn tiparm
22151e66a47SVivek Prakashfunction allows variadic parameters instead of 9 fixed longs.
22284d9c625SLionel SambucNumeric parameters must be passed as
22384d9c625SLionel Sambuc.Vt int .
22484d9c625SLionel SambucString parameters must be passed as
22551e66a47SVivek Prakash.Vt char *
22684d9c625SLionel Sambucand works on all platforms, unlike
22784d9c625SLionel Sambuc.Fn tparm .
22851e66a47SVivek Prakash.Pp
22951e66a47SVivek PrakashThe
23051e66a47SVivek Prakash.Fn ti_*
23151e66a47SVivek Prakashfunctions correspond to the standard
23251e66a47SVivek Prakash.Fn t*
23351e66a47SVivek Prakashfunctions but take an additional
23451e66a47SVivek Prakash.Ft TERMINAL *
23551e66a47SVivek Prakashparameter so that the terminal can be specified instead of assuming
23651e66a47SVivek Prakash.Va cur_term .
23751e66a47SVivek PrakashThese functions use private variables to the
23851e66a47SVivek Prakash.Ft TERMINAL
23951e66a47SVivek Prakashinstead of the global variables, such as
24051e66a47SVivek Prakash.Va PC
24151e66a47SVivek Prakashand
24251e66a47SVivek Prakash.Va ospeed .
24351e66a47SVivek Prakash.Sh SEE ALSO
24451e66a47SVivek Prakash.Xr ex 1 ,
24551e66a47SVivek Prakash.Xr curses 3 ,
24651e66a47SVivek Prakash.Xr terminfo 5
24751e66a47SVivek Prakash.Sh AUTHORS
24884d9c625SLionel Sambuc.An Roy Marples Aq Mt roy@NetBSD.org
249