5 # CDDL HEADER START
6 #
7 # The contents of this file are subject to the terms of the
8 # Common Development and Distribution License, Version 1.0 only
9 # (the "License"). You may not use this file except in compliance
10 # with the License.
11 #
12 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13 # or http://www.opensolaris.org/os/licensing.
14 # See the License for the specific language governing permissions
15 # and limitations under the License.
16 #
17 # When distributing Covered Code, include this CDDL HEADER in each
18 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19 # If applicable, add the following below this CDDL HEADER, with the
20 # fields enclosed by brackets "[]" replaced with your own identifying
21 # information: Portions Copyright [yyyy] [name of copyright owner]
22 #
23 # CDDL HEADER END
24 #
25 # ident "%Z%%M% %I% %E% SMI"
26 #
27 # mkterm.awk
28 #
29 # XCurses Library
30 #
31 # Copyright 1990, 1995 by Mortice Kern Systems Inc. All rights reserved.
32 #
33 # $Header: /rd/src/libc/xcurses/rcs/mkterm.awk 1.12 1995/07/26 17:40:26 ant Exp $
34 #
35 # USAGE:
36 # awk -f mkterm.awk caps >term.h
37 #
38
39 BEGIN {
40 print "/*"
41 print " * term.h"
42 print " *"
43 print " * XCurses Library"
44 print " *"
45 print " * **** THIS FILE IS MACHINE GENERATED."
46 print " * **** DO NOT EDIT THIS FILE."
47 print " *"
48 print " * Copyright 1990, 1995 by Mortice Kern Systems Inc. All rights reserved."
49 print " *"
50 printf " * $Header%s\n", "$"
51 print " */"
52 print
53 print "#ifndef __term_h__"
54 print "#define __term_h__\t1"
55 print
56 print "#define _XOPEN_CURSES"
57 print
58 print "#ifndef NCCS"
59 print "#include <termios.h>"
60 print "#endif"
61 print "#ifndef STDIN_FILENO"
62 print "#include <sys/types.h>"
63 print "#include <unistd.h>"
64 print "#endif"
65 print
66 print "#define __TERM cur_term->"
67 }
68
69 $4 == "bool" {
70 printf "#define %-30s __TERM _bool[%d]\n", $1, BoolCount++
71 }
72
73 $4 == "number" {
74 printf "#define %-30s __TERM _num[%d]\n", $1, NumberCount++
75 }
76
77 $4 == "str" {
78 printf "#define %-30s __TERM _str[%d]\n", $1, StringCount++
79 }
80
81 END {
82 print
83 printf "#define __COUNT_BOOL\t\t%d\n", BoolCount
84 printf "#define __COUNT_NUM\t\t%d\n", NumberCount
85 printf "#define __COUNT_STR\t\t%d\n", StringCount
86 print
87 print "/*"
88 print " * MKS Header format for terminfo database files."
89 print " *"
90 print " * The header consists of six short integers, stored using VAX/PDP style"
91 print " * byte swapping (least-significant byte first). The integers are"
92 print " *"
93 print " * 1) magic number (octal 0432);"
94 print " * 2) the size, in bytes, of the names sections;"
95 print " * 3) the number of bytes in the boolean section;"
96 print " * 4) the number of short integers in the numbers section;"
97 print " * 5) the number of offsets (short integers) in the strings section;"
98 print " * 6) the size, in bytes, of the string table."
99 print " *"
100 print " * Between the boolean and number sections, a null byte is inserted, if"
101 print " * necessary, to ensure that the number section begins on an even byte"
102 print " * offset. All short integers are aligned on a short word boundary."
103 print " */"
104 print
105 print "#define __TERMINFO_MAGIC\t\t0432"
106 print
107 print "typedef struct {"
108 print "\tshort magic;"
109 print "\tshort name_size;"
110 print "\tshort bool_count;"
111 print "\tshort num_count;"
112 print "\tshort str_count;"
113 print "\tshort str_size;"
114 print "} terminfo_header_t;"
115 print
116 print "/*"
117 print " * The following __MOVE_ constants are indices into the _move[] member"
118 print " * of a SCREEN structure. The array is used by m_mvcur() for cursor"
119 print " * motion costs and initialized by newterm()."
120 print " *"
121 print " * The following indices refer to relative cursor motion actions that"
122 print " * have a base-cost times the distance/count."
123 print " */"
124 print "#define __MOVE_UP\t\t0"
125 print "#define __MOVE_DOWN\t\t1"
126 print "#define __MOVE_LEFT\t\t2"
127 print "#define __MOVE_RIGHT\t\t3"
128 print "#define __MOVE_TAB\t\t4"
129 print "#define __MOVE_BACK_TAB\t\t5"
130 print
131 print "#define __MOVE_MAX_RELATIVE\t6"
132 print
133 print "/*"
134 print " * These should have fixed costs."
135 print " */"
136 print "#define __MOVE_RETURN\t\t6"
137 print "#define __MOVE_HOME\t\t7"
138 print "#define __MOVE_LAST_LINE\t8"
139 print
140 print "/*"
141 print " * These have worst case cost based on moving the maximum possible"
142 print " * value for a parameter given the screen size."
143 print " */"
144 print "#define __MOVE_N_UP\t\t9"
145 print "#define __MOVE_N_DOWN\t\t10"
146 print "#define __MOVE_N_LEFT\t\t11"
147 print "#define __MOVE_N_RIGHT\t\t12"
148 print "#define __MOVE_ROW\t\t13"
149 print "#define __MOVE_COLUMN\t\t14"
150 print "#define __MOVE_ROW_COLUMN\t15"
151 print
152 print "#define __MOVE_MAX\t\t16"
153 print
154 print "/*"
155 print " * For a cursor motion to be used there must be a base-cost of at least 1."
156 print " */"
157 print "#define __MOVE_INFINITY\t\t1000"
158 print
159 print "#define __TERM_ISATTY_IN\t0x0001\t/* Input is a terminal */"
160 print "#define __TERM_ISATTY_OUT\t0x0002\t/* Output is a terminal */"
161 print "#define __TERM_HALF_DELAY\t0x0004\t/* halfdelay() has priority. */"
162 print "#define __TERM_INSERT_MODE\t0x0008\t/* Terminal is in insert mode. */"
163 print "#define __TERM_NL_IS_CRLF\t0x8000\t/* Newline is mapped on output. */"
164 print
165 print "/***"
166 print " *** Opaque data type. Keep your grubby mits off."
167 print " ***/"
168 print "typedef struct {"
169 print "\tint _ifd;\t\t\t/* Input file descriptor */"
170 print "\tint _ofd;\t\t\t/* Output file descriptor */"
171 print "\tstruct termios _prog;"
172 print "\tstruct termios _shell;"
173 print "\tstruct termios _save;"
174 print "\tshort _co;\t\t\t/* Current colour-pair. */"
175 print "\tunsigned short _at;\t\t/* Current attribute state. */"
176 print "\tshort (*_pair)[2];"
177 print "\tshort (*_color)[3];"
178 print "\tunsigned short _flags;"
179 print "\tchar _bool[__COUNT_BOOL];"
180 print "\tshort _num[__COUNT_NUM];"
181 print "\tchar *_str[__COUNT_STR];\t/* Pointers into _str_table. */"
182 print "\tchar *_str_table;"
183 print "\tchar *_names;\t\t\t/* Terminal alias in _str_table. */"
184 print "\tchar *_term;\t\t\t/* TERM name loaded. */"
185 print "\tstruct {"
186 print "\t\tchar *_seq;"
187 print "\t\tshort _cost;"
188 print "\t} _move[__MOVE_MAX];"
189 print "} TERMINAL;"
190 print
191 print "extern TERMINAL *cur_term;"
192 print
193 print "extern char *__m_boolnames[];"
194 print "extern char *__m_boolcodes[];"
195 print "extern char *__m_boolfnames[];"
196 print "extern char *__m_numnames[];"
197 print "extern char *__m_numcodes[];"
198 print "extern char *__m_numfnames[];"
199 print "extern char *__m_strnames[];"
200 print "extern char *__m_strcodes[];"
201 print "extern char *__m_strfnames[];"
202 print
203 print "#ifndef _XOPEN_SOURCE"
204 print "/*"
205 print " * Old System V array names."
206 print " */"
207 print "#define boolnames\t__m_boolnames"
208 print "#define boolcodes\t__m_boolcodes"
209 print "#define boolfnames\t__m_boolfnames"
210 print "#define numnames\t__m_numnames"
211 print "#define numcodes\t__m_numcodes"
212 print "#define numfnames\t__m_numfnames"
213 print "#define strnames\t__m_strnames"
214 print "#define strcodes\t__m_strcodes"
215 print "#define strfnames\t__m_strfnames"
216 print "#endif /* _XOPEN_SOURCE */"
217 print
218 print "/*"
219 print " * Exposed internal functions."
220 print " */"
221 print "extern int __m_putchar(int);"
222 print "extern int __m_mvcur(int, int, int, int, int (*)(int));"
223 print "extern int __m_read_terminfo(const char *, TERMINAL *);"
224 print "extern int __m_setupterm(const char *, int, int, int *);"
225 print
226 print "/*"
227 print " * Globals"
228 print " */"
229 print "extern int del_curterm(TERMINAL *);"
230 print "extern TERMINAL *set_curterm(TERMINAL *);"
231 print "extern int restartterm(const char *, int, int *);"
232 print "extern int setupterm(const char *, int, int *);"
233 print
234 print "extern int tgetent(char *, char *);"
235 print "extern int tgetflag(const char *);"
236 print "extern int tgetnum(const char *);"
237 print "extern char *tgetstr(const char *, char **);"
238 print "extern char *tgoto(const char *, int, int);"
239 print
240 print "extern int tigetflag(const char *);"
241 print "extern int tigetnum(const char *);"
242 print "extern char *tigetstr(const char *);"
243 print
244 print "extern int putp(const char *);"
245 print "extern const char *tparm("
246 print "\tconst char *, long, long, long, long, long, long, long, long, long);"
247 print "extern int tputs(const char *, int, int (*)(int));"
248 print
249 print "#ifndef _XOPEN_SOURCE_EXTENDED"
250 print
251 print "#define putp(str)\t\ttputs(str,1,__m_putchar)"
252 print "#define del_term\t\tdel_curterm"
253 print "#define setterm(t)\t\tsetupterm(t,STDOUT_FILENO,(int *) 0)"
254 print "#define tgoto(cm,c,r)\t\ttparm((char *)(cm), (long)(r), (long)(c))"
255 print
256 print "#ifndef _XOPEN_SOURCE"
257 print "#define beehive_glitch\t\tno_esc_ctrlc"
258 print "#define teleray_glitch\t\tdest_tabs_magic_smso"
259 print "#endif /* _XOPEN_SOURCE */"
260 print
261 print "#endif /* _XOPEN_SOURCE_EXTENDED */"
262 print
263 print "#endif /* __term_h__ */"
264 }
|
5 # CDDL HEADER START
6 #
7 # The contents of this file are subject to the terms of the
8 # Common Development and Distribution License, Version 1.0 only
9 # (the "License"). You may not use this file except in compliance
10 # with the License.
11 #
12 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
13 # or http://www.opensolaris.org/os/licensing.
14 # See the License for the specific language governing permissions
15 # and limitations under the License.
16 #
17 # When distributing Covered Code, include this CDDL HEADER in each
18 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
19 # If applicable, add the following below this CDDL HEADER, with the
20 # fields enclosed by brackets "[]" replaced with your own identifying
21 # information: Portions Copyright [yyyy] [name of copyright owner]
22 #
23 # CDDL HEADER END
24 #
25 # mkterm.awk
26 #
27 # XCurses Library
28 #
29 # Copyright 1990, 1995 by Mortice Kern Systems Inc. All rights reserved.
30 #
31 # $Header: /rd/src/libc/xcurses/rcs/mkterm.awk 1.12 1995/07/26 17:40:26 ant Exp $
32 #
33 # USAGE:
34 # awk -f mkterm.awk caps >term.h
35 #
36
37 BEGIN {
38 print "/*"
39 print " * term.h"
40 print " *"
41 print " * XCurses Library"
42 print " *"
43 print " * **** THIS FILE IS MACHINE GENERATED."
44 print " * **** DO NOT EDIT THIS FILE."
45 print " *"
46 print " * Copyright 1990, 1995 by Mortice Kern Systems Inc. All rights reserved."
47 print " *"
48 printf " * $Header%s\n", "$"
49 print " */"
50 print ""
51 print "#ifndef __term_h__"
52 print "#define __term_h__\t1"
53 print ""
54 print "#define _XOPEN_CURSES"
55 print ""
56 print "#ifndef NCCS"
57 print "#include <termios.h>"
58 print "#endif"
59 print "#ifndef STDIN_FILENO"
60 print "#include <sys/types.h>"
61 print "#include <unistd.h>"
62 print "#endif"
63 print ""
64 print "#define __TERM cur_term->"
65 }
66
67 /^#/ || /^$/ {
68 next
69 }
70
71 $4 == "bool" {
72 printf "#define %-30s __TERM _bool[%d]\n", $1, BoolCount++
73 }
74
75 $4 == "number" {
76 printf "#define %-30s __TERM _num[%d]\n", $1, NumberCount++
77 }
78
79 $4 == "str" {
80 printf "#define %-30s __TERM _str[%d]\n", $1, StringCount++
81 }
82
83 END {
84 print ""
85 printf "#define __COUNT_BOOL\t\t%d\n", BoolCount
86 printf "#define __COUNT_NUM\t\t%d\n", NumberCount
87 printf "#define __COUNT_STR\t\t%d\n", StringCount
88 print ""
89 print "/*"
90 print " * MKS Header format for terminfo database files."
91 print " *"
92 print " * The header consists of six short integers, stored using VAX/PDP style"
93 print " * byte swapping (least-significant byte first). The integers are"
94 print " *"
95 print " * 1) magic number (octal 0432);"
96 print " * 2) the size, in bytes, of the names sections;"
97 print " * 3) the number of bytes in the boolean section;"
98 print " * 4) the number of short integers in the numbers section;"
99 print " * 5) the number of offsets (short integers) in the strings section;"
100 print " * 6) the size, in bytes, of the string table."
101 print " *"
102 print " * Between the boolean and number sections, a null byte is inserted, if"
103 print " * necessary, to ensure that the number section begins on an even byte"
104 print " * offset. All short integers are aligned on a short word boundary."
105 print " */"
106 print ""
107 print "#define __TERMINFO_MAGIC\t\t0432"
108 print ""
109 print "typedef struct {"
110 print "\tshort magic;"
111 print "\tshort name_size;"
112 print "\tshort bool_count;"
113 print "\tshort num_count;"
114 print "\tshort str_count;"
115 print "\tshort str_size;"
116 print "} terminfo_header_t;"
117 print ""
118 print "/*"
119 print " * The following __MOVE_ constants are indices into the _move[] member"
120 print " * of a SCREEN structure. The array is used by m_mvcur() for cursor"
121 print " * motion costs and initialized by newterm()."
122 print " *"
123 print " * The following indices refer to relative cursor motion actions that"
124 print " * have a base-cost times the distance/count."
125 print " */"
126 print "#define __MOVE_UP\t\t0"
127 print "#define __MOVE_DOWN\t\t1"
128 print "#define __MOVE_LEFT\t\t2"
129 print "#define __MOVE_RIGHT\t\t3"
130 print "#define __MOVE_TAB\t\t4"
131 print "#define __MOVE_BACK_TAB\t\t5"
132 print ""
133 print "#define __MOVE_MAX_RELATIVE\t6"
134 print ""
135 print "/*"
136 print " * These should have fixed costs."
137 print " */"
138 print "#define __MOVE_RETURN\t\t6"
139 print "#define __MOVE_HOME\t\t7"
140 print "#define __MOVE_LAST_LINE\t8"
141 print ""
142 print "/*"
143 print " * These have worst case cost based on moving the maximum possible"
144 print " * value for a parameter given the screen size."
145 print " */"
146 print "#define __MOVE_N_UP\t\t9"
147 print "#define __MOVE_N_DOWN\t\t10"
148 print "#define __MOVE_N_LEFT\t\t11"
149 print "#define __MOVE_N_RIGHT\t\t12"
150 print "#define __MOVE_ROW\t\t13"
151 print "#define __MOVE_COLUMN\t\t14"
152 print "#define __MOVE_ROW_COLUMN\t15"
153 print ""
154 print "#define __MOVE_MAX\t\t16"
155 print ""
156 print "/*"
157 print " * For a cursor motion to be used there must be a base-cost of at least 1."
158 print " */"
159 print "#define __MOVE_INFINITY\t\t1000"
160 print ""
161 print "#define __TERM_ISATTY_IN\t0x0001\t/* Input is a terminal */"
162 print "#define __TERM_ISATTY_OUT\t0x0002\t/* Output is a terminal */"
163 print "#define __TERM_HALF_DELAY\t0x0004\t/* halfdelay() has priority. */"
164 print "#define __TERM_INSERT_MODE\t0x0008\t/* Terminal is in insert mode. */"
165 print "#define __TERM_NL_IS_CRLF\t0x8000\t/* Newline is mapped on output. */"
166 print ""
167 print "/***"
168 print " *** Opaque data type. Keep your grubby mits off."
169 print " ***/"
170 print "typedef struct {"
171 print "\tint _ifd;\t\t\t/* Input file descriptor */"
172 print "\tint _ofd;\t\t\t/* Output file descriptor */"
173 print "\tstruct termios _prog;"
174 print "\tstruct termios _shell;"
175 print "\tstruct termios _save;"
176 print "\tshort _co;\t\t\t/* Current colour-pair. */"
177 print "\tunsigned short _at;\t\t/* Current attribute state. */"
178 print "\tshort (*_pair)[2];"
179 print "\tshort (*_color)[3];"
180 print "\tunsigned short _flags;"
181 print "\tchar _bool[__COUNT_BOOL];"
182 print "\tshort _num[__COUNT_NUM];"
183 print "\tchar *_str[__COUNT_STR];\t/* Pointers into _str_table. */"
184 print "\tchar *_str_table;"
185 print "\tchar *_names;\t\t\t/* Terminal alias in _str_table. */"
186 print "\tchar *_term;\t\t\t/* TERM name loaded. */"
187 print "\tstruct {"
188 print "\t\tchar *_seq;"
189 print "\t\tshort _cost;"
190 print "\t} _move[__MOVE_MAX];"
191 print "} TERMINAL;"
192 print ""
193 print "extern TERMINAL *cur_term;"
194 print ""
195 print "extern char *__m_boolnames[];"
196 print "extern char *__m_boolcodes[];"
197 print "extern char *__m_boolfnames[];"
198 print "extern char *__m_numnames[];"
199 print "extern char *__m_numcodes[];"
200 print "extern char *__m_numfnames[];"
201 print "extern char *__m_strnames[];"
202 print "extern char *__m_strcodes[];"
203 print "extern char *__m_strfnames[];"
204 print ""
205 print "#ifndef _XOPEN_SOURCE"
206 print "/*"
207 print " * Old System V array names."
208 print " */"
209 print "#define boolnames\t__m_boolnames"
210 print "#define boolcodes\t__m_boolcodes"
211 print "#define boolfnames\t__m_boolfnames"
212 print "#define numnames\t__m_numnames"
213 print "#define numcodes\t__m_numcodes"
214 print "#define numfnames\t__m_numfnames"
215 print "#define strnames\t__m_strnames"
216 print "#define strcodes\t__m_strcodes"
217 print "#define strfnames\t__m_strfnames"
218 print "#endif /* _XOPEN_SOURCE */"
219 print ""
220 print "/*"
221 print " * Exposed internal functions."
222 print " */"
223 print "extern int __m_putchar(int);"
224 print "extern int __m_mvcur(int, int, int, int, int (*)(int));"
225 print "extern int __m_read_terminfo(const char *, TERMINAL *);"
226 print "extern int __m_setupterm(const char *, int, int, int *);"
227 print ""
228 print "/*"
229 print " * Globals"
230 print " */"
231 print "extern int del_curterm(TERMINAL *);"
232 print "extern TERMINAL *set_curterm(TERMINAL *);"
233 print "extern int restartterm(const char *, int, int *);"
234 print "extern int setupterm(const char *, int, int *);"
235 print ""
236 print "extern int tgetent(char *, char *);"
237 print "extern int tgetflag(const char *);"
238 print "extern int tgetnum(const char *);"
239 print "extern char *tgetstr(const char *, char **);"
240 print "extern char *tgoto(const char *, int, int);"
241 print ""
242 print "extern int tigetflag(const char *);"
243 print "extern int tigetnum(const char *);"
244 print "extern char *tigetstr(const char *);"
245 print ""
246 print "extern int putp(const char *);"
247 print "extern const char *tparm("
248 print "\tconst char *, long, long, long, long, long, long, long, long, long);"
249 print "extern int tputs(const char *, int, int (*)(int));"
250 print ""
251 print "#ifndef _XOPEN_SOURCE_EXTENDED"
252 print ""
253 print "#define putp(str)\t\ttputs(str,1,__m_putchar)"
254 print "#define del_term\t\tdel_curterm"
255 print "#define setterm(t)\t\tsetupterm(t,STDOUT_FILENO,(int *) 0)"
256 print "#define tgoto(cm,c,r)\t\ttparm((char *)(cm), (long)(r), (long)(c))"
257 print ""
258 print "#ifndef _XOPEN_SOURCE"
259 print "#define beehive_glitch\t\tno_esc_ctrlc"
260 print "#define teleray_glitch\t\tdest_tabs_magic_smso"
261 print "#endif /* _XOPEN_SOURCE */"
262 print ""
263 print "#endif /* _XOPEN_SOURCE_EXTENDED */"
264 print ""
265 print "#endif /* __term_h__ */"
266 }
|