Store our generated files in CVS and remove nbperf from the toolchain.

This allows us to build consistent libs without an ever changing hash.
This commit is contained in:
roy 2010-02-03 20:56:54 +00:00
parent 7f9ad6b70b
commit 3dc9dc4362
9 changed files with 1579 additions and 34 deletions

View File

@ -1,30 +1,18 @@
# $NetBSD: Makefile,v 1.2 2010/02/03 16:13:14 roy Exp $
# $NetBSD: Makefile,v 1.3 2010/02/03 20:56:54 roy Exp $
USE_SHLIBDIR= yes
LIB= terminfo
WARNS= 4
CPPFLAGS+= -I${.CURDIR}
SRCS= term.c ti.c setupterm.c curterm.c tparm.c tputs.c
SRCS+= hash.c
INCS= term.h
INCSDIR= /usr/include
LIBTIDIR?= ${.CURDIR}
CPPFLAGS+= -I${LIBTIDIR}
# Generate our string and hash tables
hash.c: genhash term.h
@echo "Generating terminfo hash"
cd ${LIBTIDIR} && ${HOST_SH} ./genhash >${.OBJDIR}/$@
# Update our man page with terminfo long names, short names and termcaps
terminfo.5: genman terminfo.5.in term.h termcap.c
@echo "Generating terminfo man pages"
cd ${LIBTIDIR} && ${HOST_SH} ./genman >${.OBJDIR}/$@
MAN= terminfo.3 terminfo.5
CLEANFILES+= terminfo.5 hash.c
MLINKS= terminfo.3 setupterm.3 \
terminfo.3 set_curterm.3 terminfo.3 del_curterm.3 \
terminfo.3 tigetnum.3 terminfo.3 tigetflag.3 \
@ -38,19 +26,23 @@ MLINKS= terminfo.3 setupterm.3 \
# Build in termcap emulation
SRCS+= termcap.c
INCS+= termcap.h
CPPFLAGS+= -I${.OBJDIR}
MAN+= termcap.3
CLEANFILES+= _termcap.c termcap_hash.c
MLINKS+= termcap.3 tgetent.3 termcap.3 tgetflag.3 termcap.3 tgetnum.3 \
termcap.3 tgetstr.3 termcap.3 tgoto.3
# Generate our string and hash tables
termcap_hash.c: genthash termcap_map.c
hash:
@echo "Generating terminfo hash"
cd ${.CURDIR} && ${HOST_SH} ./genhash >hash.c
@echo "Generating termcap hash"
cd ${LIBTIDIR} && ${HOST_SH} ./genthash >${.OBJDIR}/$@
cd ${.CURDIR} && ${HOST_SH} ./genthash >termcap_hash.c
# Depend on our hash table
termcap.c: termcap_hash.c
# Generate our man pages
man:
@echo "Generating terminfo man pages"
cd ${.CURDIR} && ${HOST_SH} ./genman >terminfo.5
gen: hash man
.include <bsd.own.mk>
.include <bsd.shlib.mk>

View File

@ -1,5 +1,5 @@
#!/bin/sh
# $NetBSD: genhash,v 1.2 2010/02/03 18:49:23 snj Exp $
# $NetBSD: genhash,v 1.3 2010/02/03 20:56:54 roy Exp $
# Copyright (c) 2009 The NetBSD Foundation, Inc.
#
@ -88,7 +88,7 @@ cat <<EOF
* Automatically generated from term.h */
#include <sys/cdefs.h>
__RCSID("\$NetBSD: genhash,v 1.2 2010/02/03 18:49:23 snj Exp $");
__RCSID("\$NetBSD: genhash,v 1.3 2010/02/03 20:56:54 roy Exp $");
#include <sys/types.h>

View File

@ -1,5 +1,5 @@
#!/bin/sh
# $NetBSD: genman,v 1.1 2010/02/03 15:16:32 roy Exp $
# $NetBSD: genman,v 1.2 2010/02/03 20:56:54 roy Exp $
# Copyright (c) 2009 The NetBSD Foundation, Inc.
#
@ -54,6 +54,10 @@ boolcaps=`gentab $TERMH $TERMC flags`
numcaps=`gentab $TERMH $TERMC nums`
strcaps=`gentab $TERMH $TERMC strs`
echo ".\\\"DO NOT EDIT"
echo ".\\\"Automatically generated from termcap.5.in"
echo ".\\\""
while read -r line; do
case "$line" in
"@BOOLCAPS@") echo "$boolcaps";;

View File

@ -1,5 +1,5 @@
#!/bin/sh
# $NetBSD: genthash,v 1.1 2010/02/03 15:16:32 roy Exp $
# $NetBSD: genthash,v 1.2 2010/02/03 20:56:54 roy Exp $
# Copyright (c) 2009 The NetBSD Foundation, Inc.
#
@ -40,7 +40,7 @@ cat <<EOF
* Automatically generated from termcap.c */
#include <sys/cdefs.h>
__RCSID("\$NetBSD: genthash,v 1.1 2010/02/03 15:16:32 roy Exp $");
__RCSID("\$NetBSD: genthash,v 1.2 2010/02/03 20:56:54 roy Exp $");
#include <sys/types.h>

702
lib/libterminfo/hash.c Normal file
View File

