1 /* 2 * term.h 3 * 4 * XCurses Library 5 * 6 * **** THIS FILE IS MACHINE GENERATED. 7 * **** DO NOT EDIT THIS FILE. 8 * 9 * Copyright 1990, 1995 by Mortice Kern Systems Inc. All rights reserved. 10 * 11 * $Header$ 12 */ 13 14 #ifndef __term_h__ 15 #define __term_h__ 1 16 17 #define _XOPEN_CURSES 18 19 #ifndef NCCS 20 #include <termios.h> 21 #endif 22 #ifndef STDIN_FILENO 23 #include <sys/types.h> 24 #include <unistd.h> 25 #endif 26 27 #define __TERM cur_term-> 28 #define auto_left_margin __TERM _bool[0] 29 #define auto_right_margin __TERM _bool[1] 30 #define no_esc_ctlc __TERM _bool[2] 31 #define ceol_standout_glitch __TERM _bool[3] 32 #define eat_newline_glitch __TERM _bool[4] 33 #define erase_overstrike __TERM _bool[5] 34 #define generic_type __TERM _bool[6] 35 #define hard_copy __TERM _bool[7] 36 #define has_meta_key __TERM _bool[8] 37 #define has_status_line __TERM _bool[9] 38 #define insert_null_glitch __TERM _bool[10] 39 #define memory_above __TERM _bool[11] 40 #define memory_below __TERM _bool[12] 41 #define move_insert_mode __TERM _bool[13] 42 #define move_standout_mode __TERM _bool[14] 43 #define over_strike __TERM _bool[15] 44 #define status_line_esc_ok __TERM _bool[16] 45 #define dest_tabs_magic_smso __TERM _bool[17] 46 #define tilde_glitch __TERM _bool[18] 47 #define transparent_underline __TERM _bool[19] 48 #define xon_xoff __TERM _bool[20] 49 #define needs_xon_xoff __TERM _bool[21] 50 #define prtr_silent __TERM _bool[22] 51 #define hard_cursor __TERM _bool[23] 52 #define non_rev_rmcup __TERM _bool[24] 53 #define no_pad_char __TERM _bool[25] 54 #define non_dest_scroll_region __TERM _bool[26] 55 #define can_change __TERM _bool[27] 56 #define back_color_erase __TERM _bool[28] 57 #define hue_lightness_saturation __TERM _bool[29] 58 #define col_addr_glitch __TERM _bool[30] 59 #define cr_cancels_micro_mode __TERM _bool[31] 60 #define has_print_wheel __TERM _bool[32] 61 #define row_addr_glitch __TERM _bool[33] 62 #define semi_auto_right_margin __TERM _bool[34] 63 #define cpi_changes_res __TERM _bool[35] 64 #define lpi_changes_res __TERM _bool[36] 65 #define columns __TERM _num[0] 66 #define init_tabs __TERM _num[1] 67 #define lines __TERM _num[2] 68 #define lines_of_memory __TERM _num[3] 69 #define magic_cookie_glitch __TERM _num[4] 70 #define padding_baud_rate __TERM _num[5] 71 #define virtual_terminal __TERM _num[6] 72 #define width_status_line __TERM _num[7] 73 #define num_labels __TERM _num[8] 74 #define label_height __TERM _num[9] 75 #define label_width __TERM _num[10] 76 #define max_attributes __TERM _num[11] 77 #define maximum_windows __TERM _num[12] 78 #define max_colors __TERM _num[13] 79 #define max_pairs __TERM _num[14] 80 #define no_color_video __TERM _num[15] 81 #define buffer_capacity __TERM _num[16] 82 #define dot_vert_spacing __TERM _num[17] 83 #define dot_horz_spacing __TERM _num[18] 84 #define max_micro_address __TERM _num[19] 85 #define max_micro_jump __TERM _num[20] 86 #define micro_char_size __TERM _num[21] 87 #define micro_line_size __TERM _num[22] 88 #define number_of_pins __TERM _num[23] 89 #define output_res_char __TERM _num[24] 90 #define output_res_line __TERM _num[25] 91 #define output_res_horz_inch __TERM _num[26] 92 #define output_res_vert_inch __TERM _num[27] 93 #define print_rate __TERM _num[28] 94 #define wide_char_size __TERM _num[29] 95 #define buttons __TERM _num[30] 96 #define bit_image_entwining __TERM _num[31] 97 #define bit_image_type __TERM _num[32] 98 #define back_tab __TERM _str[0] 99 #define bell __TERM _str[1] 100 #define carriage_return __TERM _str[2] 101 #define change_scroll_region __TERM _str[3] 102 #define clear_all_tabs __TERM _str[4] 103 #define clear_screen __TERM _str[5] 104 #define clr_eol __TERM _str[6] 105 #define clr_eos __TERM _str[7] 106 #define column_address __TERM _str[8] 107 #define command_character __TERM _str[9] 108 #define cursor_address __TERM _str[10] 109 #define cursor_down __TERM _str[11] 110 #define cursor_home __TERM _str[12] 111 #define cursor_invisible __TERM _str[13] 112 #define cursor_left __TERM _str[14] 113 #define cursor_mem_address __TERM _str[15] 114 #define cursor_normal __TERM _str[16] 115 #define cursor_right __TERM _str[17] 116 #define cursor_to_ll __TERM _str[18] 117 #define cursor_up __TERM _str[19] 118 #define cursor_visible __TERM _str[20] 119 #define delete_character __TERM _str[21] 120 #define delete_line __TERM _str[22] 121 #define dis_status_line __TERM _str[23] 122 #define down_half_line __TERM _str[24] 123 #define enter_alt_charset_mode __TERM _str[25] 124 #define enter_blink_mode __TERM _str[26] 125 #define enter_bold_mode __TERM _str[27] 126 #define enter_ca_mode __TERM _str[28] 127 #define enter_delete_mode __TERM _str[29] 128 #define enter_dim_mode __TERM _str[30] 129 #define enter_insert_mode __TERM _str[31] 130 #define enter_secure_mode __TERM _str[32] 131 #define enter_protected_mode __TERM _str[33] 132 #define enter_reverse_mode __TERM _str[34] 133 #define enter_standout_mode __TERM _str[35] 134 #define enter_underline_mode __TERM _str[36] 135 #define erase_chars __TERM _str[37] 136 #define exit_alt_charset_mode __TERM _str[38] 137 #define exit_attribute_mode __TERM _str[39] 138 #define exit_ca_mode __TERM _str[40] 139 #define exit_delete_mode __TERM _str[41] 140 #define exit_insert_mode __TERM _str[42] 141 #define exit_standout_mode __TERM _str[43] 142 #define exit_underline_mode __TERM _str[44] 143 #define flash_screen __TERM _str[45] 144 #define form_feed __TERM _str[46] 145 #define from_status_line __TERM _str[47] 146 #define init_1string __TERM _str[48] 147 #define init_2string __TERM _str[49] 148 #define init_3string __TERM _str[50] 149 #define init_file __TERM _str[51] 150 #define insert_character __TERM _str[52] 151 #define insert_line __TERM _str[53] 152 #define insert_padding __TERM _str[54] 153 #define key_backspace __TERM _str[55] 154 #define key_catab __TERM _str[56] 155 #define key_clear __TERM _str[57] 156 #define key_ctab __TERM _str[58] 157 #define key_dc __TERM _str[59] 158 #define key_dl __TERM _str[60] 159 #define key_down __TERM _str[61] 160 #define key_eic __TERM _str[62] 161 #define key_eol __TERM _str[63] 162 #define key_eos __TERM _str[64] 163 #define key_f0 __TERM _str[65] 164 #define key_f1 __TERM _str[66] 165 #define key_f10 __TERM _str[67] 166 #define key_f2 __TERM _str[68] 167 #define key_f3 __TERM _str[69] 168 #define key_f4 __TERM _str[70] 169 #define key_f5 __TERM _str[71] 170 #define key_f6 __TERM _str[72] 171 #define key_f7 __TERM _str[73] 172 #define key_f8 __TERM _str[74] 173 #define key_f9 __TERM _str[75] 174 #define key_home __TERM _str[76] 175 #define key_ic __TERM _str[77] 176 #define key_il __TERM _str[78] 177 #define key_left __TERM _str[79] 178 #define key_ll __TERM _str[80] 179 #define key_npage __TERM _str[81] 180 #define key_ppage __TERM _str[82] 181 #define key_right __TERM _str[83] 182 #define key_sf __TERM _str[84] 183 #define key_sr __TERM _str[85] 184 #define key_stab __TERM _str[86] 185 #define key_up __TERM _str[87] 186 #define keypad_local __TERM _str[88] 187 #define keypad_xmit __TERM _str[89] 188 #define lab_f0 __TERM _str[90] 189 #define lab_f1 __TERM _str[91] 190 #define lab_f10 __TERM _str[92] 191 #define lab_f2 __TERM _str[93] 192 #define lab_f3 __TERM _str[94] 193 #define lab_f4 __TERM _str[95] 194 #define lab_f5 __TERM _str[96] 195 #define lab_f6 __TERM _str[97] 196 #define lab_f7 __TERM _str[98] 197 #define lab_f8 __TERM _str[99] 198 #define lab_f9 __TERM _str[100] 199 #define meta_off __TERM _str[101] 200 #define meta_on __TERM _str[102] 201 #define newline __TERM _str[103] 202 #define pad_char __TERM _str[104] 203 #define parm_dch __TERM _str[105] 204 #define parm_delete_line __TERM _str[106] 205 #define parm_down_cursor __TERM _str[107] 206 #define parm_ich __TERM _str[108] 207 #define parm_index __TERM _str[109] 208 #define parm_insert_line __TERM _str[110] 209 #define parm_left_cursor __TERM _str[111] 210 #define parm_right_cursor __TERM _str[112] 211 #define parm_rindex __TERM _str[113] 212 #define parm_up_cursor __TERM _str[114] 213 #define pkey_key __TERM _str[115] 214 #define pkey_local __TERM _str[116] 215 #define pkey_xmit __TERM _str[117] 216 #define print_screen __TERM _str[118] 217 #define prtr_off __TERM _str[119] 218 #define prtr_on __TERM _str[120] 219 #define repeat_char __TERM _str[121] 220 #define reset_1string __TERM _str[122] 221 #define reset_2string __TERM _str[123] 222 #define reset_3string __TERM _str[124] 223 #define reset_file __TERM _str[125] 224 #define restore_cursor __TERM _str[126] 225 #define row_address __TERM _str[127] 226 #define save_cursor __TERM _str[128] 227 #define scroll_forward __TERM _str[129] 228 #define scroll_reverse __TERM _str[130] 229 #define set_attributes __TERM _str[131] 230 #define set_tab __TERM _str[132] 231 #define set_window __TERM _str[133] 232 #define tab __TERM _str[134] 233 #define to_status_line __TERM _str[135] 234 #define underline_char __TERM _str[136] 235 #define up_half_line __TERM _str[137] 236 #define init_prog __TERM _str[138] 237 #define key_a1 __TERM _str[139] 238 #define key_a3 __TERM _str[140] 239 #define key_b2 __TERM _str[141] 240 #define key_c1 __TERM _str[142] 241 #define key_c3 __TERM _str[143] 242 #define prtr_non __TERM _str[144] 243 #define char_padding __TERM _str[145] 244 #define acs_chars __TERM _str[146] 245 #define plab_norm __TERM _str[147] 246 #define key_btab __TERM _str[148] 247 #define enter_xon_mode __TERM _str[149] 248 #define exit_xon_mode __TERM _str[150] 249 #define enter_am_mode __TERM _str[151] 250 #define exit_am_mode __TERM _str[152] 251 #define xon_character __TERM _str[153] 252 #define xoff_character __TERM _str[154] 253 #define ena_acs __TERM _str[155] 254 #define label_on __TERM _str[156] 255 #define label_off __TERM _str[157] 256 #define key_beg __TERM _str[158] 257 #define key_cancel __TERM _str[159] 258 #define key_close __TERM _str[160] 259 #define key_command __TERM _str[161] 260 #define key_copy __TERM _str[162] 261 #define key_create __TERM _str[163] 262 #define key_end __TERM _str[164] 263 #define key_enter __TERM _str[165] 264 #define key_exit __TERM _str[166] 265 #define key_find __TERM _str[167] 266 #define key_help __TERM _str[168] 267 #define key_mark __TERM _str[169] 268 #define key_message __TERM _str[170] 269 #define key_move __TERM _str[171] 270 #define key_next __TERM _str[172] 271 #define key_open __TERM _str[173] 272 #define key_options __TERM _str[174] 273 #define key_previous __TERM _str[175] 274 #define key_print __TERM _str[176] 275 #define key_redo __TERM _str[177] 276 #define key_reference __TERM _str[178] 277 #define key_refresh __TERM _str[179] 278 #define key_replace __TERM _str[180] 279 #define key_restart __TERM _str[181] 280 #define key_resume __TERM _str[182] 281 #define key_save __TERM _str[183] 282 #define key_suspend __TERM _str[184] 283 #define key_undo __TERM _str[185] 284 #define key_sbeg __TERM _str[186] 285 #define key_scancel __TERM _str[187] 286 #define key_scommand __TERM _str[188] 287 #define key_scopy __TERM _str[189] 288 #define key_screate __TERM _str[190] 289 #define key_sdc __TERM _str[191] 290 #define key_sdl __TERM _str[192] 291 #define key_select __TERM _str[193] 292 #define key_send __TERM _str[194] 293 #define key_seol __TERM _str[195] 294 #define key_sexit __TERM _str[196] 295 #define key_sfind __TERM _str[197] 296 #define key_shelp __TERM _str[198] 297 #define key_shome __TERM _str[199] 298 #define key_sic __TERM _str[200] 299 #define key_sleft __TERM _str[201] 300 #define key_smessage __TERM _str[202] 301 #define key_smove __TERM _str[203] 302 #define key_snext __TERM _str[204] 303 #define key_soptions __TERM _str[205] 304 #define key_sprevious __TERM _str[206] 305 #define key_sprint __TERM _str[207] 306 #define key_sredo __TERM _str[208] 307 #define key_sreplace __TERM _str[209] 308 #define key_sright __TERM _str[210] 309 #define key_srsume __TERM _str[211] 310 #define key_ssave __TERM _str[212] 311 #define key_ssuspend __TERM _str[213] 312 #define key_sundo __TERM _str[214] 313 #define req_for_input __TERM _str[215] 314 #define key_f11 __TERM _str[216] 315 #define key_f12 __TERM _str[217] 316 #define key_f13 __TERM _str[218] 317 #define key_f14 __TERM _str[219] 318 #define key_f15 __TERM _str[220] 319 #define key_f16 __TERM _str[221] 320 #define key_f17 __TERM _str[222] 321 #define key_f18 __TERM _str[223] 322 #define key_f19 __TERM _str[224] 323 #define key_f20 __TERM _str[225] 324 #define key_f21 __TERM _str[226] 325 #define key_f22 __TERM _str[227] 326 #define key_f23 __TERM _str[228] 327 #define key_f24 __TERM _str[229] 328 #define key_f25 __TERM _str[230] 329 #define key_f26 __TERM _str[231] 330 #define key_f27 __TERM _str[232] 331 #define key_f28 __TERM _str[233] 332 #define key_f29 __TERM _str[234] 333 #define key_f30 __TERM _str[235] 334 #define key_f31 __TERM _str[236] 335 #define key_f32 __TERM _str[237] 336 #define key_f33 __TERM _str[238] 337 #define key_f34 __TERM _str[239] 338 #define key_f35 __TERM _str[240] 339 #define key_f36 __TERM _str[241] 340 #define key_f37 __TERM _str[242] 341 #define key_f38 __TERM _str[243] 342 #define key_f39 __TERM _str[244] 343 #define key_f40 __TERM _str[245] 344 #define key_f41 __TERM _str[246] 345 #define key_f42 __TERM _str[247] 346 #define key_f43 __TERM _str[248] 347 #define key_f44 __TERM _str[249] 348 #define key_f45 __TERM _str[250] 349 #define key_f46 __TERM _str[251] 350 #define key_f47 __TERM _str[252] 351 #define key_f48 __TERM _str[253] 352 #define key_f49 __TERM _str[254] 353 #define key_f50 __TERM _str[255] 354 #define key_f51 __TERM _str[256] 355 #define key_f52 __TERM _str[257] 356 #define key_f53 __TERM _str[258] 357 #define key_f54 __TERM _str[259] 358 #define key_f55 __TERM _str[260] 359 #define key_f56 __TERM _str[261] 360 #define key_f57 __TERM _str[262] 361 #define key_f58 __TERM _str[263] 362 #define key_f59 __TERM _str[264] 363 #define key_f60 __TERM _str[265] 364 #define key_f61 __TERM _str[266] 365 #define key_f62 __TERM _str[267] 366 #define key_f63 __TERM _str[268] 367 #define clr_bol __TERM _str[269] 368 #define clear_margins __TERM _str[270] 369 #define set_left_margin __TERM _str[271] 370 #define set_right_margin __TERM _str[272] 371 #define label_format __TERM _str[273] 372 #define set_clock __TERM _str[274] 373 #define display_clock __TERM _str[275] 374 #define remove_clock __TERM _str[276] 375 #define create_window __TERM _str[277] 376 #define goto_window __TERM _str[278] 377 #define hangup __TERM _str[279] 378 #define dial_phone __TERM _str[280] 379 #define quick_dial __TERM _str[281] 380 #define tone __TERM _str[282] 381 #define pulse __TERM _str[283] 382 #define flash_hook __TERM _str[284] 383 #define fixed_pause __TERM _str[285] 384 #define wait_tone __TERM _str[286] 385 #define user0 __TERM _str[287] 386 #define user1 __TERM _str[288] 387 #define user2 __TERM _str[289] 388 #define user3 __TERM _str[290] 389 #define user4 __TERM _str[291] 390 #define user5 __TERM _str[292] 391 #define user6 __TERM _str[293] 392 #define user7 __TERM _str[294] 393 #define user8 __TERM _str[295] 394 #define user9 __TERM _str[296] 395 #define orig_pair __TERM _str[297] 396 #define orig_colors __TERM _str[298] 397 #define initialize_color __TERM _str[299] 398 #define initialize_pair __TERM _str[300] 399 #define set_color_pair __TERM _str[301] 400 #define set_foreground __TERM _str[302] 401 #define set_background __TERM _str[303] 402 #define change_char_pitch __TERM _str[304] 403 #define change_line_pitch __TERM _str[305] 404 #define change_res_horz __TERM _str[306] 405 #define change_res_vert __TERM _str[307] 406 #define define_char __TERM _str[308] 407 #define enter_doublewide_mode __TERM _str[309] 408 #define enter_draft_quality __TERM _str[310] 409 #define enter_italics_mode __TERM _str[311] 410 #define enter_leftward_mode __TERM _str[312] 411 #define enter_micro_mode __TERM _str[313] 412 #define enter_near_letter_quality __TERM _str[314] 413 #define enter_normal_quality __TERM _str[315] 414 #define enter_shadow_mode __TERM _str[316] 415 #define enter_subscript_mode __TERM _str[317] 416 #define enter_superscript_mode __TERM _str[318] 417 #define enter_upward_mode __TERM _str[319] 418 #define exit_doublewide_mode __TERM _str[320] 419 #define exit_italics_mode __TERM _str[321] 420 #define exit_leftward_mode __TERM _str[322] 421 #define exit_micro_mode __TERM _str[323] 422 #define exit_shadow_mode __TERM _str[324] 423 #define exit_subscript_mode __TERM _str[325] 424 #define exit_superscript_mode __TERM _str[326] 425 #define exit_upward_mode __TERM _str[327] 426 #define micro_column_address __TERM _str[328] 427 #define micro_down __TERM _str[329] 428 #define micro_left __TERM _str[330] 429 #define micro_right __TERM _str[331] 430 #define micro_row_address __TERM _str[332] 431 #define micro_up __TERM _str[333] 432 #define order_of_pins __TERM _str[334] 433 #define parm_down_micro __TERM _str[335] 434 #define parm_left_micro __TERM _str[336] 435 #define parm_right_micro __TERM _str[337] 436 #define parm_up_micro __TERM _str[338] 437 #define select_char_set __TERM _str[339] 438 #define set_bottom_margin __TERM _str[340] 439 #define set_bottom_margin_parm __TERM _str[341] 440 #define set_left_margin_parm __TERM _str[342] 441 #define set_right_margin_parm __TERM _str[343] 442 #define set_top_margin __TERM _str[344] 443 #define set_top_margin_parm __TERM _str[345] 444 #define start_bit_image __TERM _str[346] 445 #define start_char_set_def __TERM _str[347] 446 #define stop_bit_image __TERM _str[348] 447 #define stop_char_set_def __TERM _str[349] 448 #define subscript_characters __TERM _str[350] 449 #define superscript_characters __TERM _str[351] 450 #define these_cause_cr __TERM _str[352] 451 #define zero_motion __TERM _str[353] 452 #define char_set_names __TERM _str[354] 453 #define key_mouse __TERM _str[355] 454 #define mouse_info __TERM _str[356] 455 #define req_mouse_pos __TERM _str[357] 456 #define get_mouse __TERM _bool[37] 457 #define set_a_foreground __TERM _str[358] 458 #define set_a_background __TERM _str[359] 459 #define pkey_plab __TERM _str[360] 460 #define device_type __TERM _str[361] 461 #define code_set_init __TERM _str[362] 462 #define set0_des_seq __TERM _str[363] 463 #define set1_des_seq __TERM _str[364] 464 #define set2_des_seq __TERM _str[365] 465 #define set3_des_seq __TERM _str[366] 466 #define set_lr_margin __TERM _str[367] 467 #define set_tb_margin __TERM _str[368] 468 #define bit_image_repeat __TERM _str[369] 469 #define bit_image_newline __TERM _str[370] 470 #define bit_image_carriage_return __TERM _str[371] 471 #define color_names __TERM _str[372] 472 #define define_bit_image_region __TERM _str[373] 473 #define end_bit_image_region __TERM _str[374] 474 #define set_color_band __TERM _str[375] 475 #define set_page_length __TERM _str[376] 476 #define display_pc_char __TERM _str[377] 477 #define enter_pc_charset_mode __TERM _str[378] 478 #define exit_pc_charset_mode __TERM _str[379] 479 #define enter_scancode_mode __TERM _str[380] 480 #define exit_scancode_mode __TERM _str[381] 481 #define pc_term_options __TERM _str[382] 482 #define scancode_escape __TERM _str[383] 483 #define alt_scancode_esc __TERM _str[384] 484 #define enter_horizontal_hl_mode __TERM _str[385] 485 #define enter_left_hl_mode __TERM _str[386] 486 #define enter_low_hl_mode __TERM _str[387] 487 #define enter_right_hl_mode __TERM _str[388] 488 #define enter_top_hl_mode __TERM _str[389] 489 #define enter_vertical_hl_mode __TERM _str[390] 490 #define set_a_attributes __TERM _str[391] 491 #define set_pglen_inch __TERM _str[392] 492 493 #define __COUNT_BOOL 38 494 #define __COUNT_NUM 33 495 #define __COUNT_STR 393 496 497 /* 498 * MKS Header format for terminfo database files. 499 * 500 * The header consists of six short integers, stored using VAX/PDP style 501 * byte swapping (least-significant byte first). The integers are 502 * 503 * 1) magic number (octal 0432); 504 * 2) the size, in bytes, of the names sections; 505 * 3) the number of bytes in the boolean section; 506 * 4) the number of short integers in the numbers section; 507 * 5) the number of offsets (short integers) in the strings section; 508 * 6) the size, in bytes, of the string table. 509 * 510 * Between the boolean and number sections, a null byte is inserted, if 511 * necessary, to ensure that the number section begins on an even byte 512 * offset. All short integers are aligned on a short word boundary. 513 */ 514 515 #define __TERMINFO_MAGIC 0432 516 517 typedef struct { 518 short magic; 519 short name_size; 520 short bool_count; 521 short num_count; 522 short str_count; 523 short str_size; 524 } terminfo_header_t; 525 526 /* 527 * The following __MOVE_ constants are indices into the _move[] member 528 * of a SCREEN structure. The array is used by m_mvcur() for cursor 529 * motion costs and initialized by newterm(). 530 * 531 * The following indices refer to relative cursor motion actions that 532 * have a base-cost times the distance/count. 533 */ 534 #define __MOVE_UP 0 535 #define __MOVE_DOWN 1 536 #define __MOVE_LEFT 2 537 #define __MOVE_RIGHT 3 538 #define __MOVE_TAB 4 539 #define __MOVE_BACK_TAB 5 540 541 #define __MOVE_MAX_RELATIVE 6 542 543 /* 544 * These should have fixed costs. 545 */ 546 #define __MOVE_RETURN 6 547 #define __MOVE_HOME 7 548 #define __MOVE_LAST_LINE 8 549 550 /* 551 * These have worst case cost based on moving the maximum possible 552 * value for a parameter given the screen size. 553 */ 554 #define __MOVE_N_UP 9 555 #define __MOVE_N_DOWN 10 556 #define __MOVE_N_LEFT 11 557 #define __MOVE_N_RIGHT 12 558 #define __MOVE_ROW 13 559 #define __MOVE_COLUMN 14 560 #define __MOVE_ROW_COLUMN 15 561 562 #define __MOVE_MAX 16 563 564 /* 565 * For a cursor motion to be used there must be a base-cost of at least 1. 566 */ 567 #define __MOVE_INFINITY 1000 568 569 #define __TERM_ISATTY_IN 0x0001 /* Input is a terminal */ 570 #define __TERM_ISATTY_OUT 0x0002 /* Output is a terminal */ 571 #define __TERM_HALF_DELAY 0x0004 /* halfdelay() has priority. */ 572 #define __TERM_INSERT_MODE 0x0008 /* Terminal is in insert mode. */ 573 #define __TERM_NL_IS_CRLF 0x8000 /* Newline is mapped on output. */ 574 575 /*** 576 *** Opaque data type. Keep your grubby mits off. 577 ***/ 578 typedef struct { 579 int _ifd; /* Input file descriptor */ 580 int _ofd; /* Output file descriptor */ 581 struct termios _prog; 582 struct termios _shell; 583 struct termios _save; 584 short _co; /* Current colour-pair. */ 585 unsigned short _at; /* Current attribute state. */ 586 short (*_pair)[2]; 587 short (*_color)[3]; 588 unsigned short _flags; 589 char _bool[__COUNT_BOOL]; 590 short _num[__COUNT_NUM]; 591 char *_str[__COUNT_STR]; /* Pointers into _str_table. */ 592 char *_str_table; 593 char *_names; /* Terminal alias in _str_table. */ 594 char *_term; /* TERM name loaded. */ 595 struct { 596 char *_seq; 597 short _cost; 598 } _move[__MOVE_MAX]; 599 } TERMINAL; 600 601 extern TERMINAL *cur_term; 602 603 extern char *__m_boolnames[]; 604 extern char *__m_boolcodes[]; 605 extern char *__m_boolfnames[]; 606 extern char *__m_numnames[]; 607 extern char *__m_numcodes[]; 608 extern char *__m_numfnames[]; 609 extern char *__m_strnames[]; 610 extern char *__m_strcodes[]; 611 extern char *__m_strfnames[]; 612 613 #ifndef _XOPEN_SOURCE 614 /* 615 * Old System V array names. 616 */ 617 #define boolnames __m_boolnames 618 #define boolcodes __m_boolcodes 619 #define boolfnames __m_boolfnames 620 #define numnames __m_numnames 621 #define numcodes __m_numcodes 622 #define numfnames __m_numfnames 623 #define strnames __m_strnames 624 #define strcodes __m_strcodes 625 #define strfnames __m_strfnames 626 #endif /* _XOPEN_SOURCE */ 627 628 /* 629 * Exposed internal functions. 630 */ 631 extern int __m_putchar(int); 632 extern int __m_mvcur(int, int, int, int, int (*)(int)); 633 extern int __m_read_terminfo(const char *, TERMINAL *); 634 extern int __m_setupterm(const char *, int, int, int *); 635 636 /* 637 * Globals 638 */ 639 extern int del_curterm(TERMINAL *); 640 extern TERMINAL *set_curterm(TERMINAL *); 641 extern int restartterm(const char *, int, int *); 642 extern int setupterm(const char *, int, int *); 643 644 extern int tgetent(char *, char *); 645 extern int tgetflag(const char *); 646 extern int tgetnum(const char *); 647 extern char *tgetstr(const char *, char **); 648 extern char *tgoto(const char *, int, int); 649 650 extern int tigetflag(const char *); 651 extern int tigetnum(const char *); 652 extern char *tigetstr(const char *); 653 654 extern int putp(const char *); 655 extern const char *tparm( 656 const char *, long, long, long, long, long, long, long, long, long); 657 extern int tputs(const char *, int, int (*)(int)); 658 659 #ifndef _XOPEN_SOURCE_EXTENDED 660 661 #define putp(str) tputs(str,1,__m_putchar) 662 #define del_term del_curterm 663 #define setterm(t) setupterm(t,STDOUT_FILENO,(int *) 0) 664 #define tgoto(cm,c,r) tparm((char *)(cm), (long)(r), (long)(c)) 665 666 #ifndef _XOPEN_SOURCE 667 #define beehive_glitch no_esc_ctrlc 668 #define teleray_glitch dest_tabs_magic_smso 669 #endif /* _XOPEN_SOURCE */ 670 671 #endif /* _XOPEN_SOURCE_EXTENDED */ 672 673 #endif /* __term_h__ */ 674