Exemple #1
0
/*
 * Init the elst depending on the locale
 */
void
errinit(void)
{
#ifdef NLS_CATALOGS
    size_t i;

    for (i = 0; i < NO_ERRORS; i++)
	xfree((char *)(intptr_t)elst[i]);
#  if defined(__FreeBSD__) || defined(hpux) || defined(__MidnightBSD__)
#  define NLS_MAXSET 30
    for (i = 1; i <= NLS_MAXSET; i++)
	CGETS(i, 1, "" );
#  endif
#endif

    elst[ERR_SYNTAX] = CSAVS(1, 1, "Syntax Error");
    elst[ERR_NOTALLOWED] = CSAVS(1, 2, "%s is not allowed");
    elst[ERR_WTOOLONG] = CSAVS(1, 3, "Word too long");
    elst[ERR_LTOOLONG] = CSAVS(1, 4, "$< line too long");
    elst[ERR_DOLZERO] = CSAVS(1, 5, "No file for $0");
    elst[ERR_INCBR] = CSAVS(1, 6, "Incomplete [] modifier");
    elst[ERR_EXPORD] = CSAVS(1, 7, "$ expansion must end before ]");
    elst[ERR_BADMOD] = CSAVS(1, 8, "Bad : modifier in $ (%c)");
    elst[ERR_SUBSCRIPT] = CSAVS(1, 9, "Subscript error");
    elst[ERR_BADNUM] = CSAVS(1, 10, "Badly formed number");
    elst[ERR_NOMORE] = CSAVS(1, 11, "No more words");
    elst[ERR_FILENAME] = CSAVS(1, 12, "Missing file name");
    elst[ERR_GLOB] = CSAVS(1, 13, "Internal glob error");
    elst[ERR_COMMAND] = CSAVS(1, 14, "Command not found");
    elst[ERR_TOOFEW] = CSAVS(1, 15, "Too few arguments");
    elst[ERR_TOOMANY] = CSAVS(1, 16, "Too many arguments");
    elst[ERR_DANGER] = CSAVS(1, 17, "Too dangerous to alias that");
    elst[ERR_EMPTYIF] = CSAVS(1, 18, "Empty if");
    elst[ERR_IMPRTHEN] = CSAVS(1, 19, "Improper then");
    elst[ERR_NOPAREN] = CSAVS(1, 20, "Words not parenthesized");
    elst[ERR_NOTFOUND] = CSAVS(1, 21, "%s not found");
    elst[ERR_MASK] = CSAVS(1, 22, "Improper mask");
    elst[ERR_LIMIT] = CSAVS(1, 23, "No such limit");
    elst[ERR_TOOLARGE] = CSAVS(1, 24, "Argument too large");
    elst[ERR_SCALEF] = CSAVS(1, 25, "Improper or unknown scale factor");
    elst[ERR_UNDVAR] = CSAVS(1, 26, "Undefined variable");
    elst[ERR_DEEP] = CSAVS(1, 27, "Directory stack not that deep");
    elst[ERR_BADSIG] = CSAVS(1, 28, "Bad signal number");
    elst[ERR_UNKSIG] = CSAVS(1, 29, "Unknown signal; kill -l lists signals");
    elst[ERR_VARBEGIN] = CSAVS(1, 30, "Variable name must begin with a letter");
    elst[ERR_VARTOOLONG] = CSAVS(1, 31, "Variable name too long");
    elst[ERR_VARALNUM] = CSAVS(1, 32,
	"Variable name must contain alphanumeric characters");
    elst[ERR_JOBCONTROL] = CSAVS(1, 33, "No job control in this shell");
    elst[ERR_EXPRESSION] = CSAVS(1, 34, "Expression Syntax");
    elst[ERR_NOHOMEDIR] = CSAVS(1, 35, "No home directory");
    elst[ERR_CANTCHANGE] = CSAVS(1, 36, "Can't change to home directory");
    elst[ERR_NULLCOM] = CSAVS(1, 37, "Invalid null command");
    elst[ERR_ASSIGN] = CSAVS(1, 38, "Assignment missing expression");
    elst[ERR_UNKNOWNOP] = CSAVS(1, 39, "Unknown operator");
    elst[ERR_AMBIG] = CSAVS(1, 40, "Ambiguous");
    elst[ERR_EXISTS] = CSAVS(1, 41, "%s: File exists");
    elst[ERR_ARGC] = CSAVS(1, 42, "Argument for -c ends in backslash");
    elst[ERR_INTR] = CSAVS(1, 43, "Interrupted");
    elst[ERR_RANGE] = CSAVS(1, 44, "Subscript out of range");
    elst[ERR_OVERFLOW] = CSAVS(1, 45, "Line overflow");
    elst[ERR_NOSUCHJOB] = CSAVS(1, 46, "No such job");
    elst[ERR_TERMINAL] = CSAVS(1, 47, "Can't from terminal");
    elst[ERR_NOTWHILE] = CSAVS(1, 48, "Not in while/foreach");
    elst[ERR_NOPROC] = CSAVS(1, 49, "No more processes");
    elst[ERR_NOMATCH] = CSAVS(1, 50, "No match");
    elst[ERR_MISSING] = CSAVS(1, 51, "Missing %c");
    elst[ERR_UNMATCHED] = CSAVS(1, 52, "Unmatched %c");
    elst[ERR_NOMEM] = CSAVS(1, 53, "Out of memory");
    elst[ERR_PIPE] = CSAVS(1, 54, "Can't make pipe");
    elst[ERR_SYSTEM] = CSAVS(1, 55, "%s: %s");
    elst[ERR_STRING] = CSAVS(1, 56, "%s");
    elst[ERR_JOBS] = CSAVS(1, 57, "Usage: jobs [ -l ]");
    elst[ERR_JOBARGS] = CSAVS(1, 58, "Arguments should be jobs or process id's");
    elst[ERR_JOBCUR] = CSAVS(1, 59, "No current job");
    elst[ERR_JOBPREV] = CSAVS(1, 60, "No previous job");
    elst[ERR_JOBPAT] = CSAVS(1, 61, "No job matches pattern");
    elst[ERR_NESTING] = CSAVS(1, 62, "Fork nesting > %d; maybe `...` loop");
    elst[ERR_JOBCTRLSUB] = CSAVS(1, 63, "No job control in subshells");
    elst[ERR_SYNC] = CSAVS(1, 64, "Sync fault: Process %d not found");
    elst[ERR_STOPPED] =
#ifdef SUSPENDED
	CSAVS(1, 65, "%sThere are suspended jobs");
#else
	CSAVS(1, 66, "%sThere are stopped jobs");
#endif /* SUSPENDED */
    elst[ERR_NODIR] = CSAVS(1, 67, "No other directory");
    elst[ERR_EMPTY] = CSAVS(1, 68, "Directory stack empty");
    elst[ERR_BADDIR] = CSAVS(1, 69, "Bad directory");
    elst[ERR_DIRUS] = CSAVS(1, 70, "Usage: %s [-%s]%s");
    elst[ERR_HFLAG] = CSAVS(1, 71, "No operand for -h flag");
    elst[ERR_NOTLOGIN] = CSAVS(1, 72, "Not a login shell");
    elst[ERR_DIV0] = CSAVS(1, 73, "Division by 0");
    elst[ERR_MOD0] = CSAVS(1, 74, "Mod by 0");
    elst[ERR_BADSCALE] = CSAVS(1, 75, "Bad scaling; did you mean \"%s\"?");
    elst[ERR_SUSPLOG] = CSAVS(1, 76, "Can't suspend a login shell (yet)");
    elst[ERR_UNKUSER] = CSAVS(1, 77, "Unknown user: %s");
    elst[ERR_NOHOME] = CSAVS(1, 78, "No $home variable set");
    elst[ERR_HISTUS] = CSAVS(1, 79,
	"Usage: history [-%s] [# number of events]");
    elst[ERR_SPDOLLT] = CSAVS(1, 80, "$, ! or < not allowed with $# or $?");
    elst[ERR_NEWLINE] = CSAVS(1, 81, "Newline in variable name");
    elst[ERR_SPSTAR] = CSAVS(1, 82, "* not allowed with $# or $?");
    elst[ERR_DIGIT] = CSAVS(1, 83, "$?<digit> or $#<digit> not allowed");
    elst[ERR_VARILL] = CSAVS(1, 84, "Illegal variable name");
    elst[ERR_NLINDEX] = CSAVS(1, 85, "Newline in variable index");
    elst[ERR_EXPOVFL] = CSAVS(1, 86, "Expansion buffer overflow");
    elst[ERR_VARSYN] = CSAVS(1, 87, "Variable syntax");
    elst[ERR_BADBANG] = CSAVS(1, 88, "Bad ! form");
    elst[ERR_NOSUBST] = CSAVS(1, 89, "No previous substitute");
    elst[ERR_BADSUBST] = CSAVS(1, 90, "Bad substitute");
    elst[ERR_LHS] = CSAVS(1, 91, "No previous left hand side");
    elst[ERR_RHSLONG] = CSAVS(1, 92, "Right hand side too long");
    elst[ERR_BADBANGMOD] = CSAVS(1, 93, "Bad ! modifier: %c");
    elst[ERR_MODFAIL] = CSAVS(1, 94, "Modifier failed");
    elst[ERR_SUBOVFL] = CSAVS(1, 95, "Substitution buffer overflow");
    elst[ERR_BADBANGARG] = CSAVS(1, 96, "Bad ! arg selector");
    elst[ERR_NOSEARCH] = CSAVS(1, 97, "No prev search");
    elst[ERR_NOEVENT] = CSAVS(1, 98, "%s: Event not found");
    elst[ERR_TOOMANYRP] = CSAVS(1, 99, "Too many )'s");
    elst[ERR_TOOMANYLP] = CSAVS(1, 100, "Too many ('s");
    elst[ERR_BADPLP] = CSAVS(1, 101, "Badly placed (");
    elst[ERR_MISRED] = CSAVS(1, 102, "Missing name for redirect");
    elst[ERR_OUTRED] = CSAVS(1, 103, "Ambiguous output redirect");
    elst[ERR_REDPAR] = CSAVS(1, 104, "Can't << within ()'s");
    elst[ERR_INRED] = CSAVS(1, 105, "Ambiguous input redirect");
    elst[ERR_BADPLPS] = CSAVS(1, 106, "Badly placed ()'s");
    elst[ERR_ALIASLOOP] = CSAVS(1, 107, "Alias loop");
    elst[ERR_NOWATCH] = CSAVS(1, 108, "No $watch variable set");
    elst[ERR_NOSCHED] = CSAVS(1, 109, "No scheduled events");
    elst[ERR_SCHEDUSAGE] = CSAVS(1, 110,
	"Usage: sched -<item#>.\nUsage: sched [+]hh:mm <command>");
    elst[ERR_SCHEDEV] = CSAVS(1, 111, "Not that many scheduled events");
    elst[ERR_SCHEDCOM] = CSAVS(1, 112, "No command to run");
    elst[ERR_SCHEDTIME] = CSAVS(1, 113, "Invalid time for event");
    elst[ERR_SCHEDREL] = CSAVS(1, 114, "Relative time inconsistent with am/pm");
    elst[ERR_TCNOSTR] = CSAVS(1, 115, "Out of termcap string space");
    elst[ERR_SETTCUS] = CSAVS(1, 116, "Usage: settc %s [yes|no]");
    elst[ERR_TCCAP] = CSAVS(1, 117, "Unknown capability `%s'");
    elst[ERR_TCPARM] = CSAVS(1, 118, "Unknown termcap parameter `%%%c'");
    elst[ERR_TCARGS] = CSAVS(1, 119, "Too many arguments for `%s' (%d)");
    elst[ERR_TCNARGS] = CSAVS(1, 120, "`%s' requires %d arguments");
    elst[ERR_TCUSAGE] = CSAVS(1, 121,
	"Usage: echotc [-v|-s] [<capability> [<args>]]");
    elst[ERR_ARCH] = CSAVS(1, 122, "%s: %s. Binary file not executable");
    elst[ERR_HISTLOOP] = CSAVS(1, 123, "!# History loop");
    elst[ERR_FILEINQ] = CSAVS(1, 124, "Malformed file inquiry");
    elst[ERR_SELOVFL] = CSAVS(1, 125, "Selector overflow");
#ifdef apollo
    elst[ERR_TCSHUSAGE] = CSAVS(1, 126,
"Unknown option: `-%s'\nUsage: %s [ -bcdefilmnqstvVxX -Dname[=value] ] [ argument ... ]");
#else /* !apollo */
# ifdef convex
    elst[ERR_TCSHUSAGE] = CSAVS(1, 127,
"Unknown option: `-%s'\nUsage: %s [ -bcdefFilmnqstvVxX ] [ argument ... ]");
# else /* rest */
    elst[ERR_TCSHUSAGE] = CSAVS(1, 128,
"Unknown option: `-%s'\nUsage: %s [ -bcdefilmnqstvVxX ] [ argument ... ]");
# endif /* convex */
#endif /* apollo */
    elst[ERR_COMPCOM] = CSAVS(1, 129, "\nInvalid completion: \"%s\"");
    elst[ERR_COMPINV] = CSAVS(1, 130, "\nInvalid %s: '%c'");
    elst[ERR_COMPMIS] = CSAVS(1, 131,
	"\nMissing separator '%c' after %s \"%s\"");
    elst[ERR_COMPINC] = CSAVS(1, 132, "\nIncomplete %s: \"%s\"");
    elst[ERR_MFLAG] = CSAVS(1, 133, "No operand for -m flag");
    elst[ERR_ULIMUS] = CSAVS(1, 134, "Usage: unlimit [-fh] [limits]");
    elst[ERR_READONLY] = CSAVS(1, 135, "$%S is read-only");
    elst[ERR_BADJOB] = CSAVS(1, 136, "No such job (badjob)");
    elst[ERR_BADCOLORVAR] = CSAVS(1, 137, "Unknown colorls variable `%c%c'");
    elst[ERR_EOF] = CSAVS(1, 138, "Unexpected end of file");
}
Exemple #2
0
void
mesginit(void)
{

#ifdef NLS_CATALOGS
    int i;

    for (i = 0; i < NUMSIG; i++) {
        xfree((char *)(intptr_t)mesg[i].pname);
	mesg[i].pname = NULL;
    }
#endif /* NLS_CATALOGS */

#if defined(SIGNULL) || defined(DECOSF1)
# ifndef SIGNULL
#  define SIGNULL 0
# endif /* !SIGNULL */
    if (mesg[SIGNULL].pname == NULL) {
	mesg[SIGNULL].iname = "NULL";
	mesg[SIGNULL].pname = CSAVS(2, 1, "Null signal");
    }
#endif /* SIGNULL || DECOSF1 */

#ifdef SIGHUP
    if (mesg[SIGHUP].pname == NULL) {
	mesg[SIGHUP].iname = "HUP"; 
	mesg[SIGHUP].pname = CSAVS(2, 2, "Hangup");
    }
#endif /* SIGHUP */

#ifdef SIGINT
    if (mesg[SIGINT].pname == NULL) {
	mesg[SIGINT].iname = "INT";
	mesg[SIGINT].pname = CSAVS(2, 3, "Interrupt");
    }
#endif /* SIGINT */

#ifdef SIGQUIT
    if (mesg[SIGQUIT].pname == NULL) {
	mesg[SIGQUIT].iname = "QUIT";
	mesg[SIGQUIT].pname = CSAVS(2, 4, "Quit");
    }
#endif /* SIGQUIT */

#ifdef SIGILL
    if (mesg[SIGILL].pname == NULL) {
	mesg[SIGILL].iname = "ILL";
	mesg[SIGILL].pname = CSAVS(2, 5, "Illegal instruction");
    }
#endif /* SIGILL */

#ifdef SIGTRAP
    if (mesg[SIGTRAP].pname == NULL) {
	mesg[SIGTRAP].iname = "TRAP";
	mesg[SIGTRAP].pname = CSAVS(2, 6, "Trace/BPT trap");
    }
#endif /* SIGTRAP */

#ifdef SIGABRT
    if (mesg[SIGABRT].pname == NULL) {
	mesg[SIGABRT].iname = "ABRT";
	mesg[SIGABRT].pname = CSAVS(2, 7, "Abort");
    }
#endif /* SIGABRT */

#ifdef SIGIOT
    if (mesg[SIGIOT].pname == NULL) {
	mesg[SIGIOT].iname = "IOT";
	mesg[SIGIOT].pname = CSAVS(2, 8, "IOT trap");
    }
#endif /* SIGIOT */

#ifdef SIGDANGER
    /* aiws */
    if (mesg[SIGDANGER].pname == NULL) {
	mesg[SIGDANGER].iname = "DANGER";
	mesg[SIGDANGER].pname = CSAVS(2, 9, "System Crash Imminent");
    }
#endif /* SIGDANGER */

#ifdef SIGERR
    /* _CRAY */
    if (mesg[SIGERR].pname == NULL) {
	mesg[SIGERR].iname = "ERR";
	mesg[SIGERR].pname = CSAVS(2, 10, "Error exit");
    }
#endif /* SIGERR */

#ifdef SIGEMT
    if (mesg[SIGEMT].pname == NULL) {
	mesg[SIGEMT].iname = "EMT";
	mesg[SIGEMT].pname = CSAVS(2, 11, "EMT trap");
    }
#endif /* SIGEMT */

#ifdef SIGFPE
    if (mesg[SIGFPE].pname == NULL) {
	mesg[SIGFPE].iname = "FPE";
	mesg[SIGFPE].pname = CSAVS(2, 12, "Floating exception");
    }
#endif /* SIGFPE */

#ifdef SIGKILL
    if (mesg[SIGKILL].pname == NULL) {
	mesg[SIGKILL].iname = "KILL";
	mesg[SIGKILL].pname = CSAVS(2, 13, "Killed");
    }
#endif /* SIGKILL */

#ifdef SIGUSR1
    if (mesg[SIGUSR1].pname == NULL) {
	mesg[SIGUSR1].iname = "USR1";
	mesg[SIGUSR1].pname = CSAVS(2, 14, "User signal 1");
    }
#endif /* SIGUSR1 */

#ifdef SIGUSR2
    if (mesg[SIGUSR2].pname == NULL) {
	mesg[SIGUSR2].iname = "USR2";
	mesg[SIGUSR2].pname = CSAVS(2, 15, "User signal 2");
    }
#endif /* SIGUSR2 */

#ifdef SIGSEGV
    if (mesg[SIGSEGV].pname == NULL) {
	mesg[SIGSEGV].iname = "SEGV";
	mesg[SIGSEGV].pname = CSAVS(2, 16, "Segmentation fault");
    }
#endif /* SIGSEGV */

#ifdef SIGBUS
    if (mesg[SIGBUS].pname == NULL) {
	mesg[SIGBUS].iname = "BUS";
	mesg[SIGBUS].pname = CSAVS(2, 17, "Bus error");
    }
#endif /* SIGBUS */

#ifdef SIGPRE
    /* _CRAY || IBMAIX */
    if (mesg[SIGPRE].pname == NULL) {
	mesg[SIGPRE].iname = "PRE";
	mesg[SIGPRE].pname = CSAVS(2, 18, "Program range error");
    }
#endif /* SIGPRE */

#ifdef SIGORE
    /* _CRAY */
    if (mesg[SIGORE].pname == NULL) {
	mesg[SIGORE].iname = "ORE";
	mesg[SIGORE].pname = CSAVS(2, 19, "Operand range error");
    }
#endif /* SIGORE */

#ifdef SIGSYS
    if (mesg[SIGSYS].pname == NULL) {
	mesg[SIGSYS].iname = "SYS";
	mesg[SIGSYS].pname = CSAVS(2, 20, "Bad system call");
    }
#endif /* SIGSYS */

#ifdef SIGPIPE
    if (mesg[SIGPIPE].pname == NULL) {
	mesg[SIGPIPE].iname = "PIPE";
	mesg[SIGPIPE].pname = CSAVS(2, 21, "Broken pipe");
    }
#endif /* SIGPIPE */

#ifdef SIGALRM
    if (mesg[SIGALRM].pname == NULL) {
	mesg[SIGALRM].iname = "ALRM";
	mesg[SIGALRM].pname = CSAVS(2, 22, "Alarm clock");
    }
#endif /* SIGALRM */

#ifdef SIGTERM
    if (mesg[SIGTERM].pname == NULL) {
	mesg[SIGTERM].iname = "TERM";
	mesg[SIGTERM].pname = CSAVS(2, 23, "Terminated");
    }
#endif /* SIGTERM */

/* SIGCLD vs SIGCHLD */
#if !defined(SIGCHLD) || defined(SOLARIS2) || defined(apollo) || defined(__EMX__)
    /* If we don't define SIGCHLD, or our OS prefers SIGCLD to SIGCHLD, */
    /* check for SIGCLD */
# ifdef SIGCLD
    if (mesg[SIGCLD].pname == NULL) {
	mesg[SIGCLD].iname = "CLD";
#  ifdef BSDJOBS
	mesg[SIGCLD].pname = CSAVS(2, 24, "Child status change");
#  else /* !BSDJOBS */
	mesg[SIGCLD].pname = CSAVS(2, 25, "Death of child");
#  endif /* BSDJOBS */
    }
# endif /* SIGCLD */
#else /* !(!SIGCHLD || SOLARIS2 || apollo || __EMX__) */
    /* We probably define SIGCHLD */
# ifdef SIGCHLD
    if (mesg[SIGCHLD].pname == NULL) {
	mesg[SIGCHLD].iname = "CHLD";
#  ifdef BSDJOBS
	mesg[SIGCHLD].pname = CSAVS(2, 27, "Child stopped or exited");
#  else /* !BSDJOBS */
	mesg[SIGCHLD].pname = CSAVS(2, 28, "Child exited");
#  endif /* BSDJOBS */
    }
# endif /* SIGCHLD */
#endif /* !SIGCHLD || SOLARIS2 || apollo || __EMX__ */

#ifdef SIGAPOLLO
    /* apollo */
    if (mesg[SIGAPOLLO].pname == NULL) {
	mesg[SIGAPOLLO].iname = "APOLLO";
	mesg[SIGAPOLLO].pname = CSAVS(2, 26, "Apollo-specific fault");
    }
#endif /* SIGAPOLLO */

#ifdef SIGPWR
    if (mesg[SIGPWR].pname == NULL) {
	mesg[SIGPWR].iname = "PWR";
	mesg[SIGPWR].pname = CSAVS(2, 29, "Power failure");
    }
#endif /* SIGPWR */

#ifdef SIGLOST
    if (mesg[SIGLOST].pname == NULL) {
	mesg[SIGLOST].iname = "LOST";
	mesg[SIGLOST].pname = CSAVS(2, 30, "Resource Lost");
    }
#endif /* SIGLOST */

#ifdef SIGBREAK
    /* __EMX__ */
    if (mesg[SIGBREAK].pname == NULL) {
	mesg[SIGBREAK].iname = "BREAK";
	mesg[SIGBREAK].pname = CSAVS(2, 31, "Break (Ctrl-Break)");
    }
#endif /* SIGBREAK */

#ifdef SIGIO
# if !defined(SIGPOLL) || SIGPOLL != SIGIO
    if (mesg[SIGIO].pname == NULL) {
	mesg[SIGIO].iname = "IO";
#  ifdef cray
	mesg[SIGIO].pname = CSAVS(2, 32, "Input/output possible signal");
#  else /* !cray */
	mesg[SIGIO].pname = CSAVS(2, 33, "Asynchronous I/O (select)");
#  endif /* cray */
    }
# endif /* !SIGPOLL || SIGPOLL != SIGIO */
#endif /* SIGIO */

#ifdef SIGURG
    if (mesg[SIGURG].pname == NULL) {
	mesg[SIGURG].iname = "URG";
	mesg[SIGURG].pname = CSAVS(2, 34, "Urgent condition on I/O channel");
    }
#endif /* SIGURG */

#ifdef SIGMT
    /* cray */
    if (mesg[SIGMT].pname == NULL) {
	mesg[SIGMT].iname = "MT";
	mesg[SIGMT].pname = CSAVS(2, 35, "Multitasking wake-up");
    }
#endif /* SIGMT */

#ifdef SIGMTKILL
    /* cray */
    if (mesg[SIGMTKILL].pname == NULL) {
	mesg[SIGMTKILL].iname = "MTKILL";
	mesg[SIGMTKILL].pname = CSAVS(2, 36, "Multitasking kill");
    }
#endif /* SIGMTKILL */

#ifdef SIGBUFIO
    /* _CRAYCOM */
    if (mesg[SIGBUFIO].pname == NULL) {
	mesg[SIGBUFIO].iname = "BUFIO";
	mesg[SIGBUFIO].pname = CSAVS(2, 37,
				    "Fortran asynchronous I/O completion");
    }
#endif /* SIGBUFIO */

#ifdef SIGRECOVERY
    /* _CRAYCOM */
    if (mesg[SIGRECOVERY].pname == NULL) {
	mesg[SIGRECOVERY].iname = "RECOVERY";
	mesg[SIGRECOVERY].pname = CSAVS(2, 38, "Recovery");
    }
#endif /* SIGRECOVERY */

#ifdef SIGUME
    /* _CRAYCOM */
    if (mesg[SIGUME].pname == NULL) {
	mesg[SIGUME].iname = "UME";
	mesg[SIGUME].pname = CSAVS(2, 39, "Uncorrectable memory error");
    }
#endif /* SIGUME */

#ifdef SIGCPULIM
    /* _CRAYCOM */
    if (mesg[SIGCPULIM].pname == NULL) {
	mesg[SIGCPULIM].iname = "CPULIM";
	mesg[SIGCPULIM].pname = CSAVS(2, 40, "CPU time limit exceeded");
    }
#endif /* SIGCPULIM */

#ifdef SIGSHUTDN
    /* _CRAYCOM */
    if (mesg[SIGSHUTDN].pname == NULL) {
	mesg[SIGSHUTDN].iname = "SHUTDN";
	mesg[SIGSHUTDN].pname = CSAVS(2, 41, "System shutdown imminent");
    }
#endif /* SIGSHUTDN */

#ifdef SIGNOWAK
    /* _CRAYCOM */
    if (mesg[SIGNOWAK].pname == NULL) {
	mesg[SIGNOWAK].iname = "NOWAK";
	mesg[SIGNOWAK].pname = CSAVS(2, 42,
				    "Micro-tasking group-no wakeup flag set");
    }
#endif /* SIGNOWAK */

#ifdef SIGTHERR
    /* _CRAYCOM */
    if (mesg[SIGTHERR].pname == NULL) {
	mesg[SIGTHERR].iname = "THERR";
	mesg[SIGTHERR].pname = CSAVS(2, 43, 
			    "Thread error - (use cord -T for detailed info)");
    }
#endif /* SIGTHERR */

#ifdef SIGRPE
    /* cray */
    if (mesg[SIGRPE].pname == NULL) {
	mesg[SIGRPE].pname = CSAVS(2, 44, "CRAY Y-MP register parity error");
	mesg[SIGRPE].iname = "RPE";
    }
#endif /* SIGRPE */

#ifdef SIGINFO
    if (mesg[SIGINFO].pname == NULL) {
	mesg[SIGINFO].iname = "INFO";
	mesg[SIGINFO].pname = CSAVS(2, 45, "Information request");
    }
#endif /* SIGINFO */

#ifdef SIGSTOP
    if (mesg[SIGSTOP].pname == NULL) {
	mesg[SIGSTOP].iname = "STOP";
# ifdef SUSPENDED
	mesg[SIGSTOP].pname = CSAVS(2, 46, "Suspended (signal)");
# else /* !SUSPENDED */
	mesg[SIGSTOP].pname = CSAVS(2, 47, "Stopped (signal)");
# endif /* SUSPENDED */
    }
#endif /* SIGSTOP */

#ifdef SIGTSTP
    if (mesg[SIGTSTP].pname == NULL) {
	mesg[SIGTSTP].iname = "TSTP";
# ifdef SUSPENDED
	mesg[SIGTSTP].pname = CSAVS(2, 48, "Suspended");
# else /* !SUSPENDED */
	mesg[SIGTSTP].pname = CSAVS(2, 49, "Stopped");
# endif /* SUSPENDED */
    }
#endif /* SIGTSTP */

#ifdef SIGCONT
    if (mesg[SIGCONT].pname == NULL) {
	mesg[SIGCONT].iname = "CONT";
	mesg[SIGCONT].pname = CSAVS(2, 50, "Continued");
    }
#endif /* SIGCONT */

#ifdef SIGTTIN
    if (mesg[SIGTTIN].pname == NULL) {
	mesg[SIGTTIN].iname = "TTIN";
# ifdef SUSPENDED
	mesg[SIGTTIN].pname = CSAVS(2, 51, "Suspended (tty input)");
# else /* !SUSPENDED */
	mesg[SIGTTIN].pname = CSAVS(2, 52, "Stopped (tty input)");
# endif /* SUSPENDED */
    }
#endif /* SIGTTIN */

#ifdef SIGTTOU
    if (mesg[SIGTTOU].pname == NULL) {
	mesg[SIGTTOU].iname = "TTOU";
# ifdef SUSPENDED
	mesg[SIGTTOU].pname = CSAVS(2, 53, "Suspended (tty output)");
# else /* SUSPENDED */
	mesg[SIGTTOU].pname = CSAVS(2, 54, "Stopped (tty output)");
# endif /* SUSPENDED */
    }
#endif /* SIGTTOU */

#ifdef SIGWIND
    /* UNIXPC */
    if (mesg[SIGWIND].pname == NULL) {
	mesg[SIGWIND].iname = "WIND";
	mesg[SIGWIND].pname = CSAVS(2, 55, "Window status changed");
    }
#endif /* SIGWIND */

#ifdef SIGWINDOW
    if (mesg[SIGWINDOW].pname == NULL) {
	mesg[SIGWINDOW].iname = "WINDOW";
	mesg[SIGWINDOW].pname = CSAVS(2, 56, "Window size changed");
    }
#endif /* SIGWINDOW */

#ifdef SIGWINCH
    if (mesg[SIGWINCH].pname == NULL) {
	mesg[SIGWINCH].iname = "WINCH";
	mesg[SIGWINCH].pname = CSAVS(2, 56, "Window size changed");
    }
#endif /* SIGWINCH */

#ifdef SIGPHONE
    /* UNIXPC */
    if (mesg[SIGPHONE].pname == NULL) {
	mesg[SIGPHONE].iname = "PHONE";
	mesg[SIGPHONE].pname = CSAVS(2, 57, "Phone status changed");
    }
# endif /* SIGPHONE */

#ifdef SIGXCPU
    if (mesg[SIGXCPU].pname == NULL) {
	mesg[SIGXCPU].iname = "XCPU";
	mesg[SIGXCPU].pname = CSAVS(2, 58, "Cputime limit exceeded");
    }
#endif /* SIGXCPU */

#ifdef SIGXFSZ
    if (mesg[SIGXFSZ].pname == NULL) {
	mesg[SIGXFSZ].iname = "XFSZ";
	mesg[SIGXFSZ].pname = CSAVS(2, 59, "Filesize limit exceeded");
    }
#endif /* SIGXFSZ */

#ifdef SIGVTALRM
    if (mesg[SIGVTALRM].pname == NULL) {
	mesg[SIGVTALRM].iname = "VTALRM";
	mesg[SIGVTALRM].pname = CSAVS(2, 60, "Virtual time alarm");
    }
#endif /* SIGVTALRM */

#ifdef SIGPROF
    if (mesg[SIGPROF].pname == NULL) {
	mesg[SIGPROF].iname = "PROF";
	mesg[SIGPROF].pname = CSAVS(2, 61, "Profiling time alarm");
    }
#endif /* SIGPROF */

#ifdef SIGDIL
    /* hpux */
    if (mesg[SIGDIL].pname == NULL) {
	mesg[SIGDIL].iname = "DIL";
	mesg[SIGDIL].pname = CSAVS(2, 62, "DIL signal");
    }
#endif /* SIGDIL */

#ifdef SIGPOLL
    if (mesg[SIGPOLL].pname == NULL) {
	mesg[SIGPOLL].iname = "POLL";
	mesg[SIGPOLL].pname = CSAVS(2, 63, "Pollable event occured");
    }
#endif /* SIGPOLL */

#ifdef SIGWAITING
    /* solaris */
    if (mesg[SIGWAITING].pname == NULL) {
	mesg[SIGWAITING].iname = "WAITING";
	mesg[SIGWAITING].pname = CSAVS(2, 64, "Process's lwps are blocked");
    }
#endif /* SIGWAITING */

#ifdef SIGLWP
    /* solaris */
    if (mesg[SIGLWP].pname == NULL) {
	mesg[SIGLWP].iname = "LWP";
	mesg[SIGLWP].pname = CSAVS(2, 65, "Special LWP signal");
    }
#endif /* SIGLWP */

#ifdef SIGFREEZE
    /* solaris */
    if (mesg[SIGFREEZE].pname == NULL) {
	mesg[SIGFREEZE].iname = "FREEZE";
	mesg[SIGFREEZE].pname = CSAVS(2, 66, "Special CPR Signal");
    }
#endif /* SIGFREEZE */

#ifdef SIGTHAW
    /* solaris */
    if (mesg[SIGTHAW].pname == NULL) {
	mesg[SIGTHAW].iname = "THAW";
	mesg[SIGTHAW].pname = CSAVS(2, 67, "Special CPR Signal");
    }
#endif /* SIGTHAW */

#ifdef SIGCANCEL
    /* solaris */
    if (mesg[SIGCANCEL].pname == NULL) {
	mesg[SIGCANCEL].iname = "CANCEL";
	mesg[SIGCANCEL].pname = CSAVS(2, 109, 
	    "Thread cancellation signal used by libthread");
    }
#endif /* SIGCANCEL */

/*
 * Careful, some OS's (HP/UX 10.0) define these as -1
 */
#ifdef SIGRTMIN 
    /*
     * Cannot do this at compile time; Solaris2 uses _sysconf for these
     */
    if (SIGRTMIN > 0 && SIGRTMIN < NUMSIG) { 
	if (mesg[SIGRTMIN].pname == NULL) {
	    mesg[SIGRTMIN].iname = "RTMIN";
	    mesg[SIGRTMIN].pname = CSAVS(2, 68, "First Realtime Signal");
	}

	if (SIGRTMIN + 1 < SIGRTMAX && SIGRTMIN + 1 < NUMSIG &&
	    mesg[SIGRTMIN+1].pname == NULL) {
	    mesg[SIGRTMIN+1].iname = "RTMIN+1";
	    mesg[SIGRTMIN+1].pname = CSAVS(2, 69, "Second Realtime Signal");
	}

	if (SIGRTMIN + 2 < SIGRTMAX && SIGRTMIN + 2 < NUMSIG &&
	    mesg[SIGRTMIN+2].pname == NULL) {
	    mesg[SIGRTMIN+2].iname = "RTMIN+2";
	    mesg[SIGRTMIN+2].pname = CSAVS(2, 70, "Third Realtime Signal");
	}

	if (SIGRTMIN + 3 < SIGRTMAX && SIGRTMIN + 3 < NUMSIG &&
	    mesg[SIGRTMIN+3].pname == NULL) {
	    mesg[SIGRTMIN+3].iname = "RTMIN+3";
	    mesg[SIGRTMIN+3].pname = CSAVS(2, 71, "Fourth Realtime Signal");
	}
    }
#endif /* SIGRTMIN */

#ifdef SIGRTMAX
    /*
     * Cannot do this at compile time; Solaris2 uses _sysconf for these
     */
    if (SIGRTMAX > 0 && SIGRTMAX < NUMSIG) {
	if (SIGRTMAX - 3 > SIGRTMIN && mesg[SIGRTMAX-3].pname == NULL) {
	    mesg[SIGRTMAX-3].iname = "RTMAX-3";
	    mesg[SIGRTMAX-3].pname = CSAVS(2, 72,
					   "Fourth Last Realtime Signal");
	}

	if (SIGRTMAX - 2 > SIGRTMIN && mesg[SIGRTMAX-2].pname == NULL) {
	    mesg[SIGRTMAX-2].iname = "RTMAX-2";
	    mesg[SIGRTMAX-2].pname = CSAVS(2, 73,
					   "Third Last Realtime Signal");
	}

	if (SIGRTMAX - 1 > SIGRTMIN && mesg[SIGRTMAX-1].pname == NULL) {
	    mesg[SIGRTMAX-1].iname = "RTMAX-1";
	    mesg[SIGRTMAX-1].pname = CSAVS(2, 74,
					   "Second Last Realtime Signal");
	}

	if (SIGRTMAX > SIGRTMIN && mesg[SIGRTMAX].pname == NULL) {
	    mesg[SIGRTMAX].iname = "RTMAX";
	    mesg[SIGRTMAX].pname = CSAVS(2, 75,
					 "Last Realtime Signal");
	}
    }
#endif /* SIGRTMAX */


#ifdef SIGAIO
    /* aiws */
    if (mesg[SIGAIO].pname == NULL) {
	mesg[SIGAIO].iname = "AIO";
	mesg[SIGAIO].pname = CSAVS(2, 76, "LAN Asyncronous I/O");
    }
#endif /* SIGAIO */

#ifdef SIGPTY
    /* aiws */
    if (mesg[SIGPTY].pname == NULL) {
	mesg[SIGPTY].iname = "PTY";
	mesg[SIGPTY].pname = CSAVS(2, 77, "PTY read/write availability");
    }
#endif /* SIGPTY */

#ifdef SIGIOINT
    /* aiws */
    if (mesg[SIGIOINT].pname == NULL) {
	mesg[SIGIOINT].iname = "IOINT";
	mesg[SIGIOINT].pname = CSAVS(2, 78, "I/O intervention required");
    }
#endif /* SIGIOINT */

#ifdef SIGGRANT
    /* aiws */
    if (mesg[SIGGRANT].pname == NULL) {
	mesg[SIGGRANT].iname = "GRANT";
	mesg[SIGGRANT].pname = CSAVS(2, 79, "HFT monitor mode granted");
    }
#endif /* SIGGRANT */

#ifdef SIGRETRACT
    /* aiws */
    if (mesg[SIGRETRACT].pname == NULL) {
	mesg[SIGRETRACT].iname = "RETRACT";
	mesg[SIGRETRACT].pname = CSAVS(2, 80,
				  "HFT monitor mode should be relinguished");
    }
#endif /* SIGRETRACT */

#ifdef SIGSOUND
    /* aiws */
    if (mesg[SIGSOUND].pname == NULL) {
	mesg[SIGSOUND].iname = "SOUND";
	mesg[SIGSOUND].pname = CSAVS(2, 81, "HFT sound control has completed");
    }
#endif /* SIGSOUND */

#ifdef SIGSMSG
    /* aiws */
    if (mesg[SIGSMSG].pname == NULL) {
	mesg[SIGSMSG].iname = "SMSG";
	mesg[SIGSMSG].pname = CSAVS(2, 82, "Data in HFT ring buffer");
    }
#endif /* SIGMSG */

#ifdef SIGMIGRATE
    /* IBMAIX */
    if (mesg[SIGMIGRATE].pname == NULL) {
	mesg[SIGMIGRATE].iname = "MIGRATE";
	mesg[SIGMIGRATE].pname = CSAVS(2, 83, "Migrate process");
    }
#endif /* SIGMIGRATE */

#ifdef SIGSAK
    /* IBMAIX */
    if (mesg[SIGSAK].pname == NULL) {
	mesg[SIGSAK].iname = "SAK";
	mesg[SIGSAK].pname = CSAVS(2, 84, "Secure attention key");
    }
#endif /* SIGSAK */

#ifdef SIGRESCHED
    /* CX/UX */
    if (mesg[SIGRESCHED].pname == NULL) {
	mesg[SIGRESCHED].iname = "RESCHED";
	mesg[SIGRESCHED].pname = CSAVS(2, 85, "Reschedule");
    }
#endif /* SIGRESCHED */

#ifdef SIGDEBUG
    /* VMS_POSIX */
    if (mesg[SIGDEBUG].pname == NULL) {
	mesg[SIGDEBUG].iname = "DEBUG";
	mesg[SIGDEBUG].pname = CSAVS(2, 86, "Signaling SS$_DEBUG");
    }
#endif /* SIGDEBUG */

#ifdef SIGPRIO
    /* Lynx */
    if (mesg[SIGPRIO].pname == NULL) {
	mesg[SIGPRIO].iname = "PRIO";
	mesg[SIGPRIO].pname = CSAVS(2, 87, "Priority changed");
    }
#endif /* SIGPRIO */

#ifdef SIGDLK
    /* cray */
    if (mesg[SIGDLK].pname == NULL) {
	mesg[SIGDLK].iname = "DLK";
	mesg[SIGDLK].pname = CSAVS(2, 88, "True deadlock detected");
    }
#endif /* SIGDLK */

#ifdef SIGTINT
    /* masscomp */
    if (mesg[SIGTINT].pname == NULL) {
	mesg[SIGTINT].iname = "TINT";
	mesg[SIGTINT].pname = CSAVS(2, 89, "New input character");
    }
#endif /* SIGTINT */

#ifdef SIGSTKFLT
    if (mesg[SIGSTKFLT].pname == NULL) {
	mesg[SIGSTKFLT].iname = "STKFLT";
	mesg[SIGSTKFLT].pname = CSAVS(2, 90, "Stack limit exceeded");
    }
#endif /* SIGSTKFLT */

#ifdef SIGUNUSED
    if (mesg[SIGUNUSED].pname == NULL) {
	mesg[SIGUNUSED].iname = "UNUSED";
	mesg[SIGUNUSED].pname = CSAVS(2, 91, "Unused signal");
    }
#endif /* SIGUNUSED */

#ifdef SIGOVLY
    /* SX-4 */
    if (mesg[SIGOVLY].pname == NULL) {
	mesg[SIGOVLY].iname = "OVLY";
	mesg[SIGOVLY].pname = CSAVS(2, 92, "LM overlay");
    }
#endif /* SIGOVLY */

#ifdef SIGFRZ
    /* SX-4 */
    if (mesg[SIGFRZ].pname == NULL) {
	mesg[SIGFRZ].iname = "FRZ";
	mesg[SIGFRZ].pname = CSAVS(2, 93, "system freeze");
    }
#endif /* SIGFRZ */

#ifdef SIGDFRZ
    /* SX-4 */
    if (mesg[SIGDFRZ].pname == NULL) {
	mesg[SIGDFRZ].iname = "DFRZ";
	mesg[SIGDFRZ].pname = CSAVS(2, 94, "system defreeze");
    }
#endif /* SIGDFRZ */

#ifdef SIGDEAD
    /* SX-4 */
    if (mesg[SIGDEAD].pname == NULL) {
	mesg[SIGDEAD].iname = "DEAD";
	mesg[SIGDEAD].pname = CSAVS(2, 95, "dead lock");
    }
#endif /* SIGDEAD */

#ifdef SIGXMEM
    /* SX-4 */
    if (mesg[SIGXMEM].pname == NULL) {
	mesg[SIGXMEM].iname = "XMEM";
	mesg[SIGXMEM].pname = CSAVS(2, 96, "exceeded memory size limit");
    }
#endif /* SIGXMEM */

#ifdef SIGXDSZ
    /* SX-4 */
    if (mesg[SIGXDSZ].pname == NULL) {
	mesg[SIGXDSZ].iname = "XDSZ";
	mesg[SIGXDSZ].pname = CSAVS(2, 97, "exceeded data size limit");
    }
#endif /* SIGXDSZ */

#ifdef SIGMEM32
    /* SX-4 */
    if (mesg[SIGMEM32].pname == NULL) {
	mesg[SIGMEM32].iname = "MEM32";
	mesg[SIGMEM32].pname = CSAVS(2, 98, "exceeded memory size limit of 32KB");
    }
#endif /* SIGMEM32 */

#ifdef SIGNMEM
    /* SX-4 */
    if (mesg[SIGNMEM].pname == NULL) {
	mesg[SIGNMEM].iname = "NMEM";
	mesg[SIGNMEM].pname = CSAVS(2, 99, "exce error for no memory");
    }
#endif /* SIGNMEM */

#ifdef SIGCHKP
    /* SX-4 */
    if (mesg[SIGCHKP].pname == NULL) {
	mesg[SIGCHKP].iname = "CHKP";
	mesg[SIGCHKP].pname = CSAVS(2, 100, "check point start");
    }
#endif /* SIGCHKP */

#ifdef SIGKCHKP
#if 0
    /* SX-4 */
    if (mesg[SIGKCHKP].pname == NULL) {
	mesg[SIGKCHKP].iname = "KCHKP";
	mesg[SIGKCHKP].pname = CSAVS(2, 101, "check point start of kernel");
    }
#endif
#endif /* SIGKCHKP */

#ifdef SIGRSTA
    /* SX-4 */
    if (mesg[SIGRSTA].pname == NULL) {
	mesg[SIGRSTA].iname = "RSTA";
	mesg[SIGRSTA].pname = CSAVS(2, 102, "restart start");
    }
#endif /* SIGRSTA */

#ifdef SIGKRSTA
#if 0
    /* SX-4 */
    if (mesg[SIGKRSTA].pname == NULL) {
	mesg[SIGKRSTA].iname = "KRSTA";
	mesg[SIGKRSTA].pname = CSAVS(2, 103, "restart of kernel");
    }
#endif
#endif /* SIGKRSTA */

#ifdef SIGXXMU
    /* SX-4 */
    if (mesg[SIGXXMU].pname == NULL) {
	mesg[SIGXXMU].iname = "XXMU";
	mesg[SIGXXMU].pname = CSAVS(2, 104, "exeeded XMU size limit");
    }
#endif /* SIGXXMU */

#ifdef SIGXRLG0
    /* SX-4 */
    if (mesg[SIGXRLG0].pname == NULL) {
	mesg[SIGXRLG0].iname = "XRLG0";
	mesg[SIGXRLG0].pname = CSAVS(2, 105, "exeeded RLG0 limit");
    }
#endif /* SIGXRLG0 */

#ifdef SIGXRLG1
    /* SX-4 */
    if (mesg[SIGXRLG1].pname == NULL) {
	mesg[SIGXRLG1].iname = "XRLG1";
	mesg[SIGXRLG1].pname = CSAVS(2, 106, "exeeded RLG1 limit");
    }
#endif /* SIGXRLG1 */

#ifdef SIGXRLG2
    /* SX-4 */
    if (mesg[SIGXRLG2].pname == NULL) {
	mesg[SIGXRLG2].iname = "XRLG2";
	mesg[SIGXRLG2].pname = CSAVS(2, 107, "exeeded RLG2 limit");
    }
#endif /* SIGXRLG2 */

#ifdef SIGXRLG3
    /* SX-4 */
    if (mesg[SIGXRLG3].pname == NULL) {
	mesg[SIGXRLG3].iname = "XRLG3";
	mesg[SIGXRLG3].pname = CSAVS(2, 108, "exeeded RLG3 limit");
    }
#endif /* SIGXRLG3 */
}
Exemple #3
0
void
terminit()
{
#ifdef NLS_CATALOGS
    int i;

    for (i = 0; i < T_str + 1; i++)
	xfree((ptr_t) tstr[i].long_name);

    for (i = 0; i < T_val + 1; i++)
	xfree((ptr_t) tval[i].long_name);
#endif

    tstr[T_al].name = "al";
    tstr[T_al].long_name = CSAVS(4, 1, "add new blank line");

    tstr[T_bl].name = "bl";
    tstr[T_bl].long_name = CSAVS(4, 2, "audible bell");

    tstr[T_cd].name = "cd";
    tstr[T_cd].long_name = CSAVS(4, 3, "clear to bottom");

    tstr[T_ce].name = "ce";
    tstr[T_ce].long_name = CSAVS(4, 4, "clear to end of line");

    tstr[T_ch].name = "ch";
    tstr[T_ch].long_name = CSAVS(4, 5, "cursor to horiz pos");

    tstr[T_cl].name = "cl";
    tstr[T_cl].long_name = CSAVS(4, 6, "clear screen");

    tstr[T_dc].name = "dc";
    tstr[T_dc].long_name = CSAVS(4, 7, "delete a character");

    tstr[T_dl].name = "dl";
    tstr[T_dl].long_name = CSAVS(4, 8, "delete a line");

    tstr[T_dm].name = "dm";
    tstr[T_dm].long_name = CSAVS(4, 9, "start delete mode");

    tstr[T_ed].name = "ed";
    tstr[T_ed].long_name = CSAVS(4, 10, "end delete mode");

    tstr[T_ei].name = "ei";
    tstr[T_ei].long_name = CSAVS(4, 11, "end insert mode");

    tstr[T_fs].name = "fs";
    tstr[T_fs].long_name = CSAVS(4, 12, "cursor from status line");

    tstr[T_ho].name = "ho";
    tstr[T_ho].long_name = CSAVS(4, 13, "home cursor");

    tstr[T_ic].name = "ic";
    tstr[T_ic].long_name = CSAVS(4, 14, "insert character");

    tstr[T_im].name = "im";
    tstr[T_im].long_name = CSAVS(4, 15, "start insert mode");

    tstr[T_ip].name = "ip";
    tstr[T_ip].long_name = CSAVS(4, 16, "insert padding");

    tstr[T_kd].name = "kd";
    tstr[T_kd].long_name = CSAVS(4, 17, "sends cursor down");

    tstr[T_kl].name = "kl";
    tstr[T_kl].long_name = CSAVS(4, 18, "sends cursor left");

    tstr[T_kr].name = "kr";
    tstr[T_kr].long_name = CSAVS(4, 19, "sends cursor right");

    tstr[T_ku].name = "ku";
    tstr[T_ku].long_name = CSAVS(4, 20, "sends cursor up");

    tstr[T_md].name = "md";
    tstr[T_md].long_name = CSAVS(4, 21, "begin bold");

    tstr[T_me].name = "me";
    tstr[T_me].long_name = CSAVS(4, 22, "end attributes");

    tstr[T_nd].name = "nd";
    tstr[T_nd].long_name = CSAVS(4, 23, "non destructive space");

    tstr[T_se].name = "se";
    tstr[T_se].long_name = CSAVS(4, 24, "end standout");

    tstr[T_so].name = "so";
    tstr[T_so].long_name = CSAVS(4, 25, "begin standout");

    tstr[T_ts].name = "ts";
    tstr[T_ts].long_name = CSAVS(4, 26, "cursor to status line");

    tstr[T_up].name = "up";
    tstr[T_up].long_name = CSAVS(4, 27, "cursor up one");

    tstr[T_us].name = "us";
    tstr[T_us].long_name = CSAVS(4, 28, "begin underline");

    tstr[T_ue].name = "ue";
    tstr[T_ue].long_name = CSAVS(4, 29, "end underline");

    tstr[T_vb].name = "vb";
    tstr[T_vb].long_name = CSAVS(4, 30, "visible bell");

    tstr[T_DC].name = "DC";
    tstr[T_DC].long_name = CSAVS(4, 31, "delete multiple chars");

    tstr[T_DO].name = "DO";
    tstr[T_DO].long_name = CSAVS(4, 32, "cursor down multiple");

    tstr[T_IC].name = "IC";
    tstr[T_IC].long_name = CSAVS(4, 33, "insert multiple chars");

    tstr[T_LE].name = "LE";
    tstr[T_LE].long_name = CSAVS(4, 34, "cursor left multiple");

    tstr[T_RI].name = "RI";
    tstr[T_RI].long_name = CSAVS(4, 35, "cursor right multiple");

    tstr[T_UP].name = "UP";
    tstr[T_UP].long_name = CSAVS(4, 36, "cursor up multiple");

    tstr[T_kh].name = "kh";
    tstr[T_kh].long_name = CSAVS(4, 37, "send cursor home");

    tstr[T_at7].name = "@7";
    tstr[T_at7].long_name = CSAVS(4, 38, "send cursor end");

    tstr[T_str].name = NULL;
    tstr[T_str].long_name = NULL;


    tval[T_am].name = "am";
    tval[T_am].long_name = CSAVS(4, 37, "Has automatic margins");

    tval[T_pt].name = "pt";
    tval[T_pt].long_name = CSAVS(4, 38, "Can use physical tabs");

    tval[T_li].name = "li";
    tval[T_li].long_name = CSAVS(4, 39, "Number of lines");

    tval[T_co].name = "co";
    tval[T_co].long_name = CSAVS(4, 40, "Number of columns");

    tval[T_km].name = "km";
    tval[T_km].long_name = CSAVS(4, 41, "Has meta key");

    tval[T_xn].name = "xn";
    tval[T_xn].long_name = CSAVS(4, 42, "Newline ignored at right margin");

    tval[T_val].name = NULL;
    tval[T_val].long_name = NULL;
}