@ -0,0 +1,702 @@
/* $NetBSD: hash.c,v 1.1 2010/02/03 20:56:54 roy Exp $ */
/* DO NOT EDIT
* Automatically generated from term.h */
#include <sys/cdefs.h>
__RCSID("$NetBSD: hash.c,v 1.1 2010/02/03 20:56:54 roy Exp $");
#include <sys/types.h>
#include <stdlib.h>
#include <string.h>
#include <term_private.h>
#include <term.h>
static const char _ti_flagids[][6] = {
"bw",
"am",
"bce",
"ccc",
"xhp",
"xhpa",
"cpix",
"crxm",
"xt",
"xenl",
"eo",
"gn",
"hc",
"chts",
"km",
"daisy",
"hs",
"hls",
"in",
"lpix",
"da",
"db",
"mir",
"msgr",
"nxon",
"xsb",
"npc",
"ndscr",
"nrrmc",
"os",
"mc5i",
"xvpa",
"sam",
"eslok",
"hz",
"ul",
"xon",
};
#include <stdlib.h>
static uint32_t
_ti_flaghash(const void * __restrict key, size_t keylen)
{
static const uint8_t g[75] = {
0x00, 0x0e, 0x07, 0x06, 0x00, 0x00, 0x0b, 0x00, 0x0a, 0x04,
0x13, 0x00, 0x13, 0x1a, 0x23, 0x00, 0x00, 0x00, 0x11, 0x00,
0x14, 0x00, 0x00, 0x07, 0x00, 0x19, 0x00, 0x00, 0x24, 0x00,
0x00, 0x0e, 0x0d, 0x00, 0x00, 0x00, 0x1a, 0x05, 0x06, 0x00,
0x03, 0x00, 0x18, 0x00, 0x00, 0x19, 0x00, 0x02, 0x00, 0x03,
0x00, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x00,
0x09, 0x14, 0x15, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x0f,
0x00, 0x0a, 0x1f, 0x00, 0x1b,
};
uint32_t h[3];
mi_vector_hash(key, keylen, 0xb8bae7e1U, h);
return (g[h[0] % 75] + g[h[1] % 75]) % 37;
}
const char *
_ti_flagid(ssize_t idx)
{
if ((size_t)idx > __arraycount(_ti_flagids))
return NULL;
return _ti_flagids[idx];
}
ssize_t
_ti_flagindex(const char *key)
{
uint32_t idx;
idx = _ti_flaghash((const unsigned char *)key, strlen(key));
if (idx > __arraycount(_ti_flagids) ||
strcmp(key, _ti_flagids[idx]) != 0)
return -1;
return idx;
}
static const char _ti_numids[][7] = {
"bitwin",
"bitype",
"bufsz",
"btns",
"cols",
"spinh",
"spinv",
"it",
"lh",
"lw",
"lines",
"lm",
"ma",
"xmc",
"colors",
"maddr",
"mjump",
"pairs",
"wnum",
"mcs",
"mls",
"ncv",
"nlab",
"npins",
"orc",
"orl",
"orhi",
"orvi",
"pb",
"cps",
"vt",
"widcs",
"wsl",
};
#include <stdlib.h>
static uint32_t
_ti_numhash(const void * __restrict key, size_t keylen)
{
static const uint8_t g[67] = {
0x00, 0x20, 0x00, 0x00, 0x00, 0x05, 0x00, 0x15, 0x08, 0x00,
0x1b, 0x1e, 0x0f, 0x00, 0x06, 0x12, 0x1e, 0x00, 0x00, 0x07,
0x00, 0x00, 0x10, 0x00, 0x00, 0x09, 0x14, 0x1f, 0x1a, 0x00,
0x00, 0x00, 0x08, 0x00, 0x1e, 0x00, 0x0d, 0x20, 0x00, 0x0a,
0x0a, 0x05, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x10, 0x06,
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x15,
0x14, 0x00, 0x00, 0x00, 0x0b, 0x13, 0x00,
};
uint32_t h[3];
mi_vector_hash(key, keylen, 0x9ff9c465U, h);
return (g[h[0] % 67] + g[h[1] % 67]) % 33;
}
const char *
_ti_numid(ssize_t idx)
{
if ((size_t)idx > __arraycount(_ti_numids))
return NULL;
return _ti_numids[idx];
}
ssize_t
_ti_numindex(const char *key)
{
uint32_t idx;
idx = _ti_numhash((const unsigned char *)key, strlen(key));
if (idx > __arraycount(_ti_numids) ||
strcmp(key, _ti_numids[idx]) != 0)
return -1;
return idx;
}
static const char _ti_strids[][9] = {
"acsc",
"scesa",
"cbt",
"bel",
"bicr",
"binel",
"birep",
"cr",
"cpi",
"lpi",
"chr",
"cvr",
"csr",
"rmp",
"csnm",
"tbc",
"mgc",
"clear",
"el1",
"el",
"ed",
"csin",
"colornm",
"hpa",
"cmdch",
"cwin",
"cup",
"cud1",
"home",
"civis",
"cub1",
"mrcup",
"cnorm",
"cuf1",
"ll",
"cuu1",
"cvvis",
"defbi",
"defc",
"dch1",
"dl1",
"devt",
"dial",
"dsl",
"dclk",
"dispc",
"hd",
"enacs",
"endbi",
"smacs",
"smam",
"blink",
"bold",
"smcup",
"smdc",
"dim",
"swidm",
"sdrfq",
"ehhlm",
"smir",
"sitm",
"elhlm",
"slm",
"elohlm",
"smicm",
"snlq",
"snrmq",
"smpch",
"prot",
"rev",
"erhlm",
"smsc",
"invis",
"sshm",
"smso",
"ssubm",
"ssupm",
"ethlm",
"smul",
"sum",
"evhlm",
"smxon",
"ech",
"rmacs",
"rmam",
"sgr0",
"rmcup",
"rmdc",
"rwidm",
"rmir",
"ritm",
"rlm",
"rmicm",
"rmpch",
"rmsc",
"rshm",
"rmso",
"rsubm",
"rsupm",
"rmul",
"rum",
"rmxon",
"pause",
"hook",
"flash",
"ff",
"fsl",
"getm",
"wingo",
"hup",
"is1",
"is2",
"is3",
"if",
"iprog",
"initc",
"initp",
"ich1",
"il1",
"ip",
"ka1",
"ka3",
"kb2",
"kbs",
"kbeg",
"kcbt",
"kc1",
"kc3",
"kcan",
"ktbc",
"kclr",
"kclo",
"kcmd",
"kcpy",
"kcrt",
"kctab",
"kdch1",
"kdl1",
"kcud1",
"krmir",
"kend",
"kent",
"kel",
"ked",
"kext",
"kf0",
"kf1",
"kf2",
"kf3",
"kf4",
"kf5",
"kf6",
"kf7",
"kf8",
"kf9",
"kf10",
"kf11",
"kf12",
"kf13",
"kf14",
"kf15",
"kf16",
"kf17",
"kf18",
"kf19",
"kf20",
"kf21",
"kf22",
"kf23",
"kf24",
"kf25",
"kf26",
"kf27",
"kf28",
"kf29",
"kf30",
"kf31",
"kf32",
"kf33",
"kf34",
"kf35",
"kf36",
"kf37",
"kf38",
"kf39",
"kf40",
"kf41",
"kf42",
"kf43",
"kf44",
"kf45",
"kf46",
"kf47",
"kf48",
"kf49",
"kf50",
"kf51",
"kf52",
"kf53",
"kf54",
"kf55",
"kf56",
"kf57",
"kf58",
"kf59",
"kf60",
"kf61",
"kf62",
"kf63",
"kfnd",
"khlp",
"khome",
"kich1",
"kil1",
"kcub1",
"kll",
"kmrk",
"kmsg",
"kmous",
"kmov",
"knxt",
"knp",
"kopn",
"kopt",
"kpp",
"kprv",
"kprt",
"krdo",
"kref",
"krfr",
"krpl",
"krst",
"kres",
"kcuf1",
"ksav",
"kBEG",
"kCAN",
"kCMD",
"kCPY",
"kCRT",
"kDC",
"kDL",
"kslt",
"kEND",
"kEOL",
"kEXT",
"kind",
"kFND",
"kHLP",
"kHOM",
"kIC",
"kLFT",
"kMSG",
"kMOV",
"kNXT",
"kOPT",
"kPRV",
"kPRT",
"kri",
"kRDO",
"kRPL",
"kRIT",
"kRES",
"kSAV",
"kSPD",
"khts",
"kUND",
"kspd",
"kund",
"kcuu1",
"rmkx",
"smkx",
"lf0",
"lf1",
"lf2",
"lf3",
"lf4",
"lf5",
"lf6",
"lf7",
"lf8",
"lf9",
"lf10",
"fln",
"rmln",
"smln",
"rmm",
"smm",
"mhpa",
"mcud1",
"mcub1",
"mcuf1",
"mvpa",
"mcuu1",
"minfo",
"nel",
"porder",
"oc",
"op",
"pad",
"dch",
"dl",
"cud",
"mcud",
"ich",
"indn",
"il",
"cub",
"mcub",
"cuf",
"mcuf",
"rin",
"cuu",
"mcuu",
"pctrm",
"pfkey",
"pfloc",
"pfxl",
"pfx",
"pln",
"mc0",
"mc5p",
"mc4",
"mc5",
"pulse",
"qdial",
"rmclk",
"rep",
"rfi",
"reqmp",
"rs1",
"rs2",
"rs3",
"rf",
"rc",
"vpa",
"sc",
"scesc",
"ind",
"ri",
"scs",
"s0ds",
"s1ds",
"s2ds",
"s3ds",
"sgr1",
"setab",
"setaf",
"sgr",
"setb",
"smgb",
"smgbp",
"sclk",
"setcolor",
"scp",
"setf",
"smgl",
"smglp",
"smglr",
"slines",
"slength",
"smgr",
"smgrp",
"hts",
"smgtb",
"smgt",
"smgtp",
"wind",
"sbim",
"scsd",
"rbim",
"rcsd",
"subcs",
"supcs",
"ht",
"docr",
"tsl",
"tone",
"u0",
"u1",
"u2",
"u3",
"u4",
"u5",
"u6",
"u7",
"u8",
"u9",
"uc",
"hu",
"wait",
"xoffc",
"xonc",
"zerom",
};
#include <stdlib.h>
static uint32_t
_ti_strhash(const void * __restrict key, size_t keylen)
{
static const uint16_t g[789] = {
0x0000, 0x0152, 0x0000, 0x0000, 0x0000, 0x00f2, 0x009b, 0x0032,
0x0134, 0x0000, 0x0136, 0x0000, 0x016e, 0x0000, 0x00db, 0x0062,
0x0000, 0x00fa, 0x0000, 0x00af, 0x00bf, 0x0166, 0x00a2, 0x0047,
0x0000, 0x00a7, 0x0009, 0x00f1, 0x0000, 0x0110, 0x0000, 0x0175,
0x0084, 0x009d, 0x009a, 0x00ce, 0x005a, 0x0000, 0x0141, 0x0000,
0x00b6, 0x0179, 0x0000, 0x0000, 0x0000, 0x0127, 0x0170, 0x00b1,
0x011c, 0x00ea, 0x0000, 0x0000, 0x0000, 0x0042, 0x0135, 0x0116,
0x0000, 0x000b, 0x0000, 0x0000, 0x0102, 0x0060, 0x00cc, 0x00b2,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x009e, 0x012a, 0x0000,
0x0000, 0x00f9, 0x0148, 0x0088, 0x00e0, 0x0114, 0x0178, 0x0129,
0x0038, 0x0000, 0x0013, 0x0000, 0x0142, 0x001d, 0x0000, 0x0142,
0x0000, 0x0000, 0x017d, 0x0000, 0x0182, 0x0000, 0x0109, 0x0000,
0x0037, 0x0133, 0x0000, 0x003d, 0x00b8, 0x0000, 0x0148, 0x002e,
0x0108, 0x0020, 0x0000, 0x0075, 0x0010, 0x00c0, 0x0080, 0x0000,
0x0101, 0x0000, 0x0000, 0x0019, 0x0150, 0x0071, 0x010c, 0x00c3,
0x0050, 0x0000, 0x0000, 0x0000, 0x0000, 0x005e, 0x0000, 0x012d,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x012e, 0x0000, 0x014c,
0x0000, 0x0000, 0x00ce, 0x0019, 0x00d3, 0x0000, 0x0000, 0x0000,
0x00b3, 0x0000, 0x00ba, 0x0136, 0x00dc, 0x0000, 0x0051, 0x0000,
0x016e, 0x006a, 0x0000, 0x0000, 0x0162, 0x008f, 0x0074, 0x0000,
0x0063, 0x0043, 0x00ef, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0133, 0x005d, 0x0000, 0x0086, 0x008b, 0x0000, 0x0000,
0x0000, 0x003f, 0x0001, 0x0000, 0x0139, 0x0171, 0x0042, 0x002d,
0x016f, 0x0000, 0x001f, 0x012f, 0x0000, 0x008c, 0x0000, 0x0000,
0x009f, 0x00da, 0x0012, 0x0000, 0x0171, 0x0000, 0x0000, 0x0097,
0x0000, 0x0149, 0x0000, 0x0000, 0x00a1, 0x0000, 0x0000, 0x0000,
0x00a0, 0x00ba, 0x00f7, 0x008b, 0x0153, 0x0000, 0x00ff, 0x0034,
0x0000, 0x0000, 0x0000, 0x0115, 0x0000, 0x0000, 0x00a7, 0x0000,
0x0000, 0x00c0, 0x00ef, 0x0058, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0086, 0x007c, 0x0019, 0x0000, 0x0000, 0x0189, 0x0000,
0x0000, 0x017e, 0x0000, 0x0000, 0x0000, 0x005c, 0x0000, 0x0130,
0x00cb, 0x0000, 0x0133, 0x0000, 0x0000, 0x0000, 0x00d4, 0x0151,
0x0058, 0x0060, 0x0000, 0x0000, 0x0100, 0x0000, 0x0000, 0x0184,
0x0000, 0x00f1, 0x0030, 0x0139, 0x0000, 0x0001, 0x0000, 0x0176,
0x0000, 0x0054, 0x0000, 0x0000, 0x0000, 0x00e6, 0x0000, 0x002d,
0x0000, 0x0000, 0x0000, 0x00b3, 0x0168, 0x0070, 0x0000, 0x0000,
0x00f8, 0x0021, 0x0153, 0x0163, 0x0000, 0x0146, 0x011c, 0x0000,
0x0000, 0x0138, 0x0000, 0x0000, 0x0000, 0x00b2, 0x0000, 0x0000,
0x00d7, 0x0159, 0x000e, 0x0000, 0x0095, 0x0000, 0x0000, 0x004d,
0x0000, 0x00b5, 0x0045, 0x0000, 0x005f, 0x0000, 0x0000, 0x0000,
0x00ae, 0x00b2, 0x00bf, 0x0021, 0x0163, 0x0000, 0x0135, 0x0121,
0x0011, 0x0177, 0x0000, 0x0088, 0x00ff, 0x012d, 0x0056, 0x0000,
0x0000, 0x0000, 0x012b, 0x00af, 0x0000, 0x00ea, 0x0000, 0x0000,
0x004d, 0x0000, 0x0119, 0x00af, 0x0101, 0x015e, 0x0000, 0x0000,
0x0160, 0x0028, 0x0000, 0x0000, 0x0005, 0x0000, 0x00fb, 0x007f,
0x0124, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006d, 0x0000,
0x006b, 0x0100, 0x0000, 0x0094, 0x0041, 0x0162, 0x0000, 0x00d2,
0x00e4, 0x0000, 0x0000, 0x00f8, 0x010b, 0x0000, 0x016c, 0x0000,
0x007a, 0x0000, 0x003a, 0x0000, 0x0000, 0x0117, 0x0109, 0x00b0,
0x00eb, 0x005d, 0x0000, 0x00d7, 0x0000, 0x0000, 0x00d1, 0x0039,
0x0155, 0x0028, 0x0000, 0x008c, 0x0000, 0x0000, 0x0000, 0x0108,
0x0000, 0x0000, 0x005c, 0x0000, 0x011c, 0x0000, 0x016d, 0x0000,
0x0000, 0x0000, 0x0163, 0x0000, 0x0118, 0x000a, 0x0106, 0x00b9,
0x0053, 0x0000, 0x0000, 0x0149, 0x0000, 0x0000, 0x0000, 0x0020,
0x000a, 0x0000, 0x00a2, 0x0000, 0x0000, 0x011f, 0x0000, 0x00b5,
0x0000, 0x0000, 0x0186, 0x0000, 0x0000, 0x0000, 0x00aa, 0x0168,
0x0000, 0x0175, 0x0000, 0x0000, 0x0116, 0x0000, 0x0000, 0x0000,
0x0037, 0x00c5, 0x012c, 0x0000, 0x002f, 0x0000, 0x0000, 0x0000,
0x003e, 0x0000, 0x0078, 0x010f, 0x00a6, 0x0000, 0x0000, 0x0146,
0x0063, 0x00c7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0010, 0x0000, 0x00ae, 0x004c, 0x0000, 0x0000, 0x0000, 0x0000,
0x0187, 0x0000, 0x013d, 0x0000, 0x013d, 0x0000, 0x0000, 0x014f,
0x0151, 0x0000, 0x00a6, 0x0000, 0x0000, 0x0078, 0x001c, 0x00c8,
0x0000, 0x0000, 0x0000, 0x003c, 0x0000, 0x0000, 0x0000, 0x0000,
0x00a3, 0x0000, 0x013f, 0x00b0, 0x0024, 0x002c, 0x0000, 0x0001,
0x014b, 0x0000, 0x002d, 0x0000, 0x0000, 0x00ef, 0x0000, 0x0000,
0x0000, 0x011e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0138,
0x0000, 0x0000, 0x010e, 0x0175, 0x0140, 0x0000, 0x0000, 0x000a,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0105, 0x0000,
0x0073, 0x0000, 0x004d, 0x0161, 0x017c, 0x0027, 0x0000, 0x0000,
0x0177, 0x0000, 0x013b, 0x0000, 0x00b6, 0x0000, 0x0074, 0x00ec,
0x0000, 0x0000, 0x0000, 0x0000, 0x0189, 0x0054, 0x0012, 0x00bd,
0x0000, 0x006a, 0x0138, 0x0000, 0x0000, 0x0000, 0x006f, 0x0185,
0x016e, 0x0000, 0x0000, 0x0183, 0x001e, 0x0187, 0x0000, 0x00d4,
0x008a, 0x0000, 0x0000, 0x0053, 0x00fa, 0x0000, 0x013b, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x003d, 0x014f, 0x0159, 0x006f,
0x0000, 0x002b, 0x0000, 0x0000, 0x0000, 0x0116, 0x0000, 0x007b,
0x0012, 0x012a, 0x0000, 0x0008, 0x0000, 0x00e5, 0x0183, 0x0157,
0x0000, 0x0000, 0x0000, 0x00ee, 0x0000, 0x0098, 0x0000, 0x0000,
0x00ce, 0x0000, 0x0120, 0x002f, 0x0000, 0x016d, 0x010e, 0x005c,
0x00dd, 0x0000, 0x00a7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0006,
0x011a, 0x0000, 0x0000, 0x0000, 0x0000, 0x00d3, 0x00fb, 0x0069,
0x0150, 0x0000, 0x0000, 0x0000, 0x0000, 0x00b3, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x007a, 0x0000, 0x011d, 0x0000, 0x0112,
0x0000, 0x012d, 0x0000, 0x0000, 0x0000, 0x00fd, 0x00f3, 0x0000,
0x00e5, 0x0000, 0x0000, 0x0000, 0x0000, 0x015e, 0x005b, 0x0000,
0x0000, 0x009c, 0x0122, 0x0015, 0x0053, 0x0000, 0x0000, 0x0000,
0x0000, 0x0099, 0x0000, 0x0045, 0x0000, 0x0171, 0x0000, 0x0000,
0x0001, 0x0000, 0x0000, 0x00bf, 0x0090, 0x0078, 0x00f0, 0x0000,
0x0000, 0x0000, 0x0000, 0x0126, 0x0060, 0x0094, 0x0000, 0x0000,
0x0000, 0x004c, 0x0049, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x017e, 0x010e, 0x0000, 0x0023, 0x00ba, 0x0068, 0x0000, 0x0000,
0x0128, 0x0014, 0x0000, 0x0000, 0x0102, 0x0000, 0x0000, 0x00a7,
0x0118, 0x00f0, 0x0000, 0x0060, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0114, 0x0000, 0x0000, 0x0089, 0x0000, 0x0000,
0x0057, 0x00a5, 0x0118, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0149, 0x0000, 0x015a, 0x0086, 0x0000, 0x00f2, 0x0000, 0x00bb,
0x0000, 0x0037, 0x0050, 0x0143, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0037, 0x0041, 0x0000, 0x0000,
};
uint32_t h[3];
mi_vector_hash(key, keylen, 0x6c0d2ae8U, h);
return (g[h[0] % 789] + g[h[1] % 789]) % 394;
}
const char *
_ti_strid(ssize_t idx)
{
if ((size_t)idx > __arraycount(_ti_strids))
return NULL;
return _ti_strids[idx];
}
ssize_t
_ti_strindex(const char *key)
{
uint32_t idx;
idx = _ti_strhash((const unsigned char *)key, strlen(key));
if (idx > __arraycount(_ti_strids) ||
strcmp(key, _ti_strids[idx]) != 0)
return -1;
return idx;
}

