2N/A#
2N/A# CDDL HEADER START
2N/A#
2N/A# The contents of this file are subject to the terms of the
2N/A# Common Development and Distribution License, Version 1.0 only
2N/A# (the "License"). You may not use this file except in compliance
2N/A# with the License.
2N/A#
2N/A# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2N/A# or http://www.opensolaris.org/os/licensing.
2N/A# See the License for the specific language governing permissions
2N/A# and limitations under the License.
2N/A#
2N/A# When distributing Covered Code, include this CDDL HEADER in each
2N/A# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2N/A# If applicable, add the following below this CDDL HEADER, with the
2N/A# fields enclosed by brackets "[]" replaced with your own identifying
2N/A# information: Portions Copyright [yyyy] [name of copyright owner]
2N/A#
2N/A# CDDL HEADER END
2N/A#
2N/A# Copyright (c) 1995-1998 by Sun Microsystems, Inc.
2N/A# All rights reserved.
2N/A#
2N/A# ident "%Z%%M% %I% %E% SMI"
2N/A#
2N/A# mkterm.awk
2N/A#
2N/A# XCurses Library
2N/A#
2N/A# Copyright 1990, 1995 by Mortice Kern Systems Inc. All rights reserved.
2N/A#
2N/A# $Header: /team/ps/sun_xcurses/archive/local_changes/xcurses/src/lib/libxcurses/src/libc/xcurses/rcs/mkterm.awk 1.7 1998/06/04 18:43:42 cbates Exp $
2N/A#
2N/A# USAGE:
2N/A# awk -f mkterm.awk caps >term.h
2N/A#
2N/A
2N/ABEGIN {
2N/Aprint "/*"
2N/Aprint " * Copyright (c) 1998 by Sun Microsystems, Inc."
2N/Aprint " * All rights reserved."
2N/Aprint " */"
2N/Aprint
2N/Aprint "#ifndef _TERM_H"
2N/Aprint "#define _TERM_H"
2N/Aprint
2N/Aprint "#pragma ident \"@(#)term.h %I% %E% SMI\""
2N/Aprint
2N/Aprint "/*"
2N/Aprint " * term.h"
2N/Aprint " *"
2N/Aprint " * XCurses Library"
2N/Aprint " *"
2N/Aprint " * **** THIS FILE IS MACHINE GENERATED."
2N/Aprint " * **** DO NOT EDIT THIS FILE."
2N/Aprint " *"
2N/Aprint " * Copyright 1990, 1995 by Mortice Kern Systems Inc. All rights reserved."
2N/Aprint " *"
2N/Aprintf " * $Header%s\n", "$"
2N/Aprint " */"
2N/Aprint
2N/Aprint
2N/Aprint "#ifdef __cplusplus"
2N/Aprint "extern \"C\" {"
2N/Aprint "#endif"
2N/Aprint
2N/Aprint "#define __TERM cur_term->"
2N/A}
2N/A
2N/A$4 == "bool" {
2N/A printf "#define %s\t\t__TERM _bool[%d]\n", $1, BoolCount++
2N/A}
2N/A
2N/A$4 == "number" {
2N/A printf "#define %s\t\t__TERM _num[%d]\n", $1, NumberCount++
2N/A}
2N/A
2N/A$4 == "str" {
2N/A printf "#define %s\t\t__TERM _str[%d]\n", $1, StringCount++
2N/A}
2N/A
2N/AEND {
2N/Aprint
2N/Aprintf "#define __COUNT_BOOL\t\t%d\n", BoolCount
2N/Aprintf "#define __COUNT_NUM\t\t%d\n", NumberCount
2N/Aprintf "#define __COUNT_STR\t\t%d\n", StringCount
2N/Aprint
2N/A#print "/*"
2N/A#print " * MKS Header format for terminfo database files."
2N/A#print " *"
2N/A#print " * The header consists of six short integers, stored using VAX/PDP style"
2N/A#print " * byte swapping (least-significant byte first). The integers are"
2N/A#print " *"
2N/A#print " * 1) magic number (octal 0432);"
2N/A#print " * 2) the size, in bytes, of the names sections;"
2N/A#print " * 3) the number of bytes in the boolean section;"
2N/A#print " * 4) the number of short integers in the numbers section;"
2N/A#print " * 5) the number of offsets (short integers) in the strings section;"
2N/A#print " * 6) the size, in bytes, of the string table."
2N/A#print " *"
2N/A#print " * Between the boolean and number sections, a null byte is inserted, if"
2N/A#print " * necessary, to ensure that the number section begins on an even byte"
2N/A#print " * offset. All short integers are aligned on a short word boundary."
2N/A#print " */"
2N/A#print
2N/A#print "#define __TERMINFO_MAGIC\t\t0432"
2N/A#print
2N/A#print "typedef struct {"
2N/A#print "\tshort magic;"
2N/A#print "\tshort name_size;"
2N/A#print "\tshort bool_count;"
2N/A#print "\tshort num_count;"
2N/A#print "\tshort str_count;"
2N/A#print "\tshort str_size;"
2N/A#print "} terminfo_header_t;"
2N/A#print
2N/Aprint "/*"
2N/Aprint " * The following __MOVE_ constants are indices into the _move[] member"
2N/Aprint " * of a SCREEN structure. The array is used by m_mvcur() for cursor"
2N/Aprint " * motion costs and initialized by newterm()."
2N/Aprint " *"
2N/Aprint " * The following indices refer to relative cursor motion actions that"
2N/Aprint " * have a base-cost times the distance/count."
2N/Aprint " */"
2N/Aprint "#define __MOVE_UP\t\t0"
2N/Aprint "#define __MOVE_DOWN\t\t1"
2N/Aprint "#define __MOVE_LEFT\t\t2"
2N/Aprint "#define __MOVE_RIGHT\t\t3"
2N/Aprint "#define __MOVE_TAB\t\t4"
2N/Aprint "#define __MOVE_BACK_TAB\t\t5"
2N/Aprint
2N/Aprint "#define __MOVE_MAX_RELATIVE\t6"
2N/Aprint
2N/Aprint "/*"
2N/Aprint " * These should have fixed costs."
2N/Aprint " */"
2N/Aprint "#define __MOVE_RETURN\t\t6"
2N/Aprint "#define __MOVE_HOME\t\t7"
2N/Aprint "#define __MOVE_LAST_LINE\t8"
2N/Aprint
2N/Aprint "/*"
2N/Aprint " * These have worst case cost based on moving the maximum possible"
2N/Aprint " * value for a parameter given the screen size."
2N/Aprint " */"
2N/Aprint "#define __MOVE_N_UP\t\t9"
2N/Aprint "#define __MOVE_N_DOWN\t\t10"
2N/Aprint "#define __MOVE_N_LEFT\t\t11"
2N/Aprint "#define __MOVE_N_RIGHT\t\t12"
2N/Aprint "#define __MOVE_ROW\t\t13"
2N/Aprint "#define __MOVE_COLUMN\t\t14"
2N/Aprint "#define __MOVE_ROW_COLUMN\t15"
2N/Aprint
2N/Aprint "#define __MOVE_MAX\t\t16"
2N/Aprint
2N/Aprint "/*"
2N/Aprint " * For a cursor motion to be used there must be a base-cost of at least 1."
2N/Aprint " */"
2N/Aprint "#define __MOVE_INFINITY\t\t1000"
2N/Aprint
2N/Aprint "#define __TERM_ISATTY_IN\t0x0001\t/* Input is a terminal */"
2N/Aprint "#define __TERM_ISATTY_OUT\t0x0002\t/* Output is a terminal */"
2N/Aprint "#define __TERM_HALF_DELAY\t0x0004\t/* halfdelay() has priority. */"
2N/Aprint "#define __TERM_INSERT_MODE\t0x0008\t/* Terminal is in insert mode. */"
2N/Aprint "#define __TERM_NL_IS_CRLF\t0x8000\t/* Newline is mapped on output. */"
2N/Aprint
2N/Aprint "/*"
2N/Aprint " * Opaque data type. Keep your grubby mits off."
2N/Aprint " */"
2N/Aprint "typedef struct {"
2N/Aprint "\tint _ifd;\t/* Input file descriptor */"
2N/Aprint "\tint _ofd;\t/* Output file descriptor */"
2N/A#print "\tstruct termios _prog;"
2N/A#print "\tstruct termios _shell;"
2N/A#print "\tstruct termios _save;"
2N/A#print "\tstruct termios _actual;\t/* What has actually been set in the terminal */"
2N/Aprint "\tvoid *_prog;"
2N/Aprint "\tvoid *_shell;"
2N/Aprint "\tvoid *_save;"
2N/Aprint "\tvoid *_actual;\t/* What has actually been set in the terminal */"
2N/Aprint "\tshort _co;\t/* Current color-pair. */"
2N/Aprint "\tunsigned short _at;\t/* Current attribute state. */"
2N/Aprint "\tshort (*_pair)[2];"
2N/Aprint "\tshort (*_color)[3];"
2N/Aprint "\tunsigned short _flags;"
2N/Aprint "\tchar _bool[__COUNT_BOOL];"
2N/Aprint "\tshort _num[__COUNT_NUM];"
2N/Aprint "\tchar *_str[__COUNT_STR];\t/* Pointers into _str_table. */"
2N/Aprint "\tchar *_str_table;"
2N/Aprint "\tchar *_names;\t/* Terminal alias in _str_table. */"
2N/Aprint "\tchar *_term;\t/* TERM name loaded. */"
2N/Aprint "\tstruct {"
2N/Aprint "\t\tchar *_seq;"
2N/Aprint "\t\tshort _cost;"
2N/Aprint "\t} _move[__MOVE_MAX];"
2N/Aprint "} TERMINAL;"
2N/Aprint
2N/Aprint "extern TERMINAL *cur_term;"
2N/Aprint
2N/Aprint "#if !(defined(__cplusplus) && defined(_BOOL))"
2N/Aprint "#ifndef _BOOL_DEFINED"
2N/Aprint "typedef short bool;"
2N/Aprint "#define _BOOL_DEFINED"
2N/Aprint "#endif"
2N/Aprint "#endif"
2N/Aprint
2N/Aprint "/*"
2N/Aprint " * Globals"
2N/Aprint " */"
2N/Aprint "extern int del_curterm(TERMINAL *);"
2N/Aprint "extern int putp(const char *);"
2N/Aprint "extern int restartterm(char *, int, int *);"
2N/Aprint "extern TERMINAL *set_curterm(TERMINAL *);"
2N/Aprint "extern int setupterm(char *, int, int *);"
2N/Aprint "extern int tgetent(char *, const char *);"
2N/Aprint "extern int tgetflag(char *);"
2N/Aprint "extern int tgetnum(char *);"
2N/Aprint "extern char *tgetstr(char *, char **);"
2N/Aprint "extern char *tgoto(char *, int, int);"
2N/Aprint "extern int tigetflag(char *);"
2N/Aprint "extern int tigetnum(char *);"
2N/Aprint "extern char *tigetstr(char *);"
2N/Aprint "extern char *tparm("
2N/Aprint "\tchar *, long, long, long, long, long, long, long, long, long);"
2N/Aprint "extern int tputs(const char *, int, int (*)(int));"
2N/Aprint
2N/Aprint "#ifdef __cplusplus"
2N/Aprint "}"
2N/Aprint "#endif"
2N/Aprint
2N/Aprint "#endif /* _TERM_H */"
2N/A}