1 H 2 !rm -f bool num str boolnames numnames strnames boolvals numvals strvals tnames.c tinames.c tifnames.c term.h ./tmp/term.h.new ./tmp/tmp.awk ./tmp/term.h 3 e caps 4 g/^#/d 5 /--- begin bool/+1,/--- end bool/-1 w bool 6 /--- begin num/+1,/--- end num/-1 w num 7 /--- begin str/+1,/--- end str/-1 w str 8 E bool 9 1,$s/" .*/", / 10 1,$s/.* "/"/ 11 1,$-10g/^/.,+9j 12 +,$j 13 1i 14 char *boolnames[] = 15 { 16 . 17 $a 18 0 19 }; 20 21 . 22 w tinames.c 23 e bool 24 1,$s/^[^"]*"[^"]*".// 25 1,$s/" .*/", / 26 1,$-10g/^/.,+9j 27 +,$j 28 1i 29 char *boolcodes[] = 30 { 31 . 32 $a 33 0 34 }; 35 36 . 37 w tnames.c 38 e bool 39 1,$s/^\([a-z][0-9a-z_]*\),.*/"\1", / 40 1,$-4g/^/.,+3j 41 +,$j 42 1i 43 char *boolfnames[] = 44 { 45 . 46 $a 47 0 48 }; 49 50 . 51 w tifnames.c 52 e bool 53 1,$s;"[^"]*"[ ]*".." ;/* ; 54 1,$s;$; */; 55 1,$s;^; ; 56 1i 57 char 58 . 59 $a 60 Sentinel; /* End of bools. DO NOT MOVE! */ 61 . 62 w boolvals 63 e num 64 1,$s/" .*/", / 65 1,$s/.* "/"/ 66 1,$-10g/^/.,+9j 67 +,$j 68 1i 69 char *numnames[] = 70 { 71 . 72 $a 73 0 74 }; 75 76 . 77 0r tinames.c 78 w tinames.c 79 e num 80 1,$s/^[^"]*"[^"]*".// 81 1,$s/" .*/", / 82 1,$-10g/^/.,+9j 83 +,$j 84 1i 85 char *numcodes[] = 86 { 87 . 88 $a 89 0 90 }; 91 92 . 93 0r tnames.c 94 w tnames.c 95 e num 96 1,$s/^\([a-z][0-9a-z_]*\),.*/"\1", / 97 1,$-4g/^/.,+3j 98 +,$j 99 1i 100 char *numfnames[] = 101 { 102 . 103 $a 104 0 105 }; 106 107 . 108 0r tifnames.c 109 w tifnames.c 110 e num 111 1,$s;"[^"]*"[ ]*".." ;/* ; 112 1,$s;$; */; 113 1,$s;^; ; 114 1i 115 short 116 . 117 $a 118 Sentinel; /* End of nums. DO NOT MOVE! */ 119 . 120 w numvals 121 e str 122 1,$s/" .*/", / 123 1,$s/.* "/"/ 124 1,$-10g/^/.,+9j 125 +,$j 126 1i 127 char *strnames[] = 128 { 129 . 130 $a 131 0 132 }; 133 134 . 135 0r tinames.c 136 w tinames.c 137 e str 138 1,$s/^[^"]*"[^"]*".// 139 1,$s/" .*/", / 140 1,$-10g/^/.,+9j 141 +,$j 142 1i 143 char *strcodes[] = 144 { 145 . 146 $a 147 0 148 }; 149 150 . 151 0r tnames.c 152 w tnames.c 153 e str 154 1,$s/^\([a-z][0-9a-z_]*\),.*/"\1", / 155 1,$-4g/^/.,+3j 156 +,$j 157 1i 158 char *strfnames[] = 159 { 160 . 161 $a 162 0 163 }; 164 165 . 166 0r tifnames.c 167 w tifnames.c 168 e str 169 1,$s;"[^"]*"[ ]*".." ;/* ; 170 1,$s;$; */; 171 1,$s;^; strs.; 172 $a 173 Sentinel; /* End of strings. DO NOT MOVE! */ 174 . 175 w strvals 176 1,$d 177 r tnames.c 178 1i 179 /* tnames.c: Made automatically from caps and maketerm.ed - don't edit me! */ 180 . 181 1,$s/ $// 182 0r copyright.h 183 1,.g/#pragma ident/d 184 w tnames.c 185 1,$d 186 r tinames.c 187 1i 188 /* tinames.c: Made automatically from caps and maketerm.ed - don't edit me! */ 189 . 190 1,$s/ $// 191 0r copyright.h 192 1,.g/#pragma ident/d 193 w tinames.c 194 1,$d 195 r tifnames.c 196 1i 197 /* tifnames.c: Made automatically from caps and maketerm.ed - don't edit me! */ 198 . 199 1,$s/ $// 200 0r copyright.h 201 1,.g/#pragma ident/d 202 w tifnames.c 203 e bool 204 1,$d 205 a 206 207 typedef char *charptr; 208 struct strs { 209 charptr 210 . 211 r strvals 212 1,.s/strs\.// 213 $a 214 }; 215 216 struct _bool_struct { 217 . 218 r boolvals 219 a 220 }; 221 222 struct _num_struct { 223 . 224 r numvals 225 a 226 }; 227 . 228 w ./tmp/term.h.new 229 e ./tmp/term.h.new 230 g/^ ./s/^ / _/ 231 w ./tmp/term.h.new 232 e boolvals 233 .kb 234 .r numvals 235 .kn 236 1,$v/^ /d 237 1,$s/^ // 238 1,$s/ [^ ].*/ / 239 1,$s/,/ / 240 1,'bs/.*/#define & CURB _&/ 241 'b+1,'ns/.*/#define & CURN _&/ 242 1,$g/;/d 243 w ./tmp/term.h.new2 244 e strvals 245 1,$v/^ /d 246 1,$s/^ // 247 1,$s/ [^ ].*/ / 248 1,$s/,/ / 249 1,$s/.*/#define & CURS _&/ 250 1,$s/strs\.// 251 1,$s/strs.\(.\)/strs._\1/ 252 1,$g/;/d 253 w 254 e ./tmp/term.h.new2 255 $r strvals 256 w ./tmp/term.h.new1 257 e ./tmp/term.h.new1 258 $r ./tmp/term.h.new 259 w ./tmp/term.h.new 260 e ./tmp/term.h.new 261 1,$s/[ ]*$// 262 1,$s/CURS _strs/CURS strs/ 263 w ./tmp/term.h.new 264 e ./tmp/term.h.new 265 1;/CURS strs/+100;.,+99s/CURS strs/CURS strs2/ 266 .+1,+100s/CURS strs/CURS strs3/ 267 .+1,$s/CURS strs/CURS strs4/ 268 /^struct strs/+101s/,/;/ 269 a 270 }; 271 272 struct strs2 { 273 charptr 274 . 275 +100s/,/;/ 276 a 277 }; 278 279 struct strs3 { 280 charptr 281 . 282 +100s/,/;/ 283 a 284 }; 285 286 struct strs4 { 287 charptr 288 . 289 1,$s/_Sentinel/Sentinel/ 290 w ./tmp/term.h.new 291 e ./tmp/term.h.new 292 g/[ .]_cursor_/s/_cursor_/_crsr_/ 293 g/[ .]_delete_/s/_delete_/_dlt_/ 294 g/[ .]_enter_/s/_enter_/_entr_/ 295 g/[ .]_insert_/s/_insert_/_ins_/ 296 g/[ .]_key_/s/_key_/_ky_/ 297 g/[ .]_keypad_/s/_keypad_/_kpad_/ 298 g/[ .]_label_/s/_label_/_labl_/ 299 g/[ .]_memory_/s/_memory_/_mem_/ 300 g/[ .]_parm_/s/_parm_/_prm_/ 301 g/[ .]_scroll_/s/_scroll_/_scrll_/ 302 g/^ _......[,;] \//s/, /,/ 303 g/^ _..............[,;] \//s/, /,/ 304 g/^ _......................[,;] \//s/, /,/ 305 w ./tmp/term.h.new 306 e ./tmp/term.h.new 307 !# the following lines GO away when Vr2 compat code goes away 308 1;/^#define auto_left_margin/,/^#define xon_xoff/s/CURB.*/CUR _b/ 309 1;/^#define auto_left_margin/,/^#define xon_xoff/w ./tmp/tmp.term.h 310 1;/^#define auto_left_margin/,/^#define xon_xoff/d 311 !/usr/bin/echo '{printf "\%s\%d\\n", $0,++i}' > ./tmp/tmp.awk 312 .-1r !awk -f ./tmp/tmp.awk < ./tmp/tmp.term.h 313 1;/^#define columns/,/^#define width_status_line/s/CURN.*/CUR _c/ 314 1;/^#define columns/,/^#define width_status_line/w ./tmp/tmp.term.h 315 1;/^#define columns/,/^#define width_status_line/d 316 !/usr/bin/echo '{printf "\%s\%d\\n", $0,++i}' > ./tmp/tmp.awk 317 .-1r !awk -f ./tmp/tmp.awk < ./tmp/tmp.term.h 318 1;/^#define back_tab/,/^#define lab_f8/s/CURS.*/CUR _Vr2_Astrs._s/ 319 1;/^#define back_tab/,/^#define lab_f8/w ./tmp/tmp.term.h 320 1;/^#define back_tab/,/^#define lab_f8/d 321 !/usr/bin/echo '{printf "\%s\%d\\n", $0,++i}' > ./tmp/tmp.awk 322 .-1r !awk -f ./tmp/tmp.awk < ./tmp/tmp.term.h 323 1;/^#define lab_f9/,/^#define prtr_non/s/CURS.*/CUR _Vr2_Bstrs._s/ 324 1;/^#define lab_f9/,/^#define prtr_non/w ./tmp/tmp.term.h 325 1;/^#define lab_f9/,/^#define prtr_non/d 326 !/usr/bin/echo 'BEGIN{i=100}\n{printf "\%s\%d\\n", $0,++i}' > ./tmp/tmp.awk 327 .-1r !awk -f ./tmp/tmp.awk < ./tmp/tmp.term.h 328 !rm -f ./tmp/tmp.term.h ./tmp/tmp.awk 329 w ./tmp/term.h.new 330 e ./tmp/term.h.new 331 !# Vr2 compat code ends here 332 1i 333 #ifndef _TERM_H 334 #define _TERM_H 335 336 /* 337 * term.h - this file is automatically made from caps and maketerm.ed. 338 * Don't make changes directly to term.h. 339 */ 340 341 #ifdef __cplusplus 342 extern "C" { 343 #endif 344 345 . 346 $a 347 348 struct _str_struct { 349 struct strs strs; 350 struct strs2 strs2; 351 struct strs3 strs3; 352 struct strs4 strs4; 353 }; 354 355 #define NUM_ATTRIBUTES 9 356 #define UNACCESSIBLE 1 357 #define NO_TERMINAL 2 358 #define CORRUPTED 3 359 #define ENTRY_TOO_LONG 4 360 #define TERMINFO_TOO_LONG 5 361 #define TERM_BAD_MALLOC 6 362 #define NOT_READABLE 7 363 #define _VR2_COMPAT_CODE 364 #ifdef _VR2_COMPAT_CODE 365 struct _Vr2_Astrs { 366 charptr 367 _s1, _s2, _s3, _s4, _s5, _s6, _s7, _s8, _s9, _s10, 368 _s11, _s12, _s13, _s14, _s15, _s16, _s17, _s18, _s19, _s20, 369 _s21, _s22, _s23, _s24, _s25, _s26, _s27, _s28, _s29, _s30, 370 _s31, _s32, _s33, _s34, _s35, _s36, _s37, _s38, _s39, _s40, 371 _s41, _s42, _s43, _s44, _s45, _s46, _s47, _s48, _s49, _s50, 372 _s51, _s52, _s53, _s54, _s55, _s56, _s57, _s58, _s59, _s60, 373 _s61, _s62, _s63, _s64, _s65, _s66, _s67, _s68, _s69, _s70, 374 _s71, _s72, _s73, _s74, _s75, _s76, _s77, _s78, _s79, _s80, 375 _s81, _s82, _s83, _s84, _s85, _s86, _s87, _s88, _s89, _s90, 376 _s91, _s92, _s93, _s94, _s95, _s96, _s97, _s98, _s99, _s100; 377 }; 378 379 struct _Vr2_Bstrs { 380 charptr 381 _s101, _s102, _s103, _s104, _s105, _s106, _s107, _s108, _s109, _s110, 382 _s111, _s112, _s113, _s114, _s115, _s116, _s117, _s118, _s119, _s120, 383 _s121, _s122, _s123, _s124, _s125, _s126, _s127, _s128, _s129, _s130, 384 _s131, _s132, _s133, _s134, _s135, _s136, _s137, _s138, _s139, _s140, 385 _s141, _s142, _s143, _s144, _s145; 386 }; 387 #endif /* _VR2_COMPAT_CODE */ 388 389 typedef struct { 390 char *_sends; /* Characters sent when key is pressed */ 391 short _keyval; /* "char" we pass back to program */ 392 } _KEY_MAP; 393 394 typedef struct { 395 short foreground; /* foreground color */ 396 short background; /* background color */ 397 bool init; /* TRUE if pair was initialized */ 398 } _Color_pair; 399 400 401 typedef struct { 402 short r, g, b; 403 } _Color; 404 405 406 /* 407 * This definition for the term struct allows the boolean, number 408 * and string information to grow in the future and still allow .o 409 * compatibility. 410 */ 411 412 struct term { 413 #ifdef _VR2_COMPAT_CODE 414 char 415 _b1, _b2, _b3, _b4, _b5, _b6, _b7, _b8, _b9, _b10, 416 _b11, _b12, _b13, _b14, _b15, _b16, _b17, _b18, _b19, _b20, _b21; 417 short 418 _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8; 419 struct _Vr2_Astrs _Vr2_Astrs; 420 struct _Vr2_Bstrs _Vr2_Bstrs; 421 #endif /* _VR2_COMPAT_CODE */ 422 short Filedes; /* file descriptor being written to */ 423 SGTTY Ottyb, /* original state of the terminal */ 424 Nttyb; /* current state of the terminal */ 425 #ifdef SYSV 426 SGTTYS Ottybs, /* original state of the terminal */ 427 Nttybs; /* current state of the terminal */ 428 #endif 429 #ifdef DIOCSETT 430 struct termcb new, old; /* CB/UNIX virtual terminals */ 431 #endif 432 #ifdef LTILDE 433 int newlmode, oldlmode; /* BSD tty driver */ 434 #endif 435 /* end of Vr2 structure */ 436 struct _bool_struct *_bools; 437 struct _num_struct *_nums; 438 struct _str_struct *_strs; 439 char *_strtab; 440 #ifdef FIONREAD 441 long timeout; /* for BSD halfdelay mode */ 442 #endif 443 /* end of Vr3 structure */ 444 chtype sgr_mode; /* current phys. graphic rendition */ 445 chtype sgr_faked; /* attributes faked by vidputs */ 446 int _delay; /* timeout for inputs */ 447 int _inputfd; /* input file descriptor */ 448 int _check_fd; /* typeahead file descriptor */ 449 _KEY_MAP **_keys, /* key map */ 450 *internal_keys; /* pointer to free key structures */ 451 short _ksz, /* size of keymap */ 452 _lastkey_ordered, /* where the last ordered key is */ 453 _lastmacro_ordered, /* where last ordered macro is */ 454 _first_macro; 455 bool funckeystarter[0400]; 456 /* map of which chars start fn keys */ 457 bool _fl_rawmode, /* in cbreak(=1) or raw(=2) mode */ 458 fl_typeahdok, /* ok to use typeahead */ 459 _cursorstate, /* cursor: 0=invis, 1=norm, 2=vvis */ 460 _iwait; /* true if input-pending */ 461 short _regs[26]; /* tparm static registers */ 462 #define INP_QSIZE 32 463 chtype /* a place to put stuff ungetch'ed */ 464 _input_queue[INP_QSIZE]; 465 short _ungotten; /* # chars ungotten by ungetch() */ 466 char _chars_on_queue; /* # chars on queue */ 467 #ifdef _VR3_COMPAT_CODE 468 _ochtype *_acsmap; 469 chtype *_acs32map; /* map of alternate char set chars */ 470 #else /* _VR3_COMPAT_CODE */ 471 chtype *_acsmap; /* map of alternate char set chars */ 472 #endif /* _VR3_COMPAT_CODE */ 473 char *turn_on_seq[NUM_ATTRIBUTES]; 474 chtype bit_vector; 475 char *cursor_seq[3]; 476 char _termname[15]; 477 char *turn_off_seq[3]; 478 chtype check_turn_off; 479 chtype non_faked_mode; 480 _Color_pair _cur_pair; 481 _Color_pair *_pairs_tbl; 482 _Color *_color_tbl; 483 }; 484 485 typedef struct term TERMINAL; 486 487 /* allow old names for these capabilities */ 488 #define beehive_glitch no_esc_ctlc 489 #define teleray_glitch dest_tabs_magic_smso 490 491 extern TERMINAL *cur_term; 492 extern struct _bool_struct *cur_bools; 493 extern struct _num_struct *cur_nums; 494 extern struct _str_struct *cur_strs; 495 496 #ifdef SINGLE 497 extern TERMINAL _first_term; 498 extern struct _bool_struct _frst_bools; 499 extern struct _num_struct _frst_nums; 500 extern struct _str_struct _frst_strs; 501 502 #define CUR _first_term. 503 #define CURB _frst_bools. 504 #define CURN _frst_nums. 505 #define CURS _frst_strs. 506 #define PROGTTY _first_term.Nttyb 507 #define SHELLTTY _first_term.Ottyb 508 #ifdef SYSV 509 #define PROGTTYS _first_term.Nttybs 510 #define SHELLTTYS _first_term.Ottybs 511 #endif 512 #else 513 #define CUR cur_term-> 514 #define CURB cur_bools-> 515 #define CURN cur_nums-> 516 #define CURS cur_strs-> 517 #define PROGTTY (cur_term->Nttyb) 518 #define SHELLTTY (cur_term->Ottyb) 519 #ifdef SYSV 520 #define PROGTTYS (cur_term->Nttybs) 521 #define SHELLTTYS (cur_term->Ottybs) 522 #endif 523 #endif 524 525 #ifndef NOMACROS 526 #define set_curterm setcurterm 527 #define del_curterm delterm 528 #else /* NOMACROS */ 529 530 #ifdef __STDC__ 531 extern TERMINAL *set_curterm(TERMINAL *); 532 extern int del_curterm(TERMINAL *); 533 #else /* __STDC__ */ 534 extern TERMINAL *set_curterm(); 535 extern int del_curterm(); 536 #endif /* __STDC__ */ 537 538 #endif /* NOMACROS */ 539 540 extern short term_errno; 541 542 #ifdef SYSV 543 extern int prog_istermios; 544 extern int shell_istermios; 545 #endif 546 547 extern char term_parm_err[], *term_err_strings[], *Def_term, 548 *boolnames[], *boolcodes[], *boolfnames[], 549 *numnames[], *numcodes[], *numfnames[], 550 *strnames[], *strcodes[], *strfnames[]; 551 552 #ifdef __STDC__ 553 extern TERMINAL *setcurterm(TERMINAL *); 554 555 #if defined(_XPG4_2) || defined(_LP64) || defined(__cplusplus) 556 extern char 557 *tparm(char *, long, long, long, long, long, long, long, long, long); 558 #else 559 /* this is wrong, but is needed for historical reasons */ 560 extern char *tparm(); 561 #endif 562 563 extern char *tgoto(char *, int, int), 564 *tgetstr(char *, char **), 565 *tigetstr(char *), 566 *termname(void); 567 568 extern int tgetent(char *, char *), tgetflag(char *), tgetnum(char *), 569 tputs(char *, int, int (*)(char)), putp(char *), 570 tigetint(char *), tigetflag(char *), tigetnum(char *), 571 vidputs(chtype, int (*)(char)), vidattr(chtype); 572 573 extern int resetterm(void), fixterm(void), saveterm(void), 574 restartterm(char *, int, int *), delterm(TERMINAL *); 575 576 extern void termerr(void), tinputfd(int); 577 #else /* __STDC__ */ 578 extern TERMINAL *setcurterm(); 579 extern char *tparm(), *tgoto(), *tgetstr(), *tigetstr(), 580 *termname(); 581 582 extern int tgetent(), tgetflag(), tgetnum(), 583 tigetint(), tigetflag(), tigetnum(), 584 tputs(), putp(), vidputs(), vidattr(); 585 586 extern int resetterm(), fixterm(), saveterm(), 587 restartterm(), delterm(); 588 589 extern void termerr(), tinputfd(); 590 #endif /* __STDC__ */ 591 592 #ifdef __cplusplus 593 } 594 #endif 595 596 #endif /* _TERM_H */ 597 . 598 0r copyright.h 599 1,.g/#pragma ident/d 600 g/\@(\#)maketerm.ed/s//\@(\#)term.h/ 601 1,$s/,\/\*/, \/\*/ 602 w term.h 603 !rm -f boolnames boolvals bool numnames numvals num strnames strvals str ./tmp/term.h.new ./tmp/tmp.awk ./tmp/tmp.term.h 604 q