View File

@ -0,0 +1,165 @@
/* $NetBSD: termcap_hash.c,v 1.1 2010/02/03 20:56:54 roy Exp $ */
/* DO NOT EDIT
* Automatically generated from termcap.c */
#include <sys/cdefs.h>
__RCSID("$NetBSD: termcap_hash.c,v 1.1 2010/02/03 20:56:54 roy Exp $");
#include <sys/types.h>
#include <stdlib.h>
#include <term_private.h>
#include <stdlib.h>
static uint32_t
_t_flaghash(const void * __restrict key, size_t keylen)
{
static const uint8_t g[75] = {
0x00, 0x00, 0x22, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a,
0x0d, 0x00, 0x07, 0x08, 0x10, 0x0e, 0x10, 0x15, 0x00, 0x21,
0x1c, 0x00, 0x00, 0x00, 0x05, 0x03, 0x04, 0x22, 0x00, 0x00,
0x05, 0x1b, 0x00, 0x0d, 0x00, 0x00, 0x23, 0x00, 0x0f, 0x21,
0x00, 0x13, 0x00, 0x00, 0x1c, 0x16, 0x00, 0x1a, 0x00, 0x00,
0x00, 0x00, 0x19, 0x20, 0x1e, 0x04, 0x00, 0x00, 0x20, 0x00,
0x00, 0x00, 0x00, 0x17, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x1f,
0x23, 0x1c, 0x23, 0x00, 0x00,
};
uint32_t h[3];
mi_vector_hash(key, keylen, 0x974cd2d9U, h);
return (g[h[0] % 75] + g[h[1] % 75]) % 37;
}
#include <stdlib.h>
static uint32_t
_t_numhash(const void * __restrict key, size_t keylen)
{
static const uint8_t g[67] = {
0x00, 0x00, 0x13, 0x14, 0x0e, 0x18, 0x01, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x02, 0x0d, 0x09, 0x00, 0x14, 0x00, 0x00,
0x00, 0x00, 0x0f, 0x00, 0x0b, 0x1e, 0x00, 0x0f, 0x15, 0x00,
0x00, 0x00, 0x00, 0x1b, 0x06, 0x12, 0x01, 0x00, 0x1a, 0x00,
0x12, 0x00, 0x00, 0x00, 0x0a, 0x1f, 0x17, 0x1b, 0x00, 0x05,
0x02, 0x04, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1b, 0x00, 0x00, 0x00, 0x00, 0x20, 0x13,
};
uint32_t h[3];
mi_vector_hash(key, keylen, 0xe039645dU, h);
return (g[h[0] % 67] + g[h[1] % 67]) % 33;
}
#include <stdlib.h>
static uint32_t
_t_strhash(const void * __restrict key, size_t keylen)
{
static const uint16_t g[793] = {
0x018b, 0x016b, 0x0000, 0x0000, 0x0071, 0x003c, 0x00fe, 0x0148,
0x0178, 0x00bc, 0x0000, 0x0000, 0x0000, 0x0138, 0x010d, 0x0117,
0x0000, 0x0043, 0x0000, 0x0000, 0x0131, 0x0154, 0x0015, 0x0134,
0x0147, 0x009f, 0x0152, 0x00b4, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0031, 0x0000, 0x0000, 0x0000,
0x007b, 0x0000, 0x0111, 0x0144, 0x0021, 0x010a, 0x0000, 0x0000,
0x00f5, 0x0000, 0x00f4, 0x0000, 0x0000, 0x0000, 0x004b, 0x012d,
0x0000, 0x00bb, 0x0084, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000,
0x0000, 0x007b, 0x0000, 0x006f, 0x003e, 0x0000, 0x00eb, 0x0000,
0x0152, 0x0163, 0x0000, 0x0168, 0x0060, 0x0000, 0x0064, 0x0171,
0x00ab, 0x0000, 0x0000, 0x00a6, 0x0000, 0x0068, 0x00a2, 0x008a,
0x013b, 0x0090, 0x0000, 0x0153, 0x0000, 0x0069, 0x0000, 0x0000,
0x017d, 0x0000, 0x0000, 0x0000, 0x000e, 0x0000, 0x0045, 0x0000,
0x00e8, 0x0000, 0x0009, 0x0000, 0x015f, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x00bb, 0x00d7, 0x0000,
0x00d4, 0x0002, 0x0000, 0x006e, 0x0000, 0x00a0, 0x0107, 0x0000,
0x0104, 0x016a, 0x00d2, 0x0000, 0x008b, 0x006e, 0x00e0, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0092, 0x0139,
0x00a7, 0x0000, 0x0000, 0x00f6, 0x0000, 0x0000, 0x0000, 0x005f,
0x0027, 0x0000, 0x0000, 0x0018, 0x007c, 0x0000, 0x0000, 0x011c,
0x0121, 0x018b, 0x0000, 0x0067, 0x0081, 0x0000, 0x0000, 0x0000,
0x00e0, 0x00b9, 0x000e, 0x0000, 0x0049, 0x0000, 0x0000, 0x0000,
0x009e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00c5, 0x0103,
0x013a, 0x0000, 0x0000, 0x00bc, 0x0000, 0x0014, 0x014e, 0x004f,
0x0184, 0x0000, 0x0118, 0x0000, 0x0159, 0x0005, 0x0156, 0x00b6,
0x011e, 0x0000, 0x0000, 0x007f, 0x0000, 0x00b2, 0x0136, 0x0020,
0x0125, 0x00fd, 0x0000, 0x0000, 0x00e7, 0x0000, 0x002b, 0x000d,
0x0000, 0x004e, 0x0000, 0x017f, 0x013e, 0x0016, 0x0000, 0x0056,
0x015d, 0x0000, 0x0000, 0x004b, 0x0000, 0x008f, 0x0000, 0x0000,
0x0000, 0x00f8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0080, 0x005e,
0x0000, 0x0000, 0x014c, 0x0000, 0x0000, 0x0084, 0x0000, 0x0000,
0x0000, 0x005c, 0x007b, 0x0156, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x00b9, 0x0000, 0x012f, 0x0000, 0x0000, 0x0105, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x017b, 0x00be, 0x0000,
0x0000, 0x0077, 0x0000, 0x0000, 0x0000, 0x0174, 0x0000, 0x0000,
0x0000, 0x0038, 0x0187, 0x0035, 0x0030, 0x0000, 0x015e, 0x0000,
0x0068, 0x0000, 0x0000, 0x0131, 0x017a, 0x010a, 0x0000, 0x0000,
0x0169, 0x0000, 0x0000, 0x0000, 0x0000, 0x0141, 0x003f, 0x0025,
0x0000, 0x0000, 0x0139, 0x0000, 0x0000, 0x0000, 0x0186, 0x0000,
0x0000, 0x0124, 0x00c7, 0x0100, 0x00f5, 0x0006, 0x0000, 0x00ad,
0x0000, 0x0000, 0x0000, 0x009b, 0x0013, 0x0064, 0x0000, 0x00ab,
0x0091, 0x0000, 0x0034, 0x010f, 0x00d7, 0x0102, 0x0000, 0x0124,
0x0027, 0x011a, 0x0176, 0x0050, 0x0000, 0x0000, 0x0157, 0x000f,
0x0000, 0x0000, 0x00d0, 0x0087, 0x00da, 0x0000, 0x0000, 0x00b6,
0x0063, 0x0000, 0x0000, 0x00f0, 0x0084, 0x0186, 0x0000, 0x0000,
0x0000, 0x011c, 0x0000, 0x0000, 0x015d, 0x0000, 0x0000, 0x0184,
0x0011, 0x0000, 0x0000, 0x0000, 0x0012, 0x0000, 0x0022, 0x0000,
0x00a0, 0x0000, 0x0171, 0x001c, 0x0025, 0x016e, 0x0000, 0x0000,
0x012d, 0x0000, 0x00bc, 0x0000, 0x0000, 0x006b, 0x0068, 0x0000,
0x0000, 0x005e, 0x002c, 0x0000, 0x0000, 0x0126, 0x012d, 0x0000,
0x003a, 0x0180, 0x0141, 0x0000, 0x00f0, 0x0041, 0x009f, 0x0000,
0x0000, 0x0000, 0x0061, 0x0164, 0x00ea, 0x0000, 0x016d, 0x0000,
0x0000, 0x0038, 0x0106, 0x0034, 0x0000, 0x0000, 0x00c6, 0x0000,
0x0000, 0x0054, 0x0000, 0x0180, 0x0000, 0x0062, 0x0000, 0x0024,
0x0000, 0x0005, 0x00c5, 0x0051, 0x0087, 0x0000, 0x0000, 0x0000,
0x0166, 0x00d6, 0x0130, 0x011a, 0x0146, 0x002c, 0x004f, 0x0000,
0x0000, 0x003d, 0x0054, 0x0019, 0x0000, 0x0002, 0x0174, 0x0047,
0x00ff, 0x0000, 0x0000, 0x0174, 0x0024, 0x0000, 0x0000, 0x0000,
0x0000, 0x0033, 0x00b7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x00ac, 0x012b, 0x00b2, 0x0000, 0x00f6, 0x0141, 0x009a,
0x0000, 0x0000, 0x0080, 0x0000, 0x0056, 0x0000, 0x0000, 0x00c4,
0x00e3, 0x0000, 0x0000, 0x00e8, 0x0068, 0x0136, 0x0019, 0x0011,
0x010e, 0x0000, 0x00cc, 0x0158, 0x011c, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0131, 0x0000, 0x0150, 0x0000,
0x0000, 0x0000, 0x016a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0173, 0x015b, 0x0000, 0x0188, 0x0000, 0x0079, 0x00b9,
0x0184, 0x0000, 0x016f, 0x00a9, 0x0000, 0x0000, 0x011e, 0x0000,
0x0123, 0x0000, 0x00e7, 0x0000, 0x0000, 0x0065, 0x0125, 0x0172,
0x00b0, 0x00d0, 0x00ab, 0x0096, 0x0000, 0x0000, 0x003c, 0x0000,
0x0000, 0x0000, 0x008e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x017b, 0x00f6,
0x016b, 0x0000, 0x0009, 0x000b, 0x0000, 0x0158, 0x0000, 0x009a,
0x00d8, 0x0051, 0x0000, 0x006f, 0x0000, 0x00d5, 0x0000, 0x00d2,
0x0033, 0x0000, 0x0134, 0x0127, 0x017d, 0x0000, 0x0000, 0x0000,
0x017c, 0x0000, 0x00dc, 0x0000, 0x000f, 0x0000, 0x007e, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0034, 0x013c, 0x0000,
0x011c, 0x0000, 0x00af, 0x0000, 0x0000, 0x00eb, 0x0000, 0x00b9,
0x0000, 0x012e, 0x008d, 0x011b, 0x0000, 0x0000, 0x0152, 0x0000,
0x0050, 0x0018, 0x00e3, 0x0000, 0x0000, 0x0000, 0x0124, 0x0008,
0x0000, 0x0000, 0x0010, 0x0000, 0x0000, 0x0000, 0x00b3, 0x00ca,
0x0059, 0x0000, 0x0083, 0x0000, 0x0000, 0x0186, 0x0034, 0x00fc,
0x009d, 0x0000, 0x00cd, 0x0000, 0x0000, 0x011f, 0x0000, 0x0014,
0x0000, 0x0167, 0x0050, 0x009a, 0x0041, 0x0000, 0x0000, 0x012a,
0x00fb, 0x0069, 0x0177, 0x0000, 0x0000, 0x0000, 0x0066, 0x0000,
0x0044, 0x0091, 0x0125, 0x0040, 0x0000, 0x0000, 0x0000, 0x017f,
0x0044, 0x0000, 0x0000, 0x00d9, 0x0000, 0x008b, 0x0034, 0x0094,
0x0000, 0x0000, 0x0149, 0x0072, 0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x000d, 0x0000, 0x0050, 0x002f, 0x0056,
0x00ba, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0047, 0x0000,
0x00fd, 0x0000, 0x006d, 0x0000, 0x00d3, 0x0018, 0x0109, 0x0000,
0x0000, 0x0000, 0x004c, 0x0000, 0x007e, 0x0000, 0x010d, 0x00f8,
0x0000, 0x0016, 0x0000, 0x0000, 0x0165, 0x0000, 0x0000, 0x0183,
0x0000, 0x016d, 0x008f, 0x0000, 0x0000, 0x0000, 0x0000, 0x013a,
0x0160, 0x012d, 0x0000, 0x0000, 0x0000, 0x00db, 0x00a5, 0x0000,
0x0119, 0x0000, 0x0000, 0x0072, 0x0149, 0x001b, 0x0000, 0x00f1,
0x0097, 0x0000, 0x005b, 0x0000, 0x0000, 0x0077, 0x008c, 0x0120,
0x012c, 0x0000, 0x0000, 0x003f, 0x00f6, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x00b2, 0x0000, 0x00af, 0x00a2, 0x00ad, 0x0000,
0x0118, 0x0000, 0x0158, 0x0068, 0x0000, 0x00b0, 0x0000, 0x0000,
0x0000,
};
uint32_t h[3];
mi_vector_hash(key, keylen, 0x849f1ca7U, h);
return (g[h[0] % 793] + g[h[1] % 793]) % 396;
}

