home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / uccs / root.12 / usr / include / stdterm.h < prev    next >
C/C++ Source or Header  |  1998-08-19  |  56KB  |  1,299 lines

  1. /*
  2.  * Copyright (c) 1998 The Santa Cruz Operation, Inc.. All Rights Reserved. 
  3.  *                                                                         
  4.  *        THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF THE               
  5.  *                   SANTA CRUZ OPERATION INC.                             
  6.  *                                                                         
  7.  *   The copyright notice above does not evidence any actual or intended   
  8.  *   publication of such source code.                                      
  9.  */
  10.  
  11. /*        copyright    "%c%"     */
  12.  
  13. /*
  14.  *    Copyright (c) 1982, 1986, 1988
  15.  *    The Regents of the University of California
  16.  *    All Rights Reserved.
  17.  *    Portions of this document are derived from
  18.  *    software developed by the University of
  19.  *    California, Berkeley, and its contributors.
  20.  */
  21.  
  22. #ident  "$Header: copyright.h 1.2 91/06/26 $"
  23.  
  24. #ifdef IDENT
  25. #ident    "@(#)icurses:screen/term/maketerm.ed    1.12.1.2"
  26. #endif /* IDENT */
  27.  
  28. /*
  29.  * term.h - this file is automatically made from caps and maketerm.ed.
  30.  * Don't make changes directly to term.h.
  31.  *
  32.  * Guard against multiple includes.
  33.  */
  34.  
  35. #ifndef _TERM_H
  36.  
  37. #define _TERM_H
  38.  
  39. #ifdef __cplusplus
  40. extern "C" {
  41. #endif
  42.  
  43. #ifndef _ATTR_T
  44. #define _ATTR_T
  45. typedef unsigned long    attr_t;
  46. #endif
  47.  
  48. #ifndef _CCHAR_T
  49. #define _CCHAR_T
  50. #define _ZLC_MOD_MAX    5
  51.  
  52. typedef struct {
  53.     attr_t    _a;
  54.     wchar_t    _c;
  55.     wchar_t _z[_ZLC_MOD_MAX];
  56. } cchar_t;
  57. #endif
  58.  
  59. #define auto_left_margin         CUR _b1
  60. #define auto_right_margin         CUR _b2
  61. #define no_esc_ctlc             CUR _b3
  62. #define ceol_standout_glitch         CUR _b4
  63. #define eat_newline_glitch         CUR _b5
  64. #define erase_overstrike         CUR _b6
  65. #define generic_type             CUR _b7
  66. #define hard_copy             CUR _b8
  67. #define has_meta_key             CUR _b9
  68. #define has_status_line         CUR _b10
  69. #define insert_null_glitch         CUR _b11
  70. #define memory_above             CUR _b12
  71. #define memory_below             CUR _b13
  72. #define move_insert_mode         CUR _b14
  73. #define move_standout_mode         CUR _b15
  74. #define over_strike             CUR _b16
  75. #define status_line_esc_ok         CUR _b17
  76. #define dest_tabs_magic_smso         CUR _b18
  77. #define tilde_glitch             CUR _b19
  78. #define transparent_underline         CUR _b20
  79. #define xon_xoff             CUR _b21
  80. #define needs_xon_xoff             CURB _needs_xon_xoff
  81. #define prtr_silent             CURB _prtr_silent
  82. #define hard_cursor             CURB _hard_cursor
  83. #define non_rev_rmcup             CURB _non_rev_rmcup
  84. #define no_pad_char             CURB _no_pad_char
  85. #define non_dest_scroll_region         CURB _non_dest_scroll_region
  86. #define can_change             CURB _can_change
  87. #define back_color_erase         CURB _back_color_erase
  88. #define hue_lightness_saturation         CURB _hue_lightness_saturation
  89. #define col_addr_glitch         CURB _col_addr_glitch
  90. #define cr_cancels_micro_mode         CURB _cr_cancels_micro_mode
  91. #define has_print_wheel         CURB _has_print_wheel
  92. #define row_addr_glitch         CURB _row_addr_glitch
  93. #define semi_auto_right_margin         CURB _semi_auto_right_margin
  94. #define cpi_changes_res         CURB _cpi_changes_res
  95. #define lpi_changes_res         CURB _lpi_changes_res
  96. #define columns             CUR _c1
  97. #define init_tabs             CUR _c2
  98. #define lines                 CUR _c3
  99. #define lines_of_memory         CUR _c4
  100. #define magic_cookie_glitch         CUR _c5
  101. #define padding_baud_rate         CUR _c6
  102. #define virtual_terminal         CUR _c7
  103. #define width_status_line         CUR _c8
  104. #define num_labels             CURN _num_labels
  105. #define label_height             CURN _labl_height
  106. #define label_width             CURN _labl_width
  107. #define max_attributes             CURN _max_attributes
  108. #define maximum_windows         CURN _maximum_windows
  109. #define max_colors             CURN _max_colors
  110. #define max_pairs             CURN _max_pairs
  111. #define no_color_video             CURN _no_color_video
  112. #define buffer_capacity         CURN _buffer_capacity
  113. #define dot_vert_spacing         CURN _dot_vert_spacing
  114. #define dot_horz_spacing         CURN _dot_horz_spacing
  115. #define max_micro_address         CURN _max_micro_address
  116. #define max_micro_jump             CURN _max_micro_jump
  117. #define micro_col_size             CURN _micro_col_size
  118. #define micro_line_size         CURN _micro_line_size
  119. #define number_of_pins             CURN _number_of_pins
  120. #define output_res_char         CURN _output_res_char
  121. #define output_res_line         CURN _output_res_line
  122. #define output_res_horz_inch         CURN _output_res_horz_inch
  123. #define output_res_vert_inch         CURN _output_res_vert_inch
  124. #define print_rate             CURN _print_rate
  125. #define wide_char_size             CURN _wide_char_size
  126. #define buttons             CURN _buttons
  127. #define bit_image_entwining         CURN _bit_image_entwining
  128. #define bit_image_type             CURN _bit_image_type
  129. #define back_tab             CUR _Vr2_Astrs._s1
  130. #define bell                 CUR _Vr2_Astrs._s2
  131. #define carriage_return         CUR _Vr2_Astrs._s3
  132. #define change_scroll_region         CUR _Vr2_Astrs._s4
  133. #define clear_all_tabs             CUR _Vr2_Astrs._s5
  134. #define clear_screen             CUR _Vr2_Astrs._s6
  135. #define clr_eol             CUR _Vr2_Astrs._s7
  136. #define clr_eos             CUR _Vr2_Astrs._s8
  137. #define column_address             CUR _Vr2_Astrs._s9
  138. #define command_character         CUR _Vr2_Astrs._s10
  139. #define cursor_address             CUR _Vr2_Astrs._s11
  140. #define cursor_down             CUR _Vr2_Astrs._s12
  141. #define cursor_home             CUR _Vr2_Astrs._s13
  142. #define cursor_invisible         CUR _Vr2_Astrs._s14
  143. #define cursor_left             CUR _Vr2_Astrs._s15
  144. #define cursor_mem_address         CUR _Vr2_Astrs._s16
  145. #define cursor_normal             CUR _Vr2_Astrs._s17
  146. #define cursor_right             CUR _Vr2_Astrs._s18
  147. #define cursor_to_ll             CUR _Vr2_Astrs._s19
  148. #define cursor_up             CUR _Vr2_Astrs._s20
  149. #define cursor_visible             CUR _Vr2_Astrs._s21
  150. #define delete_character         CUR _Vr2_Astrs._s22
  151. #define delete_line             CUR _Vr2_Astrs._s23
  152. #define dis_status_line         CUR _Vr2_Astrs._s24
  153. #define down_half_line             CUR _Vr2_Astrs._s25
  154. #define enter_alt_charset_mode         CUR _Vr2_Astrs._s26
  155. #define enter_blink_mode         CUR _Vr2_Astrs._s27
  156. #define enter_bold_mode         CUR _Vr2_Astrs._s28
  157. #define enter_ca_mode             CUR _Vr2_Astrs._s29
  158. #define enter_delete_mode         CUR _Vr2_Astrs._s30
  159. #define enter_dim_mode             CUR _Vr2_Astrs._s31
  160. #define enter_insert_mode         CUR _Vr2_Astrs._s32
  161. #define enter_secure_mode         CUR _Vr2_Astrs._s33
  162. #define enter_protected_mode         CUR _Vr2_Astrs._s34
  163. #define enter_reverse_mode         CUR _Vr2_Astrs._s35
  164. #define enter_standout_mode         CUR _Vr2_Astrs._s36
  165. #define enter_underline_mode         CUR _Vr2_Astrs._s37
  166. #define erase_chars             CUR _Vr2_Astrs._s38
  167. #define exit_alt_charset_mode         CUR _Vr2_Astrs._s39
  168. #define exit_attribute_mode         CUR _Vr2_Astrs._s40
  169. #define exit_ca_mode             CUR _Vr2_Astrs._s41
  170. #define exit_delete_mode         CUR _Vr2_Astrs._s42
  171. #define exit_insert_mode         CUR _Vr2_Astrs._s43
  172. #define exit_standout_mode         CUR _Vr2_Astrs._s44
  173. #define exit_underline_mode         CUR _Vr2_Astrs._s45
  174. #define flash_screen             CUR _Vr2_Astrs._s46
  175. #define form_feed             CUR _Vr2_Astrs._s47
  176. #define from_status_line         CUR _Vr2_Astrs._s48
  177. #define init_1string             CUR _Vr2_Astrs._s49
  178. #define init_2string             CUR _Vr2_Astrs._s50
  179. #define init_3string             CUR _Vr2_Astrs._s51
  180. #define init_file             CUR _Vr2_Astrs._s52
  181. #define insert_character         CUR _Vr2_Astrs._s53
  182. #define insert_line             CUR _Vr2_Astrs._s54
  183. #define insert_padding             CUR _Vr2_Astrs._s55
  184. #define key_backspace             CUR _Vr2_Astrs._s56
  185. #define key_catab             CUR _Vr2_Astrs._s57
  186. #define key_clear             CUR _Vr2_Astrs._s58
  187. #define key_ctab             CUR _Vr2_Astrs._s59
  188. #define key_dc                 CUR _Vr2_Astrs._s60
  189. #define key_dl                 CUR _Vr2_Astrs._s61
  190. #define key_down             CUR _Vr2_Astrs._s62
  191. #define key_eic             CUR _Vr2_Astrs._s63
  192. #define key_eol             CUR _Vr2_Astrs._s64
  193. #define key_eos             CUR _Vr2_Astrs._s65
  194. #define key_f0                 CUR _Vr2_Astrs._s66
  195. #define key_f1                 CUR _Vr2_Astrs._s67
  196. #define key_f10             CUR _Vr2_Astrs._s68
  197. #define key_f2                 CUR _Vr2_Astrs._s69
  198. #define key_f3                 CUR _Vr2_Astrs._s70
  199. #define key_f4                 CUR _Vr2_Astrs._s71
  200. #define key_f5                 CUR _Vr2_Astrs._s72
  201. #define key_f6                 CUR _Vr2_Astrs._s73
  202. #define key_f7                 CUR _Vr2_Astrs._s74
  203. #define key_f8                 CUR _Vr2_Astrs._s75
  204. #define key_f9                 CUR _Vr2_Astrs._s76
  205. #define key_home             CUR _Vr2_Astrs._s77
  206. #define key_ic                 CUR _Vr2_Astrs._s78
  207. #define key_il                 CUR _Vr2_Astrs._s79
  208. #define key_left             CUR _Vr2_Astrs._s80
  209. #define key_ll                 CUR _Vr2_Astrs._s81
  210. #define key_npage             CUR _Vr2_Astrs._s82
  211. #define key_ppage             CUR _Vr2_Astrs._s83
  212. #define key_right             CUR _Vr2_Astrs._s84
  213. #define key_sf                 CUR _Vr2_Astrs._s85
  214. #define key_sr                 CUR _Vr2_Astrs._s86
  215. #define key_stab             CUR _Vr2_Astrs._s87
  216. #define key_up                 CUR _Vr2_Astrs._s88
  217. #define keypad_local             CUR _Vr2_Astrs._s89
  218. #define keypad_xmit             CUR _Vr2_Astrs._s90
  219. #define lab_f0                 CUR _Vr2_Astrs._s91
  220. #define lab_f1                 CUR _Vr2_Astrs._s92
  221. #define lab_f10             CUR _Vr2_Astrs._s93
  222. #define lab_f2                 CUR _Vr2_Astrs._s94
  223. #define lab_f3                 CUR _Vr2_Astrs._s95
  224. #define lab_f4                 CUR _Vr2_Astrs._s96
  225. #define lab_f5                 CUR _Vr2_Astrs._s97
  226. #define lab_f6                 CUR _Vr2_Astrs._s98
  227. #define lab_f7                 CUR _Vr2_Astrs._s99
  228. #define lab_f8                 CUR _Vr2_Astrs._s100
  229. #define lab_f9                 CUR _Vr2_Bstrs._s101
  230. #define meta_off             CUR _Vr2_Bstrs._s102
  231. #define meta_on             CUR _Vr2_Bstrs._s103
  232. #define newline             CUR _Vr2_Bstrs._s104
  233. #define pad_char             CUR _Vr2_Bstrs._s105
  234. #define parm_dch             CUR _Vr2_Bstrs._s106
  235. #define parm_delete_line         CUR _Vr2_Bstrs._s107
  236. #define parm_down_cursor         CUR _Vr2_Bstrs._s108
  237. #define parm_ich             CUR _Vr2_Bstrs._s109
  238. #define parm_index             CUR _Vr2_Bstrs._s110
  239. #define parm_insert_line         CUR _Vr2_Bstrs._s111
  240. #define parm_left_cursor         CUR _Vr2_Bstrs._s112
  241. #define parm_right_cursor         CUR _Vr2_Bstrs._s113
  242. #define parm_rindex             CUR _Vr2_Bstrs._s114
  243. #define parm_up_cursor             CUR _Vr2_Bstrs._s115
  244. #define pkey_key             CUR _Vr2_Bstrs._s116
  245. #define pkey_local             CUR _Vr2_Bstrs._s117
  246. #define pkey_xmit             CUR _Vr2_Bstrs._s118
  247. #define print_screen             CUR _Vr2_Bstrs._s119
  248. #define prtr_off             CUR _Vr2_Bstrs._s120
  249. #define prtr_on             CUR _Vr2_Bstrs._s121
  250. #define repeat_char             CUR _Vr2_Bstrs._s122
  251. #define reset_1string             CUR _Vr2_Bstrs._s123
  252. #define reset_2string             CUR _Vr2_Bstrs._s124
  253. #define reset_3string             CUR _Vr2_Bstrs._s125
  254. #define reset_file             CUR _Vr2_Bstrs._s126
  255. #define restore_cursor             CUR _Vr2_Bstrs._s127
  256. #define row_address             CUR _Vr2_Bstrs._s128
  257. #define save_cursor             CUR _Vr2_Bstrs._s129
  258. #define scroll_forward             CUR _Vr2_Bstrs._s130
  259. #define scroll_reverse             CUR _Vr2_Bstrs._s131
  260. #define set_attributes             CUR _Vr2_Bstrs._s132
  261. #define set_tab             CUR _Vr2_Bstrs._s133
  262. #define set_window             CUR _Vr2_Bstrs._s134
  263. #define tab                 CUR _Vr2_Bstrs._s135
  264. #define to_status_line             CUR _Vr2_Bstrs._s136
  265. #define underline_char             CUR _Vr2_Bstrs._s137
  266. #define up_half_line             CUR _Vr2_Bstrs._s138
  267. #define init_prog             CUR _Vr2_Bstrs._s139
  268. #define key_a1                 CUR _Vr2_Bstrs._s140
  269. #define key_a3                 CUR _Vr2_Bstrs._s141
  270. #define key_b2                 CUR _Vr2_Bstrs._s142
  271. #define key_c1                 CUR _Vr2_Bstrs._s143
  272. #define key_c3                 CUR _Vr2_Bstrs._s144
  273. #define prtr_non             CUR _Vr2_Bstrs._s145
  274. #define char_padding             CURS strs2._char_padding
  275. #define acs_chars             CURS strs2._acs_chars
  276. #define plab_norm             CURS strs2._plab_norm
  277. #define key_btab             CURS strs2._ky_btab
  278. #define enter_xon_mode             CURS strs2._entr_xon_mode
  279. #define exit_xon_mode             CURS strs2._exit_xon_mode
  280. #define enter_am_mode             CURS strs2._entr_am_mode
  281. #define exit_am_mode             CURS strs2._exit_am_mode
  282. #define xon_character             CURS strs2._xon_character
  283. #define xoff_character             CURS strs2._xoff_character
  284. #define ena_acs             CURS strs2._ena_acs
  285. #define label_on             CURS strs2._labl_on
  286. #define label_off             CURS strs2._labl_off
  287. #define key_beg             CURS strs2._ky_beg
  288. #define key_cancel             CURS strs2._ky_cancel
  289. #define key_close             CURS strs2._ky_close
  290. #define key_command             CURS strs2._ky_command
  291. #define key_copy             CURS strs2._ky_copy
  292. #define key_create             CURS strs2._ky_create
  293. #define key_end             CURS strs2._ky_end
  294. #define key_enter             CURS strs2._ky_enter
  295. #define key_exit             CURS strs2._ky_exit
  296. #define key_find             CURS strs2._ky_find
  297. #define key_help             CURS strs2._ky_help
  298. #define key_mark             CURS strs2._ky_mark
  299. #define key_message             CURS strs2._ky_message
  300. #define key_move             CURS strs2._ky_move
  301. #define key_next             CURS strs2._ky_next
  302. #define key_open             CURS strs2._ky_open
  303. #define key_options             CURS strs2._ky_options
  304. #define key_previous             CURS strs2._ky_previous
  305. #define key_print             CURS strs2._ky_print
  306. #define key_redo             CURS strs2._ky_redo
  307. #define key_reference             CURS strs2._ky_reference
  308. #define key_refresh             CURS strs2._ky_refresh
  309. #define key_replace             CURS strs2._ky_replace
  310. #define key_restart             CURS strs2._ky_restart
  311. #define key_resume             CURS strs2._ky_resume
  312. #define key_save             CURS strs2._ky_save
  313. #define key_suspend             CURS strs2._ky_suspend
  314. #define key_undo             CURS strs2._ky_undo
  315. #define key_sbeg             CURS strs2._ky_sbeg
  316. #define key_scancel             CURS strs2._ky_scancel
  317. #define key_scommand             CURS strs2._ky_scommand
  318. #define key_scopy             CURS strs2._ky_scopy
  319. #define key_screate             CURS strs2._ky_screate
  320. #define key_sdc             CURS strs2._ky_sdc
  321. #define key_sdl             CURS strs2._ky_sdl
  322. #define key_select             CURS strs2._ky_select
  323. #define key_send             CURS strs2._ky_send
  324. #define key_seol             CURS strs2._ky_seol
  325. #define key_sexit             CURS strs2._ky_sexit
  326. #define key_sfind             CURS strs2._ky_sfind
  327. #define key_shelp             CURS strs2._ky_shelp
  328. #define key_shome             CURS strs2._ky_shome
  329. #define key_sic             CURS strs3._ky_sic
  330. #define key_sleft             CURS strs3._ky_sleft
  331. #define key_smessage             CURS strs3._ky_smessage
  332. #define key_smove             CURS strs3._ky_smove
  333. #define key_snext             CURS strs3._ky_snext
  334. #define key_soptions             CURS strs3._ky_soptions
  335. #define key_sprevious             CURS strs3._ky_sprevious
  336. #define key_sprint             CURS strs3._ky_sprint
  337. #define key_sredo             CURS strs3._ky_sredo
  338. #define key_sreplace             CURS strs3._ky_sreplace
  339. #define key_sright             CURS strs3._ky_sright
  340. #define key_srsume             CURS strs3._ky_srsume
  341. #define key_ssave             CURS strs3._ky_ssave
  342. #define key_ssuspend             CURS strs3._ky_ssuspend
  343. #define key_sundo             CURS strs3._ky_sundo
  344. #define req_for_input             CURS strs3._req_for_input
  345. #define key_f11             CURS strs3._ky_f11
  346. #define key_f12             CURS strs3._ky_f12
  347. #define key_f13             CURS strs3._ky_f13
  348. #define key_f14             CURS strs3._ky_f14
  349. #define key_f15             CURS strs3._ky_f15
  350. #define key_f16             CURS strs3._ky_f16
  351. #define key_f17             CURS strs3._ky_f17
  352. #define key_f18             CURS strs3._ky_f18
  353. #define key_f19             CURS strs3._ky_f19
  354. #define key_f20             CURS strs3._ky_f20
  355. #define key_f21             CURS strs3._ky_f21
  356. #define key_f22             CURS strs3._ky_f22
  357. #define key_f23             CURS strs3._ky_f23
  358. #define key_f24             CURS strs3._ky_f24
  359. #define key_f25             CURS strs3._ky_f25
  360. #define key_f26             CURS strs3._ky_f26
  361. #define key_f27             CURS strs3._ky_f27
  362. #define key_f28             CURS strs3._ky_f28
  363. #define key_f29             CURS strs3._ky_f29
  364. #define key_f30             CURS strs3._ky_f30
  365. #define key_f31             CURS strs3._ky_f31
  366. #define key_f32             CURS strs3._ky_f32
  367. #define key_f33             CURS strs3._ky_f33
  368. #define key_f34             CURS strs3._ky_f34
  369. #define key_f35             CURS strs3._ky_f35
  370. #define key_f36             CURS strs3._ky_f36
  371. #define key_f37             CURS strs3._ky_f37
  372. #define key_f38             CURS strs3._ky_f38
  373. #define key_f39             CURS strs3._ky_f39
  374. #define key_f40             CURS strs3._ky_f40
  375. #define key_f41             CURS strs3._ky_f41
  376. #define key_f42             CURS strs3._ky_f42
  377. #define key_f43             CURS strs3._ky_f43
  378. #define key_f44             CURS strs3._ky_f44
  379. #define key_f45             CURS strs3._ky_f45
  380. #define key_f46             CURS strs3._ky_f46
  381. #define key_f47             CURS strs3._ky_f47
  382. #define key_f48             CURS strs3._ky_f48
  383. #define key_f49             CURS strs3._ky_f49
  384. #define key_f50             CURS strs3._ky_f50
  385. #define key_f51             CURS strs3._ky_f51
  386. #define key_f52             CURS strs3._ky_f52
  387. #define key_f53             CURS strs3._ky_f53
  388. #define key_f54             CURS strs3._ky_f54
  389. #define key_f55             CURS strs3._ky_f55
  390. #define key_f56             CURS strs3._ky_f56
  391. #define key_f57             CURS strs3._ky_f57
  392. #define key_f58             CURS strs3._ky_f58
  393. #define key_f59             CURS strs3._ky_f59
  394. #define key_f60             CURS strs3._ky_f60
  395. #define key_f61             CURS strs3._ky_f61
  396. #define key_f62             CURS strs3._ky_f62
  397. #define key_f63             CURS strs3._ky_f63
  398. #define clr_bol             CURS strs3._clr_bol
  399. #define clear_margins             CURS strs3._clear_margins
  400. #define set_left_margin         CURS strs3._set_left_margin
  401. #define set_right_margin         CURS strs3._set_right_margin
  402. #define label_format             CURS strs3._labl_format
  403. #define set_clock             CURS strs3._set_clock
  404. #define display_clock             CURS strs3._display_clock
  405. #define remove_clock             CURS strs3._remove_clock
  406. #define create_window             CURS strs3._create_window
  407. #define goto_window             CURS strs3._goto_window
  408. #define hangup                 CURS strs3._hangup
  409. #define dial_phone             CURS strs3._dial_phone
  410. #define quick_dial             CURS strs3._quick_dial
  411. #define tone                 CURS strs3._tone
  412. #define pulse                 CURS strs3._pulse
  413. #define flash_hook             CURS strs3._flash_hook
  414. #define fixed_pause             CURS strs3._fixed_pause
  415. #define wait_tone             CURS strs3._wait_tone
  416. #define user0                 CURS strs3._user0
  417. #define user1                 CURS strs3._user1
  418. #define user2                 CURS strs3._user2
  419. #define user3                 CURS strs3._user3
  420. #define user4                 CURS strs3._user4
  421. #define user5                 CURS strs3._user5
  422. #define user6                 CURS strs3._user6
  423. #define user7                 CURS strs3._user7
  424. #define user8                 CURS strs3._user8
  425. #define user9                 CURS strs3._user9
  426. #define orig_pair             CURS strs3._orig_pair
  427. #define orig_colors             CURS strs3._orig_colors
  428. #define initialize_color         CURS strs3._initialize_color
  429. #define initialize_pair         CURS strs4._initialize_pair
  430. #define set_color_pair             CURS strs4._set_color_pair
  431. #define set_foreground             CURS strs4._set_foreground
  432. #define set_background             CURS strs4._set_background
  433. #define change_char_pitch         CURS strs4._change_char_pitch
  434. #define change_line_pitch         CURS strs4._change_line_pitch
  435. #define change_res_horz         CURS strs4._change_res_horz
  436. #define change_res_vert         CURS strs4._change_res_vert
  437. #define define_char             CURS strs4._define_char
  438. #define enter_doublewide_mode         CURS strs4._entr_doublewide_mode
  439. #define enter_draft_quality         CURS strs4._entr_draft_quality
  440. #define enter_italics_mode         CURS strs4._entr_italics_mode
  441. #define enter_leftward_mode         CURS strs4._entr_leftward_mode
  442. #define enter_micro_mode         CURS strs4._entr_micro_mode
  443. #define enter_near_letter_quality         CURS strs4._entr_near_letter_quality
  444. #define enter_normal_quality         CURS strs4._entr_normal_quality
  445. #define enter_shadow_mode         CURS strs4._entr_shadow_mode
  446. #define enter_subscript_mode         CURS strs4._entr_subscript_mode
  447. #define enter_superscript_mode         CURS strs4._entr_superscript_mode
  448. #define enter_upward_mode         CURS strs4._entr_upward_mode
  449. #define exit_doublewide_mode         CURS strs4._exit_doublewide_mode
  450. #define exit_italics_mode         CURS strs4._exit_italics_mode
  451. #define exit_leftward_mode         CURS strs4._exit_leftward_mode
  452. #define exit_micro_mode         CURS strs4._exit_micro_mode
  453. #define exit_shadow_mode         CURS strs4._exit_shadow_mode
  454. #define exit_subscript_mode         CURS strs4._exit_subscript_mode
  455. #define exit_superscript_mode         CURS strs4._exit_superscript_mode
  456. #define exit_upward_mode         CURS strs4._exit_upward_mode
  457. #define micro_column_address         CURS strs4._micro_column_address
  458. #define micro_down             CURS strs4._micro_down
  459. #define micro_left             CURS strs4._micro_left
  460. #define micro_right             CURS strs4._micro_right
  461. #define micro_row_address         CURS strs4._micro_row_address
  462. #define micro_up             CURS strs4._micro_up
  463. #define order_of_pins             CURS strs4._order_of_pins
  464. #define parm_down_micro         CURS strs4._prm_down_micro
  465. #define parm_left_micro         CURS strs4._prm_left_micro
  466. #define parm_right_micro         CURS strs4._prm_right_micro
  467. #define parm_up_micro             CURS strs4._prm_up_micro
  468. #define select_char_set         CURS strs4._select_char_set
  469. #define set_bottom_margin         CURS strs4._set_bottom_margin
  470. #define set_bottom_margin_parm         CURS strs4._set_bottom_margin_parm
  471. #define set_left_margin_parm         CURS strs4._set_left_margin_parm
  472. #define set_right_margin_parm         CURS strs4._set_right_margin_parm
  473. #define set_top_margin             CURS strs4._set_top_margin
  474. #define set_top_margin_parm         CURS strs4._set_top_margin_parm
  475. #define start_bit_image         CURS strs4._start_bit_image
  476. #define start_char_set_def         CURS strs4._start_char_set_def
  477. #define stop_bit_image             CURS strs4._stop_bit_image
  478. #define stop_char_set_def         CURS strs4._stop_char_set_def
  479. #define subscript_characters         CURS strs4._subscript_characters
  480. #define superscript_characters         CURS strs4._superscript_characters
  481. #define these_cause_cr             CURS strs4._these_cause_cr
  482. #define zero_motion             CURS strs4._zero_motion
  483. #define char_set_names             CURS strs4._char_set_names
  484. #define key_mouse             CURS strs4._ky_mouse
  485. #define mouse_info             CURS strs4._mouse_info
  486. #define req_mouse_pos             CURS strs4._req_mouse_pos
  487. #define get_mouse             CURS strs4._get_mouse
  488. #define set_a_foreground         CURS strs4._set_a_foreground
  489. #define set_a_background         CURS strs4._set_a_background
  490. #define pkey_plab             CURS strs4._pkey_plab
  491. #define device_type             CURS strs4._device_type
  492. #define code_set_init             CURS strs4._code_set_init
  493. #define set0_des_seq             CURS strs4._set0_des_seq
  494. #define set1_des_seq             CURS strs4._set1_des_seq
  495. #define set2_des_seq             CURS strs4._set2_des_seq
  496. #define set3_des_seq             CURS strs4._set3_des_seq
  497. #define set_lr_margin             CURS strs4._set_lr_margin
  498. #define set_tb_margin             CURS strs4._set_tb_margin
  499. #define bit_image_repeat         CURS strs4._bit_image_repeat
  500. #define bit_image_newline         CURS strs4._bit_image_newline
  501. #define bit_image_carriage_return         CURS strs4._bit_image_carriage_return
  502. #define color_names             CURS strs4._color_names
  503. #define define_bit_image_region         CURS strs4._define_bit_image_region
  504. #define end_bit_image_region         CURS strs4._end_bit_image_region
  505. #define set_color_band             CURS strs4._set_color_band
  506. #define set_page_length         CURS strs4._set_page_length
  507. #define display_pc_char         CURS strs4._display_pc_char
  508. #define enter_pc_charset_mode         CURS strs4._entr_pc_charset_mode
  509. #define exit_pc_charset_mode         CURS strs4._exit_pc_charset_mode
  510. #define enter_scancode_mode         CURS strs4._entr_scancode_mode
  511. #define exit_scancode_mode         CURS strs4._exit_scancode_mode
  512. #define pc_term_options         CURS strs4._pc_term_options
  513. #define scancode_escape         CURS strs4._scancode_escape
  514. #define alt_scancode_esc         CURS strs4._alt_scancode_esc
  515. #define set_pglen_inch             CURS strs4._set_pglen_inch
  516. #define enter_horizontal_hl_mode         CURS strs4._entr_horizontal_hl_mode
  517. #define enter_left_hl_mode         CURS strs4._entr_left_hl_mode
  518. #define enter_low_hl_mode         CURS strs4._entr_low_hl_mode
  519. #define enter_right_hl_mode         CURS strs4._entr_right_hl_mode
  520. #define enter_top_hl_mode         CURS strs4._entr_top_hl_mode
  521. #define enter_vertical_hl_mode         CURS strs4._entr_vertical_hl_mode
  522. #define set_a_attributes         CURS strs4._set_a_attributes
  523.  
  524. #if !(defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE_EXTENDED >= 1))
  525. typedef char *charptr;
  526. struct strs {
  527.     charptr
  528.     _back_tab,        /* Back tab */
  529.     _bell,            /* Audible signal (bell) */
  530.     _carriage_return,    /* Carriage return (*) */
  531.     _change_scroll_region,    /* change to lines #1 thru #2 (vt100) (G) */
  532.     _clear_all_tabs,    /* Clear all tab stops. */
  533.     _clear_screen,        /* Clear screen (*) */
  534.     _clr_eol,        /* Clear to end of line */
  535.     _clr_eos,        /* Clear to end of display (*) */
  536.     _column_address,    /* Set cursor column (G) */
  537.     _command_character,    /* Term. settable cmd char in prototype */
  538.     _crsr_address,        /* Cursor motion to row #1 col #2 (G) */
  539.     _crsr_down,        /* Down one line */
  540.     _crsr_home,        /* Home cursor (if no cup) */
  541.     _crsr_invisible,    /* Make cursor invisible */
  542.     _crsr_left,        /* Move cursor left one space. */
  543.     _crsr_mem_address,    /* Memory relative cursor addressing. */
  544.     _crsr_normal,        /* Make cursor appear normal (undo vs/vi) */
  545.     _crsr_right,        /* Non-destructive space (cursor right) */
  546.     _crsr_to_ll,        /* Last line, first column (if no cup) */
  547.     _crsr_up,        /* Upline (cursor up) */
  548.     _crsr_visible,        /* Make cursor very visible */
  549.     _dlt_character,    /* Delete character (*) */
  550.     _dlt_line,        /* Delete line (*) */
  551.     _dis_status_line,    /* Disable status line */
  552.     _down_half_line,    /* Half-line down (forward 1/2 linefeed) */
  553.     _entr_alt_charset_mode,    /* Start alternate character set */
  554.     _entr_blink_mode,    /* Turn on blinking */
  555.     _entr_bold_mode,    /* Turn on bold (extra bright) mode */
  556.     _entr_ca_mode,        /* String to begin programs that use cup */
  557.     _entr_delete_mode,    /* Delete mode (enter) */
  558.     _entr_dim_mode,        /* Turn on half-bright mode */
  559.     _entr_insert_mode,    /* Insert mode (enter); */
  560.     _entr_secure_mode,    /* Turn on blank mode (chars invisible) */
  561.     _entr_protected_mode,    /* Turn on protected mode */
  562.     _entr_reverse_mode,    /* Turn on reverse video mode */
  563.     _entr_standout_mode,    /* Begin stand out mode */
  564.     _entr_underline_mode,    /* Start underscore mode */
  565.     _erase_chars,        /* Erase #1 characters (G) */
  566.     _exit_alt_charset_mode,    /* End alternate character set */
  567.     _exit_attribute_mode,    /* Turn off all attributes */
  568.     _exit_ca_mode,        /* String to end programs that use cup */
  569.     _exit_delete_mode,    /* End delete mode */
  570.     _exit_insert_mode,    /* End insert mode; */
  571.     _exit_standout_mode,    /* End stand out mode */
  572.     _exit_underline_mode,    /* End underscore mode */
  573.     _flash_screen,        /* Visible bell (may not move cursor) */
  574.     _form_feed,        /* Hardcopy terminal page eject (*) */
  575.     _from_status_line,    /* Return from status line */
  576.     _init_1string,        /* Terminal initialization string */
  577.     _init_2string,        /* Terminal initialization string */
  578.     _init_3string,        /* Terminal initialization string */
  579.     _init_file,        /* Name of file containing is */
  580.     _ins_character,    /* Insert character */
  581.     _ins_line,        /* Add new blank line (*) */
  582.     _ins_padding,        /* Insert pad after character inserted (*) */
  583.     _ky_backspace,        /* KEY_BACKSPACE, 0407, Sent by backspace key */
  584.     _ky_catab,        /* KEY_CATAB, 0526, Sent by clear-all-tabs key. */
  585.     _ky_clear,        /* KEY_CLEAR, 0515, Sent by clear screen or erase key. */
  586.     _ky_ctab,        /* KEY_CTAB, 0525, Sent by clear-tab key */
  587.     _ky_dc,            /* KEY_DC, 0512, Sent by delete character key. */
  588.     _ky_dl,            /* KEY_DL, 0510, Sent by delete line key. */
  589.     _ky_down,        /* KEY_DOWN, 0402, Sent by terminal down arrow key */
  590.     _ky_eic,        /* KEY_EIC, 0514, Sent by rmir or smir in insert mode. */
  591.     _ky_eol,        /* KEY_EOL, 0517, Sent by clear-to-end-of-line key. */
  592.     _ky_eos,        /* KEY_EOS, 0516, Sent by clear-to-end-of-screen key. */
  593.     _ky_f0,            /* KEY_F(0), 0410, function key f0. */
  594.     _ky_f1,            /* KEY_F(1), 0411, function key f1. */
  595.     _ky_f10,        /* KEY_F(10), 0422, function key f10. */
  596.     _ky_f2,            /* KEY_F(2), 0412, function key f2. */
  597.     _ky_f3,            /* KEY_F(3), 0413, function key f3. */
  598.     _ky_f4,            /* KEY_F(4), 0414, function key f4. */
  599.     _ky_f5,            /* KEY_F(5), 0415, function key f5. */
  600.     _ky_f6,            /* KEY_F(6), 0416, function key f6. */
  601.     _ky_f7,            /* KEY_F(7), 0417, function key f7. */
  602.     _ky_f8,            /* KEY_F(8), 0420, function key f8. */
  603.     _ky_f9,            /* KEY_F(9), 0421, function key f9. */
  604.     _ky_home,        /* KEY_HOME, 0406, Sent by home key. */
  605.     _ky_ic,            /* KEY_IC, 0513, Sent by ins char/enter ins mode key. */
  606.     _ky_il,            /* KEY_IL, 0511, Sent by insert line. */
  607.     _ky_left,        /* KEY_LEFT, 0404, Sent by terminal left arrow key */
  608.     _ky_ll,            /* KEY_LL, 0533, Sent by home-down key */
  609.     _ky_npage,        /* KEY_NPAGE, 0522, Sent by next-page key */
  610.     _ky_ppage,        /* KEY_PPAGE, 0523, Sent by previous-page key */
  611.     _ky_right,        /* KEY_RIGHT, 0405, Sent by terminal right arrow key */
  612.     _ky_sf,            /* KEY_SF, 0520, Sent by scroll-forward/down key */
  613.     _ky_sr,            /* KEY_SR, 0521, Sent by scroll-backward/up key */
  614.     _ky_stab,        /* KEY_STAB, 0524, Sent by set-tab key */
  615.     _ky_up,            /* KEY_UP, 0403, Sent by terminal up arrow key */
  616.     _kpad_local,        /* Out of "keypad transmit" mode */
  617.     _kpad_xmit,        /* Put terminal in "keypad transmit" mode */
  618.     _lab_f0,        /* Labels on function key f0 if not f0 */
  619.     _lab_f1,        /* Labels on function key f1 if not f1 */
  620.     _lab_f10,        /* Labels on function key f10 if not f10 */
  621.     _lab_f2,        /* Labels on function key f2 if not f2 */
  622.     _lab_f3,        /* Labels on function key f3 if not f3 */
  623.     _lab_f4,        /* Labels on function key f4 if not f4 */
  624.     _lab_f5,        /* Labels on function key f5 if not f5 */
  625.     _lab_f6,        /* Labels on function key f6 if not f6 */
  626.     _lab_f7,        /* Labels on function key f7 if not f7 */
  627.     _lab_f8;            /* Labels on function key f8 if not f8 */
  628. };
  629.  
  630. struct strs2 {
  631.     charptr
  632.     _lab_f9,        /* Labels on function key f9 if not f9 */
  633.     _meta_off,        /* Turn off "meta mode" */
  634.     _meta_on,        /* Turn on "meta mode" (8th bit) */
  635.     _newline,        /* Newline (behaves like cr followed by lf) */
  636.     _pad_char,        /* Pad character (rather than null) */
  637.     _prm_dch,        /* Delete #1 chars (G*) */
  638.     _prm_delete_line,    /* Delete #1 lines (G*) */
  639.     _prm_down_cursor,    /* Move cursor down #1 lines. (G*) */
  640.     _prm_ich,        /* Insert #1 blank chars (G*) */
  641.     _prm_index,        /* Scroll forward #1 lines. (G) */
  642.     _prm_insert_line,    /* Add #1 new blank lines (G*) */
  643.     _prm_left_cursor,    /* Move cursor left #1 spaces (G) */
  644.     _prm_right_cursor,    /* Move cursor right #1 spaces. (G*) */
  645.     _prm_rindex,        /* Scroll backward #1 lines. (G) */
  646.     _prm_up_cursor,        /* Move cursor up #1 lines. (G*) */
  647.     _pkey_key,        /* Prog funct key #1 to type string #2 */
  648.     _pkey_local,        /* Prog funct key #1 to execute string #2 */
  649.     _pkey_xmit,        /* Prog funct key #1 to xmit string #2 */
  650.     _print_screen,        /* Print contents of the screen */
  651.     _prtr_off,        /* Turn off the printer */
  652.     _prtr_on,        /* Turn on the printer */
  653.     _repeat_char,        /* Repeat char #1 #2 times.  (G*) */
  654.     _reset_1string,        /* Reset terminal completely to sane modes. */
  655.     _reset_2string,        /* Reset terminal completely to sane modes. */
  656.     _reset_3string,        /* Reset terminal completely to sane modes. */
  657.     _reset_file,        /* Name of file containing reset string. */
  658.     _restore_cursor,    /* Restore cursor to position of last sc. */
  659.     _row_address,        /* Like hpa but sets row. (G) */
  660.     _save_cursor,        /* Save cursor position. */
  661.     _scrll_forward,        /* Scroll text up */
  662.     _scrll_reverse,        /* Scroll text down */
  663.     _set_attributes,    /* Define the video attributes (G9) */
  664.     _set_tab,        /* Set a tab in all rows, current column. */
  665.     _set_window,        /* Current window is lines #1-#2 cols #3-#4 */
  666.     _tab,            /* Tab to next 8 space hardware tab stop. */
  667.     _to_status_line,    /* Go to status line, col #1 */
  668.     _underline_char,    /* Underscore one char and move past it */
  669.     _up_half_line,        /* Half-line up (reverse 1/2 linefeed) */
  670.     _init_prog,        /* Path name of program for init. */
  671.     _ky_a1,            /* KEY_A1, 0534, Upper left of keypad */
  672.     _ky_a3,            /* KEY_A3, 0535, Upper right of keypad */
  673.     _ky_b2,            /* KEY_B2, 0536, Center of keypad */
  674.     _ky_c1,            /* KEY_C1, 0537, Lower left of keypad */
  675.     _ky_c3,            /* KEY_C3, 0540, Lower right of keypad */
  676.     _prtr_non,        /* Turn on the printer for #1 bytes. */
  677.     _char_padding,        /* Like ip but when in replace mode */
  678.     _acs_chars,        /* Graphic charset pairs aAbBcC - def=vt100 */
  679.     _plab_norm,        /* Prog label #1 to show string #2 */
  680.     _ky_btab,        /* KEY_BTAB, 0541, Back tab key */
  681.     _entr_xon_mode,        /* Turn on xon/xoff handshaking */
  682.     _exit_xon_mode,        /* Turn off xon/xoff handshaking */
  683.     _entr_am_mode,        /* Turn on automatic margins */
  684.     _exit_am_mode,        /* Turn off automatic margins */
  685.     _xon_character,        /* X-on character */
  686.     _xoff_character,    /* X-off character */
  687.     _ena_acs,        /* Enable alternate char set */
  688.     _labl_on,        /* Turn on soft labels */
  689.     _labl_off,        /* Turn off soft labels */
  690.     _ky_beg,        /* KEY_BEG, 0542, beg(inning) key */
  691.     _ky_cancel,        /* KEY_CANCEL, 0543, cancel key */
  692.     _ky_close,        /* KEY_CLOSE, 0544, close key */
  693.     _ky_command,        /* KEY_COMMAND, 0545, cmd (command) key */
  694.     _ky_copy,        /* KEY_COPY, 0546, copy key */
  695.     _ky_create,        /* KEY_CREATE, 0547, create key */
  696.     _ky_end,        /* KEY_END, 0550, end key */
  697.     _ky_enter,        /* KEY_ENTER, 0527, Enter/send (unreliable) */
  698.     _ky_exit,        /* KEY_EXIT, 0551, exit key */
  699.     _ky_find,        /* KEY_FIND, 0552, find key */
  700.     _ky_help,        /* KEY_HELP, 0553, help key */
  701.     _ky_mark,        /* KEY_MARK, 0554, mark key */
  702.     _ky_message,        /* KEY_MESSAGE, 0555, message key */
  703.     _ky_move,        /* KEY_MOVE, 0556, move key */
  704.     _ky_next,        /* KEY_NEXT, 0557, next object key */
  705.     _ky_open,        /* KEY_OPEN, 0560, open key */
  706.     _ky_options,        /* KEY_OPTIONS, 0561, options key */
  707.     _ky_previous,        /* KEY_PREVIOUS, 0562, previous object key */
  708.     _ky_print,        /* KEY_PRINT, 0532, print or copy */
  709.     _ky_redo,        /* KEY_REDO, 0563, redo key */
  710.     _ky_reference,        /* KEY_REFERENCE, 0564, ref(erence) key */
  711.     _ky_refresh,        /* KEY_REFRESH, 0565, refresh key */
  712.     _ky_replace,        /* KEY_REPLACE, 0566, replace key */
  713.     _ky_restart,        /* KEY_RESTART, 0567, restart key */
  714.     _ky_resume,        /* KEY_RESUME, 0570, resume key */
  715.     _ky_save,        /* KEY_SAVE, 0571, save key */
  716.     _ky_suspend,        /* KEY_SUSPEND, 0627, suspend key */
  717.     _ky_undo,        /* KEY_UNDO, 0630, undo key */
  718.     _ky_sbeg,        /* KEY_SBEG, 0572, shifted beginning key */
  719.     _ky_scancel,        /* KEY_SCANCEL, 0573, shifted cancel key */
  720.     _ky_scommand,        /* KEY_SCOMMAND, 0574, shifted command key */
  721.     _ky_scopy,        /* KEY_SCOPY, 0575, shifted copy key */
  722.     _ky_screate,        /* KEY_SCREATE, 0576, shifted create key */
  723.     _ky_sdc,        /* KEY_SDC, 0577, shifted delete char key */
  724.     _ky_sdl,        /* KEY_SDL, 0600, shifted delete line key */
  725.     _ky_select,        /* KEY_SELECT, 0601, select key */
  726.     _ky_send,        /* KEY_SEND, 0602, shifted end key */
  727.     _ky_seol,        /* KEY_SEOL, 0603, shifted clear line key */
  728.     _ky_sexit,        /* KEY_SEXIT, 0604, shifted exit key */
  729.     _ky_sfind,        /* KEY_SFIND, 0605, shifted find key */
  730.     _ky_shelp,        /* KEY_SHELP, 0606, shifted help key */
  731.     _ky_shome;        /* KEY_SHOME, 0607, shifted home key */
  732. };
  733.  
  734. struct strs3 {
  735.     charptr
  736.     _ky_sic,        /* KEY_SIC, 0610, shifted input key */
  737.     _ky_sleft,        /* KEY_SLEFT, 0611, shifted left arrow key */
  738.     _ky_smessage,        /* KEY_SMESSAGE, 0612, shifted message key */
  739.     _ky_smove,        /* KEY_SMOVE, 0613, shifted move key */
  740.     _ky_snext,        /* KEY_SNEXT, 0614, shifted next key */
  741.     _ky_soptions,        /* KEY_SOPTIONS, 0615, shifted options key */
  742.     _ky_sprevious,        /* KEY_SPREVIOUS, 0616, shifted prev key */
  743.     _ky_sprint,        /* KEY_SPRINT, 0617, shifted print key */
  744.     _ky_sredo,        /* KEY_SREDO, 0620, shifted redo key */
  745.     _ky_sreplace,        /* KEY_SREPLACE, 0621, shifted replace key */
  746.     _ky_sright,        /* KEY_SRIGHT, 0622, shifted right arrow */
  747.     _ky_srsume,        /* KEY_SRSUME, 0623, shifted resume key */
  748.     _ky_ssave,        /* KEY_SSAVE, 0624, shifted save key */
  749.     _ky_ssuspend,        /* KEY_SSUSPEND, 0625, shifted suspend key */
  750.     _ky_sundo,        /* KEY_SUNDO, 0626, shifted undo key */
  751.     _req_for_input,        /* send next input char (for ptys) */
  752.     _ky_f11,        /* KEY_F(11), 0423, function key f11. */
  753.     _ky_f12,        /* KEY_F(12), 0424, function key f12. */
  754.     _ky_f13,        /* KEY_F(13), 0425, function key f13. */
  755.     _ky_f14,        /* KEY_F(14), 0426, function key f14. */
  756.     _ky_f15,        /* KEY_F(15), 0427, function key f15. */
  757.     _ky_f16,        /* KEY_F(16), 0430, function key f16. */
  758.     _ky_f17,        /* KEY_F(17), 0431, function key f17. */
  759.     _ky_f18,        /* KEY_F(18), 0432, function key f18. */
  760.     _ky_f19,        /* KEY_F(19), 0433, function key f19. */
  761.     _ky_f20,        /* KEY_F(20), 0434, function key f20. */
  762.     _ky_f21,        /* KEY_F(21), 0435, function key f21. */
  763.     _ky_f22,        /* KEY_F(22), 0436, function key f22. */
  764.     _ky_f23,        /* KEY_F(23), 0437, function key f23. */
  765.     _ky_f24,        /* KEY_F(24), 0440, function key f24. */
  766.     _ky_f25,        /* KEY_F(25), 0441, function key f25. */
  767.     _ky_f26,        /* KEY_F(26), 0442, function key f26. */
  768.     _ky_f27,        /* KEY_F(27), 0443, function key f27. */
  769.     _ky_f28,        /* KEY_F(28), 0444, function key f28. */
  770.     _ky_f29,        /* KEY_F(29), 0445, function key f29. */
  771.     _ky_f30,        /* KEY_F(30), 0446, function key f30. */
  772.     _ky_f31,        /* KEY_F(31), 0447, function key f31. */
  773.     _ky_f32,        /* KEY_F(32), 0450, function key f32. */
  774.     _ky_f33,        /* KEY_F(33), 0451, function key f33. */
  775.     _ky_f34,        /* KEY_F(34), 0452, function key f34. */
  776.     _ky_f35,        /* KEY_F(35), 0453, function key f35. */
  777.     _ky_f36,        /* KEY_F(36), 0454, function key f36. */
  778.     _ky_f37,        /* KEY_F(37), 0455, function key f37. */
  779.     _ky_f38,        /* KEY_F(38), 0456, function key f38. */
  780.     _ky_f39,        /* KEY_F(39), 0457, function key f39. */
  781.     _ky_f40,        /* KEY_F(40), 0460, function key f40. */
  782.     _ky_f41,        /* KEY_F(41), 0461, function key f41. */
  783.     _ky_f42,        /* KEY_F(42), 0462, function key f42. */
  784.     _ky_f43,        /* KEY_F(43), 0463, function key f43. */
  785.     _ky_f44,        /* KEY_F(44), 0464, function key f44. */
  786.     _ky_f45,        /* KEY_F(45), 0465, function key f45. */
  787.     _ky_f46,        /* KEY_F(46), 0466, function key f46. */
  788.     _ky_f47,        /* KEY_F(47), 0467, function key f47. */
  789.     _ky_f48,        /* KEY_F(48), 0470, function key f48. */
  790.     _ky_f49,        /* KEY_F(49), 0471, function key f49. */
  791.     _ky_f50,        /* KEY_F(50), 0472, function key f50. */
  792.     _ky_f51,        /* KEY_F(51), 0473, function key f51. */
  793.     _ky_f52,        /* KEY_F(52), 0474, function key f52. */
  794.     _ky_f53,        /* KEY_F(53), 0475, function key f53. */
  795.     _ky_f54,        /* KEY_F(54), 0476, function key f54. */
  796.     _ky_f55,        /* KEY_F(55), 0477, function key f55. */
  797.     _ky_f56,        /* KEY_F(56), 0500, function key f56. */
  798.     _ky_f57,        /* KEY_F(57), 0501, function key f57. */
  799.     _ky_f58,        /* KEY_F(58), 0502, function key f58. */
  800.     _ky_f59,        /* KEY_F(59), 0503, function key f59. */
  801.     _ky_f60,        /* KEY_F(60), 0504, function key f60. */
  802.     _ky_f61,        /* KEY_F(61), 0505, function key f61. */
  803.     _ky_f62,        /* KEY_F(62), 0506, function key f62. */
  804.     _ky_f63,        /* KEY_F(63), 0507, function key f63. */
  805.     _clr_bol,        /* Clear to beginning of line, inclusive */
  806.     _clear_margins,        /* Clear left and right soft margins */
  807.     _set_left_margin,    /* Set soft left margin */
  808.     _set_right_margin,    /* Set soft right margin */
  809.     _labl_format,        /* Label format */
  810.     _set_clock,        /* Set time-of-day clock */
  811.     _display_clock,        /* Display time-of-day clock */
  812.     _remove_clock,        /* Remove time-of-day clock */
  813.     _create_window,        /* Define win #1 to go from #2,#3 to #4,#5 */
  814.     _goto_window,        /* Got to window #1 */
  815.     _hangup,        /* Hang-up phone */
  816.     _dial_phone,        /* Dial phone number #1 */
  817.     _quick_dial,        /* Dial phone number #1, without progress detection */
  818.     _tone,            /* Select touch tone dialing */
  819.     _pulse,            /* Select pulse dialing */
  820.     _flash_hook,        /* Flash the switch hook */
  821.     _fixed_pause,        /* Pause for 2-3 seconds */
  822.     _wait_tone,        /* Wait for dial tone */
  823.     _user0,            /* User string 0 */
  824.     _user1,            /* User string 1 */
  825.     _user2,            /* User string 2 */
  826.     _user3,            /* User string 3 */
  827.     _user4,            /* User string 4 */
  828.     _user5,            /* User string 5 */
  829.     _user6,            /* User string 6 */
  830.     _user7,            /* User string 7 */
  831.     _user8,            /* User string 8 */
  832.     _user9,            /* User string 9 */
  833.     _orig_pair,        /* Original color-pair */
  834.     _orig_colors,        /* Original colors */
  835.     _initialize_color;    /* Initialize the definition of color */
  836. };
  837.  
  838. struct strs4 {
  839.     charptr
  840.     _initialize_pair,    /* Initialize color pair */
  841.     _set_color_pair,    /* Set color pair     */
  842.     _set_foreground,    /* Set foreground color using RGB escape */
  843.     _set_background,    /* Set background color using RGB escape */
  844.     _change_char_pitch,    /* Change no. characters per inch */
  845.     _change_line_pitch,    /* Change no. lines per inch */
  846.     _change_res_horz,    /* Change horizontal resolution */
  847.     _change_res_vert,    /* Change vertical resolution */
  848.     _define_char,        /* Define a character in a character set */
  849.     _entr_doublewide_mode,    /* Enable double wide printing */
  850.     _entr_draft_quality,    /* Set draft quality print */
  851.     _entr_italics_mode,    /* Enable italics */
  852.     _entr_leftward_mode,    /* Enable leftward carriage motion */
  853.     _entr_micro_mode,    /* Enable micro motion capabilities */
  854.     _entr_near_letter_quality,    /* Set near-letter quality print */
  855.     _entr_normal_quality,    /* Set normal quality print */
  856.     _entr_shadow_mode,    /* Enable shadow printing */
  857.     _entr_subscript_mode,    /* Enable subscript printing */
  858.     _entr_superscript_mode,    /* Enable superscript printing */
  859.     _entr_upward_mode,    /* Enable upward carriage motion */
  860.     _exit_doublewide_mode,    /* Disable double wide printing */
  861.     _exit_italics_mode,    /* Disable italics */
  862.     _exit_leftward_mode,    /* Enable rightward (normal) carriage motion */
  863.     _exit_micro_mode,    /* Disable micro motion capabilities */
  864.     _exit_shadow_mode,    /* Disable shadow printing */
  865.     _exit_subscript_mode,    /* Disable subscript printing */
  866.     _exit_superscript_mode,    /* Disable superscript printing */
  867.     _exit_upward_mode,    /* Enable downward (normal) carriage motion */
  868.     _micro_column_address,    /* Like column_address for micro adjustment */
  869.     _micro_down,        /* Like cursor_down for micro adjustment */
  870.     _micro_left,        /* Like cursor_left for micro adjustment */
  871.     _micro_right,        /* Like cursor_right for micro adjustment */
  872.     _micro_row_address,    /* Like row_address for micro adjustment */
  873.     _micro_up,        /* Like cursor_up for micro adjustment */
  874.     _order_of_pins,        /* Matches software bits to print-head pins */
  875.     _prm_down_micro,    /* Like parm_down_cursor for micro adjust. */
  876.     _prm_left_micro,    /* Like parm_left_cursor for micro adjust. */
  877.     _prm_right_micro,    /* Like parm_right_cursor for micro adjust. */
  878.     _prm_up_micro,        /* Like parm_up_cursor for micro adjust. */
  879.     _select_char_set,    /* Select character set */
  880.     _set_bottom_margin,    /* Set soft bottom margin at current line */
  881.     _set_bottom_margin_parm,/* Set soft bottom margin */
  882.     _set_left_margin_parm,    /* Set soft left margin */
  883.     _set_right_margin_parm,    /* Set soft right margin */
  884.     _set_top_margin,    /* Set soft top margin at current line */
  885.     _set_top_margin_parm,    /* Set soft top margin */
  886.     _start_bit_image,    /* Start printing bit image graphics */
  887.     _start_char_set_def,    /* Start definition of a character set */
  888.     _stop_bit_image,    /* End printing bit image graphics (use tputs) */
  889.     _stop_char_set_def,    /* End definition of a character set */
  890.     _subscript_characters,    /* List of ``subscript-able'' characters */
  891.     _superscript_characters,/* List of ``superscript-able'' characters */
  892.     _these_cause_cr,    /* Printing any of these chars causes cr */
  893.     _zero_motion,        /* No motion for the subsequent character */
  894.     _char_set_names,    /* List of character set names */
  895.     _ky_mouse,        /* KEY_MOUSE, 0631, Mouse event has occured */
  896.     _mouse_info,        /* Mouse status information */
  897.     _req_mouse_pos,        /* Request mouse position report */
  898.     _get_mouse,        /* Curses should get button events */
  899.     _set_a_foreground,    /* Set foreground color using ANSI escape */
  900.     _set_a_background,    /* Set background color using ANSI escape */
  901.     _pkey_plab,        /* Prog key #1 to xmit string #2 and show string #3 */
  902.     _device_type,        /* Indicate language/codeset support */
  903.     _code_set_init,        /* Init sequence for multiple codesets */
  904.     _set0_des_seq,        /* Shift into codeset 0 (EUC set 0, ASCII) */
  905.     _set1_des_seq,        /* Shift into codeset 1 */
  906.     _set2_des_seq,        /* Shift into codeset 2 */
  907.     _set3_des_seq,        /* Shift into codeset 3 */
  908.     _set_lr_margin,        /* Sets both left and right margins */
  909.     _set_tb_margin,        /* Sets both top and bottom margins */
  910.     _bit_image_repeat,    /* Repeat bit-image cell #1 #2 times (use tparm) */
  911.     _bit_image_newline,    /* Move to next row of the bit image (use tparm) */
  912.     _bit_image_carriage_return,    /* Move to beginning of same row (use tparm) */
  913.     _color_names,        /* Give name for color #1 */
  914.     _define_bit_image_region,    /* Define rectangular bit-image region (use tparm) */
  915.     _end_bit_image_region,    /* End a bit-image region (use tparm) */
  916.     _set_color_band,    /* Change to ribbon color #1 */
  917.     _set_page_length,    /* Set page length to #1 lines (use tparm) */
  918.     _display_pc_char,    /* Display PC character */
  919.     _entr_pc_charset_mode,    /* Enter PC character display mode */
  920.     _exit_pc_charset_mode,    /* Disable PC character display mode */
  921.     _entr_scancode_mode,    /* Enter PC scancode mode */
  922.     _exit_scancode_mode,    /* Disable PC scancode mode */
  923.     _pc_term_options,    /* PC terminal options */
  924.     _scancode_escape,    /* Escape for scancode emulation */
  925.     _alt_scancode_esc,    /* Alternate escape for scancode emulation */
  926.     _set_pglen_inch,    /* Set page length to #1 hundredths of an inch (use tparm) */
  927.     _entr_horizontal_hl_mode,    /* Turn on horizontal highlight mode */
  928.     _entr_left_hl_mode,    /* Turn on left highlight mode */
  929.     _entr_low_hl_mode,    /* Turn on low highlight mode */
  930.     _entr_right_hl_mode,    /* Turn on right highlight mode */
  931.     _entr_top_hl_mode,    /* Turn on top highlight mode */
  932.     _entr_vertical_hl_mode,    /* Turn on vertical highlight mode */
  933.     _set_a_attributes,    /* Define second set of video attributes #1-#6 */
  934.     Sentinel;        /* End of strings. DO NOT MOVE! */
  935. };
  936.  
  937. struct _bool_struct {
  938.     char
  939.     _auto_left_margin,    /* cub1 wraps from column 0 to last column */
  940.     _auto_right_margin,    /* Terminal has automatic margins */
  941.     _no_esc_ctlc,        /* Beehive (f1=escape, f2=ctrl C) */
  942.     _ceol_standout_glitch,    /* Standout not erased by overwriting (hp) */
  943.     _eat_newline_glitch,    /* newline ignored after 80 cols (Concept) */
  944.     _erase_overstrike,    /* Can erase overstrikes with a blank */
  945.     _generic_type,        /* Generic line type (e.g. dialup, switch). */
  946.     _hard_copy,        /* Hardcopy terminal */
  947.     _has_meta_key,        /* Has a meta key (shift, sets parity bit) */
  948.     _has_status_line,    /* Has extra "status line" */
  949.     _ins_null_glitch,    /* Insert mode distinguishes nulls */
  950.     _mem_above,        /* Display may be retained above the screen */
  951.     _mem_below,        /* Display may be retained below the screen */
  952.     _move_insert_mode,    /* Safe to move while in insert mode */
  953.     _move_standout_mode,    /* Safe to move in standout modes */
  954.     _over_strike,        /* Terminal overstrikes */
  955.     _status_line_esc_ok,    /* Escape can be used on the status line */
  956.     _dest_tabs_magic_smso,    /* Tabs destructive, magic so char (t1061) */
  957.     _tilde_glitch,        /* Hazeltine; can't print ~'s */
  958.     _transparent_underline,    /* underline character overstrikes */
  959.     _xon_xoff,        /* Terminal uses xon/xoff handshaking */
  960.     _needs_xon_xoff,    /* Padding won't work, xon/xoff required */
  961.     _prtr_silent,        /* Printer won't echo on screen. */
  962.     _hard_cursor,        /* Cursor is hard to see. */
  963.     _non_rev_rmcup,        /* Smcup does not reverse rmcup. */
  964.     _no_pad_char,        /* Pad character doesn't exist. */
  965.     _non_dest_scroll_region,/* Scrolling region is non-destructive. */
  966.     _can_change,        /* Can re-define existing color */
  967.     _back_color_erase,    /* Erases screen with current background */
  968.     _hue_lightness_saturation,    /* HLS color notation is used (Tek) */
  969.     _col_addr_glitch,    /* Only positive motion for hpa/mhpa caps */
  970.     _cr_cancels_micro_mode,    /* Using cr turns off micro mode */
  971.     _has_print_wheel,    /* Printer needs operator to change character set */
  972.     _row_addr_glitch,    /* Only positive motion for vpa/mvpa caps */
  973.     _semi_auto_right_margin,/* Printing in last column causes cr */
  974.     _cpi_changes_res,    /* Changing char. pitch changes resolution */
  975.     _lpi_changes_res,    /* Changing line pitch changes resolution */
  976.     Sentinel;        /* End of bools. DO NOT MOVE! */
  977. };
  978.  
  979. struct _num_struct {
  980.     short
  981.     _columns,        /* Number of columns in a line */
  982.     _init_tabs,        /* Tabs initially every # spaces. */
  983.     _lines,            /* Number of lines on screen or page */
  984.     _lines_of_memory,    /* Lines of memory if > lines.  0 => varies */
  985.     _magic_cookie_glitch,    /* Number blank chars left by smso or rmso */
  986.     _padding_baud_rate,    /* Lowest baud rate where padding needed */
  987.     _virtual_terminal,    /* Virtual terminal number (CB/Unix) */
  988.     _width_status_line,    /* # columns in status line */
  989.     _num_labels,        /* # of labels on screen (start at 1) */
  990.     _labl_height,        /* # rows in each label */
  991.     _labl_width,        /* # cols in each label */
  992.     _max_attributes,    /* max combined video attributes terminal can display */
  993.     _maximum_windows,    /* Maximum number of defineable windows */
  994.     _max_colors,        /* max # of color on the screen */
  995.     _max_pairs,        /* max # of color pairs on the screen */
  996.     _no_color_video,    /* Video attributes that cannot be used with colors */
  997.     _buffer_capacity,    /* Number of bytes buffered before printing */
  998.     _dot_vert_spacing,    /* Spacing of pins vertically in pins per inch */
  999.     _dot_horz_spacing,    /* Spacing of dots horizontally in dots per inch */
  1000.     _max_micro_address,    /* Maximum value in micro_..._address */
  1001.     _max_micro_jump,    /* Maximum value in parm_..._micro */
  1002.     _micro_col_size,    /* Character step size when in micro mode */
  1003.     _micro_line_size,    /* Line step size when in micro mode */
  1004.     _number_of_pins,    /* Number of pins in print-head */
  1005.     _output_res_char,    /* Horizontal resolution in units per character */
  1006.     _output_res_line,    /* Vertical resolution in units per line */
  1007.     _output_res_horz_inch,    /* Horizontal resolution in units per inch */
  1008.     _output_res_vert_inch,    /* Vertical resolution in units per inch */
  1009.     _print_rate,        /* Print rate in characters per second */
  1010.     _wide_char_size,    /* Character step size when in double wide mode */
  1011.     _buttons,        /* Number of buttons on the mouse */
  1012.     _bit_image_entwining,    /* Number of passes for each bit-image row */
  1013.     _bit_image_type,    /* Type of bit-image device */
  1014.     Sentinel;        /* End of nums. DO NOT MOVE! */
  1015. };
  1016.  
  1017. struct _str_struct {
  1018.     struct strs strs;
  1019.     struct strs2 strs2;
  1020.     struct strs3 strs3;
  1021.     struct strs4 strs4;
  1022. };
  1023.  
  1024. #define NUM_ATTRIBUTES    9
  1025. #define WNUM_ATTRIBUTES    15
  1026. #define    UNACCESSIBLE        1
  1027. #define    NO_TERMINAL        2
  1028. #define CORRUPTED        3
  1029. #define    ENTRY_TOO_LONG        4
  1030. #define    TERMINFO_TOO_LONG    5
  1031. #define    TERM_BAD_MALLOC        6
  1032. #define NOT_READABLE        7
  1033. #define    TERM_DBG_BAD_MALLOC    8
  1034.  
  1035. #define TERM_ERR_SET        2
  1036.  
  1037. #define _VR2_COMPAT_CODE
  1038. #ifdef _VR2_COMPAT_CODE
  1039. struct _Vr2_Astrs {
  1040.     charptr
  1041.     _s1,  _s2,  _s3,  _s4,  _s5,  _s6,  _s7,  _s8,  _s9,  _s10,
  1042.     _s11, _s12, _s13, _s14, _s15, _s16, _s17, _s18, _s19, _s20,
  1043.     _s21, _s22, _s23, _s24, _s25, _s26, _s27, _s28, _s29, _s30,
  1044.     _s31, _s32, _s33, _s34, _s35, _s36, _s37, _s38, _s39, _s40,
  1045.     _s41, _s42, _s43, _s44, _s45, _s46, _s47, _s48, _s49, _s50,
  1046.     _s51, _s52, _s53, _s54, _s55, _s56, _s57, _s58, _s59, _s60,
  1047.     _s61, _s62, _s63, _s64, _s65, _s66, _s67, _s68, _s69, _s70,
  1048.     _s71, _s72, _s73, _s74, _s75, _s76, _s77, _s78, _s79, _s80,
  1049.     _s81, _s82, _s83, _s84, _s85, _s86, _s87, _s88, _s89, _s90,
  1050.     _s91, _s92, _s93, _s94, _s95, _s96, _s97, _s98, _s99, _s100;
  1051. };
  1052.  
  1053. struct _Vr2_Bstrs {
  1054.     charptr
  1055.     _s101, _s102, _s103, _s104, _s105, _s106, _s107, _s108, _s109, _s110,
  1056.     _s111, _s112, _s113, _s114, _s115, _s116, _s117, _s118, _s119, _s120,
  1057.     _s121, _s122, _s123, _s124, _s125, _s126, _s127, _s128, _s129, _s130,
  1058.     _s131, _s132, _s133, _s134, _s135, _s136, _s137, _s138, _s139, _s140,
  1059.     _s141, _s142, _s143, _s144, _s145;
  1060. };
  1061. #endif /* _VR2_COMPAT_CODE */
  1062.  
  1063. typedef struct {
  1064.     char *_sends;    /* Characters sent when key is pressed */
  1065.     short _keyval;    /* "char" we pass back to program */
  1066. } _KEY_MAP;
  1067.  
  1068. typedef struct {
  1069.     short  foreground;   /* foreground color */
  1070.     short  background;   /* background color */
  1071.     bool   init;         /* TRUE if pair was initialized */
  1072. } _Color_pair;
  1073.  
  1074.  
  1075. typedef struct {
  1076.     short    r, g, b;
  1077. } _Color;
  1078.  
  1079. #ifndef SYSV
  1080. #define SYSV
  1081. #endif
  1082.  
  1083. #ifdef SYSV
  1084. # ifndef VINTR
  1085. #  include <termio.h>
  1086. #  include <termios.h>
  1087. # endif /* VINTR */
  1088. #ifndef _SGTTY
  1089. #define _SGTTY
  1090.     typedef struct termios SGTTY;
  1091. #endif
  1092. #else /* !SYSV */
  1093. # ifndef _SGTTYB_
  1094. #  include <sgtty.h>
  1095. # endif /* _SGTTYB_ */
  1096.     typedef struct sgttyb SGTTY;
  1097. #endif /* SYSV */
  1098.  
  1099.  
  1100. /*
  1101.  * This definition for the term struct allows the boolean, number
  1102.  * and string information to grow in the future and still allow .o
  1103.  * compatibility.
  1104.  */
  1105.  
  1106. struct term {
  1107. #ifdef _VR2_COMPAT_CODE
  1108.     char
  1109.     _b1,  _b2,  _b3,  _b4,  _b5,  _b6,  _b7,  _b8,  _b9,  _b10,
  1110.     _b11, _b12, _b13, _b14, _b15, _b16, _b17, _b18, _b19, _b20, _b21;
  1111.     short
  1112.     _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8;
  1113.     struct _Vr2_Astrs _Vr2_Astrs;
  1114.     struct _Vr2_Bstrs _Vr2_Bstrs;
  1115. #endif /* _VR2_COMPAT_CODE */
  1116.     short Filedes;        /* file descriptor being written to */
  1117.     SGTTY Ottyb,        /* original state of the terminal */
  1118.           Nttyb;        /* current state of the terminal */
  1119. #ifdef DIOCSETT
  1120. #ifdef __cplusplus
  1121.     struct termcb new_term, old_term;       /* CB/UNIX virtual terminals */
  1122. #else
  1123.     struct termcb new, old; /* CB/UNIX virtual terminals */
  1124. #endif /* __cplusplus */
  1125. #endif /* DIOCSETT */
  1126. #ifdef LTILDE
  1127.     int newlmode, oldlmode;    /* BSD tty driver */
  1128. #endif
  1129.     /* end of Vr2 structure */
  1130.     struct _bool_struct *_bools;
  1131.     struct _num_struct *_nums;
  1132.     struct _str_struct *_strs;
  1133.     char *_strtab;
  1134. #ifdef FIONREAD
  1135.     long timeout;        /* for BSD halfdelay mode */
  1136. #endif
  1137.     /* end of Vr3 structure */
  1138.     attr_t sgr_mode;        /* current phys. graphic rendition */
  1139.     attr_t sgr_faked;        /* attributes faked by vidputs */
  1140.     int    _delay;            /* timeout for inputs */
  1141.     int    _inputfd;        /* input file descriptor */
  1142.     int    _check_fd;        /* typeahead file descriptor */
  1143.     _KEY_MAP    **_keys,    /* key map */
  1144.             *internal_keys;    /* pointer to free key structures */
  1145.     short        _ksz,        /* size of keymap */
  1146.             _lastkey_ordered,/* where the last ordered key is */
  1147.             _lastmacro_ordered,/* where the last ordered macro is */
  1148.             _first_macro;
  1149.     bool                /* map of which chars start fn keys */
  1150.             funckeystarter[0400];    
  1151.     bool        _fl_rawmode,    /* in cbreak(=1) or raw(=2) mode */
  1152.             fl_typeahdok,    /* ok to use typeahead */
  1153.             _cursorstate,    /* cursor: 0=invis, 1=norm, 2=vvis */
  1154.             _iwait;        /* true if input-pending */
  1155.     short        _regs[26];    /* tparm static registers */
  1156. #define INP_QSIZE    32
  1157.     int                /* a place to put stuff ungetch'ed */
  1158.             _input_queue[INP_QSIZE];
  1159.     short        _ungotten;    /* # chars ungotten by ungetch() */
  1160.     char        _chars_on_queue; /* # chars on queue */
  1161.     cchar_t        *_acsmap;    /* map of alternate char set chars */
  1162.     char        *turn_on_seq[WNUM_ATTRIBUTES];
  1163.     attr_t        bit_vector;
  1164.     char        *cursor_seq[3];
  1165.     char        _termname[15];
  1166.     char        *turn_off_seq[3];
  1167.     attr_t        check_turn_off;
  1168.         _Color_pair    _cur_pair;
  1169.         _Color_pair    *_pairs_tbl;
  1170.         _Color        *_color_tbl;
  1171. };
  1172.  
  1173. typedef struct term TERMINAL;
  1174.  
  1175. #else /* _XOPEN_SOURCE ..  */
  1176.  
  1177. struct _term {
  1178.     int _pad;
  1179. };
  1180.  
  1181. typedef struct _term TERMINAL;
  1182.  
  1183. #endif /*_XOPEN_SOURCE ... */
  1184.  
  1185. extern TERMINAL            *cur_term;
  1186.  
  1187. #if !(defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE_EXTENDED >= 1))
  1188.  
  1189. /* allow old names for these capabilities */
  1190. #define beehive_glitch    no_esc_ctlc
  1191. #define teleray_glitch    dest_tabs_magic_smso
  1192.  
  1193. extern struct _bool_struct    *cur_bools;
  1194. extern struct _num_struct    *cur_nums;
  1195. extern struct _str_struct    *cur_strs;
  1196.  
  1197. #ifdef SINGLE
  1198. extern TERMINAL            _first_term;
  1199. extern struct _bool_struct    _frst_bools;
  1200. extern struct _num_struct    _frst_nums;
  1201. extern struct _str_struct    _frst_strs;
  1202.  
  1203. # define CUR            _first_term.
  1204. # define CURB            _frst_bools.
  1205. # define CURN            _frst_nums.
  1206. # define CURS            _frst_strs.
  1207. # define PROGTTY        _first_term.Nttyb
  1208. # define SHELLTTY        _first_term.Ottyb
  1209. #else
  1210. # define CUR            cur_term->
  1211. # define CURB            cur_bools->
  1212. # define CURN            cur_nums->
  1213. # define CURS            cur_strs->
  1214. # define PROGTTY        (cur_term->Nttyb)
  1215. # define SHELLTTY        (cur_term->Ottyb)
  1216. #endif
  1217.  
  1218. #ifndef NOMACROS
  1219. #define set_curterm    setcurterm
  1220. #define del_curterm    delterm
  1221. #else   /* NOMACROS */
  1222.  
  1223. #ifdef     __STDC__
  1224. extern    TERMINAL    *set_curterm(TERMINAL *);
  1225. extern    int        del_curterm(TERMINAL *);
  1226. #else   /* __STDC__ */
  1227. extern    TERMINAL    *set_curterm();
  1228. extern    int        del_curterm();
  1229. #endif  /* __STDC__ */
  1230.  
  1231. #endif  /* NOMACROS */
  1232.  
  1233. extern    char    *Def_term, *boolnames[], *boolcodes[], *boolfnames[],
  1234.         *numnames[], *numcodes[], *numfnames[],
  1235.         *strnames[], *strcodes[], *strfnames[];
  1236.  
  1237. #else /* _XOPEN_SOURCE .... */
  1238.  
  1239. extern    TERMINAL    *set_curterm(TERMINAL *);
  1240. extern    int        setupterm(char *, int, int *);
  1241. extern    int        del_curterm(TERMINAL *);
  1242.  
  1243. #endif /* _XOPEN_SOURCE ..... */
  1244.  
  1245. #ifdef __STDC__
  1246.  
  1247. #if !(defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE_EXTENDED >=1))
  1248. extern char *tparm(char *, ...);
  1249. extern    int    tgetent(char *, char *);
  1250. #else
  1251. extern char *tparm(char *,long, long, long, long, long, long, long, long, long);
  1252. extern    int    tgetent(char *, const char *);
  1253. #endif
  1254.  
  1255. extern int    tputs(const char *, int, int (*)(int));
  1256. extern    char    *tgoto(char *, int, int),
  1257.         *tgetstr(char *, char **),
  1258.         *tigetstr(char *);
  1259.  
  1260. extern    int    tgetflag(char *), 
  1261.         tgetnum(char *),
  1262.         tigetflag(char *), 
  1263.         tigetnum(char *),
  1264.         putp(const char *),
  1265.         restartterm(char *, int, int *);
  1266.  
  1267. #if !(defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE_EXTENDED >=1))
  1268.  
  1269. extern    TERMINAL    *setcurterm(TERMINAL *);
  1270. extern  char         *termname(void);
  1271. extern    int        resetterm(void), fixterm(void), saveterm(void),
  1272.             delterm(TERMINAL *),
  1273.             vidputs(chtype, int (*)(int)), vidattr(chtype),
  1274.             vid_puts(attr_t, short, void *, int (*)(int)), 
  1275.             vid_attr(attr_t, short, void *);
  1276. extern    void        termerr(void), tinputfd(int);
  1277. #endif /* _XOPEN_SOURCE .... */
  1278.  
  1279. #else  /* __STDC__ */
  1280. extern    TERMINAL    *setcurterm();
  1281. extern    char    *tparm(), *tgoto(), *tgetstr(), *tigetstr(),
  1282.         *termname();
  1283.  
  1284. extern    int    tgetent(), tgetflag(), tgetnum(),
  1285.         tputs(), putp(), vidputs(), vidattr(),
  1286.         vid_puts(), vid_attr(),
  1287.         tigetflag(), tigetnum(),
  1288.         resetterm(), fixterm(), saveterm(),
  1289.         restartterm(), delterm();
  1290.  
  1291. extern    void    termerr(), tinputfd();
  1292. #endif /* __STDC__ */
  1293.  
  1294. #ifdef __cplusplus
  1295. }
  1296. #endif
  1297.  
  1298. #endif /* _TERM_H */
  1299.