688
lib/libterminfo/terminfo.5 Normal file
View File

@ -0,0 +1,688 @@
.\"DO NOT EDIT
.\"Automatically generated from termcap.5.in
.\"
.\" $NetBSD: terminfo.5,v 1.1 2010/02/03 20:56:54 roy Exp $
.\"
.\" Copyright (c) 2009 The NetBSD Foundation, Inc.
.\" All rights reserved.
.\"
.\" This code is derived from software contributed to The NetBSD Foundation
.\" by Roy Marples.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd October 1, 2009
.Dt TERMINFO 5
.Os
.Sh NAME
.Nm terminfo
.Nd terminal capability definition
.Sh DESCRIPTION
.Nm
describes the capabilities of terminals, used by programs such as
.Xr vi 1 ,
.Xr rogue 6
and libraries such as
.Xr curses 3 .
The
.Nm
source described here needs to be compiled with
.Xr tic 1
to be of any use.
.Pp
Entries in
.Nm
consist of a number of comma seperated fields.
White space after each comma is ignored.
Embedded commas must be escaped by using a backslash.
Lines beginning with # in the first column are treated as comments.
Blank lines are ignored.
.Pp
The header line must begin in column one and end with a comma.
Inside the header line are terminal name and aliases,
seperated by vertical bars, the last one being the long
description of the terminal.
.Pp
Capability lines then follow, starting on column two and end with a comma.
Each capability is listed by its name, followed by its value if applicable.
Booleans have no values, numeric values are prefixed by # and
strings are prefixed by =.
Numbers can range from 0 to 32767 and string values can be up to 1000
characters long.
This implementation supports strings upto 32767 characters long, including the
.Dv NUL
terminator.
.Pp
Some escapes are available for strings - both
.Sy \eE
and
.Sy \ee
map to the
.Dv ESC
character,
.Sy ^X
maps to a control-X for any appropriate X, and the sequences
.Sy \en ,
.Sy \er ,
.Sy \et ,
.Sy \eb
and
.Sy \ef
map to linefeed, return, tab, backspace and formfeed respectively.
Any character can be escaped in octal, such as
.Sy \e072 .
If you need to encode a
.Dv NUL
character, it should be escaped as
.Sy \e200 .
.Pp
A delay in milliseconds my appear anywhere in a string capability,
prefixed with a dollar and enclosed by angled brackets, such as
.Sy $<5> .
.Ss String Parameters
String capabilities sometimes requires parameters.
Normally this just involves replacing the parameter with a supplied
variable, however there are cases where the variable need to be manipulated
or used in conditional expressions.
A stack is also provided for simple pop and push operations.
.Pp
The below % encodings have the following meanings:
.Bl -tag -width %P[a-z]
.It Sy %%
outputs %
.It Sy %[[:]flags][width[.precision]][doxXs]
flags are [-+# ].
Prefix with : to avoid interpreting %- as an operator.
.It Sy %c
pop a parameter and print the character representation of it.
.It Sy %s
pop a parameter and print the string representation of it.
.It Sy %p[1-9]
push the parameter [1-9].
.It Sy %P[a-z]
pop a parameter and push it to dynamic variable [a-z].
.It Sy %g[a-z]
push the dynamic variable [a-z].
.It Sy %P[A-Z]
pop a parameter and push it to static variable [a-z].
.It Sy %g[A-Z]
push the dynamic variable [A-Z].
.Pp
Static variables persist over
.Fn tparm
where-as dyanmic variables do not.
.It Sy %'c'
char constant c.
.It Sy %{nn}
integer constant nn.
.It Sy %l
push the string length of the previously popped parameter.
.It Sy %+ Sy %- Sy %* Sy %/ Sy %m
arithmetic: pop two parameters and push the result.
.It Sy %& Sy %| Sy %^
bit operations: pop two parameters and push the result.
.It Sy %! Sy %~
unary operations: pop two parameters and push the result.
.It Sy %i
add 1 to parameters 1 and 2.
.It Sy %? Va expr Sy %t Ic then Sy %e Ic else Sy %;
If expr equates to zero then contol passes to the optional else part.
.El
.Ss Boolean Capabilities
.Bl -column "enter_near_quality_letter" "setcolor" "TC"
.It Sy "Long name" Ta Sy "Code" Ta Sy "TC"
.It Li "auto_left_margin" Ta Sy "\&bw" Ta Sy "\&bw"
.It Li "auto_right_margin" Ta Sy "\&am" Ta Sy "\&am"
.It Li "back_color_erase" Ta Sy "\&bce" Ta Sy "\&ut"
.It Li "can_change" Ta Sy "\&ccc" Ta Sy "\&cc"
.It Li "ceol_standout_glitch" Ta Sy "\&xhp" Ta Sy "\&xs"
.It Li "col_addr_glitch" Ta Sy "\&xhpa" Ta Sy "\&YA"
.It Li "cpi_changes_res" Ta Sy "\&cpix" Ta Sy "\&YF"
.It Li "cr_cancels_micro_mode" Ta Sy "\&crxm" Ta Sy "\&YB"
.It Li "dest_tabs_magic_smso" Ta Sy "\&xt" Ta Sy "\&xt"
.It Li "eat_newline_glitch" Ta Sy "\&xenl" Ta Sy "\&xn"
.It Li "erase_overstrike" Ta Sy "\&eo" Ta Sy "\&eo"
.It Li "generic_type" Ta Sy "\&gn" Ta Sy "\&gn"
.It Li "hard_copy" Ta Sy "\&hc" Ta Sy "\&hc"
.It Li "hard_cursor" Ta Sy "\&chts" Ta Sy "\&HC"
.It Li "has_meta_key" Ta Sy "\&km" Ta Sy "\&km"
.It Li "has_print_wheel" Ta Sy "\&daisy" Ta Sy "\&YC"
.It Li "has_status_line" Ta Sy "\&hs" Ta Sy "\&hs"
.It Li "hue_light_saturation" Ta Sy "\&hls" Ta Sy "\&hl"
.It Li "insert_null_glitch" Ta Sy "\&in" Ta Sy "\&in"
.It Li "lpi_changes_yes" Ta Sy "\&lpix" Ta Sy "\&YG"
.It Li "memory_above" Ta Sy "\&da" Ta Sy "\&da"
.It Li "memory_below" Ta Sy "\&db" Ta Sy "\&db"
.It Li "move_insert_mode" Ta Sy "\&mir" Ta Sy "\&mi"
.It Li "move_standout_mode" Ta Sy "\&msgr" Ta Sy "\&ms"
.It Li "needs_xon_xoff" Ta Sy "\&nxon" Ta Sy "\&nx"
.It Li "no_esc_ctlc" Ta Sy "\&xsb" Ta Sy "\&xb"
.It Li "no_pad_char" Ta Sy "\&npc" Ta Sy "\&NP"
.It Li "non_dest_scroll_region" Ta Sy "\&ndscr" Ta Sy "\&ND"
.It Li "non_rev_rmcup" Ta Sy "\&nrrmc" Ta Sy "\&NR"
.It Li "over_strike" Ta Sy "\&os" Ta Sy "\&os"
.It Li "prtr_silent" Ta Sy "\&mc5i" Ta Sy "\&5i"
.It Li "row_addr_glitch" Ta Sy "\&xvpa" Ta Sy "\&YD"
.It Li "semi_auto_right_margin" Ta Sy "\&sam" Ta Sy "\&YE"
.It Li "status_line_esc_ok" Ta Sy "\&eslok" Ta Sy "\&es"
.It Li "tilde_glitch" Ta Sy "\&hz" Ta Sy "\&hz"
.It Li "transparent_underline" Ta Sy "\&ul" Ta Sy "\&ul"
.It Li "xon_xoff" Ta Sy "\&xon" Ta Sy "\&xo"
.El
.Ss Numeric Capabilities
.Bl -column "enter_near_quality_letter" "setcolor" "TC"
.It Sy "Long name" Ta Sy "Code" Ta Sy "TC"
.It Li "bit_image_entwining" Ta Sy "\&bitwin" Ta Sy "\&Yo"
.It Li "bit_image_type" Ta Sy "\&bitype" Ta Sy "\&Yp"
.It Li "buffer_capacity" Ta Sy "\&bufsz" Ta Sy "\&Ya"
.It Li "buttons" Ta Sy "\&btns" Ta Sy "\&BT"
.It Li "columns" Ta Sy "\&cols" Ta Sy "\&co"
.It Li "dot_horz_spacing" Ta Sy "\&spinh" Ta Sy "\&Yc"
.It Li "dot_vert_spacing" Ta Sy "\&spinv" Ta Sy "\&Yb"
.It Li "init_tabs" Ta Sy "\&it" Ta Sy "\&it"
.It Li "label_height" Ta Sy "\&lh" Ta Sy "\&lh"
.It Li "label_width" Ta Sy "\&lw" Ta Sy "\&lw"
.It Li "lines" Ta Sy "\&lines" Ta Sy "\&li"
.It Li "lines_of_memory" Ta Sy "\&lm" Ta Sy "\&lm"
.It Li "magic_cookie_glitch" Ta Sy "\&xmc" Ta Sy "\&sg"
.It Li "max_attributes" Ta Sy "\&ma" Ta Sy "\&ma"
.It Li "max_colors" Ta Sy "\&colors" Ta Sy "\&Co"
.It Li "max_micro_address" Ta Sy "\&maddr" Ta Sy "\&Yd"
.It Li "max_micro_jump" Ta Sy "\&mjump" Ta Sy "\&Ye"
.It Li "max_pairs" Ta Sy "\&pairs" Ta Sy "\&pa"
.It Li "maximum_windows" Ta Sy "\&wnum" Ta Sy "\&MW"
.It Li "micro_col_size" Ta Sy "\&mcs" Ta Sy "\&Yf"
.It Li "micro_line_size" Ta Sy "\&mls" Ta Sy "\&Yg"
.It Li "no_color_video" Ta Sy "\&ncv" Ta Sy "\&NC"
.It Li "num_labels" Ta Sy "\&nlab" Ta Sy "\&Nl"
.It Li "number_of_pins" Ta Sy "\&npins" Ta Sy "\&Yh"
.It Li "output_res_char" Ta Sy "\&orc" Ta Sy "\&Yi"
.It Li "output_res_horz_inch" Ta Sy "\&orhi" Ta Sy "\&Yk"
.It Li "output_res_line" Ta Sy "\&orl" Ta Sy "\&Yj"
.It Li "output_res_vert_inch" Ta Sy "\&orvi" Ta Sy "\&Yl"
.It Li "padding_baud_rate" Ta Sy "\&pb" Ta Sy "\&pb"
.It Li "print_rate" Ta Sy "\&cps" Ta Sy "\&Ym"
.It Li "virtual_terminal" Ta Sy "\&vt" Ta Sy "\&vt"
.It Li "wide_char_size" Ta Sy "\&widcs" Ta Sy "\&Yn"
.It Li "width_status_line" Ta Sy "\&wsl" Ta Sy "\&ws"
.El
.Ss String Capabilities
.Bl -column "enter_near_quality_letter" "setcolor" "TC"
.It Sy "Long name" Ta Sy "Code" Ta Sy "TC"
.It Li "acs_chars" Ta Sy "\&acsc" Ta Sy "\&ac"
.It Li "alt_scancode_esc" Ta Sy "\&scesa" Ta Sy "\&S8"
.It Li "back_tab" Ta Sy "\&cbt" Ta Sy "\&bt"
.It Li "bell" Ta Sy "\&bel" Ta Sy "\&bl"
.It Li "bit_image_carriage_return" Ta Sy "\&bicr" Ta Sy "\&Yv"
.It Li "bit_image_newline" Ta Sy "\&binel" Ta Sy "\&Zz"
.It Li "bit_image_repeat" Ta Sy "\&birep" Ta Sy "\&Xy"
.It Li "carriage_return" Ta Sy "\&cr" Ta Sy "\&cr"
.It Li "change_char_pitch" Ta Sy "\&cpi" Ta Sy "\&ZA"
.It Li "change_line_pitch" Ta Sy "\&lpi" Ta Sy "\&ZB"
.It Li "change_res_horz" Ta Sy "\&chr" Ta Sy "\&ZC"
.It Li "change_res_vert" Ta Sy "\&cvr" Ta Sy "\&ZD"
.It Li "change_scroll_region" Ta Sy "\&csr" Ta Sy "\&cs"
.It Li "char_padding" Ta Sy "\&rmp" Ta Sy "\&rP"
.It Li "char_set_names" Ta Sy "\&csnm" Ta Sy "\&Zy"
.It Li "clear_all_tabs" Ta Sy "\&tbc" Ta Sy "\&ct"
.It Li "clear_margins" Ta Sy "\&mgc" Ta Sy "\&MC"
.It Li "clear_screen" Ta Sy "\&clear" Ta Sy "\&cl"
.It Li "clr_bol" Ta Sy "\&el1" Ta Sy "\&cb"
.It Li "clr_eol" Ta Sy "\&el" Ta Sy "\&ce"
.It Li "clr_eos" Ta Sy "\&ed" Ta Sy "\&cd"
.It Li "code_set_init" Ta Sy "\&csin" Ta Sy "\&ci"
.It Li "color_names" Ta Sy "\&colornm" Ta Sy "\&Yw"
.It Li "column_address" Ta Sy "\&hpa" Ta Sy "\&ch"
.It Li "command_character" Ta Sy "\&cmdch" Ta Sy "\&CC"
.It Li "create_window" Ta Sy "\&cwin" Ta Sy "\&"
.It Li "cursor_address" Ta Sy "\&cup" Ta Sy "\&cm"
.It Li "cursor_down" Ta Sy "\&cud1" Ta Sy "\&do"
.It Li "cursor_home" Ta Sy "\&home" Ta Sy "\&ho"
.It Li "cursor_invisible" Ta Sy "\&civis" Ta Sy "\&vi"
.It Li "cursor_left" Ta Sy "\&cub1" Ta Sy "\&le"
.It Li "cursor_mem_address" Ta Sy "\&mrcup" Ta Sy "\&CM"
.It Li "cursor_normal" Ta Sy "\&cnorm" Ta Sy "\&ve"
.It Li "cursor_right" Ta Sy "\&cuf1" Ta Sy "\&nd"
.It Li "cursor_to_ll" Ta Sy "\&ll" Ta Sy "\&ll"
.It Li "cursor_up" Ta Sy "\&cuu1" Ta Sy "\&up"
.It Li "cursor_visible" Ta Sy "\&cvvis" Ta Sy "\&vs"
.It Li "define_bit_image_region" Ta Sy "\&defbi" Ta Sy "\&Yx"
.It Li "define_char" Ta Sy "\&defc" Ta Sy "\&ZE"
.It Li "delete_character" Ta Sy "\&dch1" Ta Sy "\&dc"
.It Li "delete_line" Ta Sy "\&dl1" Ta Sy "\&dl"
.It Li "device_type" Ta Sy "\&devt" Ta Sy "\&dv"
.It Li "dial_phone" Ta Sy "\&dial" Ta Sy "\&DI"
.It Li "dis_status_line" Ta Sy "\&dsl" Ta Sy "\&ds"
.It Li "display_clock" Ta Sy "\&dclk" Ta Sy "\&DK"
.It Li "display_pc_char" Ta Sy "\&dispc" Ta Sy "\&S1"
.It Li "down_half_time" Ta Sy "\&hd" Ta Sy "\&hd"
.It Li "ena_acs" Ta Sy "\&enacs" Ta Sy "\&eA"
.It Li "end_bit_image_region" Ta Sy "\&endbi" Ta Sy "\&Yy"
.It Li "enter_alt_charset_mode" Ta Sy "\&smacs" Ta Sy "\&as"
.It Li "enter_am_mode" Ta Sy "\&smam" Ta Sy "\&SA"
.It Li "enter_blink_mode" Ta Sy "\&blink" Ta Sy "\&mb"
.It Li "enter_bold_mode" Ta Sy "\&bold" Ta Sy "\&md"
.It Li "enter_ca_mode" Ta Sy "\&smcup" Ta Sy "\&ti"
.It Li "enter_delete_mode" Ta Sy "\&smdc" Ta Sy "\&dm"
.It Li "enter_dim_mode" Ta Sy "\&dim" Ta Sy "\&mh"
.It Li "enter_doublewide_mode" Ta Sy "\&swidm" Ta Sy "\&ZF"
.It Li "enter_draft_quality" Ta Sy "\&sdrfq" Ta Sy "\&ZG"
.It Li "enter_horizontal_hl_mode" Ta Sy "\&ehhlm" Ta Sy "\&Xh"
.It Li "enter_insert_mode" Ta Sy "\&smir" Ta Sy "\&im"
.It Li "enter_italics_mode" Ta Sy "\&sitm" Ta Sy "\&ZH"
.It Li "enter_left_hl_mode" Ta Sy "\&elhlm" Ta Sy "\&Xl"
.It Li "enter_leftward_mode" Ta Sy "\&slm" Ta Sy "\&ZI"
.It Li "enter_low_hl_mode" Ta Sy "\&elohlm" Ta Sy "\&Xo"
.It Li "enter_micro_mode" Ta Sy "\&smicm" Ta Sy "\&ZJ"
.It Li "enter_near_quality_letter" Ta Sy "\&snlq" Ta Sy "\&ZK"
.It Li "enter_normal_quality" Ta Sy "\&snrmq" Ta Sy "\&ZL"
.It Li "enter_pc_charset_mode" Ta Sy "\&smpch" Ta Sy "\&S2"
.It Li "enter_protected_mode" Ta Sy "\&prot" Ta Sy "\&mp"
.It Li "enter_reverse_mode" Ta Sy "\&rev" Ta Sy "\&mr"
.It Li "enter_right_hl_mode" Ta Sy "\&erhlm" Ta Sy "\&Xr"
.It Li "enter_scancode_mode" Ta Sy "\&smsc" Ta Sy "\&S4"
.It Li "enter_secure_mode" Ta Sy "\&invis" Ta Sy "\&mk"
.It Li "enter_shadow_mode" Ta Sy "\&sshm" Ta Sy "\&ZM"
.It Li "enter_standout_mode" Ta Sy "\&smso" Ta Sy "\&so"
.It Li "enter_subscript_mode" Ta Sy "\&ssubm" Ta Sy "\&ZN"
.It Li "enter_superscript_mode" Ta Sy "\&ssupm" Ta Sy "\&ZO"
.It Li "enter_top_hl_mode" Ta Sy "\&ethlm" Ta Sy "\&Xt"
.It Li "enter_underline_mode" Ta Sy "\&smul" Ta Sy "\&us"
.It Li "enter_upward_mode" Ta Sy "\&sum" Ta Sy "\&ZP"
.It Li "enter_vertical_hl_mode" Ta Sy "\&evhlm" Ta Sy "\&Xv"
.It Li "enter_xon_mode" Ta Sy "\&smxon" Ta Sy "\&SX"
.It Li "erase_chars" Ta Sy "\&ech" Ta Sy "\&ec"
.It Li "exit_alt_charset_mode" Ta Sy "\&rmacs" Ta Sy "\&ae"
.It Li "exit_am_mode" Ta Sy "\&rmam" Ta Sy "\&RA"
.It Li "exit_attribute_mode" Ta Sy "\&sgr0" Ta Sy "\&me"
.It Li "exit_ca_mode" Ta Sy "\&rmcup" Ta Sy "\&te"
.It Li "exit_delete_mode" Ta Sy "\&rmdc" Ta Sy "\&ed"
.It Li "exit_doublewide_mode" Ta Sy "\&rwidm" Ta Sy "\&ZQ"
.It Li "exit_insert_mode" Ta Sy "\&rmir" Ta Sy "\&ei"
.It Li "exit_italics_mode" Ta Sy "\&ritm" Ta Sy "\&ZR"
.It Li "exit_leftward_mode" Ta Sy "\&rlm" Ta Sy "\&ZS"
.It Li "exit_micro_mode" Ta Sy "\&rmicm" Ta Sy "\&ZT"
.It Li "exit_pc_charset_mode" Ta Sy "\&rmpch" Ta Sy "\&S3"
.It Li "exit_scancode_mode" Ta Sy "\&rmsc" Ta Sy "\&S5"
.It Li "exit_shadow_mode" Ta Sy "\&rshm" Ta Sy "\&ZU"
.It Li "exit_standout_mode" Ta Sy "\&rmso" Ta Sy "\&se"
.It Li "exit_subscript_mode" Ta Sy "\&rsubm" Ta Sy "\&ZV"
.It Li "exit_superscript_mode" Ta Sy "\&rsupm" Ta Sy "\&ZW"
.It Li "exit_underline_mode" Ta Sy "\&rmul" Ta Sy "\&ue"
.It Li "exit_upward_mode" Ta Sy "\&rum" Ta Sy "\&ZX"
.It Li "exit_xon_mode" Ta Sy "\&rmxon" Ta Sy "\&RX"
.It Li "fixed_pause" Ta Sy "\&pause" Ta Sy "\&PA"
.It Li "flash_hook" Ta Sy "\&hook" Ta Sy "\&fh"
.It Li "flash_screen" Ta Sy "\&flash" Ta Sy "\&vb"
.It Li "form_feed" Ta Sy "\&ff" Ta Sy "\&ff"
.It Li "from_status_line" Ta Sy "\&fsl" Ta Sy "\&fs"
.It Li "get_mouse" Ta Sy "\&getm" Ta Sy "\&Gm"
.It Li "goto_window" Ta Sy "\&wingo" Ta Sy "\&WG"
.It Li "hangup" Ta Sy "\&hup" Ta Sy "\&HU"
.It Li "init_1string" Ta Sy "\&is1" Ta Sy "\&i1"
.It Li "init_2string" Ta Sy "\&is2" Ta Sy "\&i2"
.It Li "init_3string" Ta Sy "\&is3" Ta Sy "\&i3"
.It Li "init_file" Ta Sy "\&if" Ta Sy "\&if"
.It Li "init_prog" Ta Sy "\&iprog" Ta Sy "\&iP"
.It Li "initialize_color" Ta Sy "\&initc" Ta Sy "\&Ic"
.It Li "initialize_pair" Ta Sy "\&initp" Ta Sy "\&Ip"
.It Li "insert_character" Ta Sy "\&ich1" Ta Sy "\&ic"
.It Li "insert_line" Ta Sy "\&il1" Ta Sy "\&al"
.It Li "insert_padding" Ta Sy "\&ip" Ta Sy "\&ip"
.It Li "key_a1" Ta Sy "\&ka1" Ta Sy "\&K1"
.It Li "key_a3" Ta Sy "\&ka3" Ta Sy "\&K3"
.It Li "key_b2" Ta Sy "\&kb2" Ta Sy "\&K2"
.It Li "key_backspace" Ta Sy "\&kbs" Ta Sy "\&kb"
.It Li "key_beg" Ta Sy "\&kbeg" Ta Sy "\&@1"
.It Li "key_btab" Ta Sy "\&kcbt" Ta Sy "\&kB"
.It Li "key_c1" Ta Sy "\&kc1" Ta Sy "\&K4"
.It Li "key_c3" Ta Sy "\&kc3" Ta Sy "\&K5"
.It Li "key_cancel" Ta Sy "\&kcan" Ta Sy "\&@2"
.It Li "key_catab" Ta Sy "\&ktbc" Ta Sy "\&ka"
.It Li "key_clear" Ta Sy "\&kclr" Ta Sy "\&kC"
.It Li "key_close" Ta Sy "\&kclo" Ta Sy "\&@3"
.It Li "key_command" Ta Sy "\&kcmd" Ta Sy "\&@4"
.It Li "key_copy" Ta Sy "\&kcpy" Ta Sy "\&@5"
.It Li "key_create" Ta Sy "\&kcrt" Ta Sy "\&@6"
.It Li "key_ctab" Ta Sy "\&kctab" Ta Sy "\&kt"
.It Li "key_dc" Ta Sy "\&kdch1" Ta Sy "\&kD"
.It Li "key_dl" Ta Sy "\&kdl1" Ta Sy "\&kL"
.It Li "key_down" Ta Sy "\&kcud1" Ta Sy "\&kd"
.It Li "key_eic" Ta Sy "\&krmir" Ta Sy "\&kM"
.It Li "key_end" Ta Sy "\&kend" Ta Sy "\&@7"
.It Li "key_enter" Ta Sy "\&kent" Ta Sy "\&@8"
.It Li "key_eol" Ta Sy "\&kel" Ta Sy "\&kE"
.It Li "key_eos" Ta Sy "\&ked" Ta Sy "\&kS"
.It Li "key_exit" Ta Sy "\&kext" Ta Sy "\&@9"
.It Li "key_f0" Ta Sy "\&kf0" Ta Sy "\&k0"
.It Li "key_f1" Ta Sy "\&kf1" Ta Sy "\&k1"
.It Li "key_f10" Ta Sy "\&kf10" Ta Sy "\&k;"
.It Li "key_f11" Ta Sy "\&kf11" Ta Sy "\&F1"
.It Li "key_f12" Ta Sy "\&kf12" Ta Sy "\&F2"
.It Li "key_f13" Ta Sy "\&kf13" Ta Sy "\&F3"
.It Li "key_f14" Ta Sy "\&kf14" Ta Sy "\&F4"
.It Li "key_f15" Ta Sy "\&kf15" Ta Sy "\&F5"
.It Li "key_f16" Ta Sy "\&kf16" Ta Sy "\&F6"
.It Li "key_f17" Ta Sy "\&kf17" Ta Sy "\&F7"
.It Li "key_f18" Ta Sy "\&kf18" Ta Sy "\&F8"
.It Li "key_f19" Ta Sy "\&kf19" Ta Sy "\&F9"
.It Li "key_f2" Ta Sy "\&kf2" Ta Sy "\&k2"
.It Li "key_f20" Ta Sy "\&kf20" Ta Sy "\&FA"
.It Li "key_f21" Ta Sy "\&kf21" Ta Sy "\&FB"
.It Li "key_f22" Ta Sy "\&kf22" Ta Sy "\&FC"
.It Li "key_f23" Ta Sy "\&kf23" Ta Sy "\&FD"
.It Li "key_f24" Ta Sy "\&kf24" Ta Sy "\&FE"
.It Li "key_f25" Ta Sy "\&kf25" Ta Sy "\&FF"
.It Li "key_f26" Ta Sy "\&kf26" Ta Sy "\&FG"
.It Li "key_f27" Ta Sy "\&kf27" Ta Sy "\&FH"
.It Li "key_f28" Ta Sy "\&kf28" Ta Sy "\&FI"
.It Li "key_f29" Ta Sy "\&kf29" Ta Sy "\&FJ"
.It Li "key_f3" Ta Sy "\&kf3" Ta Sy "\&k3"
.It Li "key_f30" Ta Sy "\&kf30" Ta Sy "\&FK"
.It Li "key_f31" Ta Sy "\&kf31" Ta Sy "\&FL"
.It Li "key_f32" Ta Sy "\&kf32" Ta Sy "\&FM"
.It Li "key_f33" Ta Sy "\&kf33" Ta Sy "\&FN"
.It Li "key_f34" Ta Sy "\&kf34" Ta Sy "\&FO"
.It Li "key_f35" Ta Sy "\&kf35" Ta Sy "\&FP"
.It Li "key_f36" Ta Sy "\&kf36" Ta Sy "\&FQ"
.It Li "key_f37" Ta Sy "\&kf37" Ta Sy "\&FR"
.It Li "key_f38" Ta Sy "\&kf38" Ta Sy "\&FS"
.It Li "key_f39" Ta Sy "\&kf39" Ta Sy "\&FT"
.It Li "key_f4" Ta Sy "\&kf4" Ta Sy "\&k4"
.It Li "key_f40" Ta Sy "\&kf40" Ta Sy "\&FU"
.It Li "key_f41" Ta Sy "\&kf41" Ta Sy "\&FV"
.It Li "key_f42" Ta Sy "\&kf42" Ta Sy "\&FW"
.It Li "key_f43" Ta Sy "\&kf43" Ta Sy "\&FX"
.It Li "key_f44" Ta Sy "\&kf44" Ta Sy "\&FY"
.It Li "key_f45" Ta Sy "\&kf45" Ta Sy "\&FZ"
.It Li "key_f46" Ta Sy "\&kf46" Ta Sy "\&Fa"
.It Li "key_f47" Ta Sy "\&kf47" Ta Sy "\&Fb"
.It Li "key_f48" Ta Sy "\&kf48" Ta Sy "\&Fc"
.It Li "key_f49" Ta Sy "\&kf49" Ta Sy "\&Fd"
.It Li "key_f5" Ta Sy "\&kf5" Ta Sy "\&k5"
.It Li "key_f50" Ta Sy "\&kf50" Ta Sy "\&Fe"
.It Li "key_f51" Ta Sy "\&kf51" Ta Sy "\&Ff"
.It Li "key_f52" Ta Sy "\&kf52" Ta Sy "\&Fg"
.It Li "key_f53" Ta Sy "\&kf53" Ta Sy "\&Fh"
.It Li "key_f54" Ta Sy "\&kf54" Ta Sy "\&Fi"
.It Li "key_f55" Ta Sy "\&kf55" Ta Sy "\&Fj"
.It Li "key_f56" Ta Sy "\&kf56" Ta Sy "\&Fk"
.It Li "key_f57" Ta Sy "\&kf57" Ta Sy "\&Fl"
.It Li "key_f58" Ta Sy "\&kf58" Ta Sy "\&Fm"
.It Li "key_f59" Ta Sy "\&kf59" Ta Sy "\&Fn"
.It Li "key_f6" Ta Sy "\&kf6" Ta Sy "\&k6"
.It Li "key_f60" Ta Sy "\&kf60" Ta Sy "\&Fo"
.It Li "key_f61" Ta Sy "\&kf61" Ta Sy "\&Fp"
.It Li "key_f62" Ta Sy "\&kf62" Ta Sy "\&Fq"
.It Li "key_f63" Ta Sy "\&kf63" Ta Sy "\&Fr"
.It Li "key_f7" Ta Sy "\&kf7" Ta Sy "\&k7"
.It Li "key_f8" Ta Sy "\&kf8" Ta Sy "\&k8"
.It Li "key_f9" Ta Sy "\&kf9" Ta Sy "\&k9"
.It Li "key_find" Ta Sy "\&kfnd" Ta Sy "\&@0"
.It Li "key_help" Ta Sy "\&khlp" Ta Sy "\&%1"
.It Li "key_home" Ta Sy "\&khome" Ta Sy "\&kh"
.It Li "key_ic" Ta Sy "\&kich1" Ta Sy "\&kI"
.It Li "key_il" Ta Sy "\&kil1" Ta Sy "\&kA"
.It Li "key_left" Ta Sy "\&kcub1" Ta Sy "\&kl"
.It Li "key_ll" Ta Sy "\&kll" Ta Sy "\&kH"
.It Li "key_mark" Ta Sy "\&kmrk" Ta Sy "\&%2"
.It Li "key_message" Ta Sy "\&kmsg" Ta Sy "\&%3"
.It Li "key_mouse" Ta Sy "\&kmous" Ta Sy "\&Km"
.It Li "key_move" Ta Sy "\&kmov" Ta Sy "\&%4"
.It Li "key_next" Ta Sy "\&knxt" Ta Sy "\&%5"
.It Li "key_npage" Ta Sy "\&knp" Ta Sy "\&kN"
.It Li "key_open" Ta Sy "\&kopn" Ta Sy "\&%6"
.It Li "key_options" Ta Sy "\&kopt" Ta Sy "\&%7"
.It Li "key_ppage" Ta Sy "\&kpp" Ta Sy "\&kP"
.It Li "key_previous" Ta Sy "\&kprv" Ta Sy "\&%8"
.It Li "key_print" Ta Sy "\&kprt" Ta Sy "\&%9"
.It Li "key_redo" Ta Sy "\&krdo" Ta Sy "\&%0"
.It Li "key_reference" Ta Sy "\&kref" Ta Sy "\&&1"
.It Li "key_refresh" Ta Sy "\&krfr" Ta Sy "\&&2"
.It Li "key_replace" Ta Sy "\&krpl" Ta Sy "\&&3"
.It Li "key_restart" Ta Sy "\&krst" Ta Sy "\&&4"
.It Li "key_resume" Ta Sy "\&kres" Ta Sy "\&&5"
.It Li "key_right" Ta Sy "\&kcuf1" Ta Sy "\&kr"
.It Li "key_save" Ta Sy "\&ksav" Ta Sy "\&&6"
.It Li "key_sbeg" Ta Sy "\&kBEG" Ta Sy "\&&9"
.It Li "key_scancel" Ta Sy "\&kCAN" Ta Sy "\&&0"
.It Li "key_scommand" Ta Sy "\&kCMD" Ta Sy "\&*1"
.It Li "key_scopy" Ta Sy "\&kCPY" Ta Sy "\&*2"
.It Li "key_screate" Ta Sy "\&kCRT" Ta Sy "\&*3"
.It Li "key_sdc" Ta Sy "\&kDC" Ta Sy "\&*4"
.It Li "key_sdl" Ta Sy "\&kDL" Ta Sy "\&*5"
.It Li "key_select" Ta Sy "\&kslt" Ta Sy "\&*6"
.It Li "key_send" Ta Sy "\&kEND" Ta Sy "\&*7"
.It Li "key_seol" Ta Sy "\&kEOL" Ta Sy "\&*8"
.It Li "key_sexit" Ta Sy "\&kEXT" Ta Sy "\&*9"
.It Li "key_sf" Ta Sy "\&kind" Ta Sy "\&kF"
.It Li "key_sfind" Ta Sy "\&kFND" Ta Sy "\&*0"
.It Li "key_shelp" Ta Sy "\&kHLP" Ta Sy "\&#1"
.It Li "key_shome" Ta Sy "\&kHOM" Ta Sy "\&#2"
.It Li "key_sic" Ta Sy "\&kIC" Ta Sy "\&#3"
.It Li "key_sleft" Ta Sy "\&kLFT" Ta Sy "\&#4"
.It Li "key_smessage" Ta Sy "\&kMSG" Ta Sy "\&%a"
.It Li "key_smove" Ta Sy "\&kMOV" Ta Sy "\&%b"
.It Li "key_snext" Ta Sy "\&kNXT" Ta Sy "\&%c"
.It Li "key_soptions" Ta Sy "\&kOPT" Ta Sy "\&%d"
.It Li "key_sprevious" Ta Sy "\&kPRV" Ta Sy "\&%e"
.It Li "key_sprint" Ta Sy "\&kPRT" Ta Sy "\&%f"
.It Li "key_sr" Ta Sy "\&kri" Ta Sy "\&kR"
.It Li "key_sredo" Ta Sy "\&kRDO" Ta Sy "\&%g"
.It Li "key_sreplace" Ta Sy "\&kRPL" Ta Sy "\&%h"
.It Li "key_sright" Ta Sy "\&kRIT" Ta Sy "\&%i"
.It Li "key_srsume" Ta Sy "\&kRES" Ta Sy "\&%j"
.It Li "key_ssave" Ta Sy "\&kSAV" Ta Sy "\&!1"
.It Li "key_ssuspend" Ta Sy "\&kSPD" Ta Sy "\&!2"
.It Li "key_stab" Ta Sy "\&khts" Ta Sy "\&kT"
.It Li "key_sundo" Ta Sy "\&kUND" Ta Sy "\&!3"
.It Li "key_suspend" Ta Sy "\&kspd" Ta Sy "\&&7"
.It Li "key_undo" Ta Sy "\&kund" Ta Sy "\&&8"
.It Li "key_up" Ta Sy "\&kcuu1" Ta Sy "\&ku"
.It Li "keypad_local" Ta Sy "\&rmkx" Ta Sy "\&ke"
.It Li "keypad_xmit" Ta Sy "\&smkx" Ta Sy "\&ks"
.It Li "lab_f0" Ta Sy "\&lf0" Ta Sy "\&l0"
.It Li "lab_f1" Ta Sy "\&lf1" Ta Sy "\&l1"
.It Li "lab_f10" Ta Sy "\&lf10" Ta Sy "\&la"
.It Li "lab_f2" Ta Sy "\&lf2" Ta Sy "\&l2"
.It Li "lab_f3" Ta Sy "\&lf3" Ta Sy "\&l3"
.It Li "lab_f4" Ta Sy "\&lf4" Ta Sy "\&l4"
.It Li "lab_f5" Ta Sy "\&lf5" Ta Sy "\&l5"
.It Li "lab_f6" Ta Sy "\&lf6" Ta Sy "\&l6"
.It Li "lab_f7" Ta Sy "\&lf7" Ta Sy "\&l7"
.It Li "lab_f8" Ta Sy "\&lf8" Ta Sy "\&l8"
.It Li "lab_f9" Ta Sy "\&lf9" Ta Sy "\&l9"
.It Li "label_format" Ta Sy "\&fln" Ta Sy "\&Lf"
.It Li "label_off" Ta Sy "\&rmln" Ta Sy "\&LF"
.It Li "label_on" Ta Sy "\&smln" Ta Sy "\&LO"
.It Li "meta_off" Ta Sy "\&rmm" Ta Sy "\&mo"
.It Li "meta_on" Ta Sy "\&smm" Ta Sy "\&mm"
.It Li "micro_column_address" Ta Sy "\&mhpa" Ta Sy "\&ZY"
.It Li "micro_down" Ta Sy "\&mcud1" Ta Sy "\&ZZ"
.It Li "micro_left" Ta Sy "\&mcub1" Ta Sy "\&Za"
.It Li "micro_right" Ta Sy "\&mcuf1" Ta Sy "\&Zb"
.It Li "micro_row_address" Ta Sy "\&mvpa" Ta Sy "\&Zc"
.It Li "micro_up" Ta Sy "\&mcuu1" Ta Sy "\&Zd"
.It Li "mouse_info" Ta Sy "\&minfo" Ta Sy "\&Mi"
.It Li "newline" Ta Sy "\&nel" Ta Sy "\&nw"
.It Li "order_of_pins" Ta Sy "\&porder" Ta Sy "\&Ze"
.It Li "orig_colors" Ta Sy "\&oc" Ta Sy "\&oc"
.It Li "orig_pair" Ta Sy "\&op" Ta Sy "\&op"
.It Li "pad_char" Ta Sy "\&pad" Ta Sy "\&pc"
.It Li "parm_dch" Ta Sy "\&dch" Ta Sy "\&DC"
.It Li "parm_delete_line" Ta Sy "\&dl" Ta Sy "\&DL"
.It Li "parm_down_cursor" Ta Sy "\&cud" Ta Sy "\&DO"
.It Li "parm_down_micro" Ta Sy "\&mcud" Ta Sy "\&Zf"
.It Li "parm_ich" Ta Sy "\&ich" Ta Sy "\&IC"
.It Li "parm_index" Ta Sy "\&indn" Ta Sy "\&SF"
.It Li "parm_insert_line" Ta Sy "\&il" Ta Sy "\&AL"
.It Li "parm_left_cursor" Ta Sy "\&cub" Ta Sy "\&LE"
.It Li "parm_left_micro" Ta Sy "\&mcub" Ta Sy "\&Zg"
.It Li "parm_right_cursor" Ta Sy "\&cuf" Ta Sy "\&RI"
.It Li "parm_right_micro" Ta Sy "\&mcuf" Ta Sy "\&Zh"
.It Li "parm_rindex" Ta Sy "\&rin" Ta Sy "\&SR"
.It Li "parm_up_cursor" Ta Sy "\&cuu" Ta Sy "\&UP"
.It Li "parm_up_micro" Ta Sy "\&mcuu" Ta Sy "\&Zi"
.It Li "pc_term_options" Ta Sy "\&pctrm" Ta Sy "\&S6"
.It Li "pkey_key" Ta Sy "\&pfkey" Ta Sy "\&pk"
.It Li "pkey_local" Ta Sy "\&pfloc" Ta Sy "\&pl"
.It Li "pkey_norm" Ta Sy "\&pln" Ta Sy "\&pn"
.It Li "pkey_plab" Ta Sy "\&pfxl" Ta Sy "\&xl"
.It Li "pkey_xmit" Ta Sy "\&pfx" Ta Sy "\&px"
.It Li "print_screen" Ta Sy "\&mc0" Ta Sy "\&ps"
.It Li "ptr_non" Ta Sy "\&mc5p" Ta Sy "\&pO"
.It Li "ptr_off" Ta Sy "\&mc4" Ta Sy "\&pf"
.It Li "ptr_on" Ta Sy "\&mc5" Ta Sy "\&po"
.It Li "pulse" Ta Sy "\&pulse" Ta Sy "\&PU"
.It Li "quick_dial" Ta Sy "\&qdial" Ta Sy "\&QD"
.It Li "remove_clock" Ta Sy "\&rmclk" Ta Sy "\&RC"
.It Li "repeat_char" Ta Sy "\&rep" Ta Sy "\&rp"
.It Li "req_for_input" Ta Sy "\&rfi" Ta Sy "\&RF"
.It Li "req_mouse_pos" Ta Sy "\&reqmp" Ta Sy "\&RQ"
.It Li "reset_1string" Ta Sy "\&rs1" Ta Sy "\&r1"
.It Li "reset_2string" Ta Sy "\&rs2" Ta Sy "\&r2"
.It Li "reset_3string" Ta Sy "\&rs3" Ta Sy "\&r3"
.It Li "reset_file" Ta Sy "\&rf" Ta Sy "\&rf"
.It Li "restore_cursor" Ta Sy "\&rc" Ta Sy "\&rc"
.It Li "row_address" Ta Sy "\&vpa" Ta Sy "\&cv"
.It Li "save_cursor" Ta Sy "\&sc" Ta Sy "\&sc"
.It Li "scancode_escape" Ta Sy "\&scesc" Ta Sy "\&S7"
.It Li "scroll_forward" Ta Sy "\&ind" Ta Sy "\&sf"
.It Li "scroll_reverse" Ta Sy "\&ri" Ta Sy "\&sr"
.It Li "select_char_set" Ta Sy "\&scs" Ta Sy "\&Zj"
.It Li "set0_des_seq" Ta Sy "\&s0ds" Ta Sy "\&s0"
.It Li "set1_des_seq" Ta Sy "\&s1ds" Ta Sy "\&s1"
.It Li "set2_des_seq" Ta Sy "\&s2ds" Ta Sy "\&s2"
.It Li "set3_des_seq" Ta Sy "\&s3ds" Ta Sy "\&s3"
.It Li "set_a_attributes" Ta Sy "\&sgr1" Ta Sy "\&sA"
.It Li "set_a_background" Ta Sy "\&setab" Ta Sy "\&AB"
.It Li "set_a_foreground" Ta Sy "\&setaf" Ta Sy "\&AF"
.It Li "set_attributes" Ta Sy "\&sgr" Ta Sy "\&sa"
.It Li "set_background" Ta Sy "\&setb" Ta Sy "\&Sb"
.It Li "set_bottom_margin" Ta Sy "\&smgb" Ta Sy "\&Zk"
.It Li "set_bottom_margin_parm" Ta Sy "\&smgbp" Ta Sy "\&Zl"
.It Li "set_clock" Ta Sy "\&sclk" Ta Sy "\&SC"
.It Li "set_color_band" Ta Sy "\&setcolor" Ta Sy "\&"
.It Li "set_color_paid" Ta Sy "\&scp" Ta Sy "\&sp"
.It Li "set_foreground" Ta Sy "\&setf" Ta Sy "\&Sf"
.It Li "set_left_margin" Ta Sy "\&smgl" Ta Sy "\&ML"
.It Li "set_left_margin_parm" Ta Sy "\&smglp" Ta Sy "\&Zm"
.It Li "set_lr_margin" Ta Sy "\&smglr" Ta Sy "\&"
.It Li "set_page_length" Ta Sy "\&slines" Ta Sy "\&Yz"
.It Li "set_pglen_inch" Ta Sy "\&slength" Ta Sy "\&sL"
.It Li "set_right_margin" Ta Sy "\&smgr" Ta Sy "\&MR"
.It Li "set_right_margin_parm" Ta Sy "\&smgrp" Ta Sy "\&Zn"
.It Li "set_tab" Ta Sy "\&hts" Ta Sy "\&st"
.It Li "set_tb_margin" Ta Sy "\&smgtb" Ta Sy "\&MT"
.It Li "set_top_margin" Ta Sy "\&smgt" Ta Sy "\&Zo"
.It Li "set_top_margin_parm" Ta Sy "\&smgtp" Ta Sy "\&Zp"
.It Li "set_window" Ta Sy "\&wind" Ta Sy "\&wi"
.It Li "start_bit_image" Ta Sy "\&sbim" Ta Sy "\&Zq"
.It Li "start_char_set_def" Ta Sy "\&scsd" Ta Sy "\&Zr"
.It Li "stop_bit_image" Ta Sy "\&rbim" Ta Sy "\&Zs"
.It Li "stop_char_set_def" Ta Sy "\&rcsd" Ta Sy "\&Zt"
.It Li "subscript_characters" Ta Sy "\&subcs" Ta Sy "\&Zu"
.It Li "superscript_characters" Ta Sy "\&supcs" Ta Sy "\&Zv"
.It Li "tab" Ta Sy "\&ht" Ta Sy "\&ta"
.It Li "these_cause_cr" Ta Sy "\&docr" Ta Sy "\&Zw"
.It Li "to_status_line" Ta Sy "\&tsl" Ta Sy "\&ts"
.It Li "tone" Ta Sy "\&tone" Ta Sy "\&TO"
.It Li "underline_char" Ta Sy "\&uc" Ta Sy "\&uc"
.It Li "up_half_line" Ta Sy "\&hu" Ta Sy "\&hu"
.It Li "user0" Ta Sy "\&u0" Ta Sy "\&u0"
.It Li "user1" Ta Sy "\&u1" Ta Sy "\&u1"
.It Li "user2" Ta Sy "\&u2" Ta Sy "\&u2"
.It Li "user3" Ta Sy "\&u3" Ta Sy "\&u3"
.It Li "user4" Ta Sy "\&u4" Ta Sy "\&u4"
.It Li "user5" Ta Sy "\&u5" Ta Sy "\&u5"
.It Li "user6" Ta Sy "\&u6" Ta Sy "\&u6"
.It Li "user7" Ta Sy "\&u7" Ta Sy "\&u7"
.It Li "user8" Ta Sy "\&u8" Ta Sy "\&u8"
.It Li "user9" Ta Sy "\&u9" Ta Sy "\&u9"
.It Li "wait_tone" Ta Sy "\&wait" Ta Sy "\&WA"
.It Li "xoff_character" Ta Sy "\&xoffc" Ta Sy "\&XF"
.It Li "xon_character" Ta Sy "\&xonc" Ta Sy "\&XN"
.It Li "zero_motion" Ta Sy "\&zerom" Ta Sy "\&Zx"
.El
.Ss A Sample Entry
.Bd -literal
vt100\||dec vt100 (w/advanced video),
am, xenl, msgr, mc5i, xon,
cols#80, it#8, lines#24, vt#3,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, bel=^G,
cr=^M, csr=\eE[%i%p1%d;%p2%dr, tbc=\eE[3g, clear=\eE[H\eE[J$<50>,
el1=\eE[1K$<3>, el=\eE[K$<3>, ed=\eE[J$<50>,
cup=\eE[%i%p1%d;%p2%dH$<5>, cud1=^J, home=\eE[H, cub1=^H,
cuf1=\eE[C$<2>, cuu1=\eE[A$<2>, enacs=\eE(B\eE)0, smacs=^N,
smam=\eE[?7h, blink=\eE[5m$<2>, bold=\eE[1m$<2>, rev=\eE[7m$<2>,
smso=\eE[7m$<2>, smul=\eE[4m$<2>, rmacs=^O, rmam=\eE[?7l,
sgr0=\eE[m017$<2>, rmso=\eE[m$<2>, rmul=\eE[m$<2>, ka1=\eEOq,
ka3=\eEOs, kb2=\eEOr, kbs=^H, kc1=\eEOp, kc3=\eEOn, kcud1=\eEOB,
kent=\eEOM, kf0=\eEOy, kf1=\eEOP, kf2=\eEOQ, kf3=\eEOR, kf4=\eEOS,
kf5=\eEOt, kf6=\eEOu, kf7=\eEOv, kf8=\eEOl, kf9=\eEOw, kf10=\eEOx,
kcub1=\eEOD, kcuf1=\eEOC, kcuu1=\eEOA, rmkx=\eE[?1l\eE>,
smkx=\eE[?1h\eE=, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4,
cud=\eE[%p1%dB, cub=\eE[%p1%dD, cuf=\eE[%p1%dC, cuu=\eE[%p1%dA,
mc0=\eE[0i, mc4=\eE[4i, mc5=\eE[5i,
rs2=\eE>\eE[?3l\eE[?4l\eE[?5l\eE[?7h\eE[?8h, rc=\eE8, sc=\eE7,
ind=^J, ri=\eEM$<5>,
sgr=\eE[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t016%e017%;$<2>,
hts=\eEH, ht=^I,
.Ed
.Ss Fetching Compiled Descriptions
If the environment variable
.Ev TERMINFO
is available, .db is appended to it and only this database is used.
Otherwise
.Nm
will first look for
.Pa $HOME/.terminfo.db ,
followed by
.Pa /usr/share/misc/terminfo.db
and
.Pa /etc/terminfo.db .
.Sh FILES
.Bl -tag -width /usr/share/misc/terminfo.db -compact
.It Pa $HOME/.terminfo.db
Database of terminal descriptions for personal use.
.It Pa /etc/terminfo.db
Database of terminal descriptions for use during boot or single user.
.It Pa /usr/share/misc/terminfo
File containing terminal descriptions.
.It Pa /usr/share/misc/terminfo.db
Database of terminal descriptions.
.El
.Sh SEE ALSO
.Xr infocmp 1 ,
.Xr tic 1 ,
.Xr tput 1 ,
.Xr curses 3
.Sh STANDARDS
.Nm
complies with the
.St -xcurses4.2
standard.
.Pp
Extentions to the standard are noted in
.Xr tic 1 .
.Sh AUTHORS
.An Roy Marples Aq roy@NetBSD.org

View File

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.134 2010/02/03 15:34:44 roy Exp $
# $NetBSD: Makefile,v 1.135 2010/02/03 20:56:54 roy Exp $
.include <bsd.own.mk>
@ -37,7 +37,7 @@ SUBDIR= host-mkdep .WAIT compat .WAIT \
binstall .WAIT mktemp .WAIT sed .WAIT \
cap_mkdb crunchgen ctags genassym gencat hexdump join \
${LINT_BITS} \
lorder makewhatis mkdep mtree nbperf rpcgen tic tsort \
lorder makewhatis mkdep mtree rpcgen tic tsort \
uudecode m4 \
.WAIT texinfo \
.WAIT yacc \

View File

@ -1,6 +0,0 @@
# $NetBSD: Makefile,v 1.1 2010/02/03 15:34:44 roy Exp $
HOSTPROGNAME= ${_TOOL_PREFIX}nbperf
HOST_SRCDIR= usr.bin/nbperf
.include "${.CURDIR}/../Makefile.host"