From 6a061dcbde833f65021f12afed94bcaf323d3620 Mon Sep 17 00:00:00 2001 From: Rockingcool Date: Wed, 12 Oct 2022 10:50:23 -0500 Subject: [PATCH] updated .gitignore --- .gitignore | 2 + include/Caps | 971 -------------------- include/Caps-ncurses | 461 ---------- include/Caps.aix4 | 1073 ---------------------- include/Caps.hpux11 | 986 -------------------- include/Caps.keys | 1062 ---------------------- include/Caps.osf1r5 | 979 -------------------- include/Caps.uwin | 796 ---------------- include/MKhashsize.sh | 43 - include/MKkey_defs.sh | 196 ---- include/MKncurses_def.sh | 81 -- include/MKparametrized.sh | 75 -- include/MKterm.h.awk | 416 --------- include/MKterm.h.awk.in | 416 --------- include/Makefile | 218 ----- include/Makefile.in | 177 ---- include/capdefaults.c | 87 -- include/config.h | 0 include/curses.events | 55 -- include/curses.h | 1800 ------------------------------------- include/curses.h.in | 1506 ------------------------------- include/curses.head | 1506 ------------------------------- include/curses.tail | 197 ---- include/curses.wide | 314 ------- include/edit_cfg.sh | 68 -- include/eti.h | 55 -- include/form.h | 460 ---------- include/hashed_db.h | 72 -- include/hashsize.h | 6 - include/headers | 55 -- include/menu.h | 281 ------ include/mf_common.h | 98 -- include/nc_access.h | 80 -- include/nc_alloc.h | 128 --- include/nc_mingw.h | 89 -- include/nc_panel.h | 80 -- include/nc_string.h | 90 -- include/nc_termios.h | 168 ---- include/nc_tparm.h | 92 -- include/nc_win32.h | 183 ---- include/ncurses_cfg.h | 237 ----- include/ncurses_cfg.hin | 74 -- include/ncurses_def.h | 928 ------------------- include/ncurses_defs | 264 ------ include/ncurses_dll.h | 99 -- include/ncurses_dll.h.in | 99 -- include/ncurses_mingw.h | 82 -- include/panel.h | 100 --- include/parametrized.h | 429 --------- include/term.h | 874 ------------------ include/term_entry.h | 237 ----- include/termcap.h | 73 -- include/termcap.h.in | 73 -- include/tic.h | 397 -------- include/unctrl.h | 68 -- include/unctrl.h.in | 68 -- include/win32_curses.h | 75 -- lib/libformt.a | Bin 135828 -> 0 bytes lib/libformt.so | 1 - lib/libformt.so.6 | 1 - lib/libformt.so.6.3 | Bin 88208 -> 0 bytes lib/libformt_g.a | Bin 740218 -> 0 bytes lib/libmenut.a | Bin 70470 -> 0 bytes lib/libmenut.so | 1 - lib/libmenut.so.6 | 1 - lib/libmenut.so.6.3 | Bin 46744 -> 0 bytes lib/libmenut_g.a | Bin 414364 -> 0 bytes lib/libncurses++t.a | Bin 161740 -> 0 bytes lib/libncurses++t_g.a | Bin 634652 -> 0 bytes lib/libncursest.a | Bin 732774 -> 0 bytes lib/libncursest.so | 1 - lib/libncursest.so.6 | 1 - lib/libncursest.so.6.3 | Bin 411216 -> 0 bytes lib/libncursest_g.a | Bin 3991346 -> 0 bytes lib/libpanelt.a | Bin 28130 -> 0 bytes lib/libpanelt.so | 1 - lib/libpanelt.so.6 | 1 - lib/libpanelt.so.6.3 | Bin 22072 -> 0 bytes lib/libpanelt_g.a | Bin 283088 -> 0 bytes 79 files changed, 2 insertions(+), 19605 deletions(-) delete mode 100644 include/Caps delete mode 100644 include/Caps-ncurses delete mode 100644 include/Caps.aix4 delete mode 100644 include/Caps.hpux11 delete mode 100644 include/Caps.keys delete mode 100644 include/Caps.osf1r5 delete mode 100644 include/Caps.uwin delete mode 100755 include/MKhashsize.sh delete mode 100755 include/MKkey_defs.sh delete mode 100755 include/MKncurses_def.sh delete mode 100755 include/MKparametrized.sh delete mode 100644 include/MKterm.h.awk delete mode 100644 include/MKterm.h.awk.in delete mode 100644 include/Makefile delete mode 100644 include/Makefile.in delete mode 100644 include/capdefaults.c delete mode 100644 include/config.h delete mode 100644 include/curses.events delete mode 100644 include/curses.h delete mode 100644 include/curses.h.in delete mode 100644 include/curses.head delete mode 100644 include/curses.tail delete mode 100644 include/curses.wide delete mode 100755 include/edit_cfg.sh delete mode 100644 include/eti.h delete mode 100644 include/form.h delete mode 100644 include/hashed_db.h delete mode 100644 include/hashsize.h delete mode 100644 include/headers delete mode 100644 include/menu.h delete mode 100644 include/mf_common.h delete mode 100644 include/nc_access.h delete mode 100644 include/nc_alloc.h delete mode 100644 include/nc_mingw.h delete mode 100644 include/nc_panel.h delete mode 100644 include/nc_string.h delete mode 100644 include/nc_termios.h delete mode 100644 include/nc_tparm.h delete mode 100644 include/nc_win32.h delete mode 100644 include/ncurses_cfg.h delete mode 100644 include/ncurses_cfg.hin delete mode 100644 include/ncurses_def.h delete mode 100644 include/ncurses_defs delete mode 100644 include/ncurses_dll.h delete mode 100644 include/ncurses_dll.h.in delete mode 100644 include/ncurses_mingw.h delete mode 100644 include/panel.h delete mode 100644 include/parametrized.h delete mode 100644 include/term.h delete mode 100644 include/term_entry.h delete mode 100644 include/termcap.h delete mode 100644 include/termcap.h.in delete mode 100644 include/tic.h delete mode 100644 include/unctrl.h delete mode 100644 include/unctrl.h.in delete mode 100644 include/win32_curses.h delete mode 100644 lib/libformt.a delete mode 120000 lib/libformt.so delete mode 120000 lib/libformt.so.6 delete mode 100755 lib/libformt.so.6.3 delete mode 100644 lib/libformt_g.a delete mode 100644 lib/libmenut.a delete mode 120000 lib/libmenut.so delete mode 120000 lib/libmenut.so.6 delete mode 100755 lib/libmenut.so.6.3 delete mode 100644 lib/libmenut_g.a delete mode 100644 lib/libncurses++t.a delete mode 100644 lib/libncurses++t_g.a delete mode 100644 lib/libncursest.a delete mode 120000 lib/libncursest.so delete mode 120000 lib/libncursest.so.6 delete mode 100755 lib/libncursest.so.6.3 delete mode 100644 lib/libncursest_g.a delete mode 100644 lib/libpanelt.a delete mode 120000 lib/libpanelt.so delete mode 120000 lib/libpanelt.so.6 delete mode 100755 lib/libpanelt.so.6.3 delete mode 100644 lib/libpanelt_g.a diff --git a/.gitignore b/.gitignore index 9319a90..f37ed2e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ sample1.txt program3-4 program3-4-2.c test1.c +include +lib diff --git a/include/Caps b/include/Caps deleted file mode 100644 index 7bc00ea..0000000 --- a/include/Caps +++ /dev/null @@ -1,971 +0,0 @@ -############################################################################## -# Copyright 2019-2020,2021 Thomas E. Dickey # -# Copyright 1998-2015,2016 Free Software Foundation, Inc. # -# # -# Permission is hereby granted, free of charge, to any person obtaining a # -# copy of this software and associated documentation files (the "Software"), # -# to deal in the Software without restriction, including without limitation # -# the rights to use, copy, modify, merge, publish, distribute, distribute # -# with modifications, sublicense, and/or sell copies of the Software, and to # -# permit persons to whom the Software is furnished to do so, subject to the # -# following conditions: # -# # -# The above copyright notice and this permission notice shall be included in # -# all copies or substantial portions of the Software. # -# # -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # -# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # -# DEALINGS IN THE SOFTWARE. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Zeyd M. Ben-Halim 1992,1995 -# and: Eric S. Raymond -# -# $Id: Caps,v 1.48 2021/10/08 07:55:48 tom Exp $ -# -# This is the master termcap/terminfo capability table. -# -# This table is used to generate initializers for tables that drive tic, -# infocmp, and the library compilation code used to support the termcap -# compatibility hack. It is also used to generate the tabular portion of the -# terminfo(5) man page; lines beginning with `#%' are passed through to become -# the terminfo table. -# -# This file has three major sections; a standard-capabilities table, two -# extension-capability tables, and a section of aliases declarations. -# The first two have the same format, as follows: -# -# FILE FORMAT -# -# Column 1: terminfo variable name -# Column 2: terminfo capability name -# Column 3: capability type (boolean, numeric, or string) -# Column 4: termcap capability name -# Column 5: KEY_xxx name, if any, `-' otherwise -# Column 6: value for KEY_xxx name, if any, `-' otherwise -# Column 7: Lead with `Y' if capability should be emitted in termcap -# translations, `-' otherwise -# Column 8: capability description -# -# The codes following [Y-] in column 7 describe the versions of termcap which -# use the given capability. This information is not used by the curses library -# proper; rather, it is there to help the terminfo maintainer avoid emitting -# termcap entry translations that are more than 1023 bytes long (and tank a -# lot of old termcap-using programs). The codes read as follows: -# B = mentioned in the BSD man page for 4.4BSD curses -# C = used by the 4.4BSD curses library -# G = mentioned in the documentation for GNU termcap -# E = used by GNU Emacs -# K = remove this terminfo capability when translating to standard format -# The important codes are C and E. A cap with C or E should be preserved in -# translation if possible. The problem is that preserving all such caps may -# lead to some termcap translations being too long. The termcap maintainer -# has a bit of a juggling act to do...potential problem cases are marked with -# an asterisk (*). -# -# The aliases section has the following format: -# -# Column 1: either `capalias' or `infoalias' -# Column 2: name to be aliased -# Column 3: what name it should translate to. The name IGNORE means it -# should be discarded with a warning message. -# Column 4: name of the extension set (used for compiler warning messages) -# Column 5: capability description (usually an associated terminfo variable) -# -# HANDLING TERMCAP AND TERMINFO EXTENSIONS -# -# There are basically five different ways to handle termcap and terminfo -# extensions: -# -# 1. Don't list the capname here, or list it but comment it out (the latter -# is preferable; someone might want to handle it in the future). If you do -# this, the capability will be treated as unknown and raise a warning from -# the compiler. -# -# 2. Alias it. This is appropriate if the capability has the same meaning -# as an already-supported one. The compiler will handle aliasing, emitting -# an appropriate informational message whenever an alias fires. -# -# 3. List it in the standard table. You almost certainly do *not* want -# to do this -- the capabilities in that one, and their order, have been -# carefully chosen to be SVr4-binary-compatible when they're written out -# as a terminfo object, and breaking this would be bad. It is up to the ncurses -# library what to do with the terminfo data after it is read in. -# -# 4. List it in the aliases table with an IGNORE target field. If you -# do this, the capability will be ignored on input (though the user will -# get a warning message about it). -# -# 5. List it in the extensions table. If you do this, the compiler will -# silently accept the capability, but the curses library proper will never -# see it (because it won't be written out as part of the terminfo object -# format). It is up to you what you have the compiler do with it. -# -# There are two opposite reasons to choose option 5. One is when you want -# to eat the capability silently and discard it when doing translations -# to terminfo with tic -I. Some very old obsolete BSD caps like :kn: are -# in this class. Nothing will ever use them again. -# -# More usually, you want the compiler to try to deduce something from the -# capability value that it can use to translate it into your output format. -# You'll need to write custom code, probably in postprocess_termcap() or -# postprocess_terminfo(), to handle the translation. -# -# CONTROLLING ENTRY LENGTH -# -# Notes on specific elisions made to fit translations within 1023 bytes: -# -# Machines with IBM PC-like keyboards want to be able to define the following -# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap- -# only environments for End or Home-Down), key_dc, and key_ic. This is also -# the set of keys the `joe' editor will be upset if it can't see. So don't -# trim those out of the set to be translated to termcap, or various users of -# the termcap file will become irate. -# -# It might look tempting to leave those long init strings out of translations. -# We can't do it (yet); 4.4BSD tput and tset use them. -# -# We retain the sgr capability in translation in spite of the fact that neither -# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are -# hard to understand without it, and (b) the entries in which it is long tend -# to be older types that don't use up a lot of string space on function keys. -# The tic(1) translation code will complain and elide it if it makes a critical -# difference (there is special code in tic to recognize this situation). -# -# Yes, BSD tset(1) uses hpa. We elide hpa/vpa anyway because the motion -# optimizer in BSD curses didn't use them. This omission seems to be the -# single most effective one, it shortened the resolved length of all thirteen -# problem entries in the 9.9.0 version of the terminfo master below critical. -# -# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap -# translations go back over critical if we do this. As 4.4BSD curses fades -# into history and GNU termcap's application base shrinks towards being GNU -# Emacs only, we'll probably elide out some BSD-only capabilities in order -# to buy space for non-essentials Emacs is still using. Capabilities high -# on that hit list: rc, sc, uc. -# -############################################################################# -# -# STANDARD CAPABILITIES -# -#%The following is a complete table of the capabilities included in a -#%terminfo description block and available to terminfo-using code. In each -#%line of the table, -#% -#%The \fBvariable\fR is the name by which the programmer (at the terminfo level) -#%accesses the capability. -#% -#%The \fBcapname\fR is the short name used in the text of the database, -#%and is used by a person updating the database. -#%Whenever possible, capnames are chosen to be the same as or similar to -#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses -#%identical or very similar names). Semantics are also intended to match -#%those of the specification. -#% -#%The termcap code is the old -#%.B termcap -#%capability name (some capabilities are new, and have names which termcap -#%did not originate). -#%.P -#%Capability names have no hard length limit, but an informal limit of 5 -#%characters has been adopted to keep them short and to allow the tabs in -#%the source file -#%.B Caps -#%to line up nicely. -#% -#%Finally, the description field attempts to convey the semantics of the -#%capability. You may find some codes in the description field: -#%.TP -#%(P) -#%indicates that padding may be specified -#%.TP -#%#[1-9] -#%in the description field indicates that the string is passed -#%through \fBtparm\fP(3X) with parameters as given (#\fIi\fP). -#%.IP -#%If no parameters are listed in the description, -#%passing the string through \fBtparm\fP(3X) may give unexpected results, -#%e.g., if it contains percent (%%) signs. -#%.TP -#%(P*) -#%indicates that padding may vary in proportion to the number of -#%lines affected -#%.TP -#%(#\d\fIi\fP\u) -#%indicates the \fIi\fP\uth\d parameter. -#% -#%.PP -#% These are the boolean capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBBooleans name Code\fR -auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column -auto_right_margin am bool am - - YBCGE terminal has automatic margins -no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C) -ceol_standout_glitch xhp bool xs - - YBCGE standout not erased by overwriting (hp) -eat_newline_glitch xenl bool xn - - YBCGE newline ignored after 80 cols (concept) -erase_overstrike eo bool eo - - YBCG- can erase overstrikes with a blank -generic_type gn bool gn - - YB-G- generic line type -hard_copy hc bool hc - - YBCG- hardcopy terminal -has_meta_key km bool km - - YB-GE Has a meta key (i.e., sets 8th-bit) -has_status_line hs bool hs - - YB-G- has extra status line -insert_null_glitch in bool in - - YBCGE insert mode distinguishes nulls -memory_above da bool da - - YBCG- display may be retained above the screen -memory_below db bool db - - YB-GE display may be retained below the screen -move_insert_mode mir bool mi - - YBCGE safe to move while in insert mode -move_standout_mode msgr bool ms - - YBCGE safe to move while in standout mode -over_strike os bool os - - YBCG- terminal can overstrike -status_line_esc_ok eslok bool es - - YB-G- escape can be used on the status line -dest_tabs_magic_smso xt bool xt - - YBCGE tabs destructive, magic so char (t1061) -tilde_glitch hz bool hz - - YB-GE cannot print ~'s (Hazeltine) -transparent_underline ul bool ul - - YBCGE underline character overstrikes -xon_xoff xon bool xo - - YB--- terminal uses xon/xoff handshaking -needs_xon_xoff nxon bool nx - - ----- padding will not work, xon/xoff required -prtr_silent mc5i bool 5i - - ----- printer will not echo on screen -hard_cursor chts bool HC - - ----- cursor is hard to see -non_rev_rmcup nrrmc bool NR - - ----- smcup does not reverse rmcup -no_pad_char npc bool NP - - ----- pad character does not exist -non_dest_scroll_region ndscr bool ND - - ----- scrolling region is non-destructive -can_change ccc bool cc - - ----- terminal can re-define existing colors -back_color_erase bce bool ut - - ----- screen erased with background color -hue_lightness_saturation hls bool hl - - ----- terminal uses only HLS color notation (Tektronix) -col_addr_glitch xhpa bool YA - - ----- only positive motion for hpa/mhpa caps -cr_cancels_micro_mode crxm bool YB - - ----- using cr turns off micro mode -has_print_wheel daisy bool YC - - ----- printer needs operator to change character set -row_addr_glitch xvpa bool YD - - ----- only positive motion for vpa/mvpa caps -semi_auto_right_margin sam bool YE - - ----- printing in last column causes cr -cpi_changes_res cpix bool YF - - ----- changing character pitch changes resolution -lpi_changes_res lpix bool YG - - ----- changing line pitch changes resolution -#%.TE -#%.ad -#% -#%These are the numeric capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBNumeric name Code\fR -columns cols num co - - YBCGE number of columns in a line -init_tabs it num it - - YB-G- tabs initially every # spaces -lines lines num li - - YBCGE number of lines on screen or page -lines_of_memory lm num lm - - YB-G- lines of memory if > line. 0 means varies -magic_cookie_glitch xmc num sg - - YBCGE number of blank characters left by smso or rmso -padding_baud_rate pb num pb - - YB-GE lowest baud rate where padding needed -virtual_terminal vt num vt - - YB--- virtual terminal number (CB/unix) -width_status_line wsl num ws - - YB-G- number of columns in status line -num_labels nlab num Nl - - ----- number of labels on screen -label_height lh num lh - - ----- rows in each label -label_width lw num lw - - ----- columns in each label -max_attributes ma num ma - - YBC-- maximum combined attributes terminal can handle -maximum_windows wnum num MW - - ----- maximum number of definable windows -# These came in with SVr4's color support -max_colors colors num Co - - ----- maximum number of colors on screen -max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen -no_color_video ncv num NC - - ----- video attributes that cannot be used with colors -#%.TE -#%.ad -#% -#%The following numeric capabilities are present in the SVr4.0 term structure, -#%but are not yet documented in the man page. They came in with SVr4's -#%printer support. -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBNumeric name Code\fR -buffer_capacity bufsz num Ya - - ----- numbers of bytes buffered before printing -dot_vert_spacing spinv num Yb - - ----- spacing of pins vertically in pins per inch -dot_horz_spacing spinh num Yc - - ----- spacing of dots horizontally in dots per inch -max_micro_address maddr num Yd - - ----- maximum value in micro_..._address -max_micro_jump mjump num Ye - - ----- maximum value in parm_..._micro -micro_col_size mcs num Yf - - ----- character step size when in micro mode -micro_line_size mls num Yg - - ----- line step size when in micro mode -number_of_pins npins num Yh - - ----- numbers of pins in print-head -output_res_char orc num Yi - - ----- horizontal resolution in units per line -output_res_line orl num Yj - - ----- vertical resolution in units per line -output_res_horz_inch orhi num Yk - - ----- horizontal resolution in units per inch -output_res_vert_inch orvi num Yl - - ----- vertical resolution in units per inch -print_rate cps num Ym - - ----- print rate in characters per second -wide_char_size widcs num Yn - - ----- character step size when in double wide mode -buttons btns num BT - - ----- number of buttons on mouse -bit_image_entwining bitwin num Yo - - ----- number of passes for each bit-image row -bit_image_type bitype num Yp - - ----- type of bit-image device -#%.TE -#%.ad -#% -#%These are the string capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -back_tab cbt str bt - - YBCGE back tab (P) -bell bel str bl - - YB-GE audible signal (bell) (P) -carriage_return cr str cr - - YBCGE carriage return (P*) (P*) -change_scroll_region csr str cs - - YBCGE change region to line #1 to line #2 (P) -clear_all_tabs tbc str ct - - YB-G- clear all tab stops (P) -clear_screen clear str cl - - YBCGE clear screen and home cursor (P*) -clr_eol el str ce - - YBCGE clear to end of line (P) -clr_eos ed str cd - - YBCGE clear to end of screen (P*) -column_address hpa str ch - - -B-GE* horizontal position #1, absolute (P) -command_character cmdch str CC - - YB-G- terminal settable cmd character in prototype !? -cursor_address cup str cm - - YBCGE move to row #1 columns #2 -cursor_down cud1 str do - - YBCGE down one line -cursor_home home str ho - - YBCGE home cursor (if no cup) -cursor_invisible civis str vi - - YB-G- make cursor invisible -cursor_left cub1 str le - - YBCGE move left one space -cursor_mem_address mrcup str CM - - YB-G- memory relative cursor addressing, move to row #1 columns #2 -cursor_normal cnorm str ve - - YBCGE make cursor appear normal (undo civis/cvvis) -cursor_right cuf1 str nd - - YBCGE non-destructive space (move right one space) -cursor_to_ll ll str ll - - YBCGE last line, first column (if no cup) -cursor_up cuu1 str up - - YBCGE up one line -cursor_visible cvvis str vs - - YBCGE make cursor very visible -delete_character dch1 str dc - - YBCGE delete character (P*) -delete_line dl1 str dl - - YBCGE delete line (P*) -dis_status_line dsl str ds - - YB-G- disable status line -down_half_line hd str hd - - YB-G- half a line down -enter_alt_charset_mode smacs str as - - YB-G- start alternate character set (P) -enter_blink_mode blink str mb - - YB-G- turn on blinking -enter_bold_mode bold str md - - YB-G- turn on bold (extra bright) mode -enter_ca_mode smcup str ti - - YBCGE string to start programs using cup -enter_delete_mode smdc str dm - - YBCGE enter delete mode -enter_dim_mode dim str mh - - YB-G- turn on half-bright mode -enter_insert_mode smir str im - - YBCGE enter insert mode -enter_secure_mode invis str mk - - -B-G-* turn on blank mode (characters invisible) -enter_protected_mode prot str mp - - -B-G-* turn on protected mode -enter_reverse_mode rev str mr - - YB-G- turn on reverse video mode -enter_standout_mode smso str so - - YBCGE begin standout mode -enter_underline_mode smul str us - - YBCGE begin underline mode -erase_chars ech str ec - - YB-G- erase #1 characters (P) -exit_alt_charset_mode rmacs str ae - - YB-G- end alternate character set (P) -exit_attribute_mode sgr0 str me - - YB-GE turn off all attributes -exit_ca_mode rmcup str te - - YBCGE strings to end programs using cup -exit_delete_mode rmdc str ed - - YBCGE end delete mode -exit_insert_mode rmir str ei - - YBCGE exit insert mode -exit_standout_mode rmso str se - - YBCGE exit standout mode -exit_underline_mode rmul str ue - - YBCGE exit underline mode -flash_screen flash str vb - - YBCGE visible bell (may not move cursor) -form_feed ff str ff - - YB-G- hardcopy terminal page eject (P*) -from_status_line fsl str fs - - YB-G- return from status line -init_1string is1 str i1 - - YB-G- initialization string -init_2string is2 str is - - YB-G- initialization string -init_3string is3 str i3 - - YB-G- initialization string -init_file if str if - - YB-G- name of initialization file -insert_character ich1 str ic - - YBCGE insert character (P) -insert_line il1 str al - - YBCGE insert line (P*) -insert_padding ip str ip - - YBCGE insert padding after inserted character -key_backspace kbs str kb KEY_BACKSPACE 0407 YB-G- backspace key -key_catab ktbc str ka KEY_CATAB 0526 -B-G-* clear-all-tabs key -key_clear kclr str kC KEY_CLEAR 0515 -B-G-* clear-screen or erase key -key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key -key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key -key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key -key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key -key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode -key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key -key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key -key_f0 kf0 str k0 KEY_F(0) 0410 YBCGE F0 function key -key_f1 kf1 str k1 KEY_F(1) - YBCGE F1 function key -key_f10 kf10 str k; KEY_F(10) - ----E F10 function key -key_f2 kf2 str k2 KEY_F(2) - YBCGE F2 function key -key_f3 kf3 str k3 KEY_F(3) - YBCGE F3 function key -key_f4 kf4 str k4 KEY_F(4) - YBCGE F4 function key -key_f5 kf5 str k5 KEY_F(5) - YBCGE F5 function key -key_f6 kf6 str k6 KEY_F(6) - YBCGE F6 function key -key_f7 kf7 str k7 KEY_F(7) - YBCGE F7 function key -key_f8 kf8 str k8 KEY_F(8) - YBCGE F8 function key -key_f9 kf9 str k9 KEY_F(9) - YBCGE F9 function key -key_home khome str kh KEY_HOME 0406 YBCGE home key -key_ic kich1 str kI KEY_IC 0513 YB-GE insert-character key -key_il kil1 str kA KEY_IL 0511 -B-G-* insert-line key -key_left kcub1 str kl KEY_LEFT 0404 YBCGE left-arrow key -key_ll kll str kH KEY_LL 0533 YB-G- lower-left key (home down) -key_npage knp str kN KEY_NPAGE 0522 YB-GE next-page key -key_ppage kpp str kP KEY_PPAGE 0523 YB-GE previous-page key -key_right kcuf1 str kr KEY_RIGHT 0405 YBCGE right-arrow key -key_sf kind str kF KEY_SF 0520 -B-G-* scroll-forward key -key_sr kri str kR KEY_SR 0521 -B-G-* scroll-backward key -key_stab khts str kT KEY_STAB 0524 -B-G-* set-tab key -key_up kcuu1 str ku KEY_UP 0403 YBCGE up-arrow key -keypad_local rmkx str ke - - YBCGE leave 'keyboard_transmit' mode -keypad_xmit smkx str ks - - YBCGE enter 'keyboard_transmit' mode -lab_f0 lf0 str l0 - - -B-G-* label on function key f0 if not f0 -lab_f1 lf1 str l1 - - -B-G-* label on function key f1 if not f1 -lab_f10 lf10 str la - - ----- label on function key f10 if not f10 -lab_f2 lf2 str l2 - - -B-G-* label on function key f2 if not f2 -lab_f3 lf3 str l3 - - -B-G-* label on function key f3 if not f3 -lab_f4 lf4 str l4 - - -B-G-* label on function key f4 if not f4 -lab_f5 lf5 str l5 - - -B-G-* label on function key f5 if not f5 -lab_f6 lf6 str l6 - - -B-G-* label on function key f6 if not f6 -lab_f7 lf7 str l7 - - -B-G-* label on function key f7 if not f7 -lab_f8 lf8 str l8 - - -B-G-* label on function key f8 if not f8 -lab_f9 lf9 str l9 - - -B-G-* label on function key f9 if not f9 -meta_off rmm str mo - - YB-G-* turn off meta mode -meta_on smm str mm - - YB-G-* turn on meta mode (8th-bit on) -newline nel str nw - - YB-G-* newline (behave like cr followed by lf) -pad_char pad str pc - - YBCGE padding char (instead of null) -parm_dch dch str DC - - YB-GE delete #1 characters (P*) -parm_delete_line dl str DL - - YBCGE delete #1 lines (P*) -parm_down_cursor cud str DO - - YBCGE down #1 lines (P*) -parm_ich ich str IC - - YB-GE insert #1 characters (P*) -parm_index indn str SF - - YBCG- scroll forward #1 lines (P) -parm_insert_line il str AL - - YBCGE insert #1 lines (P*) -parm_left_cursor cub str LE - - YBCGE move #1 characters to the left (P) -parm_right_cursor cuf str RI - - YBCGE move #1 characters to the right (P*) -parm_rindex rin str SR - - YBCG- scroll back #1 lines (P) -parm_up_cursor cuu str UP - - YBCGE up #1 lines (P*) -pkey_key pfkey str pk - - -B--- program function key #1 to type string #2 -pkey_local pfloc str pl - - -B--- program function key #1 to execute string #2 -pkey_xmit pfx str px - - -B--- program function key #1 to transmit string #2 -print_screen mc0 str ps - - -B-G-* print contents of screen -prtr_off mc4 str pf - - -B-G-* turn off printer -prtr_on mc5 str po - - -B-G-* turn on printer -repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*) -reset_1string rs1 str r1 - - -B--- reset string -reset_2string rs2 str r2 - - -B--- reset string -reset_3string rs3 str r3 - - -B--- reset string -reset_file rf str rf - - -B--- name of reset file -restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor -row_address vpa str cv - - -B-GE* vertical position #1 absolute (P) -save_cursor sc str sc - - YBCG- save current cursor position (P) -scroll_forward ind str sf - - YBCGE scroll text up (P) -scroll_reverse ri str sr - - YBCGE scroll text down (P) -set_attributes sgr str sa - - YB-G- define video attributes #1-#9 (PG9) -set_tab hts str st - - YB-G- set a tab in every row, current columns -set_window wind str wi - - -B-GE current window is lines #1-#2 cols #3-#4 -tab ht str ta - - YBCGE tab to next 8-space hardware tab stop -to_status_line tsl str ts - - YB-G- move to status line, column #1 -underline_char uc str uc - - YBCG- underline char and move past it -up_half_line hu str hu - - YB-G- half a line up -init_prog iprog str iP - - -B--- path name of program for initialization -key_a1 ka1 str K1 KEY_A1 0534 YB-GE upper left of keypad -key_a3 ka3 str K3 KEY_A3 0535 YB-GE upper right of keypad -key_b2 kb2 str K2 KEY_B2 0536 YB-GE center of keypad -key_c1 kc1 str K4 KEY_C1 0537 YB-GE lower left of keypad -key_c3 kc3 str K5 KEY_C3 0540 YB-GE lower right of keypad -prtr_non mc5p str pO - - -B-G-* turn on printer for #1 bytes -# -# SVr1 capabilities stop here. IBM's version of terminfo is the same as -# SVr4 up to this point, but has a different set afterwards. -# -char_padding rmp str rP - - ----- like ip but when in insert mode -acs_chars acsc str ac - - ----- graphics charset pairs, based on vt100 -plab_norm pln str pn - - ----- program label #1 to show string #2 -key_btab kcbt str kB KEY_BTAB 0541 ----- back-tab key -enter_xon_mode smxon str SX - - ----- turn on xon/xoff handshaking -exit_xon_mode rmxon str RX - - ----- turn off xon/xoff handshaking -enter_am_mode smam str SA - - ----- turn on automatic margins -exit_am_mode rmam str RA - - ----- turn off automatic margins -xon_character xonc str XN - - ----- XON character -xoff_character xoffc str XF - - ----- XOFF character -ena_acs enacs str eA - - ----- enable alternate char set -label_on smln str LO - - ----- turn on soft labels -label_off rmln str LF - - ----- turn off soft labels -key_beg kbeg str @1 KEY_BEG 0542 ----- begin key -key_cancel kcan str @2 KEY_CANCEL 0543 ----- cancel key -key_close kclo str @3 KEY_CLOSE 0544 ----- close key -key_command kcmd str @4 KEY_COMMAND 0545 ----- command key -key_copy kcpy str @5 KEY_COPY 0546 ----- copy key -key_create kcrt str @6 KEY_CREATE 0547 ----- create key -key_end kend str @7 KEY_END 0550 ----- end key -key_enter kent str @8 KEY_ENTER 0527 ----- enter/send key -key_exit kext str @9 KEY_EXIT 0551 ----- exit key -key_find kfnd str @0 KEY_FIND 0552 ----- find key -key_help khlp str %1 KEY_HELP 0553 ----- help key -key_mark kmrk str %2 KEY_MARK 0554 ----- mark key -key_message kmsg str %3 KEY_MESSAGE 0555 ----- message key -key_move kmov str %4 KEY_MOVE 0556 ----- move key -key_next knxt str %5 KEY_NEXT 0557 ----- next key -key_open kopn str %6 KEY_OPEN 0560 ----- open key -key_options kopt str %7 KEY_OPTIONS 0561 ----- options key -key_previous kprv str %8 KEY_PREVIOUS 0562 ----- previous key -key_print kprt str %9 KEY_PRINT 0532 ----- print key -key_redo krdo str %0 KEY_REDO 0563 ----- redo key -key_reference kref str &1 KEY_REFERENCE 0564 ----- reference key -key_refresh krfr str &2 KEY_REFRESH 0565 ----- refresh key -key_replace krpl str &3 KEY_REPLACE 0566 ----- replace key -key_restart krst str &4 KEY_RESTART 0567 ----- restart key -key_resume kres str &5 KEY_RESUME 0570 ----- resume key -key_save ksav str &6 KEY_SAVE 0571 ----- save key -key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key -key_undo kund str &8 KEY_UNDO 0630 ----- undo key -key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key -key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key -key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key -key_scopy kCPY str *2 KEY_SCOPY 0575 ----- shifted copy key -key_screate kCRT str *3 KEY_SCREATE 0576 ----- shifted create key -key_sdc kDC str *4 KEY_SDC 0577 ----- shifted delete-character key -key_sdl kDL str *5 KEY_SDL 0600 ----- shifted delete-line key -key_select kslt str *6 KEY_SELECT 0601 ----- select key -key_send kEND str *7 KEY_SEND 0602 ----- shifted end key -key_seol kEOL str *8 KEY_SEOL 0603 ----- shifted clear-to-end-of-line key -key_sexit kEXT str *9 KEY_SEXIT 0604 ----- shifted exit key -key_sfind kFND str *0 KEY_SFIND 0605 ----- shifted find key -key_shelp kHLP str #1 KEY_SHELP 0606 ----- shifted help key -key_shome kHOM str #2 KEY_SHOME 0607 ----- shifted home key -key_sic kIC str #3 KEY_SIC 0610 ----- shifted insert-character key -key_sleft kLFT str #4 KEY_SLEFT 0611 ----- shifted left-arrow key -key_smessage kMSG str %a KEY_SMESSAGE 0612 ----- shifted message key -key_smove kMOV str %b KEY_SMOVE 0613 ----- shifted move key -key_snext kNXT str %c KEY_SNEXT 0614 ----- shifted next key -key_soptions kOPT str %d KEY_SOPTIONS 0615 ----- shifted options key -key_sprevious kPRV str %e KEY_SPREVIOUS 0616 ----- shifted previous key -key_sprint kPRT str %f KEY_SPRINT 0617 ----- shifted print key -key_sredo kRDO str %g KEY_SREDO 0620 ----- shifted redo key -key_sreplace kRPL str %h KEY_SREPLACE 0621 ----- shifted replace key -key_sright kRIT str %i KEY_SRIGHT 0622 ----- shifted right-arrow key -key_srsume kRES str %j KEY_SRSUME 0623 ----- shifted resume key -key_ssave kSAV str !1 KEY_SSAVE 0624 ----- shifted save key -key_ssuspend kSPD str !2 KEY_SSUSPEND 0625 ----- shifted suspend key -key_sundo kUND str !3 KEY_SUNDO 0626 ----- shifted undo key -req_for_input rfi str RF - - ----- send next input char (for ptys) -key_f11 kf11 str F1 KEY_F(11) - ----E F11 function key -key_f12 kf12 str F2 KEY_F(12) - ----E F12 function key -key_f13 kf13 str F3 KEY_F(13) - ----E F13 function key -key_f14 kf14 str F4 KEY_F(14) - ----E F14 function key -key_f15 kf15 str F5 KEY_F(15) - ----E F15 function key -key_f16 kf16 str F6 KEY_F(16) - ----E F16 function key -key_f17 kf17 str F7 KEY_F(17) - ----E F17 function key -key_f18 kf18 str F8 KEY_F(18) - ----E F18 function key -key_f19 kf19 str F9 KEY_F(19) - ----E F19 function key -key_f20 kf20 str FA KEY_F(20) - ----E F20 function key -key_f21 kf21 str FB KEY_F(21) - ----E F21 function key -key_f22 kf22 str FC KEY_F(22) - ----E F22 function key -key_f23 kf23 str FD KEY_F(23) - ----E F23 function key -key_f24 kf24 str FE KEY_F(24) - ----E F24 function key -key_f25 kf25 str FF KEY_F(25) - ----E F25 function key -key_f26 kf26 str FG KEY_F(26) - ----E F26 function key -key_f27 kf27 str FH KEY_F(27) - ----E F27 function key -key_f28 kf28 str FI KEY_F(28) - ----E F28 function key -key_f29 kf29 str FJ KEY_F(29) - ----E F29 function key -key_f30 kf30 str FK KEY_F(30) - ----E F30 function key -key_f31 kf31 str FL KEY_F(31) - ----E F31 function key -key_f32 kf32 str FM KEY_F(32) - ----E F32 function key -key_f33 kf33 str FN KEY_F(33) - ----E F33 function key -key_f34 kf34 str FO KEY_F(34) - ----E F34 function key -key_f35 kf35 str FP KEY_F(35) - ----E F35 function key -key_f36 kf36 str FQ KEY_F(36) - ----E F36 function key -key_f37 kf37 str FR KEY_F(37) - ----E F37 function key -key_f38 kf38 str FS KEY_F(38) - ----E F38 function key -key_f39 kf39 str FT KEY_F(39) - ----E F39 function key -key_f40 kf40 str FU KEY_F(40) - ----E F40 function key -key_f41 kf41 str FV KEY_F(41) - ----E F41 function key -key_f42 kf42 str FW KEY_F(42) - ----E F42 function key -key_f43 kf43 str FX KEY_F(43) - ----E F43 function key -key_f44 kf44 str FY KEY_F(44) - ----E F44 function key -key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key -key_f46 kf46 str Fa KEY_F(46) - ----E F46 function key -key_f47 kf47 str Fb KEY_F(47) - ----E F47 function key -key_f48 kf48 str Fc KEY_F(48) - ----E F48 function key -key_f49 kf49 str Fd KEY_F(49) - ----E F49 function key -key_f50 kf50 str Fe KEY_F(50) - ----E F50 function key -key_f51 kf51 str Ff KEY_F(51) - ----E F51 function key -key_f52 kf52 str Fg KEY_F(52) - ----E F52 function key -key_f53 kf53 str Fh KEY_F(53) - ----E F53 function key -key_f54 kf54 str Fi KEY_F(54) - ----E F54 function key -key_f55 kf55 str Fj KEY_F(55) - ----E F55 function key -key_f56 kf56 str Fk KEY_F(56) - ----E F56 function key -key_f57 kf57 str Fl KEY_F(57) - ----E F57 function key -key_f58 kf58 str Fm KEY_F(58) - ----E F58 function key -key_f59 kf59 str Fn KEY_F(59) - ----E F59 function key -key_f60 kf60 str Fo KEY_F(60) - ----E F60 function key -key_f61 kf61 str Fp KEY_F(61) - ----E F61 function key -key_f62 kf62 str Fq KEY_F(62) - ----E F62 function key -key_f63 kf63 str Fr KEY_F(63) - ----E F63 function key -clr_bol el1 str cb - - ----- Clear to beginning of line -clear_margins mgc str MC - - ----- clear right and left soft margins -set_left_margin smgl str ML - - ----- set left soft margin at current column. (ML is not in BSD termcap). -set_right_margin smgr str MR - - ----- set right soft margin at current column -label_format fln str Lf - - ----- label format -set_clock sclk str SC - - ----- set clock, #1 hrs #2 mins #3 secs -display_clock dclk str DK - - ----- display clock -remove_clock rmclk str RC - - ----- remove clock -create_window cwin str CW - - ----- define a window #1 from #2,#3 to #4,#5 -goto_window wingo str WG - - ----- go to window #1 -hangup hup str HU - - ----- hang-up phone -dial_phone dial str DI - - ----- dial number #1 -quick_dial qdial str QD - - ----- dial number #1 without checking -tone tone str TO - - ----- select touch tone dialing -pulse pulse str PU - - ----- select pulse dialing -flash_hook hook str fh - - ----- flash switch hook -fixed_pause pause str PA - - ----- pause for 2-3 seconds -wait_tone wait str WA - - ----- wait for dial-tone -user0 u0 str u0 - - ----- User string #0 -user1 u1 str u1 - - ----- User string #1 -user2 u2 str u2 - - ----- User string #2 -user3 u3 str u3 - - ----- User string #3 -user4 u4 str u4 - - ----- User string #4 -user5 u5 str u5 - - ----- User string #5 -user6 u6 str u6 - - ----- User string #6 -user7 u7 str u7 - - ----- User string #7 -user8 u8 str u8 - - ----- User string #8 -user9 u9 str u9 - - ----- User string #9 -# -# SVr4 added these capabilities to support color -# -orig_pair op str op - - ----- Set default pair to its original value -orig_colors oc str oc - - ----- Set all color pairs to the original ones -initialize_color initc str Ic - - ----- initialize color #1 to (#2,#3,#4) -initialize_pair initp str Ip - - ----- Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7) -set_color_pair scp str sp - - ----- Set current color pair to #1 -set_foreground setf str Sf - - ----- Set foreground color #1 -set_background setb str Sb - - ----- Set background color #1 -# -# SVr4 added these capabilities to support printers -# -change_char_pitch cpi str ZA - - ----- Change number of characters per inch to #1 -change_line_pitch lpi str ZB - - ----- Change number of lines per inch to #1 -change_res_horz chr str ZC - - ----- Change horizontal resolution to #1 -change_res_vert cvr str ZD - - ----- Change vertical resolution to #1 -define_char defc str ZE - - ----- Define a character #1, #2 dots wide, descender #3 -enter_doublewide_mode swidm str ZF - - ----- Enter double-wide mode -enter_draft_quality sdrfq str ZG - - ----- Enter draft-quality mode -enter_italics_mode sitm str ZH - - ----- Enter italic mode -enter_leftward_mode slm str ZI - - ----- Start leftward carriage motion -enter_micro_mode smicm str ZJ - - ----- Start micro-motion mode -enter_near_letter_quality snlq str ZK - - ----- Enter NLQ mode -enter_normal_quality snrmq str ZL - - ----- Enter normal-quality mode -enter_shadow_mode sshm str ZM - - ----- Enter shadow-print mode -enter_subscript_mode ssubm str ZN - - ----- Enter subscript mode -enter_superscript_mode ssupm str ZO - - ----- Enter superscript mode -enter_upward_mode sum str ZP - - ----- Start upward carriage motion -exit_doublewide_mode rwidm str ZQ - - ----- End double-wide mode -exit_italics_mode ritm str ZR - - ----- End italic mode -exit_leftward_mode rlm str ZS - - ----- End left-motion mode -exit_micro_mode rmicm str ZT - - ----- End micro-motion mode -exit_shadow_mode rshm str ZU - - ----- End shadow-print mode -exit_subscript_mode rsubm str ZV - - ----- End subscript mode -exit_superscript_mode rsupm str ZW - - ----- End superscript mode -exit_upward_mode rum str ZX - - ----- End reverse character motion -micro_column_address mhpa str ZY - - ----- Like column_address in micro mode -micro_down mcud1 str ZZ - - ----- Like cursor_down in micro mode -micro_left mcub1 str Za - - ----- Like cursor_left in micro mode -micro_right mcuf1 str Zb - - ----- Like cursor_right in micro mode -micro_row_address mvpa str Zc - - ----- Like row_address #1 in micro mode -micro_up mcuu1 str Zd - - ----- Like cursor_up in micro mode -order_of_pins porder str Ze - - ----- Match software bits to print-head pins -parm_down_micro mcud str Zf - - ----- Like parm_down_cursor in micro mode -parm_left_micro mcub str Zg - - ----- Like parm_left_cursor in micro mode -parm_right_micro mcuf str Zh - - ----- Like parm_right_cursor in micro mode -parm_up_micro mcuu str Zi - - ----- Like parm_up_cursor in micro mode -select_char_set scs str Zj - - ----- Select character set, #1 -set_bottom_margin smgb str Zk - - ----- Set bottom margin at current line -set_bottom_margin_parm smgbp str Zl - - ----- Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom -set_left_margin_parm smglp str Zm - - ----- Set left (right) margin at column #1 -set_right_margin_parm smgrp str Zn - - ----- Set right margin at column #1 -set_top_margin smgt str Zo - - ----- Set top margin at current line -set_top_margin_parm smgtp str Zp - - ----- Set top (bottom) margin at row #1 -start_bit_image sbim str Zq - - ----- Start printing bit image graphics -start_char_set_def scsd str Zr - - ----- Start character set definition #1, with #2 characters in the set -stop_bit_image rbim str Zs - - ----- Stop printing bit image graphics -stop_char_set_def rcsd str Zt - - ----- End definition of character set #1 -subscript_characters subcs str Zu - - ----- List of subscriptable characters -superscript_characters supcs str Zv - - ----- List of superscriptable characters -these_cause_cr docr str Zw - - ----- Printing any of these characters causes CR -zero_motion zerom str Zx - - ----- No motion for subsequent character -#%.TE -#%.ad -#% -#%The following string capabilities are present in the SVr4.0 term structure, -#%but were originally not documented in the man page. -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw18. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -char_set_names csnm str Zy - - ----- Produce #1'th item from list of character set names -key_mouse kmous str Km KEY_MOUSE 0631 ----- Mouse event has occurred -mouse_info minfo str Mi - - ----- Mouse status information -req_mouse_pos reqmp str RQ - - ----- Request mouse position -get_mouse getm str Gm - - ----- Curses should get button events, parameter #1 not documented. -set_a_foreground setaf str AF - - ----- Set foreground color to #1, using ANSI escape -set_a_background setab str AB - - ----- Set background color to #1, using ANSI escape -pkey_plab pfxl str xl - - ----- Program function key #1 to type string #2 and show string #3 -device_type devt str dv - - ----- Indicate language/codeset support -code_set_init csin str ci - - ----- Init sequence for multiple codesets -set0_des_seq s0ds str s0 - - ----- Shift to codeset 0 (EUC set 0, ASCII) -set1_des_seq s1ds str s1 - - ----- Shift to codeset 1 -set2_des_seq s2ds str s2 - - ----- Shift to codeset 2 -set3_des_seq s3ds str s3 - - ----- Shift to codeset 3 -set_lr_margin smglr str ML - - ----- Set both left and right margins to #1, #2. (ML is not in BSD termcap). -set_tb_margin smgtb str MT - - ----- Sets both top and bottom margins to #1, #2 -bit_image_repeat birep str Xy - - ----- Repeat bit image cell #1 #2 times -bit_image_newline binel str Zz - - ----- Move to next row of the bit image -bit_image_carriage_return bicr str Yv - - ----- Move to beginning of same row -color_names colornm str Yw - - ----- Give name for color #1 -define_bit_image_region defbi str Yx - - ----- Define rectangular bit image region -end_bit_image_region endbi str Yy - - ----- End a bit-image region -set_color_band setcolor str Yz - - ----- Change to ribbon color #1 -set_page_length slines str YZ - - ----- Set page length to #1 lines -# -# SVr4 added these capabilities for direct PC-clone support -# -display_pc_char dispc str S1 - - ----- Display PC character #1 -enter_pc_charset_mode smpch str S2 - - ----- Enter PC character display mode -exit_pc_charset_mode rmpch str S3 - - ----- Exit PC character display mode -enter_scancode_mode smsc str S4 - - ----- Enter PC scancode mode -exit_scancode_mode rmsc str S5 - - ----- Exit PC scancode mode -pc_term_options pctrm str S6 - - ----- PC terminal options -scancode_escape scesc str S7 - - ----- Escape for scancode emulation -alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulation -#%.TE -#%.ad -#% -#%.in .8i -#%The XSI Curses standard added these hardcopy capabilities. -#%They were used in some post-4.1 versions of System V curses, -#%e.g., Solaris 2.5 and IRIX 6.x. -#%Except for \fBYI\fP, the \fBncurses\fR termcap names for them are invented. -#%According to the XSI Curses standard, they have no termcap names. -#%If your compiled terminfo entries use these, -#%they may not be binary-compatible with System V terminfo -#%entries after SVr4.1; beware! -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -enter_horizontal_hl_mode ehhlm str Xh - - ----- Enter horizontal highlight mode -enter_left_hl_mode elhlm str Xl - - ----- Enter left highlight mode -enter_low_hl_mode elohlm str Xo - - ----- Enter low highlight mode -enter_right_hl_mode erhlm str Xr - - ----- Enter right highlight mode -enter_top_hl_mode ethlm str Xt - - ----- Enter top highlight mode -enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode -set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6 -set_pglen_inch slength str YI - - ----- Set page length to #1 hundredth of an inch (some implementations use sL for termcap). -#%.TE -#%.ad -# -# The magic token below tells the tic compiler-generator code that all the caps -# past it should be ignored (not written out) when dumping terminfo objects. It -# also tells the man page table generator not to pass through following lines -# This means we can have obsolete capabilities and pseudo-capabilities that are -# recognized for termcap or terminfo compilation, but not output. -# -# %%-STOP-HERE-%% -# -# Don't move this casually! In fact, don't move it at all unless you're -# either doing it to add System V or XPG4 extensions, or have decided you -# don't care about SVr4 binary compatibility. -# -############################################################################# -# -# TERMCAP EXTENSION CAPABILITIES -# -# The capabilities below are either obsolete or extensions on certain systems. -# They are not used by SVR4 terminfo. Some are used by captoinfo to translate -# termcap sources; the rest are listed for completeness, and in case somebody -# cares about them enough to hack in code that will translate them into -# terminfo capabilities. -# -# The first part of the list is from Ross Ridge's `mytinfo' package -# (comp.sources.unix, volume 26); the variable names and terminfo names (as -# well as the termcap codes) match his list. -# -# This group of codes is not marked obsolete in 4.4BSD, but have no direct -# terminfo equivalents. The rs capability is specially translated to terminfo -# r2, and vice versa, if an entry does not already have an r2. Similarly, -# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2). -# The ug capability is thrown away, but assumed to be whatever sg is if the -# latter is nonzero and we're dumping in termcap format. -# -termcap_init2 OTi2 str i2 - - YB--- secondary initialization string -termcap_reset OTrs str rs - - YB-G- terminal reset string -magic_cookie_glitch_ul OTug num ug - - YBCGE number of blanks left by ul -# -# Obsolete termcap capabilities. Some are used for termcap translation. The -# code uses the 'OT' prefix we put on obsolete capabilities to suppress -# printing them in terminfo source dumps of compiled entries. -# -backspaces_with_bs OTbs bool bs - - YBCGE uses ^H to move left -crt_no_scrolling OTns bool ns - - YBCG- crt cannot scroll -no_correctly_working_cr OTnc bool nc - - YBCG- no way to go to start of line -carriage_return_delay OTdC num dC - - YB-G- pad needed for CR -new_line_delay OTdN num dN - - YB-G- pad needed for LF -linefeed_if_not_lf OTnl str nl - - YBCGE use to move down -backspace_if_not_bs OTbc str bc - - YBCGE move left, if not ^H -# -# GNU termcap library extensions. The GNU termcap file distributed with -# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the -# BSD termcap file. The name clash with terminfo MT is resolved by type -# info; MT is converted to km. -# -gnu_has_meta_key OTMT bool MT - - ----E has meta key -# gnu_tab_width OTtw num tw - - ----E tab width in spaces -# -# GNU termcap *does* include the following extended capability, Only the -# now-obsolete Ann Arbor terminals used it. -# -# gnu_change_scroll_region OTcS str cS - - ---GE alternate set scrolling region -# -# The following comments describe capnames so ancient that I believe no -# software uses them any longer. Some of these have to go because they -# clash with terminfo names in ways that cannot be resolved by type -# information. -# -# These mytinfo codes are not used in the 4.4BSD curses code. They are -# marked obsolete in the 4.4BSD manual pages. -# -# There is one conflict with terminfo; ma is in both. This conflict is -# resolved by type information. -# -# The `ko' capability is translated by special code. It should contain a -# comma-separated list of capabilities for which there are corresponding keys. -# The `kn' code is accepted but ignored. -# -# The `ma' capability was a 4.0BSD feature used by vi version 2. -# It consists of pairs of characters corresponding to kl, kr, ku, kd, and kh. -# Besides being obsolete, that interpretation conflicts with max_attributes. -# -# Here is a description of memory_lock_above and memory_unlock: -# "You can 'freeze' data on the screen by turning on Memory Lock in a line of -# text. All lines above the cursor's current line become locked in place on -# the screen. Then enter data normally. When the screen fills up, any -# further data entered forces the first line of unfrozen line text to scroll -# under the frozen data. Lines scrolled off the screen are inserted into -# memory immediately preceding the first frozen line." (from the HP 700/96 -# User's manual). VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l. -# -# Applications that use terminfo are supposed to behave as though xr is -# always true. -# -linefeed_is_newline OTNL bool NL - - YB--- move down with \n -# even_parity OTEP bool EP - - -B--- terminal requires even parity -# odd_parity OTOP bool OP - - -B--- terminal requires odd parity -# half_duplex OTHD bool HD - - -B--- terminal is half-duplex -# lower_case_only OTLC bool LC - - -B--- terminal has only lower case -# upper_case_only OTUC bool UC - - -B--- terminal has only upper case -backspace_delay OTdB num dB - - YB-G- padding required for ^H -# form_feed_delay OTdF num dF - - -B-G- padding required for ^L -horizontal_tab_delay OTdT num dT - - YB-G- padding required for ^I -# vertical_tab_delay OTdV num dV - - -B--- padding required for ^V -number_of_function_keys OTkn num kn - - -B-G- count of function keys -other_non_function_keys OTko str ko - - -B-G- list of self-mapped keycaps -arrow_key_map OTma str ma - - YBC-- map motion-keys for vi version 2 -# memory_lock_above OTml str ml - - -B--- lock visible screen memory above the current line -# memory_unlock OTmu str mu - - -B--- unlock visible screen memory above the current line -has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I -return_does_clr_eol OTxr bool xr - - YB--- return clears the line -# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch -# -# mytinfo described this as a termcap capability, but it is not listed in the -# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses -# package, like System V, behaves as though it is always true. -# -# rind_only_at_top OTxq bool xq - - ----- reverse index only works from top line -# -# University of Waterloo termcap extensions (as described in mytinfo). -# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot -# be resolved by a type check. The descriptions are guesses from what was -# in the mytinfo tables. -# -# key_interrupt_char OTki str ki - - ----- string set by interrupt key (?) -# key_kill_char OTkk str kk - - ----- string set by kill key (?) -# key_suspend_char OTkz str kz - - ----- string set by suspend key (?) -# initialization_messy OTxc bool xc - - ----- initialization leaves garbage on the screen (?) -# ind_at_bottom_does_cr OTxl bool xl - - ----- index does a carriage return -# -# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package. -# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type -# check. -# -# scroll_left OTsl1 str Sl - - ----- scroll screen leftward -# scroll_right OTsr1 str Sr - - ----- scroll screen rightward -# parm_scroll_left OTsl str SL - - ----- scroll screen leftward #1 characters -# parm_scroll_right OTsr str SR - - ----- scroll screen rightward #1 characters -# -# The mytinfo capabilities end here. -# -# XENIX extensions: -# -# Xenix defined its own set of forms-drawing capabilities: -# -# cap IBM ASCII description ACS ASCII -# --- ----------- -------------------- ------------- ------ -# G1 191 \277 M-? single upper right ACS_URCORNER -# G2 218 \332 M-Z single upper left ACS_ULCORNER -# G3 192 \300 M-@ single lower left ACS_LLCORNER -# G4 217 \331 M-Y single lower right ACS_LRCORNER -# G5 187 \273 M-; double upper right -# G6 201 \311 M-I double upper left -# G7 200 \310 M-H double lower left -# G8 188 \274 M-< double lower right -# GC 197 \305 M-E single intersection ACS_PLUS _ _ -# GD 194 \302 M-B single down-tick ACS_TTEE | -# GH 196 \304 M-D single horizontal line ACS_HLINE -# GL 180 \264 M-4 single left tick ACS_RTEE -| -# GR 195 \303 M-C single right tick ACS_LTEE |- -# GU 193 \301 M-A single up tick ACS_BTEE _|_ -# GV 179 \263 M-3 single vertical line ACS_VLINE -# Gc 206 \316 M-N double intersection -# Gd 203 \313 M-K double down tick -# Gh 205 \315 M-M double horizontal line -# Gl 204 \204 M-L double left tick -# Gr 185 \271 M-9 double right tick -# Gu 202 \312 M-J double up tick -# Gv 186 \272 M-: double vertical line -# -# The compiler will translate the single-line caps and discard the others -# (via IGNORE aliases further down). We don't want to do normal pad -# translation on these, they're often single-character printable ASCII -# strings that happen to be numerics. There's awk code in parametrized.sh -# that detects the acs_ prefix and uses it to suppress pad translation. -# These terminfo names are invented. -# -acs_ulcorner OTG2 str G2 - - ----- single upper left -acs_llcorner OTG3 str G3 - - ----- single lower left -acs_urcorner OTG1 str G1 - - ----- single upper right -acs_lrcorner OTG4 str G4 - - ----- single lower right -acs_ltee OTGR str GR - - ----- tee pointing right -acs_rtee OTGL str GL - - ----- tee pointing left -acs_btee OTGU str GU - - ----- tee pointing up -acs_ttee OTGD str GD - - ----- tee pointing down -acs_hline OTGH str GH - - ----- single horizontal line -acs_vline OTGV str GV - - ----- single vertical line -acs_plus OTGC str GC - - ----- single intersection -# -############################################################################# -# -# TERMINFO EXTENSION CAPABILITIES -# -# (see Caps-ncurses for the complete set of comments) -# -memory_lock meml str ml - - ----K lock memory above cursor -memory_unlock memu str mu - - ----K unlock memory -box_chars_1 box1 str bx - - ----K box characters primary set -############################################################################# diff --git a/include/Caps-ncurses b/include/Caps-ncurses deleted file mode 100644 index d8c8bac..0000000 --- a/include/Caps-ncurses +++ /dev/null @@ -1,461 +0,0 @@ -############################################################################## -# Copyright 2019,2020 Thomas E. Dickey # -# # -# Permission is hereby granted, free of charge, to any person obtaining a # -# copy of this software and associated documentation files (the "Software"), # -# to deal in the Software without restriction, including without limitation # -# the rights to use, copy, modify, merge, publish, distribute, distribute # -# with modifications, sublicense, and/or sell copies of the Software, and to # -# permit persons to whom the Software is furnished to do so, subject to the # -# following conditions: # -# # -# The above copyright notice and this permission notice shall be included in # -# all copies or substantial portions of the Software. # -# # -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # -# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # -# DEALINGS IN THE SOFTWARE. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas E. Dickey -# -# $Id: Caps-ncurses,v 1.10 2020/09/29 19:05:19 tom Exp $ -# -############################################################################# -# -# TERMINFO EXTENSION CAPABILITIES -# -# This section is all comments (selected lines are copied/uncommented into -# specific "Caps" files). The section describes what capabilities need to be -# squeezed out to get down to the XSI Curses standard set. They are flagged -# with K. -# -# HP extensions -# -# These extensions follow ptr_non (replacing everything after it) in HP -# terminfo files. Except for memory_lock and memory_unlock, they are -# functionally identical to SVr4 extensions, but they make the binary format -# different. Grrr.... -# -#memory_lock meml str ml - - ----K lock memory above cursor -#memory_unlock memu str mu - - ----K unlock memory -#plab_norm pln str pn - - ----- program label #1 to show string #2 -#label_on smln str LO - - ----- turn on soft labels -#label_off rmln str LF - - ----- turn off soft labels -#key_f11 kf11 str F1 - - ----- F11 function key -#key_f12 kf12 str F2 - - ----- F12 function key -#key_f13 kf13 str F3 - - ----- F13 function key -#key_f14 kf14 str F4 - - ----- F14 function key -#key_f15 kf15 str F5 - - ----- F15 function key -#key_f16 kf16 str F6 - - ----- F16 function key -#key_f17 kf17 str F7 - - ----- F17 function key -#key_f18 kf18 str F8 - - ----- F18 function key -#key_f19 kf19 str F9 - - ----- F19 function key -#key_f20 kf20 str FA - - ----- F20 function key -#key_f21 kf21 str FB - - ----- F21 function key -#key_f22 kf22 str FC - - ----- F22 function key -#key_f23 kf23 str FD - - ----- F23 function key -#key_f24 kf24 str FE - - ----- F24 function key -#key_f25 kf25 str FF - - ----- F25 function key -#key_f26 kf26 str FG - - ----- F26 function key -#key_f27 kf27 str FH - - ----- F27 function key -#key_f28 kf28 str FI - - ----- F28 function key -#key_f29 kf29 str FJ - - ----- F29 function key -#key_f30 kf30 str FK - - ----- F30 function key -#key_f31 kf31 str FL - - ----- F31 function key -#key_f32 kf32 str FM - - ----- F32 function key -#key_f33 kf33 str FN - - ----- F33 function key -#key_f34 kf34 str FO - - ----- F34 function key -#key_f35 kf35 str FP - - ----- F35 function key -#key_f36 kf36 str FQ - - ----- F36 function key -#key_f37 kf37 str FR - - ----- F37 function key -#key_f38 kf38 str FS - - ----- F38 function key -#key_f39 kf39 str FT - - ----- F39 function key -#key_f40 kf40 str FU - - ----- F40 function key -#key_f41 kf41 str FV - - ----- F41 function key -#key_f42 kf42 str FW - - ----- F42 function key -#key_f43 kf43 str FX - - ----- F43 function key -#key_f44 kf44 str FY - - ----- F44 function key -#key_f45 kf45 str FZ - - ----- F45 function key -#key_f46 kf46 str Fa - - ----- F46 function key -#key_f47 kf47 str Fb - - ----- F47 function key -#key_f48 kf48 str Fc - - ----- F48 function key -#key_f49 kf49 str Fd - - ----- F49 function key -#key_f50 kf50 str Fe - - ----- F50 function key -#key_f51 kf51 str Ff - - ----- F51 function key -#key_f52 kf52 str Fg - - ----- F52 function key -#key_f53 kf53 str Fh - - ----- F53 function key -#key_f54 kf54 str Fi - - ----- F54 function key -#key_f55 kf55 str Fj - - ----- F55 function key -#key_f56 kf56 str Fk - - ----- F56 function key -#key_f57 kf57 str Fl - - ----- F57 function key -#key_f58 kf58 str Fm - - ----- F58 function key -#key_f59 kf59 str Fn - - ----- F59 function key -#key_f60 kf60 str Fo - - ----- F60 function key -#key_f61 kf61 str Fp - - ----- F61 function key -#key_f62 kf62 str Fq - - ----- F62 function key -#key_f63 kf63 str Fr - - ----- F63 function key -# -# IBM extensions -# -# These extensions follow ptr_non (replacing everything after it) in IBM -# terminfo files. -# -# The places in the box[12] capabilities correspond to acsc characters, here is -# the mapping: -# -# box1[0] = ACS_ULCORNER -# box1[1] = ACS_HLINE -# box1[2] = ACS_URCORNER -# box1[3] = ACS_VLINE -# box1[4] = ACS_LRCORNER -# box1[5] = ACS_LLCORNER -# box1[6] = ACS_TTEE -# box1[7] = ACS_RTEE -# box1[8] = ACS_BTEE -# box1[9] = ACS_LTEE -# box1[10] = ACS_PLUS -# -# The box2 characters are the double-line versions of these forms graphics. -# -#box_chars_1 box1 str bx - - ----K box characters primary set -#box_chars_2 box2 str by - - ----K box characters secondary set -#box_attr_1 batt1 str Bx - - ----K attributes for box1 -#box_attr_2 batt2 str By - - ----K attributes for box2 -#color_bg_0 colb0 str d0 - - ----K background color 0 -#color_bg_1 colb1 str d1 - - ----K background color 1 -#color_bg_2 colb2 str d2 - - ----K background color 2 -#color_bg_3 colb3 str d3 - - ----K background color 3 -#color_bg_4 colb4 str d4 - - ----K background color 4 -#color_bg_5 colb5 str d5 - - ----K background color 5 -#color_bg_6 colb6 str d6 - - ----K background color 6 -#color_bg_7 colb7 str d7 - - ----K background color 7 -#color_fg_0 colf0 str c0 - - ----K foreground color 0 -#color_fg_1 colf1 str c1 - - ----K foreground color 1 -#color_fg_2 colf2 str c2 - - ----K foreground color 2 -#color_fg_3 colf3 str c3 - - ----K foreground color 3 -#color_fg_4 colf4 str c4 - - ----K foreground color 4 -#color_fg_5 colf5 str c5 - - ----K foreground color 5 -#color_fg_6 colf6 str c6 - - ----K foreground color 6 -#color_fg_7 colf7 str c7 - - ----K foreground color 7 -#font_0 font0 str f0 - - ----- select font 0 -#font_1 font1 str f1 - - ----- select font 1 -#font_2 font2 str f2 - - ----- select font 2 -#font_3 font3 str f3 - - ----- select font 3 -#font_4 font4 str f4 - - ----K select font 4 -#font_5 font5 str f5 - - ----K select font 5 -#font_6 font6 str f6 - - ----K select font 6 -#font_7 font7 str f7 - - ----K select font 7 -#key_back_tab kbtab str k0 - - ----- backtab key -#key_do kdo str ki - - ----K do request key -#key_command kcmd str kd - - ----K command-request key -#key_command_pane kcpn str kW - - ----K command-pane key -#key_end kend str kw - - ----- end key -#key_help khlp str kq - - ----- help key -#key_newline knl str nl - - ----K newline key -#key_next_pane knpn str kv - - ----K next-pane key -#key_prev_cmd kppn str kp - - ----K previous-command key -#key_prev_pane kppn str kV - - ----K previous-pane key -#key_quit kquit str kQ - - ----K quit key -#key_select ksel str kU - - ----- select key -#key_scroll_left kscl str kz - - ----K scroll left -#key_scroll_right kscr str kZ - - ----K scroll right -#key_tab ktab str ko - - ----K tab key -#key_smap_in1 kmpf1 str Kv - - ----K special mapped key 1 input -#key_smap_out1 kmpt1 str KV - - ----K special mapped key 1 output -#key_smap_in2 kmpf2 str Kw - - ----K special mapped key 2 input -#key_smap_out2 kmpt2 str KW - - ----K special mapped key 2 output -#key_smap_in3 kmpf3 str Kx - - ----K special mapped key 3 input -#key_smap_out3 kmpt3 str KX - - ----K special mapped key 3 output -#key_smap_in4 kmpf4 str Ky - - ----K special mapped key 4 input -#key_smap_out4 kmpt4 str KY - - ----K special mapped key 4 output -#key_smap_in5 kmpf5 str Kz - - ----K special mapped key 5 input -#key_smap_out5 kmpt5 str KZ - - ----K special mapped key 5 output -#appl_defined_str apstr str za - - ----K application-defined string -# The key_smap_in[6789] and key_smap_out[6789] capabilities aren't described in -# the IBM manual pages, so the cap name strings are guesses. The terminfo -# names are almost certainly right, the termcap ones almost certainly wrong. -#key_smap_in6 kmpf6 str k! - - ----K special mapped key 6 input -#key_smap_out6 kmpt6 str K@ - - ----K special mapped key 6 output -#key_smap_in7 kmpf7 str k# - - ----K special mapped key 7 input -#key_smap_out7 kmpt7 str K$ - - ----K special mapped key 7 output -#key_smap_in8 kmpf8 str k% - - ----K special mapped key 8 input -#key_smap_out8 kmpt8 str K^ - - ----K special mapped key 8 output -#key_smap_in9 kmpf9 str k& - - ----K special mapped key 9 input -#key_smap_out9 kmpt9 str K* - - ----K special mapped key 9 output -# Undocumented capabilities end here -#key_sf1 ksf1 str S1 - - ----K special function key 1 -#key_sf2 ksf2 str S2 - - ----K special function key 2 -#key_sf3 ksf3 str S3 - - ----K special function key 3 -#key_sf4 ksf4 str S4 - - ----K special function key 4 -#key_sf5 ksf5 str S5 - - ----K special function key 5 -#key_sf6 ksf6 str S6 - - ----K special function key 6 -#key_sf7 ksf7 str S7 - - ----K special function key 7 -#key_sf8 ksf8 str S8 - - ----K special function key 8 -#key_sf9 ksf9 str S9 - - ----K special function key 9 -#key_sf10 ksf10 str SA - - ----K special function key 10 -# AIX version 3 documents different codes for F11, F12 and does not mention -# F13-F64. AIX version 4 uses the same naming for F0-F63 as above. -#key_f11 kf11 str k< - - ----- function key 11 -#key_f12 kf12 str k> - - ----- function key 12 -# Undocumented capabilities end here. -#key_action kact str kJ - - ----K sent by action key -# The IBM docs say these capabilities are for table-drawing, and are -# valid only for aixterm descriptions. -#enter_topline_mode topl str tp - - ----K start top-line mode -#enter_bottom_mode btml str bm - - ----K start bottom-line mode -#enter_rvert_mode rvert str rv - - ----K start right-vertical mode -#enter_lvert_mode lvert str lv - - ----K start left-vertical mode -# -############################################################################# -# -# ALIAS DECLARATIONS -# -# Here we set up aliases for translating extensions into standard terminfo. -# -#---------------------------------- Termcap aliases ------------------------- -# -# BSD aliases: -# -# This is a common error in many termcap files. We'll get notified during -# translation when this (or any other alias) fires. -# -capalias sb sr BSD scroll text down -# -# AT&T extensions: -# -# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of -# nonstandard capabilities. Its signature is the KM capability, used to name -# some sort of keymap file. EE, BO, CI, CV, XS, DS, FL and FE are in this -# set. Comments in the original, and a little cross-checking with other AT&T -# documentation, seem to establish the following mappings: -# -capalias BO mr AT&T enter_reverse_mode -capalias CI vi AT&T cursor_invisible -capalias CV ve AT&T cursor_normal -capalias DS mh AT&T enter_dim_mode -#capalias EE me AT&T exit_attribute_mode -capalias FE LF AT&T label_on -capalias FL LO AT&T label_off -capalias XS mk AT&T enter_secure_mode -# -# We comment out EE because the conflicting XENIX EE is more common in -# old entries. -# -# XENIX extensions: -# -# These are the ones we know how to translate directly: -# -capalias EE mh XENIX exit_attribute_mode -capalias GE ae XENIX exit_alt_charset_mode -capalias GS as XENIX enter_alt_charset_mode -capalias CF vi XENIX cursor_invis -capalias CO ve XENIX cursor_normal -capalias EN @7 XENIX key_end -capalias HM kh XENIX key_home -capalias LD kL XENIX key_dl -capalias PD kN XENIX key_npage -capalias PN po XENIX prtr_off -capalias PS pf XENIX prtr_on -capalias PU kP XENIX key_ppage -capalias RT @8 XENIX kent -capalias UP ku XENIX kcuu1 -capalias G6 IGNORE XENIX double-ACS_ULCORNER -capalias G7 IGNORE XENIX double-ACS_LLCORNER -capalias G5 IGNORE XENIX double-ACS_URCORNER -capalias G8 IGNORE XENIX double-ACS_LRCORNER -capalias Gr IGNORE XENIX double-ACS_LTEE -capalias Gr IGNORE XENIX double-ACS_RTEE -capalias Gu IGNORE XENIX double-ACS_BTEE -capalias Gd IGNORE XENIX double ACS_TTEE -capalias Gh IGNORE XENIX double-ACS_HLINE -capalias Gv IGNORE XENIX double-ACS_VLINE -capalias Gc IGNORE XENIX double-ACS_PLUS -capalias GG IGNORE XENIX acs-glitch -# -# IBM extensions: -# -capalias kq %1 IBM key_help -# -# Iris extensions: -# -capalias HS mh IRIS enter_dim_mode -# -# Tektronix extensions: -# -capalias KA k; Tek key_f10 -capalias KB F1 Tek key_f11 -capalias KC F2 Tek key_f12 -capalias KD F3 Tek key_f13 -capalias KE F4 Tek key_f14 -capalias KF F5 Tek key_f15 -capalias BC Sb Tek set_background -capalias FC Sf Tek set_foreground -# -# There are also the following: -# -# XENIX XENIX variable name name clash with terminfo? -# ----- ------------------- ------------------------- -# CL key_char_left -# CR key_char_right -# CW key_change_window -# HP ?? -# LF key_linefeed label_off -# NU key_next_unlocked_cell -# PL ?? -# PR ?? -# RC key_recalc remove_clock -# RF key_toggle_ref req_for_input -# WL key_word_left -# WR key_word_right -# -# If you know what any of the question-marked ones mean, please tell us. -# -#--------------------------------- Terminfo aliases ------------------------ -# -# IBM extensions: -# -infoalias font0 s0ds IBM set0_des_seq -infoalias font1 s1ds IBM set1_des_seq -infoalias font2 s2ds IBM set2_des_seq -infoalias font3 s3ds IBM set3_des_seq -infoalias kbtab kcbt IBM key_backtab -infoalias ksel kslt IBM key_select -# -# Some others are identical to SVr4/XPG4 capabilities, in particular: -# kcmd, kend, khlp, and kf11...kf63. -# -############################################################################# -# This is a table of ncurses user-definable capabilities which applications -# developers may have used. ncurses may use the table to check consistency of -# types/parameters. Applications may have defined others (such as screen's -# LP and NF), but where a standard capability is available, those alternatives -# are not listed here. -# -used_by ncurses -userdef CO num n number of indexed colors overlaying RGB space -userdef E3 str - clears the terminal's scrollback buffer. -userdef RGB bool - use direct colors with 1/3 of color-pair bits per color. -userdef RGB num n use direct colors with given number of bits per color. -userdef RGB str - use direct colors with given bit-layout. -userdef TS str - like "tsl", but uses no parameter. -userdef U8 num n terminal does/does not support VT100 SI/SO when processing UTF-8 encoding. -userdef XM str n initialize alternate xterm mouse mode -userdef grbom str - disable real bold (not intensity bright) mode. -userdef gsbom str - enable real bold (not intensity bright) mode. -userdef xm str - mouse response, no parameters -userdef xm str n mouse response, p1 = y-ordinate -userdef xm str nn mouse response, p2 = x-ordinate -userdef xm str nnn mouse response, p3 = button -userdef xm str nnns mouse response, p4 = state, e.g., pressed or released -userdef xm str nnnsn mouse response, p5 = y-ordinate starting region -userdef xm str nnnsnn mouse response, p6 = x-ordinate starting region -userdef xm str nnnsnnn mouse response, p7 = y-ordinate ending region -userdef xm str nnnsnnnn mouse response, p8 = x-ordinate ending region -# -used_by mintty -userdef Rmol str - remove overline-mode -userdef Smol str - set overline-mode -userdef blink2 str - turn on rapid blinking -userdef norm str - turn off bold and half-bright mode -userdef opaq str - turn off blank mode -userdef setal str n set underline-color -userdef smul2 str - begin double underline mode -# -used_by screen -userdef AN bool - turn on autonuke. -userdef AX bool - understands ANSI set default fg/bg color (\E[39m / \E[49m). -userdef C0 str - use the string as a conversion table for font '0', like acsc. -userdef C8 bool - terminal shows bold as high-intensity colors. -userdef CE str - switch cursor-keys back to normal mode. -userdef CS str - switch cursor-keys to application mode. -userdef E0 str - switch charset 'G0' back to standard charset. Default is '\E(B'. -userdef G0 bool - terminal can deal with ISO 2022 font selection sequences. -userdef KJ str s set the encoding of the terminal. -userdef OL num n set the screen program's output buffer limit. -userdef S0 str s switch charset 'G0' to the specified charset. Default is '\E(%.'. -userdef TF bool - add missing capabilities to screen's termcap/info entry. (Set by default). -userdef WS str nn resize display. This capability has the desired width and height as arguments. SunView(tm) example: '\E[8;%d;%dt'. -userdef XC str s describe a translation of characters to strings depending on the current font. -userdef XT bool - terminal understands special xterm sequences (OSC, mouse tracking). -userdef Z0 str - change width to 132 columns. -userdef Z1 str - change width to 80 columns. -# -used_by tmux -userdef Cr str - restore the default cursor color. -userdef Cs str s set the cursor color. -userdef Csr str n change the cursor style, overriding Ss. -userdef Ms str ss store the current buffer in the host terminal's selection (clipboard). -userdef Se str - reset the cursor style to the terminal initial state. -userdef Smulx str n modify the appearance of underlines in VTE. -userdef Ss str n change the cursor style. -userdef rmxx str - reset ECMA-48 strikeout/crossed-out attributes. -userdef smxx str - set ECMA-48 strikeout/crossed-out attributes. -# -used_by xterm -userdef kDC3 str - alt delete-character -userdef kDC4 str - shift+alt delete-character -userdef kDC5 str - control delete-character -userdef kDC6 str - shift+control delete-character -userdef kDC7 str - alt+control delete-character -userdef kDN str - shift down-cursor -userdef kDN3 str - alt down-cursor -userdef kDN4 str - shift+alt down-cursor -userdef kDN5 str - control down-cursor -userdef kDN6 str - shift+control down-cursor -userdef kDN7 str - alt+control down-cursor -userdef kEND3 str - alt end -userdef kEND4 str - shift+alt end -userdef kEND5 str - control end -userdef kEND6 str - shift+control end -userdef kEND7 str - alt+control end -userdef kHOM3 str - alt home -userdef kHOM4 str - shift+alt home -userdef kHOM5 str - control home -userdef kHOM6 str - shift+control home -userdef kHOM7 str - alt+control home -userdef kIC3 str - alt insert-character -userdef kIC4 str - shift+alt insert-character -userdef kIC5 str - control insert-character -userdef kIC6 str - shift+control insert-character -userdef kIC7 str - alt+control insert-character -userdef kLFT3 str - alt left-cursor -userdef kLFT4 str - shift+alt left-cursor -userdef kLFT5 str - control left-cursor -userdef kLFT6 str - shift+control left-cursor -userdef kLFT7 str - alt+control left-cursor -userdef kNXT3 str - alt next -userdef kNXT4 str - shift+alt next -userdef kNXT5 str - control next -userdef kNXT6 str - shift+control next -userdef kNXT7 str - alt+control next -userdef kPRV3 str - alt previous -userdef kPRV4 str - shift+alt previous -userdef kPRV5 str - control previous -userdef kPRV6 str - shift+control previous -userdef kPRV7 str - alt+control previous -userdef kRIT3 str - alt right-cursor -userdef kRIT4 str - shift+alt right-cursor -userdef kRIT5 str - control right-cursor -userdef kRIT6 str - shift+control right-cursor -userdef kRIT7 str - alt+control right-cursor -userdef kUP str - shift up-cursor -userdef kUP3 str - alt up-cursor -userdef kUP4 str - shift+alt up-cursor -userdef kUP5 str - control up-cursor -userdef kUP6 str - shift+control up-cursor -userdef kUP7 str - alt+control up-cursor -userdef ka2 str - vt220-keypad extensions -userdef kb1 str - vt220-keypad extensions -userdef kb3 str - vt220-keypad extensions -userdef kc2 str - vt220-keypad extensions -############################################################################# diff --git a/include/Caps.aix4 b/include/Caps.aix4 deleted file mode 100644 index ee9f2cf..0000000 --- a/include/Caps.aix4 +++ /dev/null @@ -1,1073 +0,0 @@ -############################################################################## -# Copyright 2019-2020,2021 Thomas E. Dickey # -# Copyright 2001-2015,2016 Free Software Foundation, Inc. # -# # -# Permission is hereby granted, free of charge, to any person obtaining a # -# copy of this software and associated documentation files (the "Software"), # -# to deal in the Software without restriction, including without limitation # -# the rights to use, copy, modify, merge, publish, distribute, distribute # -# with modifications, sublicense, and/or sell copies of the Software, and to # -# permit persons to whom the Software is furnished to do so, subject to the # -# following conditions: # -# # -# The above copyright notice and this permission notice shall be included in # -# all copies or substantial portions of the Software. # -# # -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # -# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # -# DEALINGS IN THE SOFTWARE. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas Dickey -# -# $Id: Caps.aix4,v 1.20 2021/10/08 07:55:48 tom Exp $ -# -# This is an adaptation of ncurses' termcap/terminfo capability table, which -# is designed to align with AIX 4.x's terminfo. -# -# This table is used to generate initializers for tables that drive tic, -# infocmp, and the library compilation code used to support the termcap -# compatibility hack. It is also used to generate the tabular portion of the -# terminfo(5) man page; lines beginning with `#%' are passed through to become -# the terminfo table. -# -# This file has three major sections; a standard-capabilities table, two -# extension-capability tables, and a section of aliases declarations. -# The first two have the same format, as follows: -# -# FILE FORMAT -# -# Column 1: terminfo variable name -# Column 2: terminfo capability name -# Column 3: capability type (boolean, numeric, or string) -# Column 4: termcap capability name -# Column 5: KEY_xxx name, if any, `-' otherwise -# Column 6: value for KEY_xxx name, if any, `-' otherwise -# Column 7: Lead with `Y' if capability should be emitted in termcap -# translations, `-' otherwise -# Column 8: capability description -# -# The codes following [Y-] in column 7 describe the versions of termcap which -# use the given capability. This information is not used by the curses library -# proper; rather, it is there to help the terminfo maintainer avoid emitting -# termcap entry translations that are more than 1023 bytes long (and tank a -# lot of old termcap-using programs). The codes read as follows: -# B = mentioned in the BSD man page for 4.4BSD curses -# C = used by the 4.4BSD curses library -# G = mentioned in the documentation for GNU termcap -# E = used by GNU Emacs -# K = remove this terminfo capability when translating to standard format -# The important codes are C and E. A cap with C or E should be preserved in -# translation if possible. The problem is that preserving all such caps may -# lead to some termcap translations being too long. The termcap maintainer -# has a bit of a juggling act to do...potential problem cases are marked with -# an asterisk (*). -# -# The aliases section has the following format: -# -# Column 1: either `capalias' or `infoalias' -# Column 2: name to be aliased -# Column 3: what name it should translate to. The name IGNORE means it -# should be discarded with a warning message. -# Column 4: name of the extension set (used for compiler warning messages) -# Column 5: capability description (usually an associated terminfo variable) -# -# HANDLING TERMCAP AND TERMINFO EXTENSIONS -# -# There are basically five different ways to handle termcap and terminfo -# extensions: -# -# 1. Don't list the capname here, or list it but comment it out (the latter -# is preferable; someone might want to handle it in the future). If you do -# this, the capability will be treated as unknown and raise a warning from -# the compiler. -# -# 2. Alias it. This is appropriate if the capability has the same meaning -# as an already-supported one. The compiler will handle aliasing, emitting -# an appropriate informational message whenever an alias fires. -# -# 3. List it in the standard table. You almost certainly do *not* want -# to do this -- the capabilities in that one, and their order, have been -# carefully chosen to be SVr4-binary-compatible when they're written out -# as a terminfo object, and breaking this would be bad. It is up to the ncurses -# library what to do with the terminfo data after it is read in. -# -# 4. List it in the aliases table with an IGNORE target field. If you -# do this, the capability will be ignored on input (though the user will -# get a warning message about it). -# -# 5. List it in the extensions table. If you do this, the compiler will -# silently accept the capability, but the curses library proper will never -# see it (because it won't be written out as part of the terminfo object -# format). It is up to you what you have the compiler do with it. -# -# There are two opposite reasons to choose option 5. One is when you want -# to eat the capability silently and discard it when doing translations -# to terminfo with tic -I. Some very old obsolete BSD caps like :kn: are -# in this class. Nothing will ever use them again. -# -# More usually, you want the compiler to try to deduce something from the -# capability value that it can use to translate it into your output format. -# You'll need to write custom code, probably in postprocess_termcap() or -# postprocess_terminfo(), to handle the translation. -# -# CONTROLLING ENTRY LENGTH -# -# Notes on specific elisions made to fit translations within 1023 bytes: -# -# Machines with IBM PC-like keyboards want to be able to define the following -# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap- -# only environments for End or Home-Down), key_dc, and key_ic. This is also -# the set of keys the `joe' editor will be upset if it can't see. So don't -# trim those out of the set to be translated to termcap, or various users of -# the termcap file will become irate. -# -# It might look tempting to leave those long init strings out of translations. -# We can't do it (yet); 4.4BSD tput and tset use them. -# -# We retain the sgr capability in translation in spite of the fact that neither -# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are -# hard to understand without it, and (b) the entries in which it is long tend -# to be older types that don't use up a lot of string space on function keys. -# The tic(1) translation code will complain and elide it if it makes a critical -# difference (there is special code in tic to recognize this situation). -# -# Yes, BSD tset(1) uses hpa. We elide hpa/vpa anyway because the motion -# optimizer in BSD curses didn't use them. This omission seems to be the -# single most effective one, it shortened the resolved length of all thirteen -# problem entries in the 9.9.0 version of the terminfo master below critical. -# -# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap -# translations go back over critical if we do this. As 4.4BSD curses fades -# into history and GNU termcap's application base shrinks towards being GNU -# Emacs only, we'll probably elide out some BSD-only capabilities in order -# to buy space for non-essentials Emacs is still using. Capabilities high -# on that hit list: rc, sc, uc. -# -############################################################################# -# -# STANDARD CAPABILITIES -# -#%The following is a complete table of the capabilities included in a -#%terminfo description block and available to terminfo-using code. In each -#%line of the table, -#% -#%The \fBvariable\fR is the name by which the programmer (at the terminfo level) -#%accesses the capability. -#% -#%The \fBcapname\fR is the short name used in the text of the database, -#%and is used by a person updating the database. -#%Whenever possible, capnames are chosen to be the same as or similar to -#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses -#%identical or very similar names). Semantics are also intended to match -#%those of the specification. -#% -#%The termcap code is the old -#%.B termcap -#%capability name (some capabilities are new, and have names which termcap -#%did not originate). -#%.P -#%Capability names have no hard length limit, but an informal limit of 5 -#%characters has been adopted to keep them short and to allow the tabs in -#%the source file -#%.B Caps -#%to line up nicely. -#% -#%Finally, the description field attempts to convey the semantics of the -#%capability. You may find some codes in the description field: -#%.TP -#%(P) -#%indicates that padding may be specified -#%.TP -#%#[1-9] -#%in the description field indicates that the string is passed -#%through \fBtparm\fP(3X) with parameters as given (#\fIi\fP). -#%.IP -#%If no parameters are listed in the description, -#%passing the string through \fBtparm\fP(3X) may give unexpected results, -#%e.g., if it contains percent (%%) signs. -#%.TP -#%(P*) -#%indicates that padding may vary in proportion to the number of -#%lines affected -#%.TP -#%(#\d\fIi\fP\u) -#%indicates the \fIi\fP\uth\d parameter. -#% -#%.PP -#% These are the boolean capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBBooleans name Code\fR -auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column -auto_right_margin am bool am - - YBCGE terminal has automatic margins -no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C) -ceol_standout_glitch xhp bool xs - - YBCGE standout not erased by overwriting (hp) -eat_newline_glitch xenl bool xn - - YBCGE newline ignored after 80 cols (concept) -erase_overstrike eo bool eo - - YBCG- can erase overstrikes with a blank -generic_type gn bool gn - - YB-G- generic line type -hard_copy hc bool hc - - YBCG- hardcopy terminal -has_meta_key km bool km - - YB-GE Has a meta key (i.e., sets 8th-bit) -has_status_line hs bool hs - - YB-G- has extra status line -insert_null_glitch in bool in - - YBCGE insert mode distinguishes nulls -memory_above da bool da - - YBCG- display may be retained above the screen -memory_below db bool db - - YB-GE display may be retained below the screen -move_insert_mode mir bool mi - - YBCGE safe to move while in insert mode -move_standout_mode msgr bool ms - - YBCGE safe to move while in standout mode -over_strike os bool os - - YBCG- terminal can overstrike -status_line_esc_ok eslok bool es - - YB-G- escape can be used on the status line -dest_tabs_magic_smso xt bool xt - - YBCGE tabs destructive, magic so char (t1061) -tilde_glitch hz bool hz - - YB-GE cannot print ~'s (Hazeltine) -transparent_underline ul bool ul - - YBCGE underline character overstrikes -xon_xoff xon bool xo - - YB--- terminal uses xon/xoff handshaking -needs_xon_xoff nxon bool nx - - ----- padding will not work, xon/xoff required -prtr_silent mc5i bool 5i - - ----- printer will not echo on screen -hard_cursor chts bool HC - - ----- cursor is hard to see -non_rev_rmcup nrrmc bool NR - - ----- smcup does not reverse rmcup -no_pad_char npc bool NP - - ----- pad character does not exist -non_dest_scroll_region ndscr bool ND - - ----- scrolling region is non-destructive -can_change ccc bool cc - - ----- terminal can re-define existing colors -back_color_erase bce bool ut - - ----- screen erased with background color -hue_lightness_saturation hls bool hl - - ----- terminal uses only HLS color notation (Tektronix) -col_addr_glitch xhpa bool YA - - ----- only positive motion for hpa/mhpa caps -cr_cancels_micro_mode crxm bool YB - - ----- using cr turns off micro mode -has_print_wheel daisy bool YC - - ----- printer needs operator to change character set -row_addr_glitch xvpa bool YD - - ----- only positive motion for vpa/mvpa caps -semi_auto_right_margin sam bool YE - - ----- printing in last column causes cr -cpi_changes_res cpix bool YF - - ----- changing character pitch changes resolution -lpi_changes_res lpix bool YG - - ----- changing line pitch changes resolution -#%.TE -#%.ad -#% -#%These are the numeric capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBNumeric name Code\fR -columns cols num co - - YBCGE number of columns in a line -init_tabs it num it - - YB-G- tabs initially every # spaces -lines lines num li - - YBCGE number of lines on screen or page -lines_of_memory lm num lm - - YB-G- lines of memory if > line. 0 means varies -magic_cookie_glitch xmc num sg - - YBCGE number of blank characters left by smso or rmso -padding_baud_rate pb num pb - - YB-GE lowest baud rate where padding needed -virtual_terminal vt num vt - - YB--- virtual terminal number (CB/unix) -width_status_line wsl num ws - - YB-G- number of columns in status line -num_labels nlab num Nl - - ----- number of labels on screen -label_height lh num lh - - ----- rows in each label -label_width lw num lw - - ----- columns in each label -max_attributes ma num ma - - YBC-- maximum combined attributes terminal can handle -maximum_windows wnum num MW - - ----- maximum number of definable windows -# These came in with SVr4's color support -max_colors colors num Co - - ----- maximum number of colors on screen -max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen -no_color_video ncv num NC - - ----- video attributes that cannot be used with colors -#%.TE -#%.ad -#% -#%The following numeric capabilities are present in the SVr4.0 term structure, -#%but are not yet documented in the man page. They came in with SVr4's -#%printer support. -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBNumeric name Code\fR -buffer_capacity bufsz num Ya - - ----- numbers of bytes buffered before printing -dot_vert_spacing spinv num Yb - - ----- spacing of pins vertically in pins per inch -dot_horz_spacing spinh num Yc - - ----- spacing of dots horizontally in dots per inch -max_micro_address maddr num Yd - - ----- maximum value in micro_..._address -max_micro_jump mjump num Ye - - ----- maximum value in parm_..._micro -micro_col_size mcs num Yf - - ----- character step size when in micro mode -micro_line_size mls num Yg - - ----- line step size when in micro mode -number_of_pins npins num Yh - - ----- numbers of pins in print-head -output_res_char orc num Yi - - ----- horizontal resolution in units per line -output_res_line orl num Yj - - ----- vertical resolution in units per line -output_res_horz_inch orhi num Yk - - ----- horizontal resolution in units per inch -output_res_vert_inch orvi num Yl - - ----- vertical resolution in units per inch -print_rate cps num Ym - - ----- print rate in characters per second -wide_char_size widcs num Yn - - ----- character step size when in double wide mode -buttons btns num BT - - ----- number of buttons on mouse -bit_image_entwining bitwin num Yo - - ----- number of passes for each bit-image row -bit_image_type bitype num Yp - - ----- type of bit-image device -#%.TE -#%.ad -#% -#%These are the string capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -back_tab cbt str bt - - YBCGE back tab (P) -bell bel str bl - - YB-GE audible signal (bell) (P) -carriage_return cr str cr - - YBCGE carriage return (P*) (P*) -change_scroll_region csr str cs - - YBCGE change region to line #1 to line #2 (P) -clear_all_tabs tbc str ct - - YB-G- clear all tab stops (P) -clear_screen clear str cl - - YBCGE clear screen and home cursor (P*) -clr_eol el str ce - - YBCGE clear to end of line (P) -clr_eos ed str cd - - YBCGE clear to end of screen (P*) -column_address hpa str ch - - -B-GE* horizontal position #1, absolute (P) -command_character cmdch str CC - - YB-G- terminal settable cmd character in prototype !? -cursor_address cup str cm - - YBCGE move to row #1 columns #2 -cursor_down cud1 str do - - YBCGE down one line -cursor_home home str ho - - YBCGE home cursor (if no cup) -cursor_invisible civis str vi - - YB-G- make cursor invisible -cursor_left cub1 str le - - YBCGE move left one space -cursor_mem_address mrcup str CM - - YB-G- memory relative cursor addressing, move to row #1 columns #2 -cursor_normal cnorm str ve - - YBCGE make cursor appear normal (undo civis/cvvis) -cursor_right cuf1 str nd - - YBCGE non-destructive space (move right one space) -cursor_to_ll ll str ll - - YBCGE last line, first column (if no cup) -cursor_up cuu1 str up - - YBCGE up one line -cursor_visible cvvis str vs - - YBCGE make cursor very visible -delete_character dch1 str dc - - YBCGE delete character (P*) -delete_line dl1 str dl - - YBCGE delete line (P*) -dis_status_line dsl str ds - - YB-G- disable status line -down_half_line hd str hd - - YB-G- half a line down -enter_alt_charset_mode smacs str as - - YB-G- start alternate character set (P) -enter_blink_mode blink str mb - - YB-G- turn on blinking -enter_bold_mode bold str md - - YB-G- turn on bold (extra bright) mode -enter_ca_mode smcup str ti - - YBCGE string to start programs using cup -enter_delete_mode smdc str dm - - YBCGE enter delete mode -enter_dim_mode dim str mh - - YB-G- turn on half-bright mode -enter_insert_mode smir str im - - YBCGE enter insert mode -enter_secure_mode invis str mk - - -B-G-* turn on blank mode (characters invisible) -enter_protected_mode prot str mp - - -B-G-* turn on protected mode -enter_reverse_mode rev str mr - - YB-G- turn on reverse video mode -enter_standout_mode smso str so - - YBCGE begin standout mode -enter_underline_mode smul str us - - YBCGE begin underline mode -erase_chars ech str ec - - YB-G- erase #1 characters (P) -exit_alt_charset_mode rmacs str ae - - YB-G- end alternate character set (P) -exit_attribute_mode sgr0 str me - - YB-GE turn off all attributes -exit_ca_mode rmcup str te - - YBCGE strings to end programs using cup -exit_delete_mode rmdc str ed - - YBCGE end delete mode -exit_insert_mode rmir str ei - - YBCGE exit insert mode -exit_standout_mode rmso str se - - YBCGE exit standout mode -exit_underline_mode rmul str ue - - YBCGE exit underline mode -flash_screen flash str vb - - YBCGE visible bell (may not move cursor) -form_feed ff str ff - - YB-G- hardcopy terminal page eject (P*) -from_status_line fsl str fs - - YB-G- return from status line -init_1string is1 str i1 - - YB-G- initialization string -init_2string is2 str is - - YB-G- initialization string -init_3string is3 str i3 - - YB-G- initialization string -init_file if str if - - YB-G- name of initialization file -insert_character ich1 str ic - - YBCGE insert character (P) -insert_line il1 str al - - YBCGE insert line (P*) -insert_padding ip str ip - - YBCGE insert padding after inserted character -key_backspace kbs str kb KEY_BACKSPACE 0407 YB-G- backspace key -key_catab ktbc str ka KEY_CATAB 0526 -B-G-* clear-all-tabs key -key_clear kclr str kC KEY_CLEAR 0515 -B-G-* clear-screen or erase key -key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key -key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key -key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key -key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key -key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode -key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key -key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key -key_f0 kf0 str k0 KEY_F(0) 0410 YBCGE F0 function key -key_f1 kf1 str k1 KEY_F(1) - YBCGE F1 function key -key_f10 kf10 str k; KEY_F(10) - ----E F10 function key -key_f2 kf2 str k2 KEY_F(2) - YBCGE F2 function key -key_f3 kf3 str k3 KEY_F(3) - YBCGE F3 function key -key_f4 kf4 str k4 KEY_F(4) - YBCGE F4 function key -key_f5 kf5 str k5 KEY_F(5) - YBCGE F5 function key -key_f6 kf6 str k6 KEY_F(6) - YBCGE F6 function key -key_f7 kf7 str k7 KEY_F(7) - YBCGE F7 function key -key_f8 kf8 str k8 KEY_F(8) - YBCGE F8 function key -key_f9 kf9 str k9 KEY_F(9) - YBCGE F9 function key -key_home khome str kh KEY_HOME 0406 YBCGE home key -key_ic kich1 str kI KEY_IC 0513 YB-GE insert-character key -key_il kil1 str kA KEY_IL 0511 -B-G-* insert-line key -key_left kcub1 str kl KEY_LEFT 0404 YBCGE left-arrow key -key_ll kll str kH KEY_LL 0533 YB-G- lower-left key (home down) -key_npage knp str kN KEY_NPAGE 0522 YB-GE next-page key -key_ppage kpp str kP KEY_PPAGE 0523 YB-GE previous-page key -key_right kcuf1 str kr KEY_RIGHT 0405 YBCGE right-arrow key -key_sf kind str kF KEY_SF 0520 -B-G-* scroll-forward key -key_sr kri str kR KEY_SR 0521 -B-G-* scroll-backward key -key_stab khts str kT KEY_STAB 0524 -B-G-* set-tab key -key_up kcuu1 str ku KEY_UP 0403 YBCGE up-arrow key -keypad_local rmkx str ke - - YBCGE leave 'keyboard_transmit' mode -keypad_xmit smkx str ks - - YBCGE enter 'keyboard_transmit' mode -lab_f0 lf0 str l0 - - -B-G-* label on function key f0 if not f0 -lab_f1 lf1 str l1 - - -B-G-* label on function key f1 if not f1 -lab_f10 lf10 str la - - ----- label on function key f10 if not f10 -lab_f2 lf2 str l2 - - -B-G-* label on function key f2 if not f2 -lab_f3 lf3 str l3 - - -B-G-* label on function key f3 if not f3 -lab_f4 lf4 str l4 - - -B-G-* label on function key f4 if not f4 -lab_f5 lf5 str l5 - - -B-G-* label on function key f5 if not f5 -lab_f6 lf6 str l6 - - -B-G-* label on function key f6 if not f6 -lab_f7 lf7 str l7 - - -B-G-* label on function key f7 if not f7 -lab_f8 lf8 str l8 - - -B-G-* label on function key f8 if not f8 -lab_f9 lf9 str l9 - - -B-G-* label on function key f9 if not f9 -meta_off rmm str mo - - YB-G-* turn off meta mode -meta_on smm str mm - - YB-G-* turn on meta mode (8th-bit on) -newline nel str nw - - YB-G-* newline (behave like cr followed by lf) -pad_char pad str pc - - YBCGE padding char (instead of null) -parm_dch dch str DC - - YB-GE delete #1 characters (P*) -parm_delete_line dl str DL - - YBCGE delete #1 lines (P*) -parm_down_cursor cud str DO - - YBCGE down #1 lines (P*) -parm_ich ich str IC - - YB-GE insert #1 characters (P*) -parm_index indn str SF - - YBCG- scroll forward #1 lines (P) -parm_insert_line il str AL - - YBCGE insert #1 lines (P*) -parm_left_cursor cub str LE - - YBCGE move #1 characters to the left (P) -parm_right_cursor cuf str RI - - YBCGE move #1 characters to the right (P*) -parm_rindex rin str SR - - YBCG- scroll back #1 lines (P) -parm_up_cursor cuu str UP - - YBCGE up #1 lines (P*) -pkey_key pfkey str pk - - -B--- program function key #1 to type string #2 -pkey_local pfloc str pl - - -B--- program function key #1 to execute string #2 -pkey_xmit pfx str px - - -B--- program function key #1 to transmit string #2 -print_screen mc0 str ps - - -B-G-* print contents of screen -prtr_off mc4 str pf - - -B-G-* turn off printer -prtr_on mc5 str po - - -B-G-* turn on printer -repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*) -reset_1string rs1 str r1 - - -B--- reset string -reset_2string rs2 str r2 - - -B--- reset string -reset_3string rs3 str r3 - - -B--- reset string -reset_file rf str rf - - -B--- name of reset file -restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor -row_address vpa str cv - - -B-GE* vertical position #1 absolute (P) -save_cursor sc str sc - - YBCG- save current cursor position (P) -scroll_forward ind str sf - - YBCGE scroll text up (P) -scroll_reverse ri str sr - - YBCGE scroll text down (P) -set_attributes sgr str sa - - YB-G- define video attributes #1-#9 (PG9) -set_tab hts str st - - YB-G- set a tab in every row, current columns -set_window wind str wi - - -B-GE current window is lines #1-#2 cols #3-#4 -tab ht str ta - - YBCGE tab to next 8-space hardware tab stop -to_status_line tsl str ts - - YB-G- move to status line, column #1 -underline_char uc str uc - - YBCG- underline char and move past it -up_half_line hu str hu - - YB-G- half a line up -init_prog iprog str iP - - -B--- path name of program for initialization -key_a1 ka1 str K1 KEY_A1 0534 YB-GE upper left of keypad -key_a3 ka3 str K3 KEY_A3 0535 YB-GE upper right of keypad -key_b2 kb2 str K2 KEY_B2 0536 YB-GE center of keypad -key_c1 kc1 str K4 KEY_C1 0537 YB-GE lower left of keypad -key_c3 kc3 str K5 KEY_C3 0540 YB-GE lower right of keypad -prtr_non mc5p str pO - - -B-G-* turn on printer for #1 bytes -# -# IBM extensions -# -# These extensions follow ptr_non (replacing everything after it) in IBM -# terminfo files. -# -# The places in the box[12] capabilities correspond to acsc characters, here is -# the mapping: -# -# box1[0] = ACS_ULCORNER -# box1[1] = ACS_HLINE -# box1[2] = ACS_URCORNER -# box1[3] = ACS_VLINE -# box1[4] = ACS_LRCORNER -# box1[5] = ACS_LLCORNER -# box1[6] = ACS_TTEE -# box1[7] = ACS_RTEE -# box1[8] = ACS_BTEE -# box1[9] = ACS_LTEE -# box1[10] = ACS_PLUS -# -# The box2 characters are the double-line versions of these forms graphics. -# -box_chars_1 box1 str bx - - ----K box characters primary set -box_chars_2 box2 str by - - ----K box characters secondary set -box_attr_1 batt1 str Bx - - ----K attributes for box1 -box_attr_2 batt2 str By - - ----K attributes for box2 -color_bg_0 colb0 str d0 - - ----K background color 0 -color_bg_1 colb1 str d1 - - ----K background color 1 -color_bg_2 colb2 str d2 - - ----K background color 2 -color_bg_3 colb3 str d3 - - ----K background color 3 -color_bg_4 colb4 str d4 - - ----K background color 4 -color_bg_5 colb5 str d5 - - ----K background color 5 -color_bg_6 colb6 str d6 - - ----K background color 6 -color_bg_7 colb7 str d7 - - ----K background color 7 -color_fg_0 colf0 str c0 - - ----K foreground color 0 -color_fg_1 colf1 str c1 - - ----K foreground color 1 -color_fg_2 colf2 str c2 - - ----K foreground color 2 -color_fg_3 colf3 str c3 - - ----K foreground color 3 -color_fg_4 colf4 str c4 - - ----K foreground color 4 -color_fg_5 colf5 str c5 - - ----K foreground color 5 -color_fg_6 colf6 str c6 - - ----K foreground color 6 -color_fg_7 colf7 str c7 - - ----K foreground color 7 -font_0 font0 str f0 - - ----K select font 0 -font_1 font1 str f1 - - ----K select font 1 -font_2 font2 str f2 - - ----K select font 2 -font_3 font3 str f3 - - ----K select font 3 -font_4 font4 str f4 - - ----K select font 4 -font_5 font5 str f5 - - ----K select font 5 -font_6 font6 str f6 - - ----K select font 6 -font_7 font7 str f7 - - ----K select font 7 -key_back_tab kbtab str kO - - ----K backtab key -key_do kdo str ki - - ----K do request key -key_command kcmd str @4 - - ----K command-request key -key_command_pane kcpn str kW - - ----K command-pane key -key_end kend str @7 KEY_END 0550 ----- end key -key_help khlp str %1 - - ----- help key -key_newline knl str kn - - ----K newline key -key_next_pane knpn str kv - - ----K next-pane key -key_prev_cmd kpcmd str kp - - ----K previous-command key -key_prev_pane kppn str kV - - ----K previous-pane key -key_quit kquit str kQ - - ----K quit key -key_select_aix ksel str kU - - ----- select key -key_scroll_left kscl str kz - - ----K scroll left -key_scroll_right kscr str kZ - - ----K scroll right -key_tab ktab str ko - - ----K tab key -key_smap_in1 kmpf1 str Kv - - ----K special mapped key 1 input -key_smap_out1 kmpt1 str KV - - ----K special mapped key 1 output -key_smap_in2 kmpf2 str Kw - - ----K special mapped key 2 input -key_smap_out2 kmpt2 str KW - - ----K special mapped key 2 output -key_smap_in3 kmpf3 str Kx - - ----K special mapped key 3 input -key_smap_out3 kmpt3 str KX - - ----K special mapped key 3 output -key_smap_in4 kmpf4 str Ky - - ----K special mapped key 4 input -key_smap_out4 kmpt4 str KY - - ----K special mapped key 4 output -key_smap_in5 kmpf5 str Kz - - ----K special mapped key 5 input -key_smap_out5 kmpt5 str KZ - - ----K special mapped key 5 output -appl_defined_str apstr str za - - ----K application-defined string -key_smap_in6 kmpf6 str Kr - - ----K special mapped key 6 input -key_smap_out6 kmpt6 str KR - - ----K special mapped key 6 output -key_smap_in7 kmpf7 str Ks - - ----K special mapped key 7 input -key_smap_out7 kmpt7 str KS - - ----K special mapped key 7 output -key_smap_in8 kmpf8 str Kt - - ----K special mapped key 8 input -key_smap_out8 kmpt8 str KT - - ----K special mapped key 8 output -key_smap_in9 kmpf9 str Ku - - ----K special mapped key 9 input -key_smap_out9 kmpt9 str KU - - ----K special mapped key 9 output -key_sf1 ksf1 str S1 - - ----K special function key 1 -key_sf2 ksf2 str S2 - - ----K special function key 2 -key_sf3 ksf3 str S3 - - ----K special function key 3 -key_sf4 ksf4 str S4 - - ----K special function key 4 -key_sf5 ksf5 str S5 - - ----K special function key 5 -key_sf6 ksf6 str S6 - - ----K special function key 6 -key_sf7 ksf7 str S7 - - ----K special function key 7 -key_sf8 ksf8 str S8 - - ----K special function key 8 -key_sf9 ksf9 str S9 - - ----K special function key 9 -key_sf10 ksf10 str S0 - - ----K special function key 10 -key_f11 kf11 str F1 KEY_F(11) - ----E F11 function key -key_f12 kf12 str F2 KEY_F(12) - ----E F12 function key -key_f13 kf13 str F3 KEY_F(13) - ----E F13 function key -key_f14 kf14 str F4 KEY_F(14) - ----E F14 function key -key_f15 kf15 str F5 KEY_F(15) - ----E F15 function key -key_f16 kf16 str F6 KEY_F(16) - ----E F16 function key -key_f17 kf17 str F7 KEY_F(17) - ----E F17 function key -key_f18 kf18 str F8 KEY_F(18) - ----E F18 function key -key_f19 kf19 str F9 KEY_F(19) - ----E F19 function key -key_f20 kf20 str FA KEY_F(20) - ----E F20 function key -key_f21 kf21 str FB KEY_F(21) - ----E F21 function key -key_f22 kf22 str FC KEY_F(22) - ----E F22 function key -key_f23 kf23 str FD KEY_F(23) - ----E F23 function key -key_f24 kf24 str FE KEY_F(24) - ----E F24 function key -key_f25 kf25 str FF KEY_F(25) - ----E F25 function key -key_f26 kf26 str FG KEY_F(26) - ----E F26 function key -key_f27 kf27 str FH KEY_F(27) - ----E F27 function key -key_f28 kf28 str FI KEY_F(28) - ----E F28 function key -key_f29 kf29 str FJ KEY_F(29) - ----E F29 function key -key_f30 kf30 str FK KEY_F(30) - ----E F30 function key -key_f31 kf31 str FL KEY_F(31) - ----E F31 function key -key_f32 kf32 str FM KEY_F(32) - ----E F32 function key -key_f33 kf33 str FN KEY_F(33) - ----E F33 function key -key_f34 kf34 str FO KEY_F(34) - ----E F34 function key -key_f35 kf35 str FP KEY_F(35) - ----E F35 function key -key_f36 kf36 str FQ KEY_F(36) - ----E F36 function key -key_f37 kf37 str FR KEY_F(37) - ----E F37 function key -key_f38 kf38 str FS KEY_F(38) - ----E F38 function key -key_f39 kf39 str FT KEY_F(39) - ----E F39 function key -key_f40 kf40 str FU KEY_F(40) - ----E F40 function key -key_f41 kf41 str FV KEY_F(41) - ----E F41 function key -key_f42 kf42 str FW KEY_F(42) - ----E F42 function key -key_f43 kf43 str FX KEY_F(43) - ----E F43 function key -key_f44 kf44 str FY KEY_F(44) - ----E F44 function key -key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key -key_f46 kf46 str Fa KEY_F(46) - ----E F46 function key -key_f47 kf47 str Fb KEY_F(47) - ----E F47 function key -key_f48 kf48 str Fc KEY_F(48) - ----E F48 function key -key_f49 kf49 str Fd KEY_F(49) - ----E F49 function key -key_f50 kf50 str Fe KEY_F(50) - ----E F50 function key -key_f51 kf51 str Ff KEY_F(51) - ----E F51 function key -key_f52 kf52 str Fg KEY_F(52) - ----E F52 function key -key_f53 kf53 str Fh KEY_F(53) - ----E F53 function key -key_f54 kf54 str Fi KEY_F(54) - ----E F54 function key -key_f55 kf55 str Fj KEY_F(55) - ----E F55 function key -key_f56 kf56 str Fk KEY_F(56) - ----E F56 function key -key_f57 kf57 str Fl KEY_F(57) - ----E F57 function key -key_f58 kf58 str Fm KEY_F(58) - ----E F58 function key -key_f59 kf59 str Fn KEY_F(59) - ----E F59 function key -key_f60 kf60 str Fo KEY_F(60) - ----E F60 function key -key_f61 kf61 str Fp KEY_F(61) - ----E F61 function key -key_f62 kf62 str Fq KEY_F(62) - ----E F62 function key -key_f63 kf63 str Fr KEY_F(63) - ----E F63 function key -key_action kact str kJ - - ----K sent by action key - -# The IBM docs say these capabilities are for table-drawing, and are -# valid only for aixterm descriptions. -enter_topline_mode topl str tp - - ----K start top-line mode -enter_bottom_mode btml str bm - - ----K start bottom-line mode -enter_rvert_mode rvert str rv - - ----K start right-vertical mode -enter_lvert_mode lvert str lv - - ----K start left-vertical mode -# -# SVr4 capabilities resume here. Note that key_end is in the IBM-extensions. -# -char_padding rmp str rP - - ----- like ip but when in insert mode -acs_chars acsc str ac - - ----- graphics charset pairs, based on vt100 -plab_norm pln str pn - - ----- program label #1 to show string #2 -key_btab kcbt str kB KEY_BTAB 0541 ----- back-tab key -enter_xon_mode smxon str SX - - ----- turn on xon/xoff handshaking -exit_xon_mode rmxon str RX - - ----- turn off xon/xoff handshaking -enter_am_mode smam str SA - - ----- turn on automatic margins -exit_am_mode rmam str RA - - ----- turn off automatic margins -xon_character xonc str XN - - ----- XON character -xoff_character xoffc str XF - - ----- XOFF character -ena_acs enacs str eA - - ----- enable alternate char set -label_on smln str LO - - ----- turn on soft labels -label_off rmln str LF - - ----- turn off soft labels -key_beg kbeg str @1 KEY_BEG 0542 ----- begin key -key_cancel kcan str @2 KEY_CANCEL 0543 ----- cancel key -key_close kclo str @3 KEY_CLOSE 0544 ----- close key -#key_command kcmd str @4 KEY_COMMAND 0545 ----- command key -key_copy kcpy str @5 KEY_COPY 0546 ----- copy key -key_create kcrt str @6 KEY_CREATE 0547 ----- create key -#key_end kend str @7 KEY_END 0550 ----- end key -key_enter kent str @8 KEY_ENTER 0527 ----- enter/send key -key_exit kext str @9 KEY_EXIT 0551 ----- exit key -key_find kfnd str @0 KEY_FIND 0552 ----- find key -#key_help khlp str %1 KEY_HELP 0553 ----- help key -key_mark kmrk str %2 KEY_MARK 0554 ----- mark key -key_message kmsg str %3 KEY_MESSAGE 0555 ----- message key -key_move kmov str %4 KEY_MOVE 0556 ----- move key -key_next knxt str %5 KEY_NEXT 0557 ----- next key -key_open kopn str %6 KEY_OPEN 0560 ----- open key -key_options kopt str %7 KEY_OPTIONS 0561 ----- options key -key_previous kprv str %8 KEY_PREVIOUS 0562 ----- previous key -key_print kprt str %9 KEY_PRINT 0532 ----- print key -key_redo krdo str %0 KEY_REDO 0563 ----- redo key -key_reference kref str &1 KEY_REFERENCE 0564 ----- reference key -key_refresh krfr str &2 KEY_REFRESH 0565 ----- refresh key -key_replace krpl str &3 KEY_REPLACE 0566 ----- replace key -key_restart krst str &4 KEY_RESTART 0567 ----- restart key -key_resume kres str &5 KEY_RESUME 0570 ----- resume key -key_save ksav str &6 KEY_SAVE 0571 ----- save key -key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key -key_undo kund str &8 KEY_UNDO 0630 ----- undo key -key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key -key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key -key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key -key_scopy kCPY str *2 KEY_SCOPY 0575 ----- shifted copy key -key_screate kCRT str *3 KEY_SCREATE 0576 ----- shifted create key -key_sdc kDC str *4 KEY_SDC 0577 ----- shifted delete-character key -key_sdl kDL str *5 KEY_SDL 0600 ----- shifted delete-line key -key_select kslt str *6 KEY_SELECT 0601 ----- select key -key_send kEND str *7 KEY_SEND 0602 ----- shifted end key -key_seol kEOL str *8 KEY_SEOL 0603 ----- shifted clear-to-end-of-line key -key_sexit kEXT str *9 KEY_SEXIT 0604 ----- shifted exit key -key_sfind kFND str *0 KEY_SFIND 0605 ----- shifted find key -key_shelp kHLP str #1 KEY_SHELP 0606 ----- shifted help key -key_shome kHOM str #2 KEY_SHOME 0607 ----- shifted home key -key_sic kIC str #3 KEY_SIC 0610 ----- shifted insert-character key -key_sleft kLFT str #4 KEY_SLEFT 0611 ----- shifted left-arrow key -key_smessage kMSG str %a KEY_SMESSAGE 0612 ----- shifted message key -key_smove kMOV str %b KEY_SMOVE 0613 ----- shifted move key -key_snext kNXT str %c KEY_SNEXT 0614 ----- shifted next key -key_soptions kOPT str %d KEY_SOPTIONS 0615 ----- shifted options key -key_sprevious kPRV str %e KEY_SPREVIOUS 0616 ----- shifted previous key -key_sprint kPRT str %f KEY_SPRINT 0617 ----- shifted print key -key_sredo kRDO str %g KEY_SREDO 0620 ----- shifted redo key -key_sreplace kRPL str %h KEY_SREPLACE 0621 ----- shifted replace key -key_sright kRIT str %i KEY_SRIGHT 0622 ----- shifted right-arrow key -key_srsume kRES str %j KEY_SRSUME 0623 ----- shifted resume key -key_ssave kSAV str !1 KEY_SSAVE 0624 ----- shifted save key -key_ssuspend kSPD str !2 KEY_SSUSPEND 0625 ----- shifted suspend key -key_sundo kUND str !3 KEY_SUNDO 0626 ----- shifted undo key -req_for_input rfi str RF - - ----- send next input char (for ptys) -clr_bol el1 str cb - - ----- Clear to beginning of line -clear_margins mgc str MC - - ----- clear right and left soft margins -set_left_margin smgl str ML - - ----- set left soft margin at current column. (ML is not in BSD termcap). -set_right_margin smgr str MR - - ----- set right soft margin at current column -label_format fln str Lf - - ----- label format -set_clock sclk str SC - - ----- set clock, #1 hrs #2 mins #3 secs -display_clock dclk str DK - - ----- display clock -remove_clock rmclk str RC - - ----- remove clock -create_window cwin str CW - - ----- define a window #1 from #2,#3 to #4,#5 -goto_window wingo str WG - - ----- go to window #1 -hangup hup str HU - - ----- hang-up phone -dial_phone dial str DI - - ----- dial number #1 -quick_dial qdial str QD - - ----- dial number #1 without checking -tone tone str TO - - ----- select touch tone dialing -pulse pulse str PU - - ----- select pulse dialing -flash_hook hook str fh - - ----- flash switch hook -fixed_pause pause str PA - - ----- pause for 2-3 seconds -wait_tone wait str WA - - ----- wait for dial-tone -user0 u0 str u0 - - ----- User string #0 -user1 u1 str u1 - - ----- User string #1 -user2 u2 str u2 - - ----- User string #2 -user3 u3 str u3 - - ----- User string #3 -user4 u4 str u4 - - ----- User string #4 -user5 u5 str u5 - - ----- User string #5 -user6 u6 str u6 - - ----- User string #6 -user7 u7 str u7 - - ----- User string #7 -user8 u8 str u8 - - ----- User string #8 -user9 u9 str u9 - - ----- User string #9 -# -# SVr4 added these capabilities to support color -# -orig_pair op str op - - ----- Set default pair to its original value -orig_colors oc str oc - - ----- Set all color pairs to the original ones -initialize_color initc str Ic - - ----- initialize color #1 to (#2,#3,#4) -initialize_pair initp str Ip - - ----- Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7) -set_color_pair scp str sp - - ----- Set current color pair to #1 -set_foreground setf str Sf - - ----- Set foreground color #1 -set_background setb str Sb - - ----- Set background color #1 -# -# SVr4 added these capabilities to support printers -# -change_char_pitch cpi str ZA - - ----- Change number of characters per inch to #1 -change_line_pitch lpi str ZB - - ----- Change number of lines per inch to #1 -change_res_horz chr str ZC - - ----- Change horizontal resolution to #1 -change_res_vert cvr str ZD - - ----- Change vertical resolution to #1 -define_char defc str ZE - - ----- Define a character #1, #2 dots wide, descender #3 -enter_doublewide_mode swidm str ZF - - ----- Enter double-wide mode -enter_draft_quality sdrfq str ZG - - ----- Enter draft-quality mode -enter_italics_mode sitm str ZH - - ----- Enter italic mode -enter_leftward_mode slm str ZI - - ----- Start leftward carriage motion -enter_micro_mode smicm str ZJ - - ----- Start micro-motion mode -enter_near_letter_quality snlq str ZK - - ----- Enter NLQ mode -enter_normal_quality snrmq str ZL - - ----- Enter normal-quality mode -enter_shadow_mode sshm str ZM - - ----- Enter shadow-print mode -enter_subscript_mode ssubm str ZN - - ----- Enter subscript mode -enter_superscript_mode ssupm str ZO - - ----- Enter superscript mode -enter_upward_mode sum str ZP - - ----- Start upward carriage motion -exit_doublewide_mode rwidm str ZQ - - ----- End double-wide mode -exit_italics_mode ritm str ZR - - ----- End italic mode -exit_leftward_mode rlm str ZS - - ----- End left-motion mode -exit_micro_mode rmicm str ZT - - ----- End micro-motion mode -exit_shadow_mode rshm str ZU - - ----- End shadow-print mode -exit_subscript_mode rsubm str ZV - - ----- End subscript mode -exit_superscript_mode rsupm str ZW - - ----- End superscript mode -exit_upward_mode rum str ZX - - ----- End reverse character motion -micro_column_address mhpa str ZY - - ----- Like column_address in micro mode -micro_down mcud1 str ZZ - - ----- Like cursor_down in micro mode -micro_left mcub1 str Za - - ----- Like cursor_left in micro mode -micro_right mcuf1 str Zb - - ----- Like cursor_right in micro mode -micro_row_address mvpa str Zc - - ----- Like row_address #1 in micro mode -micro_up mcuu1 str Zd - - ----- Like cursor_up in micro mode -order_of_pins porder str Ze - - ----- Match software bits to print-head pins -parm_down_micro mcud str Zf - - ----- Like parm_down_cursor in micro mode -parm_left_micro mcub str Zg - - ----- Like parm_left_cursor in micro mode -parm_right_micro mcuf str Zh - - ----- Like parm_right_cursor in micro mode -parm_up_micro mcuu str Zi - - ----- Like parm_up_cursor in micro mode -select_char_set scs str Zj - - ----- Select character set, #1 -set_bottom_margin smgb str Zk - - ----- Set bottom margin at current line -set_bottom_margin_parm smgbp str Zl - - ----- Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom -set_left_margin_parm smglp str Zm - - ----- Set left (right) margin at column #1 -set_right_margin_parm smgrp str Zn - - ----- Set right margin at column #1 -set_top_margin smgt str Zo - - ----- Set top margin at current line -set_top_margin_parm smgtp str Zp - - ----- Set top (bottom) margin at row #1 -start_bit_image sbim str Zq - - ----- Start printing bit image graphics -start_char_set_def scsd str Zr - - ----- Start character set definition #1, with #2 characters in the set -stop_bit_image rbim str Zs - - ----- Stop printing bit image graphics -stop_char_set_def rcsd str Zt - - ----- End definition of character set #1 -subscript_characters subcs str Zu - - ----- List of subscriptable characters -superscript_characters supcs str Zv - - ----- List of superscriptable characters -these_cause_cr docr str Zw - - ----- Printing any of these characters causes CR -zero_motion zerom str Zx - - ----- No motion for subsequent character -#%.TE -#%.ad -#% -#%The following string capabilities are present in the SVr4.0 term structure, -#%but were originally not documented in the man page. -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw18. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -char_set_names csnm str Zy - - ----- Produce #1'th item from list of character set names -key_mouse kmous str Km KEY_MOUSE 0631 ----- Mouse event has occurred -mouse_info minfo str Mi - - ----- Mouse status information -req_mouse_pos reqmp str RQ - - ----- Request mouse position -get_mouse getm str Gm - - ----- Curses should get button events, parameter #1 not documented. -set_a_foreground setaf str AF - - ----- Set foreground color to #1, using ANSI escape -set_a_background setab str AB - - ----- Set background color to #1, using ANSI escape -pkey_plab pfxl str xl - - ----- Program function key #1 to type string #2 and show string #3 -device_type devt str dv - - ----- Indicate language/codeset support -code_set_init csin str ci - - ----- Init sequence for multiple codesets -set0_des_seq s0ds str s0 - - ----- Shift to codeset 0 (EUC set 0, ASCII) -set1_des_seq s1ds str s1 - - ----- Shift to codeset 1 -set2_des_seq s2ds str s2 - - ----- Shift to codeset 2 -set3_des_seq s3ds str s3 - - ----- Shift to codeset 3 -set_lr_margin smglr str ML - - ----- Set both left and right margins to #1, #2. (ML is not in BSD termcap). -set_tb_margin smgtb str MT - - ----- Sets both top and bottom margins to #1, #2 -bit_image_repeat birep str Xy - - ----- Repeat bit image cell #1 #2 times -bit_image_newline binel str Zz - - ----- Move to next row of the bit image -bit_image_carriage_return bicr str Yv - - ----- Move to beginning of same row -color_names colornm str Yw - - ----- Give name for color #1 -define_bit_image_region defbi str Yx - - ----- Define rectangular bit image region -end_bit_image_region endbi str Yy - - ----- End a bit-image region -set_color_band setcolor str Yz - - ----- Change to ribbon color #1 -set_page_length slines str YZ - - ----- Set page length to #1 lines -# -# SVr4 added these capabilities for direct PC-clone support -# -display_pc_char dispc str S1 - - ----- Display PC character #1 -enter_pc_charset_mode smpch str S2 - - ----- Enter PC character display mode -exit_pc_charset_mode rmpch str S3 - - ----- Exit PC character display mode -enter_scancode_mode smsc str S4 - - ----- Enter PC scancode mode -exit_scancode_mode rmsc str S5 - - ----- Exit PC scancode mode -pc_term_options pctrm str S6 - - ----- PC terminal options -scancode_escape scesc str S7 - - ----- Escape for scancode emulation -alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulation -#%.TE -#%.ad -#% -#%.in .8i -#%The XSI Curses standard added these hardcopy capabilities. -#%They were used in some post-4.1 versions of System V curses, -#%e.g., Solaris 2.5 and IRIX 6.x. -#%Except for \fBYI\fP, the \fBncurses\fR termcap names for them are invented. -#%According to the XSI Curses standard, they have no termcap names. -#%If your compiled terminfo entries use these, -#%they may not be binary-compatible with System V terminfo -#%entries after SVr4.1; beware! -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -#enter_horizontal_hl_mode ehhlm str Xh - - ----- Enter horizontal highlight mode -#enter_left_hl_mode elhlm str Xl - - ----- Enter left highlight mode -#enter_low_hl_mode elohlm str Xo - - ----- Enter low highlight mode -#enter_right_hl_mode erhlm str Xr - - ----- Enter right highlight mode -#enter_top_hl_mode ethlm str Xt - - ----- Enter top highlight mode -#enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode -#set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6 -set_pglen_inch slength str YI - - ----- Set page length to #1 hundredth of an inch (some implementations use sL for termcap). -#%.TE -#%.ad -# -# The magic token below tells the tic compiler-generator code that all the caps -# past it should be ignored (not written out) when dumping terminfo objects. It -# also tells the man page table generator not to pass through following lines -# This means we can have obsolete capabilities and pseudo-capabilities that are -# recognized for termcap or terminfo compilation, but not output. -# -# %%-STOP-HERE-%% -# -# Don't move this casually! In fact, don't move it at all unless you're -# either doing it to add System V or XPG4 extensions, or have decided you -# don't care about SVr4 binary compatibility. -# -############################################################################# -# -# TERMCAP EXTENSION CAPABILITIES -# -# The capabilities below are either obsolete or extensions on certain systems. -# They are not used by SVR4 terminfo. Some are used by captoinfo to translate -# termcap sources; the rest are listed for completeness, and in case somebody -# cares about them enough to hack in code that will translate them into -# terminfo capabilities. -# -# The first part of the list is from Ross Ridge's `mytinfo' package -# (comp.sources.unix, volume 26); the variable names and terminfo names (as -# well as the termcap codes) match his list. -# -# This group of codes is not marked obsolete in 4.4BSD, but have no direct -# terminfo equivalents. The rs capability is specially translated to terminfo -# r2, and vice versa, if an entry does not already have an r2. Similarly, -# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2). -# The ug capability is thrown away, but assumed to be whatever sg is if the -# latter is nonzero and we're dumping in termcap format. -# -termcap_init2 OTi2 str i2 - - YB--- secondary initialization string -termcap_reset OTrs str rs - - YB-G- terminal reset string -magic_cookie_glitch_ul OTug num ug - - YBCGE number of blanks left by ul -# -# Obsolete termcap capabilities. Some are used for termcap translation. The -# code uses the 'OT' prefix we put on obsolete capabilities to suppress -# printing them in terminfo source dumps of compiled entries. -# -backspaces_with_bs OTbs bool bs - - YBCGE uses ^H to move left -crt_no_scrolling OTns bool ns - - YBCG- crt cannot scroll -no_correctly_working_cr OTnc bool nc - - YBCG- no way to go to start of line -carriage_return_delay OTdC num dC - - YB-G- pad needed for CR -new_line_delay OTdN num dN - - YB-G- pad needed for LF -linefeed_if_not_lf OTnl str nl - - YBCGE use to move down -backspace_if_not_bs OTbc str bc - - YBCGE move left, if not ^H -# -# GNU termcap library extensions. The GNU termcap file distributed with -# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the -# BSD termcap file. The name clash with terminfo MT is resolved by type -# info; MT is converted to km. -# -gnu_has_meta_key OTMT bool MT - - ----E has meta key -# gnu_tab_width OTtw num tw - - ----E tab width in spaces -# -# GNU termcap *does* include the following extended capability, Only the -# now-obsolete Ann Arbor terminals used it. -# -# gnu_change_scroll_region OTcS str cS - - ---GE alternate set scrolling region -# -# The following comments describe capnames so ancient that I believe no -# software uses them any longer. Some of these have to go because they -# clash with terminfo names in ways that cannot be resolved by type -# information. -# -# These mytinfo codes are not used in the 4.4BSD curses code. They are -# marked obsolete in the 4.4BSD manual pages. -# -# There is one conflict with terminfo; ma is in both. This conflict is -# resolved by type information. -# -# The `ko' capability is translated by special code. It should contain a -# comma-separated list of capabilities for which there are corresponding keys. -# The `kn' code is accepted but ignored. -# -# The `ma' capability was a 4.0BSD feature used by vi version 2. -# It consists of pairs of characters corresponding to kl, kr, ku, kd, and kh. -# Besides being obsolete, that interpretation conflicts with max_attributes. -# -# Here is a description of memory_lock_above and memory_unlock: -# "You can 'freeze' data on the screen by turning on Memory Lock in a line of -# text. All lines above the cursor's current line become locked in place on -# the screen. Then enter data normally. When the screen fills up, any -# further data entered forces the first line of unfrozen line text to scroll -# under the frozen data. Lines scrolled off the screen are inserted into -# memory immediately preceding the first frozen line." (from the HP 700/96 -# User's manual). VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l. -# -# Applications that use terminfo are supposed to behave as though xr is -# always true. -# -linefeed_is_newline OTNL bool NL - - YB--- move down with \n -# even_parity OTEP bool EP - - -B--- terminal requires even parity -# odd_parity OTOP bool OP - - -B--- terminal requires odd parity -# half_duplex OTHD bool HD - - -B--- terminal is half-duplex -# lower_case_only OTLC bool LC - - -B--- terminal has only lower case -# upper_case_only OTUC bool UC - - -B--- terminal has only upper case -backspace_delay OTdB num dB - - YB-G- padding required for ^H -# form_feed_delay OTdF num dF - - -B-G- padding required for ^L -horizontal_tab_delay OTdT num dT - - YB-G- padding required for ^I -# vertical_tab_delay OTdV num dV - - -B--- padding required for ^V -number_of_function_keys OTkn num kn - - -B-G- count of function keys -other_non_function_keys OTko str ko - - -B-G- list of self-mapped keycaps -arrow_key_map OTma str ma - - YBC-- map motion-keys for vi version 2 -# memory_lock_above OTml str ml - - -B--- lock visible screen memory above the current line -# memory_unlock OTmu str mu - - -B--- unlock visible screen memory above the current line -has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I -return_does_clr_eol OTxr bool xr - - YB--- return clears the line -# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch -# -# mytinfo described this as a termcap capability, but it is not listed in the -# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses -# package, like System V, behaves as though it is always true. -# -# rind_only_at_top OTxq bool xq - - ----- reverse index only works from top line -# -# University of Waterloo termcap extensions (as described in mytinfo). -# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot -# be resolved by a type check. The descriptions are guesses from what was -# in the mytinfo tables. -# -# key_interrupt_char OTki str ki - - ----- string set by interrupt key (?) -# key_kill_char OTkk str kk - - ----- string set by kill key (?) -# key_suspend_char OTkz str kz - - ----- string set by suspend key (?) -# initialization_messy OTxc bool xc - - ----- initialization leaves garbage on the screen (?) -# ind_at_bottom_does_cr OTxl bool xl - - ----- index does a carriage return -# -# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package. -# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type -# check. -# -# scroll_left OTsl1 str Sl - - ----- scroll screen leftward -# scroll_right OTsr1 str Sr - - ----- scroll screen rightward -# parm_scroll_left OTsl str SL - - ----- scroll screen leftward #1 characters -# parm_scroll_right OTsr str SR - - ----- scroll screen rightward #1 characters -# -# The mytinfo capabilities end here. -# -# XENIX extensions: -# -# Xenix defined its own set of forms-drawing capabilities: -# -# cap IBM ASCII description ACS ASCII -# --- ----------- -------------------- ------------- ------ -# G1 191 \277 M-? single upper right ACS_URCORNER -# G2 218 \332 M-Z single upper left ACS_ULCORNER -# G3 192 \300 M-@ single lower left ACS_LLCORNER -# G4 217 \331 M-Y single lower right ACS_LRCORNER -# G5 187 \273 M-; double upper right -# G6 201 \311 M-I double upper left -# G7 200 \310 M-H double lower left -# G8 188 \274 M-< double lower right -# GC 197 \305 M-E single intersection ACS_PLUS _ _ -# GD 194 \302 M-B single down-tick ACS_TTEE | -# GH 196 \304 M-D single horizontal line ACS_HLINE -# GL 180 \264 M-4 single left tick ACS_RTEE -| -# GR 195 \303 M-C single right tick ACS_LTEE |- -# GU 193 \301 M-A single up tick ACS_BTEE _|_ -# GV 179 \263 M-3 single vertical line ACS_VLINE -# Gc 206 \316 M-N double intersection -# Gd 203 \313 M-K double down tick -# Gh 205 \315 M-M double horizontal line -# Gl 204 \204 M-L double left tick -# Gr 185 \271 M-9 double right tick -# Gu 202 \312 M-J double up tick -# Gv 186 \272 M-: double vertical line -# -# The compiler will translate the single-line caps and discard the others -# (via IGNORE aliases further down). We don't want to do normal pad -# translation on these, they're often single-character printable ASCII -# strings that happen to be numerics. There's awk code in parametrized.sh -# that detects the acs_ prefix and uses it to suppress pad translation. -# These terminfo names are invented. -# -acs_ulcorner OTG2 str G2 - - ----- single upper left -acs_llcorner OTG3 str G3 - - ----- single lower left -acs_urcorner OTG1 str G1 - - ----- single upper right -acs_lrcorner OTG4 str G4 - - ----- single lower right -acs_ltee OTGR str GR - - ----- tee pointing right -acs_rtee OTGL str GL - - ----- tee pointing left -acs_btee OTGU str GU - - ----- tee pointing up -acs_ttee OTGD str GD - - ----- tee pointing down -acs_hline OTGH str GH - - ----- single horizontal line -acs_vline OTGV str GV - - ----- single vertical line -acs_plus OTGC str GC - - ----- single intersection -# -############################################################################# -# -# TERMINFO EXTENSION CAPABILITIES -# -# (see Caps-ncurses for the complete set of comments) -# -memory_lock meml str ml - - ----K lock memory above cursor -memory_unlock memu str mu - - ----K unlock memory -# -############################################################################# diff --git a/include/Caps.hpux11 b/include/Caps.hpux11 deleted file mode 100644 index 3c0444f..0000000 --- a/include/Caps.hpux11 +++ /dev/null @@ -1,986 +0,0 @@ -############################################################################## -# Copyright 2019-2020,2021 Thomas E. Dickey # -# Copyright 2002-2015,2016 Free Software Foundation, Inc. # -# # -# Permission is hereby granted, free of charge, to any person obtaining a # -# copy of this software and associated documentation files (the "Software"), # -# to deal in the Software without restriction, including without limitation # -# the rights to use, copy, modify, merge, publish, distribute, distribute # -# with modifications, sublicense, and/or sell copies of the Software, and to # -# permit persons to whom the Software is furnished to do so, subject to the # -# following conditions: # -# # -# The above copyright notice and this permission notice shall be included in # -# all copies or substantial portions of the Software. # -# # -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # -# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # -# DEALINGS IN THE SOFTWARE. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas Dickey -# -# $Id: Caps.hpux11,v 1.18 2021/10/08 07:55:48 tom Exp $ -# -# This is an adaptation of ncurses' termcap/terminfo capability table, which -# is designed to align with HPUX 11.x's terminfo. -# -# This table is used to generate initializers for tables that drive tic, -# infocmp, and the library compilation code used to support the termcap -# compatibility hack. It is also used to generate the tabular portion of the -# terminfo(5) man page; lines beginning with `#%' are passed through to become -# the terminfo table. -# -# This file has three major sections; a standard-capabilities table, two -# extension-capability tables, and a section of aliases declarations. -# The first two have the same format, as follows: -# -# FILE FORMAT -# -# Column 1: terminfo variable name -# Column 2: terminfo capability name -# Column 3: capability type (boolean, numeric, or string) -# Column 4: termcap capability name -# Column 5: KEY_xxx name, if any, `-' otherwise -# Column 6: value for KEY_xxx name, if any, `-' otherwise -# Column 7: Lead with `Y' if capability should be emitted in termcap -# translations, `-' otherwise -# Column 8: capability description -# -# The codes following [Y-] in column 7 describe the versions of termcap which -# use the given capability. This information is not used by the curses library -# proper; rather, it is there to help the terminfo maintainer avoid emitting -# termcap entry translations that are more than 1023 bytes long (and tank a -# lot of old termcap-using programs). The codes read as follows: -# B = mentioned in the BSD man page for 4.4BSD curses -# C = used by the 4.4BSD curses library -# G = mentioned in the documentation for GNU termcap -# E = used by GNU Emacs -# K = remove this terminfo capability when translating to standard format -# The important codes are C and E. A cap with C or E should be preserved in -# translation if possible. The problem is that preserving all such caps may -# lead to some termcap translations being too long. The termcap maintainer -# has a bit of a juggling act to do...potential problem cases are marked with -# an asterisk (*). -# -# The aliases section has the following format: -# -# Column 1: either `capalias' or `infoalias' -# Column 2: name to be aliased -# Column 3: what name it should translate to. The name IGNORE means it -# should be discarded with a warning message. -# Column 4: name of the extension set (used for compiler warning messages) -# Column 5: capability description (usually an associated terminfo variable) -# -# HANDLING TERMCAP AND TERMINFO EXTENSIONS -# -# There are basically five different ways to handle termcap and terminfo -# extensions: -# -# 1. Don't list the capname here, or list it but comment it out (the latter -# is preferable; someone might want to handle it in the future). If you do -# this, the capability will be treated as unknown and raise a warning from -# the compiler. -# -# 2. Alias it. This is appropriate if the capability has the same meaning -# as an already-supported one. The compiler will handle aliasing, emitting -# an appropriate informational message whenever an alias fires. -# -# 3. List it in the standard table. You almost certainly do *not* want -# to do this -- the capabilities in that one, and their order, have been -# carefully chosen to be SVr4-binary-compatible when they're written out -# as a terminfo object, and breaking this would be bad. It is up to the ncurses -# library what to do with the terminfo data after it is read in. -# -# 4. List it in the aliases table with an IGNORE target field. If you -# do this, the capability will be ignored on input (though the user will -# get a warning message about it). -# -# 5. List it in the extensions table. If you do this, the compiler will -# silently accept the capability, but the curses library proper will never -# see it (because it won't be written out as part of the terminfo object -# format). It is up to you what you have the compiler do with it. -# -# There are two opposite reasons to choose option 5. One is when you want -# to eat the capability silently and discard it when doing translations -# to terminfo with tic -I. Some very old obsolete BSD caps like :kn: are -# in this class. Nothing will ever use them again. -# -# More usually, you want the compiler to try to deduce something from the -# capability value that it can use to translate it into your output format. -# You'll need to write custom code, probably in postprocess_termcap() or -# postprocess_terminfo(), to handle the translation. -# -# CONTROLLING ENTRY LENGTH -# -# Notes on specific elisions made to fit translations within 1023 bytes: -# -# Machines with IBM PC-like keyboards want to be able to define the following -# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap- -# only environments for End or Home-Down), key_dc, and key_ic. This is also -# the set of keys the `joe' editor will be upset if it can't see. So don't -# trim those out of the set to be translated to termcap, or various users of -# the termcap file will become irate. -# -# It might look tempting to leave those long init strings out of translations. -# We can't do it (yet); 4.4BSD tput and tset use them. -# -# We retain the sgr capability in translation in spite of the fact that neither -# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are -# hard to understand without it, and (b) the entries in which it is long tend -# to be older types that don't use up a lot of string space on function keys. -# The tic(1) translation code will complain and elide it if it makes a critical -# difference (there is special code in tic to recognize this situation). -# -# Yes, BSD tset(1) uses hpa. We elide hpa/vpa anyway because the motion -# optimizer in BSD curses didn't use them. This omission seems to be the -# single most effective one, it shortened the resolved length of all thirteen -# problem entries in the 9.9.0 version of the terminfo master below critical. -# -# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap -# translations go back over critical if we do this. As 4.4BSD curses fades -# into history and GNU termcap's application base shrinks towards being GNU -# Emacs only, we'll probably elide out some BSD-only capabilities in order -# to buy space for non-essentials Emacs is still using. Capabilities high -# on that hit list: rc, sc, uc. -# -############################################################################# -# -# STANDARD CAPABILITIES -# -#%The following is a complete table of the capabilities included in a -#%terminfo description block and available to terminfo-using code. In each -#%line of the table, -#% -#%The \fBvariable\fR is the name by which the programmer (at the terminfo level) -#%accesses the capability. -#% -#%The \fBcapname\fR is the short name used in the text of the database, -#%and is used by a person updating the database. -#%Whenever possible, capnames are chosen to be the same as or similar to -#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses -#%identical or very similar names). Semantics are also intended to match -#%those of the specification. -#% -#%The termcap code is the old -#%.B termcap -#%capability name (some capabilities are new, and have names which termcap -#%did not originate). -#%.P -#%Capability names have no hard length limit, but an informal limit of 5 -#%characters has been adopted to keep them short and to allow the tabs in -#%the source file -#%.B Caps -#%to line up nicely. -#% -#%Finally, the description field attempts to convey the semantics of the -#%capability. You may find some codes in the description field: -#%.TP -#%(P) -#%indicates that padding may be specified -#%.TP -#%#[1-9] -#%in the description field indicates that the string is passed -#%through \fBtparm\fP(3X) with parameters as given (#\fIi\fP). -#%.IP -#%If no parameters are listed in the description, -#%passing the string through \fBtparm\fP(3X) may give unexpected results, -#%e.g., if it contains percent (%%) signs. -#%.TP -#%(P*) -#%indicates that padding may vary in proportion to the number of -#%lines affected -#%.TP -#%(#\d\fIi\fP\u) -#%indicates the \fIi\fP\uth\d parameter. -#% -#%.PP -#% These are the boolean capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBBooleans name Code\fR -auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column -auto_right_margin am bool am - - YBCGE terminal has automatic margins -no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C) -ceol_standout_glitch xhp bool xs - - YBCGE standout not erased by overwriting (hp) -eat_newline_glitch xenl bool xn - - YBCGE newline ignored after 80 cols (concept) -erase_overstrike eo bool eo - - YBCG- can erase overstrikes with a blank -generic_type gn bool gn - - YB-G- generic line type -hard_copy hc bool hc - - YBCG- hardcopy terminal -has_meta_key km bool km - - YB-GE Has a meta key (i.e., sets 8th-bit) -has_status_line hs bool hs - - YB-G- has extra status line -insert_null_glitch in bool in - - YBCGE insert mode distinguishes nulls -memory_above da bool da - - YBCG- display may be retained above the screen -memory_below db bool db - - YB-GE display may be retained below the screen -move_insert_mode mir bool mi - - YBCGE safe to move while in insert mode -move_standout_mode msgr bool ms - - YBCGE safe to move while in standout mode -over_strike os bool os - - YBCG- terminal can overstrike -status_line_esc_ok eslok bool es - - YB-G- escape can be used on the status line -dest_tabs_magic_smso xt bool xt - - YBCGE tabs destructive, magic so char (t1061) -tilde_glitch hz bool hz - - YB-GE cannot print ~'s (Hazeltine) -transparent_underline ul bool ul - - YBCGE underline character overstrikes -xon_xoff xon bool xo - - YB--- terminal uses xon/xoff handshaking -# end booleans for HPUX 9, 10 (non-color curses) -needs_xon_xoff nxon bool nx - - ----- padding will not work, xon/xoff required -prtr_silent mc5i bool 5i - - ----- printer will not echo on screen -hard_cursor chts bool HC - - ----- cursor is hard to see -non_rev_rmcup nrrmc bool NR - - ----- smcup does not reverse rmcup -no_pad_char npc bool NP - - ----- pad character does not exist -non_dest_scroll_region ndscr bool ND - - ----- scrolling region is non-destructive -can_change ccc bool cc - - ----- terminal can re-define existing colors -back_color_erase bce bool ut - - ----- screen erased with background color -hue_lightness_saturation hls bool hl - - ----- terminal uses only HLS color notation (Tektronix) -col_addr_glitch xhpa bool YA - - ----- only positive motion for hpa/mhpa caps -cr_cancels_micro_mode crxm bool YB - - ----- using cr turns off micro mode -has_print_wheel daisy bool YC - - ----- printer needs operator to change character set -row_addr_glitch xvpa bool YD - - ----- only positive motion for vpa/mvpa caps -semi_auto_right_margin sam bool YE - - ----- printing in last column causes cr -cpi_changes_res cpix bool YF - - ----- changing character pitch changes resolution -lpi_changes_res lpix bool YG - - ----- changing line pitch changes resolution -#%.TE -#%.ad -#% -#%These are the numeric capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBNumeric name Code\fR -columns cols num co - - YBCGE number of columns in a line -init_tabs it num it - - YB-G- tabs initially every # spaces -lines lines num li - - YBCGE number of lines on screen or page -lines_of_memory lm num lm - - YB-G- lines of memory if > line. 0 means varies -magic_cookie_glitch xmc num sg - - YBCGE number of blank characters left by smso or rmso -padding_baud_rate pb num pb - - YB-GE lowest baud rate where padding needed -virtual_terminal vt num vt - - YB--- virtual terminal number (CB/unix) -width_status_line wsl num ws - - YB-G- number of columns in status line -# end numbers for HPUX 9, 10 (non-color curses) -num_labels nlab num Nl - - ----- number of labels on screen -label_height lh num lh - - ----- rows in each label -label_width lw num lw - - ----- columns in each label -max_attributes ma num ma - - YBC-- maximum combined attributes terminal can handle -maximum_windows wnum num MW - - ----- maximum number of definable windows -# These came in with SVr4's color support -max_colors colors num Co - - ----- maximum number of colors on screen -max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen -no_color_video ncv num NC - - ----- video attributes that cannot be used with colors -#%.TE -#%.ad -#% -#%The following numeric capabilities are present in the SVr4.0 term structure, -#%but are not yet documented in the man page. They came in with SVr4's -#%printer support. -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBNumeric name Code\fR -buffer_capacity bufsz num Ya - - ----- numbers of bytes buffered before printing -dot_vert_spacing spinv num Yb - - ----- spacing of pins vertically in pins per inch -dot_horz_spacing spinh num Yc - - ----- spacing of dots horizontally in dots per inch -max_micro_address maddr num Yd - - ----- maximum value in micro_..._address -max_micro_jump mjump num Ye - - ----- maximum value in parm_..._micro -micro_char_size mcs num Yf - - ----- character step size when in micro mode -micro_line_size mls num Yg - - ----- line step size when in micro mode -number_of_pins npins num Yh - - ----- numbers of pins in print-head -output_res_char orc num Yi - - ----- horizontal resolution in units per line -output_res_line orl num Yj - - ----- vertical resolution in units per line -output_res_horz_inch orhi num Yk - - ----- horizontal resolution in units per inch -output_res_vert_inch orvi num Yl - - ----- vertical resolution in units per inch -print_rate cps num Ym - - ----- print rate in characters per second -wide_char_size widcs num Yn - - ----- character step size when in double wide mode -buttons btns num BT - - ----- number of buttons on mouse -bit_image_entwining bitwin num Yo - - ----- number of passes for each bit-image row -bit_image_type bitype num Yp - - ----- type of bit-image device -#%.TE -#%.ad -#% -#%These are the string capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -back_tab cbt str bt - - YBCGE back tab (P) -bell bel str bl - - YB-GE audible signal (bell) (P) -carriage_return cr str cr - - YBCGE carriage return (P*) (P*) -change_scroll_region csr str cs - - YBCGE change region to line #1 to line #2 (P) -clear_all_tabs tbc str ct - - YB-G- clear all tab stops (P) -clear_screen clear str cl - - YBCGE clear screen and home cursor (P*) -clr_eol el str ce - - YBCGE clear to end of line (P) -clr_eos ed str cd - - YBCGE clear to end of screen (P*) -column_address hpa str ch - - -B-GE* horizontal position #1, absolute (P) -command_character cmdch str CC - - YB-G- terminal settable cmd character in prototype !? -cursor_address cup str cm - - YBCGE move to row #1 columns #2 -cursor_down cud1 str do - - YBCGE down one line -cursor_home home str ho - - YBCGE home cursor (if no cup) -cursor_invisible civis str vi - - YB-G- make cursor invisible -cursor_left cub1 str le - - YBCGE move left one space -cursor_mem_address mrcup str CM - - YB-G- memory relative cursor addressing, move to row #1 columns #2 -cursor_normal cnorm str ve - - YBCGE make cursor appear normal (undo civis/cvvis) -cursor_right cuf1 str nd - - YBCGE non-destructive space (move right one space) -cursor_to_ll ll str ll - - YBCGE last line, first column (if no cup) -cursor_up cuu1 str up - - YBCGE up one line -cursor_visible cvvis str vs - - YBCGE make cursor very visible -delete_character dch1 str dc - - YBCGE delete character (P*) -delete_line dl1 str dl - - YBCGE delete line (P*) -dis_status_line dsl str ds - - YB-G- disable status line -down_half_line hd str hd - - YB-G- half a line down -enter_alt_charset_mode smacs str as - - YB-G- start alternate character set (P) -enter_blink_mode blink str mb - - YB-G- turn on blinking -enter_bold_mode bold str md - - YB-G- turn on bold (extra bright) mode -enter_ca_mode smcup str ti - - YBCGE string to start programs using cup -enter_delete_mode smdc str dm - - YBCGE enter delete mode -enter_dim_mode dim str mh - - YB-G- turn on half-bright mode -enter_insert_mode smir str im - - YBCGE enter insert mode -enter_secure_mode invis str mk - - -B-G-* turn on blank mode (characters invisible) -enter_protected_mode prot str mp - - -B-G-* turn on protected mode -enter_reverse_mode rev str mr - - YB-G- turn on reverse video mode -enter_standout_mode smso str so - - YBCGE begin standout mode -enter_underline_mode smul str us - - YBCGE begin underline mode -erase_chars ech str ec - - YB-G- erase #1 characters (P) -exit_alt_charset_mode rmacs str ae - - YB-G- end alternate character set (P) -exit_attribute_mode sgr0 str me - - YB-GE turn off all attributes -exit_ca_mode rmcup str te - - YBCGE strings to end programs using cup -exit_delete_mode rmdc str ed - - YBCGE end delete mode -exit_insert_mode rmir str ei - - YBCGE exit insert mode -exit_standout_mode rmso str se - - YBCGE exit standout mode -exit_underline_mode rmul str ue - - YBCGE exit underline mode -flash_screen flash str vb - - YBCGE visible bell (may not move cursor) -form_feed ff str ff - - YB-G- hardcopy terminal page eject (P*) -from_status_line fsl str fs - - YB-G- return from status line -init_1string is1 str i1 - - YB-G- initialization string -init_2string is2 str is - - YB-G- initialization string -init_3string is3 str i3 - - YB-G- initialization string -init_file if str if - - YB-G- name of initialization file -insert_character ich1 str ic - - YBCGE insert character (P) -insert_line il1 str al - - YBCGE insert line (P*) -insert_padding ip str ip - - YBCGE insert padding after inserted character -key_backspace kbs str kb KEY_BACKSPACE 0407 YB-G- backspace key -key_catab ktbc str ka KEY_CATAB 0526 -B-G-* clear-all-tabs key -key_clear kclr str kC KEY_CLEAR 0515 -B-G-* clear-screen or erase key -key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key -key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key -key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key -key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key -key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode -key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key -key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key -key_f0 kf0 str k0 KEY_F(0) 0410 YBCGE F0 function key -key_f1 kf1 str k1 KEY_F(1) - YBCGE F1 function key -key_f10 kf10 str k; KEY_F(10) - ----E F10 function key -key_f2 kf2 str k2 KEY_F(2) - YBCGE F2 function key -key_f3 kf3 str k3 KEY_F(3) - YBCGE F3 function key -key_f4 kf4 str k4 KEY_F(4) - YBCGE F4 function key -key_f5 kf5 str k5 KEY_F(5) - YBCGE F5 function key -key_f6 kf6 str k6 KEY_F(6) - YBCGE F6 function key -key_f7 kf7 str k7 KEY_F(7) - YBCGE F7 function key -key_f8 kf8 str k8 KEY_F(8) - YBCGE F8 function key -key_f9 kf9 str k9 KEY_F(9) - YBCGE F9 function key -key_home khome str kh KEY_HOME 0406 YBCGE home key -key_ic kich1 str kI KEY_IC 0513 YB-GE insert-character key -key_il kil1 str kA KEY_IL 0511 -B-G-* insert-line key -key_left kcub1 str kl KEY_LEFT 0404 YBCGE left-arrow key -key_ll kll str kH KEY_LL 0533 YB-G- lower-left key (home down) -key_npage knp str kN KEY_NPAGE 0522 YB-GE next-page key -key_ppage kpp str kP KEY_PPAGE 0523 YB-GE previous-page key -key_right kcuf1 str kr KEY_RIGHT 0405 YBCGE right-arrow key -key_sf kind str kF KEY_SF 0520 -B-G-* scroll-forward key -key_sr kri str kR KEY_SR 0521 -B-G-* scroll-backward key -key_stab khts str kT KEY_STAB 0524 -B-G-* set-tab key -key_up kcuu1 str ku KEY_UP 0403 YBCGE up-arrow key -keypad_local rmkx str ke - - YBCGE leave 'keyboard_transmit' mode -keypad_xmit smkx str ks - - YBCGE enter 'keyboard_transmit' mode -lab_f0 lf0 str l0 - - -B-G-* label on function key f0 if not f0 -lab_f1 lf1 str l1 - - -B-G-* label on function key f1 if not f1 -lab_f10 lf10 str la - - ----- label on function key f10 if not f10 -lab_f2 lf2 str l2 - - -B-G-* label on function key f2 if not f2 -lab_f3 lf3 str l3 - - -B-G-* label on function key f3 if not f3 -lab_f4 lf4 str l4 - - -B-G-* label on function key f4 if not f4 -lab_f5 lf5 str l5 - - -B-G-* label on function key f5 if not f5 -lab_f6 lf6 str l6 - - -B-G-* label on function key f6 if not f6 -lab_f7 lf7 str l7 - - -B-G-* label on function key f7 if not f7 -lab_f8 lf8 str l8 - - -B-G-* label on function key f8 if not f8 -lab_f9 lf9 str l9 - - -B-G-* label on function key f9 if not f9 -meta_off rmm str mo - - YB-G-* turn off meta mode -meta_on smm str mm - - YB-G-* turn on meta mode (8th-bit on) -newline nel str nw - - YB-G-* newline (behave like cr followed by lf) -pad_char pad str pc - - YBCGE padding char (instead of null) -parm_dch dch str DC - - YB-GE delete #1 characters (P*) -parm_delete_line dl str DL - - YBCGE delete #1 lines (P*) -parm_down_cursor cud str DO - - YBCGE down #1 lines (P*) -parm_ich ich str IC - - YB-GE insert #1 characters (P*) -parm_index indn str SF - - YBCG- scroll forward #1 lines (P) -parm_insert_line il str AL - - YBCGE insert #1 lines (P*) -parm_left_cursor cub str LE - - YBCGE move #1 characters to the left (P) -parm_right_cursor cuf str RI - - YBCGE move #1 characters to the right (P*) -parm_rindex rin str SR - - YBCG- scroll back #1 lines (P) -parm_up_cursor cuu str UP - - YBCGE up #1 lines (P*) -pkey_key pfkey str pk - - -B--- program function key #1 to type string #2 -pkey_local pfloc str pl - - -B--- program function key #1 to execute string #2 -pkey_xmit pfx str px - - -B--- program function key #1 to transmit string #2 -print_screen mc0 str ps - - -B-G-* print contents of screen -prtr_off mc4 str pf - - -B-G-* turn off printer -prtr_on mc5 str po - - -B-G-* turn on printer -repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*) -reset_1string rs1 str r1 - - -B--- reset string -reset_2string rs2 str r2 - - -B--- reset string -reset_3string rs3 str r3 - - -B--- reset string -reset_file rf str rf - - -B--- name of reset file -restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor -row_address vpa str cv - - -B-GE* vertical position #1 absolute (P) -save_cursor sc str sc - - YBCG- save current cursor position (P) -scroll_forward ind str sf - - YBCGE scroll text up (P) -scroll_reverse ri str sr - - YBCGE scroll text down (P) -set_attributes sgr str sa - - YB-G- define video attributes #1-#9 (PG9) -set_tab hts str st - - YB-G- set a tab in every row, current columns -set_window wind str wi - - -B-GE current window is lines #1-#2 cols #3-#4 -tab ht str ta - - YBCGE tab to next 8-space hardware tab stop -to_status_line tsl str ts - - YB-G- move to status line, column #1 -underline_char uc str uc - - YBCG- underline char and move past it -up_half_line hu str hu - - YB-G- half a line up -init_prog iprog str iP - - -B--- path name of program for initialization -key_a1 ka1 str K1 KEY_A1 0534 YB-GE upper left of keypad -key_a3 ka3 str K3 KEY_A3 0535 YB-GE upper right of keypad -key_b2 kb2 str K2 KEY_B2 0536 YB-GE center of keypad -key_c1 kc1 str K4 KEY_C1 0537 YB-GE lower left of keypad -key_c3 kc3 str K5 KEY_C3 0540 YB-GE lower right of keypad -prtr_non mc5p str pO - - -B-G-* turn on printer for #1 bytes -# -# SVr1 capabilities stop here. IBM's version of terminfo is the same as -# SVr4 up to this point, but has a different set afterwards. -# -# HPUX defines these if __HP_CURSES_COMPAT is defined: -memory_lock meml str ml - - ----K lock memory above cursor -memory_unlock memu str mu - - ----K unlock memory -# -# -plab_norm pln str pn - - ----- program label #1 to show string #2 -label_on smln str LO - - ----- turn on soft labels -label_off rmln str LF - - ----- turn off soft labels -key_f11 kf11 str F1 KEY_F(11) - ----E F11 function key -key_f12 kf12 str F2 KEY_F(12) - ----E F12 function key -key_f13 kf13 str F3 KEY_F(13) - ----E F13 function key -key_f14 kf14 str F4 KEY_F(14) - ----E F14 function key -key_f15 kf15 str F5 KEY_F(15) - ----E F15 function key -key_f16 kf16 str F6 KEY_F(16) - ----E F16 function key -key_f17 kf17 str F7 KEY_F(17) - ----E F17 function key -key_f18 kf18 str F8 KEY_F(18) - ----E F18 function key -key_f19 kf19 str F9 KEY_F(19) - ----E F19 function key -key_f20 kf20 str FA KEY_F(20) - ----E F20 function key -key_f21 kf21 str FB KEY_F(21) - ----E F21 function key -key_f22 kf22 str FC KEY_F(22) - ----E F22 function key -key_f23 kf23 str FD KEY_F(23) - ----E F23 function key -key_f24 kf24 str FE KEY_F(24) - ----E F24 function key -key_f25 kf25 str FF KEY_F(25) - ----E F25 function key -key_f26 kf26 str FG KEY_F(26) - ----E F26 function key -key_f27 kf27 str FH KEY_F(27) - ----E F27 function key -key_f28 kf28 str FI KEY_F(28) - ----E F28 function key -key_f29 kf29 str FJ KEY_F(29) - ----E F29 function key -key_f30 kf30 str FK KEY_F(30) - ----E F30 function key -key_f31 kf31 str FL KEY_F(31) - ----E F31 function key -key_f32 kf32 str FM KEY_F(32) - ----E F32 function key -key_f33 kf33 str FN KEY_F(33) - ----E F33 function key -key_f34 kf34 str FO KEY_F(34) - ----E F34 function key -key_f35 kf35 str FP KEY_F(35) - ----E F35 function key -key_f36 kf36 str FQ KEY_F(36) - ----E F36 function key -key_f37 kf37 str FR KEY_F(37) - ----E F37 function key -key_f38 kf38 str FS KEY_F(38) - ----E F38 function key -key_f39 kf39 str FT KEY_F(39) - ----E F39 function key -key_f40 kf40 str FU KEY_F(40) - ----E F40 function key -key_f41 kf41 str FV KEY_F(41) - ----E F41 function key -key_f42 kf42 str FW KEY_F(42) - ----E F42 function key -key_f43 kf43 str FX KEY_F(43) - ----E F43 function key -key_f44 kf44 str FY KEY_F(44) - ----E F44 function key -key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key -key_f46 kf46 str Fa KEY_F(46) - ----E F46 function key -key_f47 kf47 str Fb KEY_F(47) - ----E F47 function key -key_f48 kf48 str Fc KEY_F(48) - ----E F48 function key -key_f49 kf49 str Fd KEY_F(49) - ----E F49 function key -key_f50 kf50 str Fe KEY_F(50) - ----E F50 function key -key_f51 kf51 str Ff KEY_F(51) - ----E F51 function key -key_f52 kf52 str Fg KEY_F(52) - ----E F52 function key -key_f53 kf53 str Fh KEY_F(53) - ----E F53 function key -key_f54 kf54 str Fi KEY_F(54) - ----E F54 function key -key_f55 kf55 str Fj KEY_F(55) - ----E F55 function key -key_f56 kf56 str Fk KEY_F(56) - ----E F56 function key -key_f57 kf57 str Fl KEY_F(57) - ----E F57 function key -key_f58 kf58 str Fm KEY_F(58) - ----E F58 function key -key_f59 kf59 str Fn KEY_F(59) - ----E F59 function key -key_f60 kf60 str Fo KEY_F(60) - ----E F60 function key -key_f61 kf61 str Fp KEY_F(61) - ----E F61 function key -key_f62 kf62 str Fq KEY_F(62) - ----E F62 function key -key_f63 kf63 str Fr KEY_F(63) - ----E F63 function key -# end of strings in HPUX 9 -char_padding rmp str rP - - ----- like ip but when in insert mode -acs_chars acsc str ac - - ----- graphics charset pairs, based on vt100 -key_btab kcbt str kB KEY_BTAB 0541 ----- back-tab key -enter_xon_mode smxon str SX - - ----- turn on xon/xoff handshaking -exit_xon_mode rmxon str RX - - ----- turn off xon/xoff handshaking -enter_am_mode smam str SA - - ----- turn on automatic margins -exit_am_mode rmam str RA - - ----- turn off automatic margins -xon_character xonc str XN - - ----- XON character -xoff_character xoffc str XF - - ----- XOFF character -ena_acs enacs str eA - - ----- enable alternate char set -key_beg kbeg str @1 KEY_BEG 0542 ----- begin key -key_cancel kcan str @2 KEY_CANCEL 0543 ----- cancel key -key_close kclo str @3 KEY_CLOSE 0544 ----- close key -key_command kcmd str @4 KEY_COMMAND 0545 ----- command key -key_copy kcpy str @5 KEY_COPY 0546 ----- copy key -key_create kcrt str @6 KEY_CREATE 0547 ----- create key -key_end kend str @7 KEY_END 0550 ----- end key -key_enter kent str @8 KEY_ENTER 0527 ----- enter/send key -key_exit kext str @9 KEY_EXIT 0551 ----- exit key -key_find kfnd str @0 KEY_FIND 0552 ----- find key -key_help khlp str %1 KEY_HELP 0553 ----- help key -key_mark kmrk str %2 KEY_MARK 0554 ----- mark key -key_message kmsg str %3 KEY_MESSAGE 0555 ----- message key -key_move kmov str %4 KEY_MOVE 0556 ----- move key -key_next knxt str %5 KEY_NEXT 0557 ----- next key -key_open kopn str %6 KEY_OPEN 0560 ----- open key -key_options kopt str %7 KEY_OPTIONS 0561 ----- options key -key_previous kprv str %8 KEY_PREVIOUS 0562 ----- previous key -key_print kprt str %9 KEY_PRINT 0532 ----- print key -key_redo krdo str %0 KEY_REDO 0563 ----- redo key -key_reference kref str &1 KEY_REFERENCE 0564 ----- reference key -key_refresh krfr str &2 KEY_REFRESH 0565 ----- refresh key -key_replace krpl str &3 KEY_REPLACE 0566 ----- replace key -key_restart krst str &4 KEY_RESTART 0567 ----- restart key -key_resume kres str &5 KEY_RESUME 0570 ----- resume key -key_save ksav str &6 KEY_SAVE 0571 ----- save key -key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key -key_undo kund str &8 KEY_UNDO 0630 ----- undo key -key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key -key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key -key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key -key_scopy kCPY str *2 KEY_SCOPY 0575 ----- shifted copy key -key_screate kCRT str *3 KEY_SCREATE 0576 ----- shifted create key -key_sdc kDC str *4 KEY_SDC 0577 ----- shifted delete-character key -key_sdl kDL str *5 KEY_SDL 0600 ----- shifted delete-line key -key_select kslt str *6 KEY_SELECT 0601 ----- select key -key_send kEND str *7 KEY_SEND 0602 ----- shifted end key -key_seol kEOL str *8 KEY_SEOL 0603 ----- shifted clear-to-end-of-line key -key_sexit kEXT str *9 KEY_SEXIT 0604 ----- shifted exit key -key_sfind kFND str *0 KEY_SFIND 0605 ----- shifted find key -key_shelp kHLP str #1 KEY_SHELP 0606 ----- shifted help key -key_shome kHOM str #2 KEY_SHOME 0607 ----- shifted home key -key_sic kIC str #3 KEY_SIC 0610 ----- shifted insert-character key -key_sleft kLFT str #4 KEY_SLEFT 0611 ----- shifted left-arrow key -key_smessage kMSG str %a KEY_SMESSAGE 0612 ----- shifted message key -key_smove kMOV str %b KEY_SMOVE 0613 ----- shifted move key -key_snext kNXT str %c KEY_SNEXT 0614 ----- shifted next key -key_soptions kOPT str %d KEY_SOPTIONS 0615 ----- shifted options key -key_sprevious kPRV str %e KEY_SPREVIOUS 0616 ----- shifted previous key -key_sprint kPRT str %f KEY_SPRINT 0617 ----- shifted print key -key_sredo kRDO str %g KEY_SREDO 0620 ----- shifted redo key -key_sreplace kRPL str %h KEY_SREPLACE 0621 ----- shifted replace key -key_sright kRIT str %i KEY_SRIGHT 0622 ----- shifted right-arrow key -key_srsume kRES str %j KEY_SRSUME 0623 ----- shifted resume key -key_ssave kSAV str !1 KEY_SSAVE 0624 ----- shifted save key -key_ssuspend kSPD str !2 KEY_SSUSPEND 0625 ----- shifted suspend key -key_sundo kUND str !3 KEY_SUNDO 0626 ----- shifted undo key -req_for_input rfi str RF - - ----- send next input char (for ptys) -clr_bol el1 str cb - - ----- Clear to beginning of line -clear_margins mgc str MC - - ----- clear right and left soft margins -set_left_margin smgl str ML - - ----- set left soft margin at current column. (ML is not in BSD termcap). -set_right_margin smgr str MR - - ----- set right soft margin at current column -label_format fln str Lf - - ----- label format -set_clock sclk str SC - - ----- set clock, #1 hrs #2 mins #3 secs -display_clock dclk str DK - - ----- display clock -remove_clock rmclk str RC - - ----- remove clock -create_window cwin str CW - - ----- define a window #1 from #2,#3 to #4,#5 -goto_window wingo str WG - - ----- go to window #1 -hangup hup str HU - - ----- hang-up phone -dial_phone dial str DI - - ----- dial number #1 -quick_dial qdial str QD - - ----- dial number #1 without checking -tone tone str TO - - ----- select touch tone dialing -pulse pulse str PU - - ----- select pulse dialing -flash_hook hook str fh - - ----- flash switch hook -fixed_pause pause str PA - - ----- pause for 2-3 seconds -wait_tone wait str WA - - ----- wait for dial-tone -user0 u0 str u0 - - ----- User string #0 -user1 u1 str u1 - - ----- User string #1 -user2 u2 str u2 - - ----- User string #2 -user3 u3 str u3 - - ----- User string #3 -user4 u4 str u4 - - ----- User string #4 -user5 u5 str u5 - - ----- User string #5 -user6 u6 str u6 - - ----- User string #6 -user7 u7 str u7 - - ----- User string #7 -user8 u8 str u8 - - ----- User string #8 -user9 u9 str u9 - - ----- User string #9 -# -# SVr4 added these capabilities to support color -# -orig_pair op str op - - ----- Set default pair to its original value -orig_colors oc str oc - - ----- Set all color pairs to the original ones -initialize_color initc str Ic - - ----- initialize color #1 to (#2,#3,#4) -initialize_pair initp str Ip - - ----- Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7) -set_color_pair scp str sp - - ----- Set current color pair to #1 -set_foreground setf str Sf - - ----- Set foreground color #1 -set_background setb str Sb - - ----- Set background color #1 -# -# SVr4 added these capabilities to support printers -# -change_char_pitch cpi str ZA - - ----- Change number of characters per inch to #1 -change_line_pitch lpi str ZB - - ----- Change number of lines per inch to #1 -change_res_horz chr str ZC - - ----- Change horizontal resolution to #1 -change_res_vert cvr str ZD - - ----- Change vertical resolution to #1 -define_char defc str ZE - - ----- Define a character #1, #2 dots wide, descender #3 -enter_doublewide_mode swidm str ZF - - ----- Enter double-wide mode -enter_draft_quality sdrfq str ZG - - ----- Enter draft-quality mode -enter_italics_mode sitm str ZH - - ----- Enter italic mode -enter_leftward_mode slm str ZI - - ----- Start leftward carriage motion -enter_micro_mode smicm str ZJ - - ----- Start micro-motion mode -enter_near_letter_quality snlq str ZK - - ----- Enter NLQ mode -enter_normal_quality snrmq str ZL - - ----- Enter normal-quality mode -enter_shadow_mode sshm str ZM - - ----- Enter shadow-print mode -enter_subscript_mode ssubm str ZN - - ----- Enter subscript mode -enter_superscript_mode ssupm str ZO - - ----- Enter superscript mode -enter_upward_mode sum str ZP - - ----- Start upward carriage motion -exit_doublewide_mode rwidm str ZQ - - ----- End double-wide mode -exit_italics_mode ritm str ZR - - ----- End italic mode -exit_leftward_mode rlm str ZS - - ----- End left-motion mode -exit_micro_mode rmicm str ZT - - ----- End micro-motion mode -exit_shadow_mode rshm str ZU - - ----- End shadow-print mode -exit_subscript_mode rsubm str ZV - - ----- End subscript mode -exit_superscript_mode rsupm str ZW - - ----- End superscript mode -exit_upward_mode rum str ZX - - ----- End reverse character motion -micro_column_address mhpa str ZY - - ----- Like column_address in micro mode -micro_down mcud1 str ZZ - - ----- Like cursor_down in micro mode -micro_left mcub1 str Za - - ----- Like cursor_left in micro mode -micro_right mcuf1 str Zb - - ----- Like cursor_right in micro mode -micro_row_address mvpa str Zc - - ----- Like row_address #1 in micro mode -micro_up mcuu1 str Zd - - ----- Like cursor_up in micro mode -order_of_pins porder str Ze - - ----- Match software bits to print-head pins -parm_down_micro mcud str Zf - - ----- Like parm_down_cursor in micro mode -parm_left_micro mcub str Zg - - ----- Like parm_left_cursor in micro mode -parm_right_micro mcuf str Zh - - ----- Like parm_right_cursor in micro mode -parm_up_micro mcuu str Zi - - ----- Like parm_up_cursor in micro mode -select_char_set scs str Zj - - ----- Select character set, #1 -set_bottom_margin smgb str Zk - - ----- Set bottom margin at current line -set_bottom_margin_parm smgbp str Zl - - ----- Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom -set_left_margin_parm smglp str Zm - - ----- Set left (right) margin at column #1 -set_right_margin_parm smgrp str Zn - - ----- Set right margin at column #1 -set_top_margin smgt str Zo - - ----- Set top margin at current line -set_top_margin_parm smgtp str Zp - - ----- Set top (bottom) margin at row #1 -start_bit_image sbim str Zq - - ----- Start printing bit image graphics -start_char_set_def scsd str Zr - - ----- Start character set definition #1, with #2 characters in the set -stop_bit_image rbim str Zs - - ----- Stop printing bit image graphics -stop_char_set_def rcsd str Zt - - ----- End definition of character set #1 -subscript_characters subcs str Zu - - ----- List of subscriptable characters -superscript_characters supcs str Zv - - ----- List of superscriptable characters -these_cause_cr docr str Zw - - ----- Printing any of these characters causes CR -zero_motion zerom str Zx - - ----- No motion for subsequent character -#%.TE -#%.ad -#% -#%The following string capabilities are present in the SVr4.0 term structure, -#%but were originally not documented in the man page. -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw18. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -char_set_names csnm str Zy - - ----- Produce #1'th item from list of character set names -key_mouse kmous str Km KEY_MOUSE 0631 ----- Mouse event has occurred -mouse_info minfo str Mi - - ----- Mouse status information -req_mouse_pos reqmp str RQ - - ----- Request mouse position -get_mouse getm str Gm - - ----- Curses should get button events, parameter #1 not documented. -set_a_foreground setaf str AF - - ----- Set foreground color to #1, using ANSI escape -set_a_background setab str AB - - ----- Set background color to #1, using ANSI escape -pkey_plab pfxl str xl - - ----- Program function key #1 to type string #2 and show string #3 -device_type devt str dv - - ----- Indicate language/codeset support -code_set_init csin str ci - - ----- Init sequence for multiple codesets -set0_des_seq s0ds str s0 - - ----- Shift to codeset 0 (EUC set 0, ASCII) -set1_des_seq s1ds str s1 - - ----- Shift to codeset 1 -set2_des_seq s2ds str s2 - - ----- Shift to codeset 2 -set3_des_seq s3ds str s3 - - ----- Shift to codeset 3 -set_lr_margin smglr str ML - - ----- Set both left and right margins to #1, #2. (ML is not in BSD termcap). -set_tb_margin smgtb str MT - - ----- Sets both top and bottom margins to #1, #2 -bit_image_repeat birep str Xy - - ----- Repeat bit image cell #1 #2 times -bit_image_newline binel str Zz - - ----- Move to next row of the bit image -bit_image_carriage_return bicr str Yv - - ----- Move to beginning of same row -color_names colornm str Yw - - ----- Give name for color #1 -define_bit_image_region defbi str Yx - - ----- Define rectangular bit image region -end_bit_image_region endbi str Yy - - ----- End a bit-image region -set_color_band setcolor str Yz - - ----- Change to ribbon color #1 -set_page_length slines str YZ - - ----- Set page length to #1 lines -# -# SVr4 added these capabilities for direct PC-clone support -# -display_pc_char dispc str S1 - - ----- Display PC character #1 -enter_pc_charset_mode smpch str S2 - - ----- Enter PC character display mode -exit_pc_charset_mode rmpch str S3 - - ----- Exit PC character display mode -enter_scancode_mode smsc str S4 - - ----- Enter PC scancode mode -exit_scancode_mode rmsc str S5 - - ----- Exit PC scancode mode -pc_term_options pctrm str S6 - - ----- PC terminal options -scancode_escape scesc str S7 - - ----- Escape for scancode emulation -alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulation -#%.TE -#%.ad -#% -#%.in .8i -#%The XSI Curses standard added these hardcopy capabilities. -#%They were used in some post-4.1 versions of System V curses, -#%e.g., Solaris 2.5 and IRIX 6.x. -#%Except for \fBYI\fP, the \fBncurses\fR termcap names for them are invented. -#%According to the XSI Curses standard, they have no termcap names. -#%If your compiled terminfo entries use these, -#%they may not be binary-compatible with System V terminfo -#%entries after SVr4.1; beware! -#% -#%AIX and Solaris do not provide termcap names for these; HPUX does. -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -set_pglen_inch slength str YI - - ----- Set page length to #1 hundredth of an inch (some implementations use sL for termcap). -enter_horizontal_hl_mode ehhlm str Q1 - - ----- Enter horizontal highlight mode -enter_left_hl_mode elhlm str Q2 - - ----- Enter left highlight mode -enter_low_hl_mode elohlm str Q3 - - ----- Enter low highlight mode -enter_right_hl_mode erhlm str Q4 - - ----- Enter right highlight mode -enter_top_hl_mode ethlm str Q5 - - ----- Enter top highlight mode -enter_vertical_hl_mode evhlm str Q6 - - ----- Enter vertical highlight mode -set_a_attributes sgr1 str Q7 - - ----- Define second set of video attributes #1-#6 -exit_horizontal_hl_mode rmhhlm str Q8 - - ----K Exit horizontal highlight mode -exit_left_hl_mode rmlhlm str Q9 - - ----K Exit left highlight mode -exit_low_hl_mode rmlohlm str Qa - - ----K Exit low highlight mode -exit_right_hl_mode rmrhlm str Qb - - ----K Exit right highlight mode -exit_top_hl_mode rmthlm str Qc - - ----K Exit top highlight mode -exit_vertical_hl_mode rmvhlm str Qd - - ----K Exit vertical highlight mode -#%.TE -#%.ad -# -# The magic token below tells the tic compiler-generator code that all the caps -# past it should be ignored (not written out) when dumping terminfo objects. It -# also tells the man page table generator not to pass through following lines -# This means we can have obsolete capabilities and pseudo-capabilities that are -# recognized for termcap or terminfo compilation, but not output. -# -# %%-STOP-HERE-%% -# -# Don't move this casually! In fact, don't move it at all unless you're -# either doing it to add System V or XPG4 extensions, or have decided you -# don't care about SVr4 binary compatibility. -# -############################################################################# -# -# TERMCAP EXTENSION CAPABILITIES -# -# The capabilities below are either obsolete or extensions on certain systems. -# They are not used by SVR4 terminfo. Some are used by captoinfo to translate -# termcap sources; the rest are listed for completeness, and in case somebody -# cares about them enough to hack in code that will translate them into -# terminfo capabilities. -# -# The first part of the list is from Ross Ridge's `mytinfo' package -# (comp.sources.unix, volume 26); the variable names and terminfo names (as -# well as the termcap codes) match his list. -# -# This group of codes is not marked obsolete in 4.4BSD, but have no direct -# terminfo equivalents. The rs capability is specially translated to terminfo -# r2, and vice versa, if an entry does not already have an r2. Similarly, -# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2). -# The ug capability is thrown away, but assumed to be whatever sg is if the -# latter is nonzero and we're dumping in termcap format. -# -termcap_init2 OTi2 str i2 - - YB--- secondary initialization string -termcap_reset OTrs str rs - - YB-G- terminal reset string -magic_cookie_glitch_ul OTug num ug - - YBCGE number of blanks left by ul -# -# Obsolete termcap capabilities. Some are used for termcap translation. The -# code uses the 'OT' prefix we put on obsolete capabilities to suppress -# printing them in terminfo source dumps of compiled entries. -# -backspaces_with_bs OTbs bool bs - - YBCGE uses ^H to move left -crt_no_scrolling OTns bool ns - - YBCG- crt cannot scroll -no_correctly_working_cr OTnc bool nc - - YBCG- no way to go to start of line -carriage_return_delay OTdC num dC - - YB-G- pad needed for CR -new_line_delay OTdN num dN - - YB-G- pad needed for LF -linefeed_if_not_lf OTnl str nl - - YBCGE use to move down -backspace_if_not_bs OTbc str bc - - YBCGE move left, if not ^H -# -# GNU termcap library extensions. The GNU termcap file distributed with -# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the -# BSD termcap file. The name clash with terminfo MT is resolved by type -# info; MT is converted to km. -# -gnu_has_meta_key OTMT bool MT - - ----E has meta key -# gnu_tab_width OTtw num tw - - ----E tab width in spaces -# -# GNU termcap *does* include the following extended capability, Only the -# now-obsolete Ann Arbor terminals used it. -# -# gnu_change_scroll_region OTcS str cS - - ---GE alternate set scrolling region -# -# The following comments describe capnames so ancient that I believe no -# software uses them any longer. Some of these have to go because they -# clash with terminfo names in ways that cannot be resolved by type -# information. -# -# These mytinfo codes are not used in the 4.4BSD curses code. They are -# marked obsolete in the 4.4BSD manual pages. -# -# There is one conflict with terminfo; ma is in both. This conflict is -# resolved by type information. -# -# The `ko' capability is translated by special code. It should contain a -# comma-separated list of capabilities for which there are corresponding keys. -# The `kn' code is accepted but ignored. -# -# The `ma' capability was a 4.0BSD feature used by vi version 2. -# It consists of pairs of characters corresponding to kl, kr, ku, kd, and kh. -# Besides being obsolete, that interpretation conflicts with max_attributes. -# -# Here is a description of memory_lock_above and memory_unlock: -# "You can 'freeze' data on the screen by turning on Memory Lock in a line of -# text. All lines above the cursor's current line become locked in place on -# the screen. Then enter data normally. When the screen fills up, any -# further data entered forces the first line of unfrozen line text to scroll -# under the frozen data. Lines scrolled off the screen are inserted into -# memory immediately preceding the first frozen line." (from the HP 700/96 -# User's manual). VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l. -# -# Applications that use terminfo are supposed to behave as though xr is -# always true. -# -linefeed_is_newline OTNL bool NL - - YB--- move down with \n -# even_parity OTEP bool EP - - -B--- terminal requires even parity -# odd_parity OTOP bool OP - - -B--- terminal requires odd parity -# half_duplex OTHD bool HD - - -B--- terminal is half-duplex -# lower_case_only OTLC bool LC - - -B--- terminal has only lower case -# upper_case_only OTUC bool UC - - -B--- terminal has only upper case -backspace_delay OTdB num dB - - YB-G- padding required for ^H -# form_feed_delay OTdF num dF - - -B-G- padding required for ^L -horizontal_tab_delay OTdT num dT - - YB-G- padding required for ^I -# vertical_tab_delay OTdV num dV - - -B--- padding required for ^V -number_of_function_keys OTkn num kn - - -B-G- count of function keys -other_non_function_keys OTko str ko - - -B-G- list of self-mapped keycaps -arrow_key_map OTma str ma - - YBC-- map motion-keys for vi version 2 -# memory_lock_above OTml str ml - - -B--- lock visible screen memory above the current line -# memory_unlock OTmu str mu - - -B--- unlock visible screen memory above the current line -has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I -return_does_clr_eol OTxr bool xr - - YB--- return clears the line -# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch -# -# mytinfo described this as a termcap capability, but it is not listed in the -# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses -# package, like System V, behaves as though it is always true. -# -# rind_only_at_top OTxq bool xq - - ----- reverse index only works from top line -# -# University of Waterloo termcap extensions (as described in mytinfo). -# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot -# be resolved by a type check. The descriptions are guesses from what was -# in the mytinfo tables. -# -# key_interrupt_char OTki str ki - - ----- string set by interrupt key (?) -# key_kill_char OTkk str kk - - ----- string set by kill key (?) -# key_suspend_char OTkz str kz - - ----- string set by suspend key (?) -# initialization_messy OTxc bool xc - - ----- initialization leaves garbage on the screen (?) -# ind_at_bottom_does_cr OTxl bool xl - - ----- index does a carriage return -# -# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package. -# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type -# check. -# -# scroll_left OTsl1 str Sl - - ----- scroll screen leftward -# scroll_right OTsr1 str Sr - - ----- scroll screen rightward -# parm_scroll_left OTsl str SL - - ----- scroll screen leftward #1 characters -# parm_scroll_right OTsr str SR - - ----- scroll screen rightward #1 characters -# -# The mytinfo capabilities end here. -# -# XENIX extensions: -# -# Xenix defined its own set of forms-drawing capabilities: -# -# cap IBM ASCII description ACS ASCII -# --- ----------- -------------------- ------------- ------ -# G1 191 \277 M-? single upper right ACS_URCORNER -# G2 218 \332 M-Z single upper left ACS_ULCORNER -# G3 192 \300 M-@ single lower left ACS_LLCORNER -# G4 217 \331 M-Y single lower right ACS_LRCORNER -# G5 187 \273 M-; double upper right -# G6 201 \311 M-I double upper left -# G7 200 \310 M-H double lower left -# G8 188 \274 M-< double lower right -# GC 197 \305 M-E single intersection ACS_PLUS _ _ -# GD 194 \302 M-B single down-tick ACS_TTEE | -# GH 196 \304 M-D single horizontal line ACS_HLINE -# GL 180 \264 M-4 single left tick ACS_RTEE -| -# GR 195 \303 M-C single right tick ACS_LTEE |- -# GU 193 \301 M-A single up tick ACS_BTEE _|_ -# GV 179 \263 M-3 single vertical line ACS_VLINE -# Gc 206 \316 M-N double intersection -# Gd 203 \313 M-K double down tick -# Gh 205 \315 M-M double horizontal line -# Gl 204 \204 M-L double left tick -# Gr 185 \271 M-9 double right tick -# Gu 202 \312 M-J double up tick -# Gv 186 \272 M-: double vertical line -# -# The compiler will translate the single-line caps and discard the others -# (via IGNORE aliases further down). We don't want to do normal pad -# translation on these, they're often single-character printable ASCII -# strings that happen to be numerics. There's awk code in parametrized.sh -# that detects the acs_ prefix and uses it to suppress pad translation. -# These terminfo names are invented. -# -acs_ulcorner OTG2 str G2 - - ----- single upper left -acs_llcorner OTG3 str G3 - - ----- single lower left -acs_urcorner OTG1 str G1 - - ----- single upper right -acs_lrcorner OTG4 str G4 - - ----- single lower right -acs_ltee OTGR str GR - - ----- tee pointing right -acs_rtee OTGL str GL - - ----- tee pointing left -acs_btee OTGU str GU - - ----- tee pointing up -acs_ttee OTGD str GD - - ----- tee pointing down -acs_hline OTGH str GH - - ----- single horizontal line -acs_vline OTGV str GV - - ----- single vertical line -acs_plus OTGC str GC - - ----- single intersection -# -############################################################################# -# -# TERMINFO EXTENSION CAPABILITIES -# -# (see Caps-ncurses for the complete set of comments) -# -box_chars_1 box1 str bx - - ----K box characters primary set -# -############################################################################# diff --git a/include/Caps.keys b/include/Caps.keys deleted file mode 100644 index 09d7a47..0000000 --- a/include/Caps.keys +++ /dev/null @@ -1,1062 +0,0 @@ -############################################################################## -# Copyright 2019-2020,2021 Thomas E. Dickey # -# Copyright 2001-2015,2016 Free Software Foundation, Inc. # -# # -# Permission is hereby granted, free of charge, to any person obtaining a # -# copy of this software and associated documentation files (the "Software"), # -# to deal in the Software without restriction, including without limitation # -# the rights to use, copy, modify, merge, publish, distribute, distribute # -# with modifications, sublicense, and/or sell copies of the Software, and to # -# permit persons to whom the Software is furnished to do so, subject to the # -# following conditions: # -# # -# The above copyright notice and this permission notice shall be included in # -# all copies or substantial portions of the Software. # -# # -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # -# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # -# DEALINGS IN THE SOFTWARE. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas Dickey -# and: Ilya Zakharevich -# -# $Id: Caps.keys,v 1.17 2021/10/08 07:55:48 tom Exp $ -# -# This is an adaptation of ncurses' termcap/terminfo capability table, which -# is illustrates an experimental extension to describe alt-, shift- and -# control-modifiers applied to function and normal keys, as done on IBM pc's. -# -# This table is used to generate initializers for tables that drive tic, -# infocmp, and the library compilation code used to support the termcap -# compatibility hack. It is also used to generate the tabular portion of the -# terminfo(5) man page; lines beginning with `#%' are passed through to become -# the terminfo table. -# -# This file has three major sections; a standard-capabilities table, two -# extension-capability tables, and a section of aliases declarations. -# The first two have the same format, as follows: -# -# FILE FORMAT -# -# Column 1: terminfo variable name -# Column 2: terminfo capability name -# Column 3: capability type (boolean, numeric, or string) -# Column 4: termcap capability name -# Column 5: KEY_xxx name, if any, `-' otherwise -# Column 6: value for KEY_xxx name, if any, `-' otherwise -# Column 7: Lead with `Y' if capability should be emitted in termcap -# translations, `-' otherwise -# Column 8: capability description -# -# The codes following [Y-] in column 7 describe the versions of termcap which -# use the given capability. This information is not used by the curses library -# proper; rather, it is there to help the terminfo maintainer avoid emitting -# termcap entry translations that are more than 1023 bytes long (and tank a -# lot of old termcap-using programs). The codes read as follows: -# B = mentioned in the BSD man page for 4.4BSD curses -# C = used by the 4.4BSD curses library -# G = mentioned in the documentation for GNU termcap -# E = used by GNU Emacs -# K = remove this terminfo capability when translating to standard format -# The important codes are C and E. A cap with C or E should be preserved in -# translation if possible. The problem is that preserving all such caps may -# lead to some termcap translations being too long. The termcap maintainer -# has a bit of a juggling act to do...potential problem cases are marked with -# an asterisk (*). -# -# The aliases section has the following format: -# -# Column 1: either `capalias' or `infoalias' -# Column 2: name to be aliased -# Column 3: what name it should translate to. The name IGNORE means it -# should be discarded with a warning message. -# Column 4: name of the extension set (used for compiler warning messages) -# Column 5: capability description (usually an associated terminfo variable) -# -# HANDLING TERMCAP AND TERMINFO EXTENSIONS -# -# There are basically five different ways to handle termcap and terminfo -# extensions: -# -# 1. Don't list the capname here, or list it but comment it out (the latter -# is preferable; someone might want to handle it in the future). If you do -# this, the capability will be treated as unknown and raise a warning from -# the compiler. -# -# 2. Alias it. This is appropriate if the capability has the same meaning -# as an already-supported one. The compiler will handle aliasing, emitting -# an appropriate informational message whenever an alias fires. -# -# 3. List it in the standard table. You almost certainly do *not* want -# to do this -- the capabilities in that one, and their order, have been -# carefully chosen to be SVr4-binary-compatible when they're written out -# as a terminfo object, and breaking this would be bad. It is up to the ncurses -# library what to do with the terminfo data after it is read in. -# -# 4. List it in the aliases table with an IGNORE target field. If you -# do this, the capability will be ignored on input (though the user will -# get a warning message about it). -# -# 5. List it in the extensions table. If you do this, the compiler will -# silently accept the capability, but the curses library proper will never -# see it (because it won't be written out as part of the terminfo object -# format). It is up to you what you have the compiler do with it. -# -# There are two opposite reasons to choose option 5. One is when you want -# to eat the capability silently and discard it when doing translations -# to terminfo with tic -I. Some very old obsolete BSD caps like :kn: are -# in this class. Nothing will ever use them again. -# -# More usually, you want the compiler to try to deduce something from the -# capability value that it can use to translate it into your output format. -# You'll need to write custom code, probably in postprocess_termcap() or -# postprocess_terminfo(), to handle the translation. -# -# CONTROLLING ENTRY LENGTH -# -# Notes on specific elisions made to fit translations within 1023 bytes: -# -# Machines with IBM PC-like keyboards want to be able to define the following -# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap- -# only environments for End or Home-Down), key_dc, and key_ic. This is also -# the set of keys the `joe' editor will be upset if it can't see. So don't -# trim those out of the set to be translated to termcap, or various users of -# the termcap file will become irate. -# -# It might look tempting to leave those long init strings out of translations. -# We can't do it (yet); 4.4BSD tput and tset use them. -# -# We retain the sgr capability in translation in spite of the fact that neither -# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are -# hard to understand without it, and (b) the entries in which it is long tend -# to be older types that don't use up a lot of string space on function keys. -# The tic(1) translation code will complain and elide it if it makes a critical -# difference (there is special code in tic to recognize this situation). -# -# Yes, BSD tset(1) uses hpa. We elide hpa/vpa anyway because the motion -# optimizer in BSD curses didn't use them. This omission seems to be the -# single most effective one, it shortened the resolved length of all thirteen -# problem entries in the 9.9.0 version of the terminfo master below critical. -# -# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap -# translations go back over critical if we do this. As 4.4BSD curses fades -# into history and GNU termcap's application base shrinks towards being GNU -# Emacs only, we'll probably elide out some BSD-only capabilities in order -# to buy space for non-essentials Emacs is still using. Capabilities high -# on that hit list: rc, sc, uc. -# -############################################################################# -# -# STANDARD CAPABILITIES -# -#%The following is a complete table of the capabilities included in a -#%terminfo description block and available to terminfo-using code. In each -#%line of the table, -#% -#%The \fBvariable\fR is the name by which the programmer (at the terminfo level) -#%accesses the capability. -#% -#%The \fBcapname\fR is the short name used in the text of the database, -#%and is used by a person updating the database. -#%Whenever possible, capnames are chosen to be the same as or similar to -#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses -#%identical or very similar names). Semantics are also intended to match -#%those of the specification. -#% -#%The termcap code is the old -#%.B termcap -#%capability name (some capabilities are new, and have names which termcap -#%did not originate). -#%.P -#%Capability names have no hard length limit, but an informal limit of 5 -#%characters has been adopted to keep them short and to allow the tabs in -#%the source file -#%.B Caps -#%to line up nicely. -#% -#%Finally, the description field attempts to convey the semantics of the -#%capability. You may find some codes in the description field: -#%.TP -#%(P) -#%indicates that padding may be specified -#%.TP -#%#[1-9] -#%in the description field indicates that the string is passed -#%through \fBtparm\fP(3X) with parameters as given (#\fIi\fP). -#%.IP -#%If no parameters are listed in the description, -#%passing the string through \fBtparm\fP(3X) may give unexpected results, -#%e.g., if it contains percent (%%) signs. -#%.TP -#%(P*) -#%indicates that padding may vary in proportion to the number of -#%lines affected -#%.TP -#%(#\d\fIi\fP\u) -#%indicates the \fIi\fP\uth\d parameter. -#% -#%.PP -#% These are the boolean capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBBooleans name Code\fR -auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column -auto_right_margin am bool am - - YBCGE terminal has automatic margins -no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C) -ceol_standout_glitch xhp bool xs - - YBCGE standout not erased by overwriting (hp) -eat_newline_glitch xenl bool xn - - YBCGE newline ignored after 80 cols (concept) -erase_overstrike eo bool eo - - YBCG- can erase overstrikes with a blank -generic_type gn bool gn - - YB-G- generic line type -hard_copy hc bool hc - - YBCG- hardcopy terminal -has_meta_key km bool km - - YB-GE Has a meta key (i.e., sets 8th-bit) -has_status_line hs bool hs - - YB-G- has extra status line -insert_null_glitch in bool in - - YBCGE insert mode distinguishes nulls -memory_above da bool da - - YBCG- display may be retained above the screen -memory_below db bool db - - YB-GE display may be retained below the screen -move_insert_mode mir bool mi - - YBCGE safe to move while in insert mode -move_standout_mode msgr bool ms - - YBCGE safe to move while in standout mode -over_strike os bool os - - YBCG- terminal can overstrike -status_line_esc_ok eslok bool es - - YB-G- escape can be used on the status line -dest_tabs_magic_smso xt bool xt - - YBCGE tabs destructive, magic so char (t1061) -tilde_glitch hz bool hz - - YB-GE cannot print ~'s (Hazeltine) -transparent_underline ul bool ul - - YBCGE underline character overstrikes -xon_xoff xon bool xo - - YB--- terminal uses xon/xoff handshaking -needs_xon_xoff nxon bool nx - - ----- padding will not work, xon/xoff required -prtr_silent mc5i bool 5i - - ----- printer will not echo on screen -hard_cursor chts bool HC - - ----- cursor is hard to see -non_rev_rmcup nrrmc bool NR - - ----- smcup does not reverse rmcup -no_pad_char npc bool NP - - ----- pad character does not exist -non_dest_scroll_region ndscr bool ND - - ----- scrolling region is non-destructive -can_change ccc bool cc - - ----- terminal can re-define existing colors -back_color_erase bce bool ut - - ----- screen erased with background color -hue_lightness_saturation hls bool hl - - ----- terminal uses only HLS color notation (Tektronix) -col_addr_glitch xhpa bool YA - - ----- only positive motion for hpa/mhpa caps -cr_cancels_micro_mode crxm bool YB - - ----- using cr turns off micro mode -has_print_wheel daisy bool YC - - ----- printer needs operator to change character set -row_addr_glitch xvpa bool YD - - ----- only positive motion for vpa/mvpa caps -semi_auto_right_margin sam bool YE - - ----- printing in last column causes cr -cpi_changes_res cpix bool YF - - ----- changing character pitch changes resolution -lpi_changes_res lpix bool YG - - ----- changing line pitch changes resolution -#%.TE -#%.ad -#% -#%These are the numeric capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBNumeric name Code\fR -columns cols num co - - YBCGE number of columns in a line -init_tabs it num it - - YB-G- tabs initially every # spaces -lines lines num li - - YBCGE number of lines on screen or page -lines_of_memory lm num lm - - YB-G- lines of memory if > line. 0 means varies -magic_cookie_glitch xmc num sg - - YBCGE number of blank characters left by smso or rmso -padding_baud_rate pb num pb - - YB-GE lowest baud rate where padding needed -virtual_terminal vt num vt - - YB--- virtual terminal number (CB/unix) -width_status_line wsl num ws - - YB-G- number of columns in status line -num_labels nlab num Nl - - ----- number of labels on screen -label_height lh num lh - - ----- rows in each label -label_width lw num lw - - ----- columns in each label -max_attributes ma num ma - - YBC-- maximum combined attributes terminal can handle -maximum_windows wnum num MW - - ----- maximum number of definable windows -# These came in with SVr4's color support -max_colors colors num Co - - ----- maximum number of colors on screen -max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen -no_color_video ncv num NC - - ----- video attributes that cannot be used with colors -#%.TE -#%.ad -#% -#%The following numeric capabilities are present in the SVr4.0 term structure, -#%but are not yet documented in the man page. They came in with SVr4's -#%printer support. -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBNumeric name Code\fR -buffer_capacity bufsz num Ya - - ----- numbers of bytes buffered before printing -dot_vert_spacing spinv num Yb - - ----- spacing of pins vertically in pins per inch -dot_horz_spacing spinh num Yc - - ----- spacing of dots horizontally in dots per inch -max_micro_address maddr num Yd - - ----- maximum value in micro_..._address -max_micro_jump mjump num Ye - - ----- maximum value in parm_..._micro -micro_col_size mcs num Yf - - ----- character step size when in micro mode -micro_line_size mls num Yg - - ----- line step size when in micro mode -number_of_pins npins num Yh - - ----- numbers of pins in print-head -output_res_char orc num Yi - - ----- horizontal resolution in units per line -output_res_line orl num Yj - - ----- vertical resolution in units per line -output_res_horz_inch orhi num Yk - - ----- horizontal resolution in units per inch -output_res_vert_inch orvi num Yl - - ----- vertical resolution in units per inch -print_rate cps num Ym - - ----- print rate in characters per second -wide_char_size widcs num Yn - - ----- character step size when in double wide mode -buttons btns num BT - - ----- number of buttons on mouse -bit_image_entwining bitwin num Yo - - ----- number of passes for each bit-image row -bit_image_type bitype num Yp - - ----- type of bit-image device -#%.TE -#%.ad -#% -#%These are the string capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -back_tab cbt str bt - - YBCGE back tab (P) -bell bel str bl - - YB-GE audible signal (bell) (P) -carriage_return cr str cr - - YBCGE carriage return (P*) (P*) -change_scroll_region csr str cs - - YBCGE change region to line #1 to line #2 (P) -clear_all_tabs tbc str ct - - YB-G- clear all tab stops (P) -clear_screen clear str cl - - YBCGE clear screen and home cursor (P*) -clr_eol el str ce - - YBCGE clear to end of line (P) -clr_eos ed str cd - - YBCGE clear to end of screen (P*) -column_address hpa str ch - - -B-GE* horizontal position #1, absolute (P) -command_character cmdch str CC - - YB-G- terminal settable cmd character in prototype !? -cursor_address cup str cm - - YBCGE move to row #1 columns #2 -cursor_down cud1 str do - - YBCGE down one line -cursor_home home str ho - - YBCGE home cursor (if no cup) -cursor_invisible civis str vi - - YB-G- make cursor invisible -cursor_left cub1 str le - - YBCGE move left one space -cursor_mem_address mrcup str CM - - YB-G- memory relative cursor addressing, move to row #1 columns #2 -cursor_normal cnorm str ve - - YBCGE make cursor appear normal (undo civis/cvvis) -cursor_right cuf1 str nd - - YBCGE non-destructive space (move right one space) -cursor_to_ll ll str ll - - YBCGE last line, first column (if no cup) -cursor_up cuu1 str up - - YBCGE up one line -cursor_visible cvvis str vs - - YBCGE make cursor very visible -delete_character dch1 str dc - - YBCGE delete character (P*) -delete_line dl1 str dl - - YBCGE delete line (P*) -dis_status_line dsl str ds - - YB-G- disable status line -down_half_line hd str hd - - YB-G- half a line down -enter_alt_charset_mode smacs str as - - YB-G- start alternate character set (P) -enter_blink_mode blink str mb - - YB-G- turn on blinking -enter_bold_mode bold str md - - YB-G- turn on bold (extra bright) mode -enter_ca_mode smcup str ti - - YBCGE string to start programs using cup -enter_delete_mode smdc str dm - - YBCGE enter delete mode -enter_dim_mode dim str mh - - YB-G- turn on half-bright mode -enter_insert_mode smir str im - - YBCGE enter insert mode -enter_secure_mode invis str mk - - -B-G-* turn on blank mode (characters invisible) -enter_protected_mode prot str mp - - -B-G-* turn on protected mode -enter_reverse_mode rev str mr - - YB-G- turn on reverse video mode -enter_standout_mode smso str so - - YBCGE begin standout mode -enter_underline_mode smul str us - - YBCGE begin underline mode -erase_chars ech str ec - - YB-G- erase #1 characters (P) -exit_alt_charset_mode rmacs str ae - - YB-G- end alternate character set (P) -exit_attribute_mode sgr0 str me - - YB-GE turn off all attributes -exit_ca_mode rmcup str te - - YBCGE strings to end programs using cup -exit_delete_mode rmdc str ed - - YBCGE end delete mode -exit_insert_mode rmir str ei - - YBCGE exit insert mode -exit_standout_mode rmso str se - - YBCGE exit standout mode -exit_underline_mode rmul str ue - - YBCGE exit underline mode -flash_screen flash str vb - - YBCGE visible bell (may not move cursor) -form_feed ff str ff - - YB-G- hardcopy terminal page eject (P*) -from_status_line fsl str fs - - YB-G- return from status line -init_1string is1 str i1 - - YB-G- initialization string -init_2string is2 str is - - YB-G- initialization string -init_3string is3 str i3 - - YB-G- initialization string -init_file if str if - - YB-G- name of initialization file -insert_character ich1 str ic - - YBCGE insert character (P) -insert_line il1 str al - - YBCGE insert line (P*) -insert_padding ip str ip - - YBCGE insert padding after inserted character -key_backspace kbs str kb KEY_BACKSPACE 0407 YB-G- backspace key -key_catab ktbc str ka KEY_CATAB 0526 -B-G-* clear-all-tabs key -key_clear kclr str kC KEY_CLEAR 0515 -B-G-* clear-screen or erase key -key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key -key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key -key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key -key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key -key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode -key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key -key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key -key_f0 kf0 str k0 KEY_F(0) 0410 YBCGE F0 function key -key_f1 kf1 str k1 KEY_F(1) - YBCGE F1 function key -key_f10 kf10 str k; KEY_F(10) - ----E F10 function key -key_f2 kf2 str k2 KEY_F(2) - YBCGE F2 function key -key_f3 kf3 str k3 KEY_F(3) - YBCGE F3 function key -key_f4 kf4 str k4 KEY_F(4) - YBCGE F4 function key -key_f5 kf5 str k5 KEY_F(5) - YBCGE F5 function key -key_f6 kf6 str k6 KEY_F(6) - YBCGE F6 function key -key_f7 kf7 str k7 KEY_F(7) - YBCGE F7 function key -key_f8 kf8 str k8 KEY_F(8) - YBCGE F8 function key -key_f9 kf9 str k9 KEY_F(9) - YBCGE F9 function key -key_home khome str kh KEY_HOME 0406 YBCGE home key -key_ic kich1 str kI KEY_IC 0513 YB-GE insert-character key -key_il kil1 str kA KEY_IL 0511 -B-G-* insert-line key -key_left kcub1 str kl KEY_LEFT 0404 YBCGE left-arrow key -key_ll kll str kH KEY_LL 0533 YB-G- lower-left key (home down) -key_npage knp str kN KEY_NPAGE 0522 YB-GE next-page key -key_ppage kpp str kP KEY_PPAGE 0523 YB-GE previous-page key -key_right kcuf1 str kr KEY_RIGHT 0405 YBCGE right-arrow key -key_sf kind str kF KEY_SF 0520 -B-G-* scroll-forward key -key_sr kri str kR KEY_SR 0521 -B-G-* scroll-backward key -key_stab khts str kT KEY_STAB 0524 -B-G-* set-tab key -key_up kcuu1 str ku KEY_UP 0403 YBCGE up-arrow key -keypad_local rmkx str ke - - YBCGE leave 'keyboard_transmit' mode -keypad_xmit smkx str ks - - YBCGE enter 'keyboard_transmit' mode -lab_f0 lf0 str l0 - - -B-G-* label on function key f0 if not f0 -lab_f1 lf1 str l1 - - -B-G-* label on function key f1 if not f1 -lab_f10 lf10 str la - - ----- label on function key f10 if not f10 -lab_f2 lf2 str l2 - - -B-G-* label on function key f2 if not f2 -lab_f3 lf3 str l3 - - -B-G-* label on function key f3 if not f3 -lab_f4 lf4 str l4 - - -B-G-* label on function key f4 if not f4 -lab_f5 lf5 str l5 - - -B-G-* label on function key f5 if not f5 -lab_f6 lf6 str l6 - - -B-G-* label on function key f6 if not f6 -lab_f7 lf7 str l7 - - -B-G-* label on function key f7 if not f7 -lab_f8 lf8 str l8 - - -B-G-* label on function key f8 if not f8 -lab_f9 lf9 str l9 - - -B-G-* label on function key f9 if not f9 -meta_off rmm str mo - - YB-G-* turn off meta mode -meta_on smm str mm - - YB-G-* turn on meta mode (8th-bit on) -newline nel str nw - - YB-G-* newline (behave like cr followed by lf) -pad_char pad str pc - - YBCGE padding char (instead of null) -parm_dch dch str DC - - YB-GE delete #1 characters (P*) -parm_delete_line dl str DL - - YBCGE delete #1 lines (P*) -parm_down_cursor cud str DO - - YBCGE down #1 lines (P*) -parm_ich ich str IC - - YB-GE insert #1 characters (P*) -parm_index indn str SF - - YBCG- scroll forward #1 lines (P) -parm_insert_line il str AL - - YBCGE insert #1 lines (P*) -parm_left_cursor cub str LE - - YBCGE move #1 characters to the left (P) -parm_right_cursor cuf str RI - - YBCGE move #1 characters to the right (P*) -parm_rindex rin str SR - - YBCG- scroll back #1 lines (P) -parm_up_cursor cuu str UP - - YBCGE up #1 lines (P*) -pkey_key pfkey str pk - - -B--- program function key #1 to type string #2 -pkey_local pfloc str pl - - -B--- program function key #1 to execute string #2 -pkey_xmit pfx str px - - -B--- program function key #1 to transmit string #2 -print_screen mc0 str ps - - -B-G-* print contents of screen -prtr_off mc4 str pf - - -B-G-* turn off printer -prtr_on mc5 str po - - -B-G-* turn on printer -repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*) -reset_1string rs1 str r1 - - -B--- reset string -reset_2string rs2 str r2 - - -B--- reset string -reset_3string rs3 str r3 - - -B--- reset string -reset_file rf str rf - - -B--- name of reset file -restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor -row_address vpa str cv - - -B-GE* vertical position #1 absolute (P) -save_cursor sc str sc - - YBCG- save current cursor position (P) -scroll_forward ind str sf - - YBCGE scroll text up (P) -scroll_reverse ri str sr - - YBCGE scroll text down (P) -set_attributes sgr str sa - - YB-G- define video attributes #1-#9 (PG9) -set_tab hts str st - - YB-G- set a tab in every row, current columns -set_window wind str wi - - -B-GE current window is lines #1-#2 cols #3-#4 -tab ht str ta - - YBCGE tab to next 8-space hardware tab stop -to_status_line tsl str ts - - YB-G- move to status line, column #1 -underline_char uc str uc - - YBCG- underline char and move past it -up_half_line hu str hu - - YB-G- half a line up -init_prog iprog str iP - - -B--- path name of program for initialization -key_a1 ka1 str K1 KEY_A1 0534 YB-GE upper left of keypad -key_a3 ka3 str K3 KEY_A3 0535 YB-GE upper right of keypad -key_b2 kb2 str K2 KEY_B2 0536 YB-GE center of keypad -key_c1 kc1 str K4 KEY_C1 0537 YB-GE lower left of keypad -key_c3 kc3 str K5 KEY_C3 0540 YB-GE lower right of keypad -prtr_non mc5p str pO - - -B-G-* turn on printer for #1 bytes -# -# SVr1 capabilities stop here. IBM's version of terminfo is the same as -# SVr4 up to this point, but has a different set afterwards. -# -char_padding rmp str rP - - ----- like ip but when in insert mode -acs_chars acsc str ac - - ----- graphics charset pairs, based on vt100 -plab_norm pln str pn - - ----- program label #1 to show string #2 -key_btab kcbt str kB KEY_BTAB 0541 ----- back-tab key -enter_xon_mode smxon str SX - - ----- turn on xon/xoff handshaking -exit_xon_mode rmxon str RX - - ----- turn off xon/xoff handshaking -enter_am_mode smam str SA - - ----- turn on automatic margins -exit_am_mode rmam str RA - - ----- turn off automatic margins -xon_character xonc str XN - - ----- XON character -xoff_character xoffc str XF - - ----- XOFF character -ena_acs enacs str eA - - ----- enable alternate char set -label_on smln str LO - - ----- turn on soft labels -label_off rmln str LF - - ----- turn off soft labels -key_beg kbeg str @1 KEY_BEG 0542 ----- begin key -key_cancel kcan str @2 KEY_CANCEL 0543 ----- cancel key -key_close kclo str @3 KEY_CLOSE 0544 ----- close key -key_command kcmd str @4 KEY_COMMAND 0545 ----- command key -key_copy kcpy str @5 KEY_COPY 0546 ----- copy key -key_create kcrt str @6 KEY_CREATE 0547 ----- create key -key_end kend str @7 KEY_END 0550 ----- end key -key_enter kent str @8 KEY_ENTER 0527 ----- enter/send key -key_exit kext str @9 KEY_EXIT 0551 ----- exit key -key_find kfnd str @0 KEY_FIND 0552 ----- find key -key_help khlp str %1 KEY_HELP 0553 ----- help key -key_mark kmrk str %2 KEY_MARK 0554 ----- mark key -key_message kmsg str %3 KEY_MESSAGE 0555 ----- message key -key_move kmov str %4 KEY_MOVE 0556 ----- move key -key_next knxt str %5 KEY_NEXT 0557 ----- next key -key_open kopn str %6 KEY_OPEN 0560 ----- open key -key_options kopt str %7 KEY_OPTIONS 0561 ----- options key -key_previous kprv str %8 KEY_PREVIOUS 0562 ----- previous key -key_print kprt str %9 KEY_PRINT 0532 ----- print key -key_redo krdo str %0 KEY_REDO 0563 ----- redo key -key_reference kref str &1 KEY_REFERENCE 0564 ----- reference key -key_refresh krfr str &2 KEY_REFRESH 0565 ----- refresh key -key_replace krpl str &3 KEY_REPLACE 0566 ----- replace key -key_restart krst str &4 KEY_RESTART 0567 ----- restart key -key_resume kres str &5 KEY_RESUME 0570 ----- resume key -key_save ksav str &6 KEY_SAVE 0571 ----- save key -key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key -key_undo kund str &8 KEY_UNDO 0630 ----- undo key -key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key -key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key -key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key -key_scopy kCPY str *2 KEY_SCOPY 0575 ----- shifted copy key -key_screate kCRT str *3 KEY_SCREATE 0576 ----- shifted create key -key_sdc kDC str *4 KEY_SDC 0577 ----- shifted delete-character key -key_sdl kDL str *5 KEY_SDL 0600 ----- shifted delete-line key -key_select kslt str *6 KEY_SELECT 0601 ----- select key -key_send kEND str *7 KEY_SEND 0602 ----- shifted end key -key_seol kEOL str *8 KEY_SEOL 0603 ----- shifted clear-to-end-of-line key -key_sexit kEXT str *9 KEY_SEXIT 0604 ----- shifted exit key -key_sfind kFND str *0 KEY_SFIND 0605 ----- shifted find key -key_shelp kHLP str #1 KEY_SHELP 0606 ----- shifted help key -key_shome kHOM str #2 KEY_SHOME 0607 ----- shifted home key -key_sic kIC str #3 KEY_SIC 0610 ----- shifted insert-character key -key_sleft kLFT str #4 KEY_SLEFT 0611 ----- shifted left-arrow key -key_smessage kMSG str %a KEY_SMESSAGE 0612 ----- shifted message key -key_smove kMOV str %b KEY_SMOVE 0613 ----- shifted move key -key_snext kNXT str %c KEY_SNEXT 0614 ----- shifted next key -key_soptions kOPT str %d KEY_SOPTIONS 0615 ----- shifted options key -key_sprevious kPRV str %e KEY_SPREVIOUS 0616 ----- shifted previous key -key_sprint kPRT str %f KEY_SPRINT 0617 ----- shifted print key -key_sredo kRDO str %g KEY_SREDO 0620 ----- shifted redo key -key_sreplace kRPL str %h KEY_SREPLACE 0621 ----- shifted replace key -key_sright kRIT str %i KEY_SRIGHT 0622 ----- shifted right-arrow key -key_srsume kRES str %j KEY_SRSUME 0623 ----- shifted resume key -key_ssave kSAV str !1 KEY_SSAVE 0624 ----- shifted save key -key_ssuspend kSPD str !2 KEY_SSUSPEND 0625 ----- shifted suspend key -key_sundo kUND str !3 KEY_SUNDO 0626 ----- shifted undo key -req_for_input rfi str RF - - ----- send next input char (for ptys) -key_f11 kf11 str F1 KEY_F(11) - ----E F11 function key -key_f12 kf12 str F2 KEY_F(12) - ----E F12 function key -key_f13 kf13 str F3 KEY_F(13) - ----E F13 function key -key_f14 kf14 str F4 KEY_F(14) - ----E F14 function key -key_f15 kf15 str F5 KEY_F(15) - ----E F15 function key -key_f16 kf16 str F6 KEY_F(16) - ----E F16 function key -key_f17 kf17 str F7 KEY_F(17) - ----E F17 function key -key_f18 kf18 str F8 KEY_F(18) - ----E F18 function key -key_f19 kf19 str F9 KEY_F(19) - ----E F19 function key -key_f20 kf20 str FA KEY_F(20) - ----E F20 function key -key_f21 kf21 str FB KEY_F(21) - ----E F21 function key -key_f22 kf22 str FC KEY_F(22) - ----E F22 function key -key_f23 kf23 str FD KEY_F(23) - ----E F23 function key -key_f24 kf24 str FE KEY_F(24) - ----E F24 function key -key_f25 kf25 str FF KEY_F(25) - ----E F25 function key -key_f26 kf26 str FG KEY_F(26) - ----E F26 function key -key_f27 kf27 str FH KEY_F(27) - ----E F27 function key -key_f28 kf28 str FI KEY_F(28) - ----E F28 function key -key_f29 kf29 str FJ KEY_F(29) - ----E F29 function key -key_f30 kf30 str FK KEY_F(30) - ----E F30 function key -key_f31 kf31 str FL KEY_F(31) - ----E F31 function key -key_f32 kf32 str FM KEY_F(32) - ----E F32 function key -key_f33 kf33 str FN KEY_F(33) - ----E F33 function key -key_f34 kf34 str FO KEY_F(34) - ----E F34 function key -key_f35 kf35 str FP KEY_F(35) - ----E F35 function key -key_f36 kf36 str FQ KEY_F(36) - ----E F36 function key -key_f37 kf37 str FR KEY_F(37) - ----E F37 function key -key_f38 kf38 str FS KEY_F(38) - ----E F38 function key -key_f39 kf39 str FT KEY_F(39) - ----E F39 function key -key_f40 kf40 str FU KEY_F(40) - ----E F40 function key -key_f41 kf41 str FV KEY_F(41) - ----E F41 function key -key_f42 kf42 str FW KEY_F(42) - ----E F42 function key -key_f43 kf43 str FX KEY_F(43) - ----E F43 function key -key_f44 kf44 str FY KEY_F(44) - ----E F44 function key -key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key -key_f46 kf46 str Fa KEY_F(46) - ----E F46 function key -key_f47 kf47 str Fb KEY_F(47) - ----E F47 function key -key_f48 kf48 str Fc KEY_F(48) - ----E F48 function key -key_f49 kf49 str Fd KEY_F(49) - ----E F49 function key -key_f50 kf50 str Fe KEY_F(50) - ----E F50 function key -key_f51 kf51 str Ff KEY_F(51) - ----E F51 function key -key_f52 kf52 str Fg KEY_F(52) - ----E F52 function key -key_f53 kf53 str Fh KEY_F(53) - ----E F53 function key -key_f54 kf54 str Fi KEY_F(54) - ----E F54 function key -key_f55 kf55 str Fj KEY_F(55) - ----E F55 function key -key_f56 kf56 str Fk KEY_F(56) - ----E F56 function key -key_f57 kf57 str Fl KEY_F(57) - ----E F57 function key -key_f58 kf58 str Fm KEY_F(58) - ----E F58 function key -key_f59 kf59 str Fn KEY_F(59) - ----E F59 function key -key_f60 kf60 str Fo KEY_F(60) - ----E F60 function key -key_f61 kf61 str Fp KEY_F(61) - ----E F61 function key -key_f62 kf62 str Fq KEY_F(62) - ----E F62 function key -key_f63 kf63 str Fr KEY_F(63) - ----E F63 function key -clr_bol el1 str cb - - ----- Clear to beginning of line -clear_margins mgc str MC - - ----- clear right and left soft margins -set_left_margin smgl str ML - - ----- set left soft margin at current column. (ML is not in BSD termcap). -set_right_margin smgr str MR - - ----- set right soft margin at current column -label_format fln str Lf - - ----- label format -set_clock sclk str SC - - ----- set clock, #1 hrs #2 mins #3 secs -display_clock dclk str DK - - ----- display clock -remove_clock rmclk str RC - - ----- remove clock -create_window cwin str CW - - ----- define a window #1 from #2,#3 to #4,#5 -goto_window wingo str WG - - ----- go to window #1 -hangup hup str HU - - ----- hang-up phone -dial_phone dial str DI - - ----- dial number #1 -quick_dial qdial str QD - - ----- dial number #1 without checking -tone tone str TO - - ----- select touch tone dialing -pulse pulse str PU - - ----- select pulse dialing -flash_hook hook str fh - - ----- flash switch hook -fixed_pause pause str PA - - ----- pause for 2-3 seconds -wait_tone wait str WA - - ----- wait for dial-tone -user0 u0 str u0 - - ----- User string #0 -user1 u1 str u1 - - ----- User string #1 -user2 u2 str u2 - - ----- User string #2 -user3 u3 str u3 - - ----- User string #3 -user4 u4 str u4 - - ----- User string #4 -user5 u5 str u5 - - ----- User string #5 -user6 u6 str u6 - - ----- User string #6 -user7 u7 str u7 - - ----- User string #7 -user8 u8 str u8 - - ----- User string #8 -user9 u9 str u9 - - ----- User string #9 -# -# NCurses extensions for keys accessible on most PC consoles -# -key_sup kUP str !5 KEY_SUP + ----- shifted up-arrow key -key_sdown kDOWN str !6 KEY_SDOWN + ----- shifted down-arrow key -key_sbackspace kBS str !7 KEY_SBACKSPACE + ----- shifted backspace key -key_c_delete kcdelete str !8 KEY_C_DELETE + ----- control- delete-character key -key_c_end kcend str !9 KEY_C_END + ----- control- end key -key_c_home kchom str !0 KEY_C_HOME + ----- control- home key -key_c_insert kcinsert str !_ KEY_C_INSERT + ----- control- insert-character key -key_c_left kclft str %k KEY_C_LEFT + ----- control- left-arrow key -key_c_next kcnxt str %l KEY_C_NEXT + ----- control- next key -key_c_previous kcprv str %m KEY_C_PREVIOUS + ----- control- previous key -key_c_print kcprt str %n KEY_C_PRINT + ----- control- print key -key_c_right kcrit str %o KEY_C_RIGHT + ----- control- right-arrow key -key_c_backspace kcbs str %p KEY_C_BACKSPACE + ----- control- backspace key -key_c_up kcup str %q KEY_C_UP + ----- control- up-arrow key -key_c_down kcdown str %r KEY_C_DOWN + ----- control- down-arrow key -key_a_delete kadelete str %s KEY_A_DELETE + ----- alt- delete-character key -key_a_end kaend str %t KEY_A_END + ----- alt- end key -key_a_home kahom str %u KEY_A_HOME + ----- alt- home key -key_a_insert kainsert str %v KEY_A_INSERT + ----- alt- insert-character key -key_a_left kalft str %w KEY_A_LEFT + ----- alt- left-arrow key -key_a_next kanxt str %x KEY_A_NEXT + ----- alt- next key -key_a_previous kaprv str %y KEY_A_PREVIOUS + ----- alt- previous key -key_a_print kaprt str %z KEY_A_PRINT + ----- alt- print key -key_a_right karit str %! KEY_A_RIGHT + ----- alt- right-arrow key -key_a_backspace kabs str %@ KEY_A_BACKSPACE + ----- alt- backspace key -key_a_up kaup str %# KEY_A_UP + ----- alt- up-arrow key -key_a_down kadown str %$ KEY_A_DOWN + ----- alt- down-arrow key -key_a_a kaa str $a KEY_A_A + ----- alt- a key -key_a_b kab str $b KEY_A_B + ----- alt- b key -key_a_c kac str $c KEY_A_C + ----- alt- c key -key_a_d kad str $d KEY_A_D + ----- alt- d key -key_a_e kae str $e KEY_A_E + ----- alt- e key -key_a_f kaf str $f KEY_A_F + ----- alt- f key -key_a_g kag str $g KEY_A_G + ----- alt- g key -key_a_h kah str $h KEY_A_H + ----- alt- h key -key_a_i kai str $i KEY_A_I + ----- alt- i key -key_a_j kaj str $j KEY_A_J + ----- alt- j key -key_a_k kak str $k KEY_A_K + ----- alt- k key -key_a_l kal str $l KEY_A_L + ----- alt- l key -key_a_m kam str $m KEY_A_M + ----- alt- m key -key_a_n kan str $n KEY_A_N + ----- alt- n key -key_a_o kao str $o KEY_A_O + ----- alt- o key -key_a_p kap str $p KEY_A_P + ----- alt- p key -key_a_q kaq str $q KEY_A_Q + ----- alt- q key -key_a_r kar str $r KEY_A_R + ----- alt- r key -key_a_s kas str $s KEY_A_S + ----- alt- s key -key_a_t kat str $t KEY_A_T + ----- alt- t key -key_a_u kau str $u KEY_A_U + ----- alt- u key -key_a_v kav str $v KEY_A_V + ----- alt- v key -key_a_w kaw str $w KEY_A_W + ----- alt- w key -key_a_x kax str $x KEY_A_X + ----- alt- x key -key_a_y kay str $y KEY_A_Y + ----- alt- y key -key_a_z kaz str $z KEY_A_Z + ----- alt- z key -key_a_0 ka_0 str $0 KEY_A_0 + ----- alt- 0 key -key_a_1 ka_1 str $1 KEY_A_1 + ----- alt- 1 key -key_a_2 ka_2 str $2 KEY_A_2 + ----- alt- 2 key -key_a_3 ka_3 str $3 KEY_A_3 + ----- alt- 3 key -key_a_4 ka_4 str $4 KEY_A_4 + ----- alt- 4 key -key_a_5 ka_5 str $5 KEY_A_5 + ----- alt- 5 key -key_a_6 ka_6 str $6 KEY_A_6 + ----- alt- 6 key -key_a_7 ka_7 str $7 KEY_A_7 + ----- alt- 7 key -key_a_8 ka_8 str $8 KEY_A_8 + ----- alt- 8 key -key_a_9 ka_9 str $9 KEY_A_9 + ----- alt- 9 key -key_a_backtick ka_bt str $` KEY_A_BACKTICK + ----- alt- ` key -key_a_under ka_und str $_ KEY_A_UNDER + ----- alt- _ key -key_a_equals ka_eq str $= KEY_A_EQUALS + ----- alt- = key -key_a_bar ka_bsl str $| KEY_A_BAR + ----- alt- | key -key_a_lbracker ka_lbr str $[ KEY_A_LBRACKER + ----- alt- [ key -key_a_rbracker ka_rbr str $] KEY_A_RBRACKER + ----- alt- ] key -key_a_semi ka_semi str $; KEY_A_SEMI + ----- alt- ; key -key_a_tick ka_tick str $' KEY_A_TICK + ----- alt- ' key -key_a_comma ka_com str $, KEY_A_COMMA + ----- alt- , key -key_a_dot ka_dot str $. KEY_A_DOT + ----- alt- . key -key_a_question ka_sla str $? KEY_A_QUESTION + ----- alt- ? key -key_a_divide ka_div str $/ KEY_A_DIVIDE + ----- alt- keypad / key -key_a_multiply ka_mul str $* KEY_A_MULTIPLY + ----- alt- keypad * key -key_a_add ka_add str $+ KEY_A_ADD + ----- alt- keypad + key -key_a_subtract ka_sub str $- KEY_A_SUBTRACT + ----- alt- keypad - key -key_a_kenter ka_kent str $< KEY_A_KENTER + ----- alt- keypad enter key -key_a_enter ka_ent str $> KEY_A_ENTER + ----- alt- enter key -key_c_at kcat str %% KEY_C_AT + ----- control- @ key -key_c_divide kcdiv str %/ KEY_C_DIVIDE + ----- control- keypad / key -key_c_multiply kcmul str %* KEY_C_MULTIPLY + ----- control- keypad * key -key_c_add kcadd str %+ KEY_C_ADD + ----- control- keypad + key -key_c_subtract kcsub str %- KEY_C_SUBTRACT + ----- control- keypad - key -# -# SVr4 added these capabilities to support color -# -orig_pair op str op - - ----- Set default pair to its original value -orig_colors oc str oc - - ----- Set all color pairs to the original ones -initialize_color initc str Ic - - ----- initialize color #1 to (#2,#3,#4) -initialize_pair initp str Ip - - ----- Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7) -set_color_pair scp str sp - - ----- Set current color pair to #1 -set_foreground setf str Sf - - ----- Set foreground color #1 -set_background setb str Sb - - ----- Set background color #1 -# -# SVr4 added these capabilities to support printers -# -change_char_pitch cpi str ZA - - ----- Change number of characters per inch to #1 -change_line_pitch lpi str ZB - - ----- Change number of lines per inch to #1 -change_res_horz chr str ZC - - ----- Change horizontal resolution to #1 -change_res_vert cvr str ZD - - ----- Change vertical resolution to #1 -define_char defc str ZE - - ----- Define a character #1, #2 dots wide, descender #3 -enter_doublewide_mode swidm str ZF - - ----- Enter double-wide mode -enter_draft_quality sdrfq str ZG - - ----- Enter draft-quality mode -enter_italics_mode sitm str ZH - - ----- Enter italic mode -enter_leftward_mode slm str ZI - - ----- Start leftward carriage motion -enter_micro_mode smicm str ZJ - - ----- Start micro-motion mode -enter_near_letter_quality snlq str ZK - - ----- Enter NLQ mode -enter_normal_quality snrmq str ZL - - ----- Enter normal-quality mode -enter_shadow_mode sshm str ZM - - ----- Enter shadow-print mode -enter_subscript_mode ssubm str ZN - - ----- Enter subscript mode -enter_superscript_mode ssupm str ZO - - ----- Enter superscript mode -enter_upward_mode sum str ZP - - ----- Start upward carriage motion -exit_doublewide_mode rwidm str ZQ - - ----- End double-wide mode -exit_italics_mode ritm str ZR - - ----- End italic mode -exit_leftward_mode rlm str ZS - - ----- End left-motion mode -exit_micro_mode rmicm str ZT - - ----- End micro-motion mode -exit_shadow_mode rshm str ZU - - ----- End shadow-print mode -exit_subscript_mode rsubm str ZV - - ----- End subscript mode -exit_superscript_mode rsupm str ZW - - ----- End superscript mode -exit_upward_mode rum str ZX - - ----- End reverse character motion -micro_column_address mhpa str ZY - - ----- Like column_address in micro mode -micro_down mcud1 str ZZ - - ----- Like cursor_down in micro mode -micro_left mcub1 str Za - - ----- Like cursor_left in micro mode -micro_right mcuf1 str Zb - - ----- Like cursor_right in micro mode -micro_row_address mvpa str Zc - - ----- Like row_address #1 in micro mode -micro_up mcuu1 str Zd - - ----- Like cursor_up in micro mode -order_of_pins porder str Ze - - ----- Match software bits to print-head pins -parm_down_micro mcud str Zf - - ----- Like parm_down_cursor in micro mode -parm_left_micro mcub str Zg - - ----- Like parm_left_cursor in micro mode -parm_right_micro mcuf str Zh - - ----- Like parm_right_cursor in micro mode -parm_up_micro mcuu str Zi - - ----- Like parm_up_cursor in micro mode -select_char_set scs str Zj - - ----- Select character set, #1 -set_bottom_margin smgb str Zk - - ----- Set bottom margin at current line -set_bottom_margin_parm smgbp str Zl - - ----- Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom -set_left_margin_parm smglp str Zm - - ----- Set left (right) margin at column #1 -set_right_margin_parm smgrp str Zn - - ----- Set right margin at column #1 -set_top_margin smgt str Zo - - ----- Set top margin at current line -set_top_margin_parm smgtp str Zp - - ----- Set top (bottom) margin at row #1 -start_bit_image sbim str Zq - - ----- Start printing bit image graphics -start_char_set_def scsd str Zr - - ----- Start character set definition #1, with #2 characters in the set -stop_bit_image rbim str Zs - - ----- Stop printing bit image graphics -stop_char_set_def rcsd str Zt - - ----- End definition of character set #1 -subscript_characters subcs str Zu - - ----- List of subscriptable characters -superscript_characters supcs str Zv - - ----- List of superscriptable characters -these_cause_cr docr str Zw - - ----- Printing any of these characters causes CR -zero_motion zerom str Zx - - ----- No motion for subsequent character -#%.TE -#%.ad -#% -#%The following string capabilities are present in the SVr4.0 term structure, -#%but were originally not documented in the man page. -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw18. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -char_set_names csnm str Zy - - ----- Produce #1'th item from list of character set names -key_mouse kmous str Km KEY_MOUSE 0631 ----- Mouse event has occurred -mouse_info minfo str Mi - - ----- Mouse status information -req_mouse_pos reqmp str RQ - - ----- Request mouse position -get_mouse getm str Gm - - ----- Curses should get button events, parameter #1 not documented. -set_a_foreground setaf str AF - - ----- Set foreground color to #1, using ANSI escape -set_a_background setab str AB - - ----- Set background color to #1, using ANSI escape -pkey_plab pfxl str xl - - ----- Program function key #1 to type string #2 and show string #3 -device_type devt str dv - - ----- Indicate language/codeset support -code_set_init csin str ci - - ----- Init sequence for multiple codesets -set0_des_seq s0ds str s0 - - ----- Shift to codeset 0 (EUC set 0, ASCII) -set1_des_seq s1ds str s1 - - ----- Shift to codeset 1 -set2_des_seq s2ds str s2 - - ----- Shift to codeset 2 -set3_des_seq s3ds str s3 - - ----- Shift to codeset 3 -set_lr_margin smglr str ML - - ----- Set both left and right margins to #1, #2. (ML is not in BSD termcap). -set_tb_margin smgtb str MT - - ----- Sets both top and bottom margins to #1, #2 -bit_image_repeat birep str Xy - - ----- Repeat bit image cell #1 #2 times -bit_image_newline binel str Zz - - ----- Move to next row of the bit image -bit_image_carriage_return bicr str Yv - - ----- Move to beginning of same row -color_names colornm str Yw - - ----- Give name for color #1 -define_bit_image_region defbi str Yx - - ----- Define rectangular bit image region -end_bit_image_region endbi str Yy - - ----- End a bit-image region -set_color_band setcolor str Yz - - ----- Change to ribbon color #1 -set_page_length slines str YZ - - ----- Set page length to #1 lines -# -# SVr4 added these capabilities for direct PC-clone support -# -display_pc_char dispc str S1 - - ----- Display PC character #1 -enter_pc_charset_mode smpch str S2 - - ----- Enter PC character display mode -exit_pc_charset_mode rmpch str S3 - - ----- Exit PC character display mode -enter_scancode_mode smsc str S4 - - ----- Enter PC scancode mode -exit_scancode_mode rmsc str S5 - - ----- Exit PC scancode mode -pc_term_options pctrm str S6 - - ----- PC terminal options -scancode_escape scesc str S7 - - ----- Escape for scancode emulation -alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulation -#%.TE -#%.ad -#% -#%.in .8i -#%The XSI Curses standard added these hardcopy capabilities. -#%They were used in some post-4.1 versions of System V curses, -#%e.g., Solaris 2.5 and IRIX 6.x. -#%Except for \fBYI\fP, the \fBncurses\fR termcap names for them are invented. -#%According to the XSI Curses standard, they have no termcap names. -#%If your compiled terminfo entries use these, -#%they may not be binary-compatible with System V terminfo -#%entries after SVr4.1; beware! -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -enter_horizontal_hl_mode ehhlm str Xh - - ----- Enter horizontal highlight mode -enter_left_hl_mode elhlm str Xl - - ----- Enter left highlight mode -enter_low_hl_mode elohlm str Xo - - ----- Enter low highlight mode -enter_right_hl_mode erhlm str Xr - - ----- Enter right highlight mode -enter_top_hl_mode ethlm str Xt - - ----- Enter top highlight mode -enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode -set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6 -set_pglen_inch slength str YI - - ----- Set page length to #1 hundredth of an inch (some implementations use sL for termcap). -#%.TE -#%.ad -# -# The magic token below tells the tic compiler-generator code that all the caps -# past it should be ignored (not written out) when dumping terminfo objects. It -# also tells the man page table generator not to pass through following lines -# This means we can have obsolete capabilities and pseudo-capabilities that are -# recognized for termcap or terminfo compilation, but not output. -# -# %%-STOP-HERE-%% -# -# Don't move this casually! In fact, don't move it at all unless you're -# either doing it to add System V or XPG4 extensions, or have decided you -# don't care about SVr4 binary compatibility. -# -############################################################################# -# -# TERMCAP EXTENSION CAPABILITIES -# -# The capabilities below are either obsolete or extensions on certain systems. -# They are not used by SVR4 terminfo. Some are used by captoinfo to translate -# termcap sources; the rest are listed for completeness, and in case somebody -# cares about them enough to hack in code that will translate them into -# terminfo capabilities. -# -# The first part of the list is from Ross Ridge's `mytinfo' package -# (comp.sources.unix, volume 26); the variable names and terminfo names (as -# well as the termcap codes) match his list. -# -# This group of codes is not marked obsolete in 4.4BSD, but have no direct -# terminfo equivalents. The rs capability is specially translated to terminfo -# r2, and vice versa, if an entry does not already have an r2. Similarly, -# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2). -# The ug capability is thrown away, but assumed to be whatever sg is if the -# latter is nonzero and we're dumping in termcap format. -# -termcap_init2 OTi2 str i2 - - YB--- secondary initialization string -termcap_reset OTrs str rs - - YB-G- terminal reset string -magic_cookie_glitch_ul OTug num ug - - YBCGE number of blanks left by ul -# -# Obsolete termcap capabilities. Some are used for termcap translation. The -# code uses the 'OT' prefix we put on obsolete capabilities to suppress -# printing them in terminfo source dumps of compiled entries. -# -backspaces_with_bs OTbs bool bs - - YBCGE uses ^H to move left -crt_no_scrolling OTns bool ns - - YBCG- crt cannot scroll -no_correctly_working_cr OTnc bool nc - - YBCG- no way to go to start of line -carriage_return_delay OTdC num dC - - YB-G- pad needed for CR -new_line_delay OTdN num dN - - YB-G- pad needed for LF -linefeed_if_not_lf OTnl str nl - - YBCGE use to move down -backspace_if_not_bs OTbc str bc - - YBCGE move left, if not ^H -# -# GNU termcap library extensions. The GNU termcap file distributed with -# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the -# BSD termcap file. The name clash with terminfo MT is resolved by type -# info; MT is converted to km. -# -gnu_has_meta_key OTMT bool MT - - ----E has meta key -# gnu_tab_width OTtw num tw - - ----E tab width in spaces -# -# GNU termcap *does* include the following extended capability, Only the -# now-obsolete Ann Arbor terminals used it. -# -# gnu_change_scroll_region OTcS str cS - - ---GE alternate set scrolling region -# -# The following comments describe capnames so ancient that I believe no -# software uses them any longer. Some of these have to go because they -# clash with terminfo names in ways that cannot be resolved by type -# information. -# -# These mytinfo codes are not used in the 4.4BSD curses code. They are -# marked obsolete in the 4.4BSD manual pages. -# -# There is one conflict with terminfo; ma is in both. This conflict is -# resolved by type information. -# -# The `ko' capability is translated by special code. It should contain a -# comma-separated list of capabilities for which there are corresponding keys. -# The `kn' code is accepted but ignored. -# -# The `ma' capability was a 4.0BSD feature used by vi version 2. -# It consists of pairs of characters corresponding to kl, kr, ku, kd, and kh. -# Besides being obsolete, that interpretation conflicts with max_attributes. -# -# Here is a description of memory_lock_above and memory_unlock: -# "You can 'freeze' data on the screen by turning on Memory Lock in a line of -# text. All lines above the cursor's current line become locked in place on -# the screen. Then enter data normally. When the screen fills up, any -# further data entered forces the first line of unfrozen line text to scroll -# under the frozen data. Lines scrolled off the screen are inserted into -# memory immediately preceding the first frozen line." (from the HP 700/96 -# User's manual). VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l. -# -# Applications that use terminfo are supposed to behave as though xr is -# always true. -# -linefeed_is_newline OTNL bool NL - - YB--- move down with \n -# even_parity OTEP bool EP - - -B--- terminal requires even parity -# odd_parity OTOP bool OP - - -B--- terminal requires odd parity -# half_duplex OTHD bool HD - - -B--- terminal is half-duplex -# lower_case_only OTLC bool LC - - -B--- terminal has only lower case -# upper_case_only OTUC bool UC - - -B--- terminal has only upper case -backspace_delay OTdB num dB - - YB-G- padding required for ^H -# form_feed_delay OTdF num dF - - -B-G- padding required for ^L -horizontal_tab_delay OTdT num dT - - YB-G- padding required for ^I -# vertical_tab_delay OTdV num dV - - -B--- padding required for ^V -number_of_function_keys OTkn num kn - - -B-G- count of function keys -other_non_function_keys OTko str ko - - -B-G- list of self-mapped keycaps -arrow_key_map OTma str ma - - YBC-- map motion-keys for vi version 2 -# memory_lock_above OTml str ml - - -B--- lock visible screen memory above the current line -# memory_unlock OTmu str mu - - -B--- unlock visible screen memory above the current line -has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I -return_does_clr_eol OTxr bool xr - - YB--- return clears the line -# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch -# -# mytinfo described this as a termcap capability, but it is not listed in the -# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses -# package, like System V, behaves as though it is always true. -# -# rind_only_at_top OTxq bool xq - - ----- reverse index only works from top line -# -# University of Waterloo termcap extensions (as described in mytinfo). -# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot -# be resolved by a type check. The descriptions are guesses from what was -# in the mytinfo tables. -# -# key_interrupt_char OTki str ki - - ----- string set by interrupt key (?) -# key_kill_char OTkk str kk - - ----- string set by kill key (?) -# key_suspend_char OTkz str kz - - ----- string set by suspend key (?) -# initialization_messy OTxc bool xc - - ----- initialization leaves garbage on the screen (?) -# ind_at_bottom_does_cr OTxl bool xl - - ----- index does a carriage return -# -# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package. -# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type -# check. -# -# scroll_left OTsl1 str Sl - - ----- scroll screen leftward -# scroll_right OTsr1 str Sr - - ----- scroll screen rightward -# parm_scroll_left OTsl str SL - - ----- scroll screen leftward #1 characters -# parm_scroll_right OTsr str SR - - ----- scroll screen rightward #1 characters -# -# The mytinfo capabilities end here. -# -# XENIX extensions: -# -# Xenix defined its own set of forms-drawing capabilities: -# -# cap IBM ASCII description ACS ASCII -# --- ----------- -------------------- ------------- ------ -# G1 191 \277 M-? single upper right ACS_URCORNER -# G2 218 \332 M-Z single upper left ACS_ULCORNER -# G3 192 \300 M-@ single lower left ACS_LLCORNER -# G4 217 \331 M-Y single lower right ACS_LRCORNER -# G5 187 \273 M-; double upper right -# G6 201 \311 M-I double upper left -# G7 200 \310 M-H double lower left -# G8 188 \274 M-< double lower right -# GC 197 \305 M-E single intersection ACS_PLUS _ _ -# GD 194 \302 M-B single down-tick ACS_TTEE | -# GH 196 \304 M-D single horizontal line ACS_HLINE -# GL 180 \264 M-4 single left tick ACS_RTEE -| -# GR 195 \303 M-C single right tick ACS_LTEE |- -# GU 193 \301 M-A single up tick ACS_BTEE _|_ -# GV 179 \263 M-3 single vertical line ACS_VLINE -# Gc 206 \316 M-N double intersection -# Gd 203 \313 M-K double down tick -# Gh 205 \315 M-M double horizontal line -# Gl 204 \204 M-L double left tick -# Gr 185 \271 M-9 double right tick -# Gu 202 \312 M-J double up tick -# Gv 186 \272 M-: double vertical line -# -# The compiler will translate the single-line caps and discard the others -# (via IGNORE aliases further down). We don't want to do normal pad -# translation on these, they're often single-character printable ASCII -# strings that happen to be numerics. There's awk code in parametrized.sh -# that detects the acs_ prefix and uses it to suppress pad translation. -# These terminfo names are invented. -# -acs_ulcorner OTG2 str G2 - - ----- single upper left -acs_llcorner OTG3 str G3 - - ----- single lower left -acs_urcorner OTG1 str G1 - - ----- single upper right -acs_lrcorner OTG4 str G4 - - ----- single lower right -acs_ltee OTGR str GR - - ----- tee pointing right -acs_rtee OTGL str GL - - ----- tee pointing left -acs_btee OTGU str GU - - ----- tee pointing up -acs_ttee OTGD str GD - - ----- tee pointing down -acs_hline OTGH str GH - - ----- single horizontal line -acs_vline OTGV str GV - - ----- single vertical line -acs_plus OTGC str GC - - ----- single intersection -# -############################################################################# -# -# TERMINFO EXTENSION CAPABILITIES -# -# (see Caps-ncurses for the complete set of comments) -# -memory_lock meml str ml - - ----K lock memory above cursor -memory_unlock memu str mu - - ----K unlock memory -box_chars_1 box1 str bx - - ----K box characters primary set -# -############################################################################# diff --git a/include/Caps.osf1r5 b/include/Caps.osf1r5 deleted file mode 100644 index beb71c3..0000000 --- a/include/Caps.osf1r5 +++ /dev/null @@ -1,979 +0,0 @@ -############################################################################## -# Copyright 2019-2020,2021 Thomas E. Dickey # -# Copyright 2002-2015,2016 Free Software Foundation, Inc. # -# # -# Permission is hereby granted, free of charge, to any person obtaining a # -# copy of this software and associated documentation files (the "Software"), # -# to deal in the Software without restriction, including without limitation # -# the rights to use, copy, modify, merge, publish, distribute, distribute # -# with modifications, sublicense, and/or sell copies of the Software, and to # -# permit persons to whom the Software is furnished to do so, subject to the # -# following conditions: # -# # -# The above copyright notice and this permission notice shall be included in # -# all copies or substantial portions of the Software. # -# # -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # -# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # -# DEALINGS IN THE SOFTWARE. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas Dickey -# -# $Id: Caps.osf1r5,v 1.16 2021/10/08 07:55:48 tom Exp $ -# -# This is an adaptation of ncurses' termcap/terminfo capability table, which -# is designed to align with OSF/1 version 5 (Tru64) terminfo. -# -# This table is used to generate initializers for tables that drive tic, -# infocmp, and the library compilation code used to support the termcap -# compatibility hack. It is also used to generate the tabular portion of the -# terminfo(5) man page; lines beginning with `#%' are passed through to become -# the terminfo table. -# -# This file has three major sections; a standard-capabilities table, two -# extension-capability tables, and a section of aliases declarations. -# The first two have the same format, as follows: -# -# FILE FORMAT -# -# Column 1: terminfo variable name -# Column 2: terminfo capability name -# Column 3: capability type (boolean, numeric, or string) -# Column 4: termcap capability name -# Column 5: KEY_xxx name, if any, `-' otherwise -# Column 6: value for KEY_xxx name, if any, `-' otherwise -# Column 7: Lead with `Y' if capability should be emitted in termcap -# translations, `-' otherwise -# Column 8: capability description -# -# The codes following [Y-] in column 7 describe the versions of termcap which -# use the given capability. This information is not used by the curses library -# proper; rather, it is there to help the terminfo maintainer avoid emitting -# termcap entry translations that are more than 1023 bytes long (and tank a -# lot of old termcap-using programs). The codes read as follows: -# B = mentioned in the BSD man page for 4.4BSD curses -# C = used by the 4.4BSD curses library -# G = mentioned in the documentation for GNU termcap -# E = used by GNU Emacs -# K = remove this terminfo capability when translating to standard format -# The important codes are C and E. A cap with C or E should be preserved in -# translation if possible. The problem is that preserving all such caps may -# lead to some termcap translations being too long. The termcap maintainer -# has a bit of a juggling act to do...potential problem cases are marked with -# an asterisk (*). -# -# The aliases section has the following format: -# -# Column 1: either `capalias' or `infoalias' -# Column 2: name to be aliased -# Column 3: what name it should translate to. The name IGNORE means it -# should be discarded with a warning message. -# Column 4: name of the extension set (used for compiler warning messages) -# Column 5: capability description (usually an associated terminfo variable) -# -# HANDLING TERMCAP AND TERMINFO EXTENSIONS -# -# There are basically five different ways to handle termcap and terminfo -# extensions: -# -# 1. Don't list the capname here, or list it but comment it out (the latter -# is preferable; someone might want to handle it in the future). If you do -# this, the capability will be treated as unknown and raise a warning from -# the compiler. -# -# 2. Alias it. This is appropriate if the capability has the same meaning -# as an already-supported one. The compiler will handle aliasing, emitting -# an appropriate informational message whenever an alias fires. -# -# 3. List it in the standard table. You almost certainly do *not* want -# to do this -- the capabilities in that one, and their order, have been -# carefully chosen to be SVr4-binary-compatible when they're written out -# as a terminfo object, and breaking this would be bad. It is up to the ncurses -# library what to do with the terminfo data after it is read in. -# -# 4. List it in the aliases table with an IGNORE target field. If you -# do this, the capability will be ignored on input (though the user will -# get a warning message about it). -# -# 5. List it in the extensions table. If you do this, the compiler will -# silently accept the capability, but the curses library proper will never -# see it (because it won't be written out as part of the terminfo object -# format). It is up to you what you have the compiler do with it. -# -# There are two opposite reasons to choose option 5. One is when you want -# to eat the capability silently and discard it when doing translations -# to terminfo with tic -I. Some very old obsolete BSD caps like :kn: are -# in this class. Nothing will ever use them again. -# -# More usually, you want the compiler to try to deduce something from the -# capability value that it can use to translate it into your output format. -# You'll need to write custom code, probably in postprocess_termcap() or -# postprocess_terminfo(), to handle the translation. -# -# CONTROLLING ENTRY LENGTH -# -# Notes on specific elisions made to fit translations within 1023 bytes: -# -# Machines with IBM PC-like keyboards want to be able to define the following -# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap- -# only environments for End or Home-Down), key_dc, and key_ic. This is also -# the set of keys the `joe' editor will be upset if it can't see. So don't -# trim those out of the set to be translated to termcap, or various users of -# the termcap file will become irate. -# -# It might look tempting to leave those long init strings out of translations. -# We can't do it (yet); 4.4BSD tput and tset use them. -# -# We retain the sgr capability in translation in spite of the fact that neither -# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are -# hard to understand without it, and (b) the entries in which it is long tend -# to be older types that don't use up a lot of string space on function keys. -# The tic(1) translation code will complain and elide it if it makes a critical -# difference (there is special code in tic to recognize this situation). -# -# Yes, BSD tset(1) uses hpa. We elide hpa/vpa anyway because the motion -# optimizer in BSD curses didn't use them. This omission seems to be the -# single most effective one, it shortened the resolved length of all thirteen -# problem entries in the 9.9.0 version of the terminfo master below critical. -# -# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap -# translations go back over critical if we do this. As 4.4BSD curses fades -# into history and GNU termcap's application base shrinks towards being GNU -# Emacs only, we'll probably elide out some BSD-only capabilities in order -# to buy space for non-essentials Emacs is still using. Capabilities high -# on that hit list: rc, sc, uc. -# -############################################################################# -# -# STANDARD CAPABILITIES -# -#%The following is a complete table of the capabilities included in a -#%terminfo description block and available to terminfo-using code. In each -#%line of the table, -#% -#%The \fBvariable\fR is the name by which the programmer (at the terminfo level) -#%accesses the capability. -#% -#%The \fBcapname\fR is the short name used in the text of the database, -#%and is used by a person updating the database. -#%Whenever possible, capnames are chosen to be the same as or similar to -#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses -#%identical or very similar names). Semantics are also intended to match -#%those of the specification. -#% -#%The termcap code is the old -#%.B termcap -#%capability name (some capabilities are new, and have names which termcap -#%did not originate). -#%.P -#%Capability names have no hard length limit, but an informal limit of 5 -#%characters has been adopted to keep them short and to allow the tabs in -#%the source file -#%.B Caps -#%to line up nicely. -#% -#%Finally, the description field attempts to convey the semantics of the -#%capability. You may find some codes in the description field: -#%.TP -#%(P) -#%indicates that padding may be specified -#%.TP -#%#[1-9] -#%in the description field indicates that the string is passed -#%through \fBtparm\fP(3X) with parameters as given (#\fIi\fP). -#%.IP -#%If no parameters are listed in the description, -#%passing the string through \fBtparm\fP(3X) may give unexpected results, -#%e.g., if it contains percent (%%) signs. -#%.TP -#%(P*) -#%indicates that padding may vary in proportion to the number of -#%lines affected -#%.TP -#%(#\d\fIi\fP\u) -#%indicates the \fIi\fP\uth\d parameter. -#% -#%.PP -#% These are the boolean capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBBooleans name Code\fR -auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column -auto_right_margin am bool am - - YBCGE terminal has automatic margins -no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C) -ceol_standout_glitch xhp bool xs - - YBCGE standout not erased by overwriting (hp) -eat_newline_glitch xenl bool xn - - YBCGE newline ignored after 80 cols (concept) -erase_overstrike eo bool eo - - YBCG- can erase overstrikes with a blank -generic_type gn bool gn - - YB-G- generic line type -hard_copy hc bool hc - - YBCG- hardcopy terminal -has_meta_key km bool km - - YB-GE Has a meta key (i.e., sets 8th-bit) -has_status_line hs bool hs - - YB-G- has extra status line -insert_null_glitch in bool in - - YBCGE insert mode distinguishes nulls -memory_above da bool da - - YBCG- display may be retained above the screen -memory_below db bool db - - YB-GE display may be retained below the screen -move_insert_mode mir bool mi - - YBCGE safe to move while in insert mode -move_standout_mode msgr bool ms - - YBCGE safe to move while in standout mode -over_strike os bool os - - YBCG- terminal can overstrike -status_line_esc_ok eslok bool es - - YB-G- escape can be used on the status line -dest_tabs_magic_smso xt bool xt - - YBCGE tabs destructive, magic so char (t1061) -tilde_glitch hz bool hz - - YB-GE cannot print ~'s (Hazeltine) -transparent_underline ul bool ul - - YBCGE underline character overstrikes -xon_xoff xon bool xo - - YB--- terminal uses xon/xoff handshaking -back_color_erase bce bool ut - - ----- screen erased with background color -can_change ccc bool cc - - ----- terminal can re-define existing colors -col_addr_glitch xhpa bool YA - - ----- only positive motion for hpa/mhpa caps -cpi_changes_res cpix bool YF - - ----- changing character pitch changes resolution -cr_cancels_micro_mode crxm bool YB - - ----- using cr turns off micro mode -hard_cursor chts bool HC - - ----- cursor is hard to see -has_print_wheel daisy bool YC - - ----- printer needs operator to change character set -hue_lightness_saturation hls bool hl - - ----- terminal uses only HLS color notation (Tektronix) -lpi_changes_res lpix bool YG - - ----- changing line pitch changes resolution -needs_xon_xoff nxon bool nx - - ----- padding will not work, xon/xoff required -non_dest_scroll_region ndscr bool ND - - ----- scrolling region is non-destructive -non_rev_rmcup nrrmc bool NR - - ----- smcup does not reverse rmcup -no_pad_char npc bool NP - - ----- pad character does not exist -prtr_silent mc5i bool 5i - - ----- printer will not echo on screen -row_addr_glitch xvpa bool YD - - ----- only positive motion for vpa/mvpa caps -semi_auto_right_margin sam bool YE - - ----- printing in last column causes cr -#%.TE -#%.ad -#% -#%These are the numeric capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBNumeric name Code\fR -columns cols num co - - YBCGE number of columns in a line -init_tabs it num it - - YB-G- tabs initially every # spaces -lines lines num li - - YBCGE number of lines on screen or page -lines_of_memory lm num lm - - YB-G- lines of memory if > line. 0 means varies -magic_cookie_glitch xmc num sg - - YBCGE number of blank characters left by smso or rmso -padding_baud_rate pb num pb - - YB-GE lowest baud rate where padding needed -virtual_terminal vt num vt - - YB--- virtual terminal number (CB/unix) -width_status_line wsl num ws - - YB-G- number of columns in status line -bit_image_entwining bitwin num Yo - - ----- number of passes for each bit-image row -bit_image_type bitype num Yp - - ----- type of bit-image device -buffer_capacity bufsz num Ya - - ----- numbers of bytes buffered before printing -buttons btns num BT - - ----- number of buttons on mouse -dot_vert_spacing spinv num Yb - - ----- spacing of pins vertically in pins per inch -dot_horz_spacing spinh num Yc - - ----- spacing of dots horizontally in dots per inch -label_height lh num lh - - ----- rows in each label -label_width lw num lw - - ----- columns in each label -max_attributes ma num ma - - YBC-- maximum combined attributes terminal can handle -max_colors colors num Co - - ----- maximum number of colors on screen -max_micro_address maddr num Yd - - ----- maximum value in micro_..._address -max_micro_jump mjump num Ye - - ----- maximum value in parm_..._micro -max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen -maximum_windows wnum num MW - - ----- maximum number of definable windows -micro_col_size mcs num Yf - - ----- character step size when in micro mode -micro_line_size mls num Yg - - ----- line step size when in micro mode -no_color_video ncv num NC - - ----- video attributes that can not be used with colors -number_of_pins npins num Yh - - ----- numbers of pins in print-head -num_labels nlab num Nl - - ----- number of labels on screen -output_res_char orc num Yi - - ----- horizontal resolution in units per line -output_res_line orl num Yj - - ----- vertical resolution in units per line -output_res_horz_inch orhi num Yk - - ----- horizontal resolution in units per inch -output_res_vert_inch orvi num Yl - - ----- vertical resolution in units per inch -print_rate cps num Ym - - ----- print rate in characters per second -wide_char_size widcs num Yn - - ----- character step size when in double wide mode -#%.TE -#%.ad -#% -#%These are the string capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -back_tab cbt str bt - - YBCGE back tab (P) -bell bel str bl - - YB-GE audible signal (bell) (P) -carriage_return cr str cr - - YBCGE carriage return (P*) (P*) -change_scroll_region csr str cs - - YBCGE change region to line #1 to line #2 (P) -clear_all_tabs tbc str ct - - YB-G- clear all tab stops (P) -clear_screen clear str cl - - YBCGE clear screen and home cursor (P*) -clr_eol el str ce - - YBCGE clear to end of line (P) -clr_eos ed str cd - - YBCGE clear to end of screen (P*) -column_address hpa str ch - - -B-GE* horizontal position #1, absolute (P) -command_character cmdch str CC - - YB-G- terminal settable cmd character in prototype !? -cursor_address cup str cm - - YBCGE move to row #1 columns #2 -cursor_down cud1 str do - - YBCGE down one line -cursor_home home str ho - - YBCGE home cursor (if no cup) -cursor_invisible civis str vi - - YB-G- make cursor invisible -cursor_left cub1 str le - - YBCGE move left one space -cursor_mem_address mrcup str CM - - YB-G- memory relative cursor addressing, move to row #1 columns #2 -cursor_normal cnorm str ve - - YBCGE make cursor appear normal (undo civis/cvvis) -cursor_right cuf1 str nd - - YBCGE non-destructive space (move right one space) -cursor_to_ll ll str ll - - YBCGE last line, first column (if no cup) -cursor_up cuu1 str up - - YBCGE up one line -cursor_visible cvvis str vs - - YBCGE make cursor very visible -delete_character dch1 str dc - - YBCGE delete character (P*) -delete_line dl1 str dl - - YBCGE delete line (P*) -dis_status_line dsl str ds - - YB-G- disable status line -down_half_line hd str hd - - YB-G- half a line down -enter_alt_charset_mode smacs str as - - YB-G- start alternate character set (P) -enter_blink_mode blink str mb - - YB-G- turn on blinking -enter_bold_mode bold str md - - YB-G- turn on bold (extra bright) mode -enter_ca_mode smcup str ti - - YBCGE string to start programs using cup -enter_delete_mode smdc str dm - - YBCGE enter delete mode -enter_dim_mode dim str mh - - YB-G- turn on half-bright mode -enter_insert_mode smir str im - - YBCGE enter insert mode -enter_secure_mode invis str mk - - -B-G-* turn on blank mode (characters invisible) -enter_protected_mode prot str mp - - -B-G-* turn on protected mode -enter_reverse_mode rev str mr - - YB-G- turn on reverse video mode -enter_standout_mode smso str so - - YBCGE begin standout mode -enter_underline_mode smul str us - - YBCGE begin underline mode -erase_chars ech str ec - - YB-G- erase #1 characters (P) -exit_alt_charset_mode rmacs str ae - - YB-G- end alternate character set (P) -exit_attribute_mode sgr0 str me - - YB-GE turn off all attributes -exit_ca_mode rmcup str te - - YBCGE strings to end programs using cup -exit_delete_mode rmdc str ed - - YBCGE end delete mode -exit_insert_mode rmir str ei - - YBCGE exit insert mode -exit_standout_mode rmso str se - - YBCGE exit standout mode -exit_underline_mode rmul str ue - - YBCGE exit underline mode -flash_screen flash str vb - - YBCGE visible bell (may not move cursor) -form_feed ff str ff - - YB-G- hardcopy terminal page eject (P*) -from_status_line fsl str fs - - YB-G- return from status line -init_1string is1 str i1 - - YB-G- initialization string -init_2string is2 str is - - YB-G- initialization string -init_3string is3 str i3 - - YB-G- initialization string -init_file if str if - - YB-G- name of initialization file -insert_character ich1 str ic - - YBCGE insert character (P) -insert_line il1 str al - - YBCGE insert line (P*) -insert_padding ip str ip - - YBCGE insert padding after inserted character -key_backspace kbs str kb KEY_BACKSPACE 0407 YB-G- backspace key -key_catab ktbc str ka KEY_CATAB 0526 -B-G-* clear-all-tabs key -key_clear kclr str kC KEY_CLEAR 0515 -B-G-* clear-screen or erase key -key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key -key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key -key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key -key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key -key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode -key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key -key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key -key_f0 kf0 str k0 KEY_F(0) 0410 YBCGE F0 function key -key_f1 kf1 str k1 KEY_F(1) - YBCGE F1 function key -key_f10 kf10 str k; KEY_F(10) - ----E F10 function key -key_f2 kf2 str k2 KEY_F(2) - YBCGE F2 function key -key_f3 kf3 str k3 KEY_F(3) - YBCGE F3 function key -key_f4 kf4 str k4 KEY_F(4) - YBCGE F4 function key -key_f5 kf5 str k5 KEY_F(5) - YBCGE F5 function key -key_f6 kf6 str k6 KEY_F(6) - YBCGE F6 function key -key_f7 kf7 str k7 KEY_F(7) - YBCGE F7 function key -key_f8 kf8 str k8 KEY_F(8) - YBCGE F8 function key -key_f9 kf9 str k9 KEY_F(9) - YBCGE F9 function key -key_home khome str kh KEY_HOME 0406 YBCGE home key -key_ic kich1 str kI KEY_IC 0513 YB-GE insert-character key -key_il kil1 str kA KEY_IL 0511 -B-G-* insert-line key -key_left kcub1 str kl KEY_LEFT 0404 YBCGE left-arrow key -key_ll kll str kH KEY_LL 0533 YB-G- lower-left key (home down) -key_npage knp str kN KEY_NPAGE 0522 YB-GE next-page key -key_ppage kpp str kP KEY_PPAGE 0523 YB-GE previous-page key -key_right kcuf1 str kr KEY_RIGHT 0405 YBCGE right-arrow key -key_sf kind str kF KEY_SF 0520 -B-G-* scroll-forward key -key_sr kri str kR KEY_SR 0521 -B-G-* scroll-backward key -key_stab khts str kT KEY_STAB 0524 -B-G-* set-tab key -key_up kcuu1 str ku KEY_UP 0403 YBCGE up-arrow key -keypad_local rmkx str ke - - YBCGE leave 'keyboard_transmit' mode -keypad_xmit smkx str ks - - YBCGE enter 'keyboard_transmit' mode -lab_f0 lf0 str l0 - - -B-G-* label on function key f0 if not f0 -lab_f1 lf1 str l1 - - -B-G-* label on function key f1 if not f1 -lab_f10 lf10 str la - - ----- label on function key f10 if not f10 -lab_f2 lf2 str l2 - - -B-G-* label on function key f2 if not f2 -lab_f3 lf3 str l3 - - -B-G-* label on function key f3 if not f3 -lab_f4 lf4 str l4 - - -B-G-* label on function key f4 if not f4 -lab_f5 lf5 str l5 - - -B-G-* label on function key f5 if not f5 -lab_f6 lf6 str l6 - - -B-G-* label on function key f6 if not f6 -lab_f7 lf7 str l7 - - -B-G-* label on function key f7 if not f7 -lab_f8 lf8 str l8 - - -B-G-* label on function key f8 if not f8 -lab_f9 lf9 str l9 - - -B-G-* label on function key f9 if not f9 -meta_off rmm str mo - - YB-G-* turn off meta mode -meta_on smm str mm - - YB-G-* turn on meta mode (8th-bit on) -newline nel str nw - - YB-G-* newline (behave like cr followed by lf) -pad_char pad str pc - - YBCGE padding char (instead of null) -parm_dch dch str DC - - YB-GE delete #1 characters (P*) -parm_delete_line dl str DL - - YBCGE delete #1 lines (P*) -parm_down_cursor cud str DO - - YBCGE down #1 lines (P*) -parm_ich ich str IC - - YB-GE insert #1 characters (P*) -parm_index indn str SF - - YBCG- scroll forward #1 lines (P) -parm_insert_line il str AL - - YBCGE insert #1 lines (P*) -parm_left_cursor cub str LE - - YBCGE move #1 characters to the left (P) -parm_right_cursor cuf str RI - - YBCGE move #1 characters to the right (P*) -parm_rindex rin str SR - - YBCG- scroll back #1 lines (P) -parm_up_cursor cuu str UP - - YBCGE up #1 lines (P*) -pkey_key pfkey str pk - - -B--- program function key #1 to type string #2 -pkey_local pfloc str pl - - -B--- program function key #1 to execute string #2 -pkey_xmit pfx str px - - -B--- program function key #1 to transmit string #2 -print_screen mc0 str ps - - -B-G-* print contents of screen -prtr_off mc4 str pf - - -B-G-* turn off printer -prtr_on mc5 str po - - -B-G-* turn on printer -repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*) -reset_1string rs1 str r1 - - -B--- reset string -reset_2string rs2 str r2 - - -B--- reset string -reset_3string rs3 str r3 - - -B--- reset string -reset_file rf str rf - - -B--- name of reset file -restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor -row_address vpa str cv - - -B-GE* vertical position #1 absolute (P) -save_cursor sc str sc - - YBCG- save current cursor position (P) -scroll_forward ind str sf - - YBCGE scroll text up (P) -scroll_reverse ri str sr - - YBCGE scroll text down (P) -set_attributes sgr str sa - - YB-G- define video attributes #1-#9 (PG9) -set_tab hts str st - - YB-G- set a tab in every row, current columns -set_window wind str wi - - -B-GE current window is lines #1-#2 cols #3-#4 -tab ht str ta - - YBCGE tab to next 8-space hardware tab stop -to_status_line tsl str ts - - YB-G- move to status line, column #1 -underline_char uc str uc - - YBCG- underline char and move past it -up_half_line hu str hu - - YB-G- half a line up -init_prog iprog str iP - - -B--- path name of program for initialization -key_a1 ka1 str K1 KEY_A1 0534 YB-GE upper left of keypad -key_a3 ka3 str K3 KEY_A3 0535 YB-GE upper right of keypad -key_b2 kb2 str K2 KEY_B2 0536 YB-GE center of keypad -key_c1 kc1 str K4 KEY_C1 0537 YB-GE lower left of keypad -key_c3 kc3 str K5 KEY_C3 0540 YB-GE lower right of keypad -prtr_non mc5p str pO - - -B-G-* turn on printer for #1 bytes -# -# SVr1 capabilities stop here. IBM's version of terminfo is the same as -# SVr4 up to this point, but has a different set afterwards. -# -# OSF1 differences start here, based on IBM version: -# -box_chars_1 box1 str bx - - ----K box characters primary set -box_chars_2 box2 str by - - ----K box characters secondary set -box_attr_1 batt1 str Bx - - ----K attributes for box1 -box_attr_2 batt2 str By - - ----K attributes for box2 -color_bg_0 colb0 str d0 - - ----K background color 0 -color_bg_1 colb1 str d1 - - ----K background color 1 -color_bg_2 colb2 str d2 - - ----K background color 2 -color_bg_3 colb3 str d3 - - ----K background color 3 -color_bg_4 colb4 str d4 - - ----K background color 4 -color_bg_5 colb5 str d5 - - ----K background color 5 -color_bg_6 colb6 str d6 - - ----K background color 6 -color_bg_7 colb7 str d7 - - ----K background color 7 -color_fg_0 colf0 str c0 - - ----K foreground color 0 -color_fg_1 colf1 str c1 - - ----K foreground color 1 -color_fg_2 colf2 str c2 - - ----K foreground color 2 -color_fg_3 colf3 str c3 - - ----K foreground color 3 -color_fg_4 colf4 str c4 - - ----K foreground color 4 -color_fg_5 colf5 str c5 - - ----K foreground color 5 -color_fg_6 colf6 str c6 - - ----K foreground color 6 -color_fg_7 colf7 str c7 - - ----K foreground color 7 -font_0 font0 str f0 - - ----- select font 0 -font_1 font1 str f1 - - ----- select font 1 -font_2 font2 str f2 - - ----- select font 2 -font_3 font3 str f3 - - ----- select font 3 -font_4 font4 str f4 - - ----K select font 4 -font_5 font5 str f5 - - ----K select font 5 -font_6 font6 str f6 - - ----K select font 6 -font_7 font7 str f7 - - ----K select font 7 -key_back_tab kbtab str k0 - - ----- backtab key -key_do kdo str ki - - ----K do request key -key_command kcmd str kc KEY_COMMAND 0545 ----- command key -key_command_pane kcpn str kW - - ----K command-pane key -key_end kend str @7 KEY_END 0550 ----- end key -key_help khlp str %1 KEY_HELP 0553 ----- help key -key_newline knl str nl - - ----K newline key -key_next_pane knpn str kv - - ----K next-pane key -key_prev_cmd kppn str kp - - ----K previous-command key -key_prev_pane kppn str kV - - ----K previous-pane key -key_quit kquit str kQ - - ----K quit key -key_select kslt str *6 KEY_SELECT 0601 ----- select key -key_scroll_left kscl str kz - - ----K scroll left -key_scroll_right kscr str kZ - - ----K scroll right -key_tab ktab str ko - - ----K tab key -key_smap_in1 kmpf1 str Kv - - ----K special mapped key 1 input -key_smap_out1 kmpt1 str KV - - ----K special mapped key 1 output -key_smap_in2 kmpf2 str Kw - - ----K special mapped key 2 input -key_smap_out2 kmpt2 str KW - - ----K special mapped key 2 output -key_smap_in3 kmpf3 str Kx - - ----K special mapped key 3 input -key_smap_out3 kmpt3 str KX - - ----K special mapped key 3 output -key_smap_in4 kmpf4 str Ky - - ----K special mapped key 4 input -key_smap_out4 kmpt4 str KY - - ----K special mapped key 4 output -key_smap_in5 kmpf5 str Kz - - ----K special mapped key 5 input -key_smap_out5 kmpt5 str KZ - - ----K special mapped key 5 output -appl_defined_str apstr str za - - ----K application-defined string -# The key_smap_in[6789] and key_smap_out[6789] capabilities are described in -# the Tru64 manual pages. -key_smap_in6 kmpf6 str Kr - - ----K special mapped key 6 input -key_smap_out6 kmpt6 str KR - - ----K special mapped key 6 output -key_smap_in7 kmpf7 str Ks - - ----K special mapped key 7 input -key_smap_out7 kmpt7 str KS - - ----K special mapped key 7 output -key_smap_in8 kmpf8 str Kt - - ----K special mapped key 8 input -key_smap_out8 kmpt8 str KT - - ----K special mapped key 8 output -key_smap_in9 kmpf9 str Ku - - ----K special mapped key 9 input -key_smap_out9 kmpt9 str KU - - ----K special mapped key 9 output -key_sf1 ksf1 str S1 - - ----K special function key 1 -key_sf2 ksf2 str S2 - - ----K special function key 2 -key_sf3 ksf3 str S3 - - ----K special function key 3 -key_sf4 ksf4 str S4 - - ----K special function key 4 -key_sf5 ksf5 str S5 - - ----K special function key 5 -key_sf6 ksf6 str S6 - - ----K special function key 6 -key_sf7 ksf7 str S7 - - ----K special function key 7 -key_sf8 ksf8 str S8 - - ----K special function key 8 -key_sf9 ksf9 str S9 - - ----K special function key 9 -key_sf10 ksf10 str SA - - ----K special function key 10 -# -key_f11 kf11 str F1 KEY_F(11) - ----E F11 function key -key_f12 kf12 str F2 KEY_F(12) - ----E F12 function key -key_f13 kf13 str F3 KEY_F(13) - ----E F13 function key -key_f14 kf14 str F4 KEY_F(14) - ----E F14 function key -key_f15 kf15 str F5 KEY_F(15) - ----E F15 function key -key_f16 kf16 str F6 KEY_F(16) - ----E F16 function key -key_f17 kf17 str F7 KEY_F(17) - ----E F17 function key -key_f18 kf18 str F8 KEY_F(18) - ----E F18 function key -key_f19 kf19 str F9 KEY_F(19) - ----E F19 function key -key_f20 kf20 str FA KEY_F(20) - ----E F20 function key -key_f21 kf21 str FB KEY_F(21) - ----E F21 function key -key_f22 kf22 str FC KEY_F(22) - ----E F22 function key -key_f23 kf23 str FD KEY_F(23) - ----E F23 function key -key_f24 kf24 str FE KEY_F(24) - ----E F24 function key -key_f25 kf25 str FF KEY_F(25) - ----E F25 function key -key_f26 kf26 str FG KEY_F(26) - ----E F26 function key -key_f27 kf27 str FH KEY_F(27) - ----E F27 function key -key_f28 kf28 str FI KEY_F(28) - ----E F28 function key -key_f29 kf29 str FJ KEY_F(29) - ----E F29 function key -key_f30 kf30 str FK KEY_F(30) - ----E F30 function key -key_f31 kf31 str FL KEY_F(31) - ----E F31 function key -key_f32 kf32 str FM KEY_F(32) - ----E F32 function key -key_f33 kf33 str FN KEY_F(33) - ----E F33 function key -key_f34 kf34 str FO KEY_F(34) - ----E F34 function key -key_f35 kf35 str FP KEY_F(35) - ----E F35 function key -key_f36 kf36 str FQ KEY_F(36) - ----E F36 function key -key_action kact str kJ KEY_ACTION 0541 ----K sent by action key -acs_chars acsc str ac - - ----- graphics charset pairs, based on vt100 -alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulation -bit_image_repeat birep str Xy - - ----- Repeat bit image cell #1 #2 times -bit_image_newline binel str Zz - - ----- Move to next row of the bit image -bit_image_carriage_return bicr str Yv - - ----- Move to beginning of same row -change_char_pitch cpi str ZA - - ----- Change number of characters per inch to #1 -change_line_pitch lpi str ZB - - ----- Change number of lines per inch to #1 -change_res_horz chr str ZC - - ----- Change horizontal resolution to #1 -change_res_vert cvr str ZD - - ----- Change vertical resolution to #1 -char_padding rmp str rP - - ----- like ip but when in insert mode -char_set_names csnm str Zy - - ----- Produce #1'th item from list of character set names -clear_margins mgc str MC - - ----- clear right and left soft margins -clr_bol el1 str cb - - ----- Clear to beginning of line -code_set_init csin str ci - - ----- Init sequence for multiple codesets -color_names colornm str Yw - - ----- Give name for color #1 -create_window cwin str CW - - ----- define a window #1 from #2,#3 to #4,#5 -define_bit_image_region defbi str Yx - - ----- Define rectangular bit image region -define_char defc str ZE - - ----- Define a character #1, #2 dots wide, descender #3 -device_type devt str dv - - ----- Indicate language/codeset support -dial_phone dial str DI - - ----- dial number #1 -display_clock dclk str DK - - ----- display clock -display_pc_char dispc str S1 - - ----- Display PC character #1 -ena_acs enacs str eA - - ----- enable alternate char set -end_bit_image_region endbi str Yy - - ----- End a bit-image region -enter_am_mode smam str SA - - ----- turn on automatic margins -enter_doublewide_mode swidm str ZF - - ----- Enter double-wide mode -enter_draft_quality sdrfq str ZG - - ----- Enter draft-quality mode -enter_italics_mode sitm str ZH - - ----- Enter italic mode -enter_leftward_mode slm str ZI - - ----- Start leftward carriage motion -enter_micro_mode smicm str ZJ - - ----- Start micro-motion mode -enter_near_letter_quality snlq str ZK - - ----- Enter NLQ mode -enter_normal_quality snrmq str ZL - - ----- Enter normal-quality mode -enter_pc_charset_mode smpch str S2 - - ----- Enter PC character display mode -enter_scancode_mode smsc str S4 - - ----- Enter PC scancode mode -enter_shadow_mode sshm str ZM - - ----- Enter shadow-print mode -enter_subscript_mode ssubm str ZN - - ----- Enter subscript mode -enter_superscript_mode ssupm str ZO - - ----- Enter superscript mode -enter_upward_mode sum str ZP - - ----- Start upward carriage motion -enter_xon_mode smxon str SX - - ----- turn on xon/xoff handshaking -exit_am_mode rmam str RA - - ----- turn off automatic margins -exit_doublewide_mode rwidm str ZQ - - ----- End double-wide mode -exit_italics_mode ritm str ZR - - ----- End italic mode -exit_leftward_mode rlm str ZS - - ----- End left-motion mode -exit_micro_mode rmicm str ZT - - ----- End micro-motion mode -exit_pc_charset_mode rmpch str S3 - - ----- Exit PC character display mode -exit_scancode_mode rmsc str S5 - - ----- Exit PC scancode mode -exit_shadow_mode rshm str ZU - - ----- End shadow-print mode -exit_subscript_mode rsubm str ZV - - ----- End subscript mode -exit_superscript_mode rsupm str ZW - - ----- End superscript mode -exit_upward_mode rum str ZX - - ----- End reverse character motion -exit_xon_mode rmxon str RX - - ----- turn off xon/xoff handshaking -fixed_pause pause str PA - - ----- pause for 2-3 seconds -flash_hook hook str fh - - ----- flash switch hook -get_mouse getm str Gm - - ----- Curses should get button events, parameter #1 not documented. -goto_window wingo str WG - - ----- go to window #1 -hangup hup str HU - - ----- hang-up phone -initialize_color initc str Ic - - ----- initialize color #1 to (#2,#3,#4) -initialize_pair initp str Ip - - ----- Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7) -key_beg kbeg str @1 KEY_BEG 0542 ----- begin key -key_btab kcbt str kB KEY_BTAB 0632 ----- back-tab key -key_cancel kcan str @2 KEY_CANCEL 0543 ----- cancel key -key_close kclo str @3 KEY_CLOSE 0544 ----- close key -key_copy kcpy str @5 KEY_COPY 0546 ----- copy key -key_create kcrt str @6 KEY_CREATE 0547 ----- create key -key_enter kent str @8 KEY_ENTER 0527 ----- enter/send key -key_exit kext str @9 KEY_EXIT 0551 ----- exit key -key_f37 kf37 str FR KEY_F(37) - ----E F37 function key -key_f38 kf38 str FS KEY_F(38) - ----E F38 function key -key_f39 kf39 str FT KEY_F(39) - ----E F39 function key -key_f40 kf40 str FU KEY_F(40) - ----E F40 function key -key_f41 kf41 str FV KEY_F(41) - ----E F41 function key -key_f42 kf42 str FW KEY_F(42) - ----E F42 function key -key_f43 kf43 str FX KEY_F(43) - ----E F43 function key -key_f44 kf44 str FY KEY_F(44) - ----E F44 function key -key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key -key_f46 kf46 str Fa KEY_F(46) - ----E F46 function key -key_f47 kf47 str Fb KEY_F(47) - ----E F47 function key -key_f48 kf48 str Fc KEY_F(48) - ----E F48 function key -key_f49 kf49 str Fd KEY_F(49) - ----E F49 function key -key_f50 kf50 str Fe KEY_F(50) - ----E F50 function key -key_f51 kf51 str Ff KEY_F(51) - ----E F51 function key -key_f52 kf52 str Fg KEY_F(52) - ----E F52 function key -key_f53 kf53 str Fh KEY_F(53) - ----E F53 function key -key_f54 kf54 str Fi KEY_F(54) - ----E F54 function key -key_f55 kf55 str Fj KEY_F(55) - ----E F55 function key -key_f56 kf56 str Fk KEY_F(56) - ----E F56 function key -key_f57 kf57 str Fl KEY_F(57) - ----E F57 function key -key_f58 kf58 str Fm KEY_F(58) - ----E F58 function key -key_f59 kf59 str Fn KEY_F(59) - ----E F59 function key -key_f60 kf60 str Fo KEY_F(60) - ----E F60 function key -key_f61 kf61 str Fp KEY_F(61) - ----E F61 function key -key_f62 kf62 str Fq KEY_F(62) - ----E F62 function key -key_f63 kf63 str Fr KEY_F(63) - ----E F63 function key -key_find kfnd str @0 KEY_FIND 0552 ----- find key -key_mark kmrk str %2 KEY_MARK 0554 ----- mark key -key_message kmsg str %3 KEY_MESSAGE 0555 ----- message key -key_mouse kmous str Km KEY_MOUSE 0631 ----- Mouse event has occurred -key_move kmov str %4 KEY_MOVE 0556 ----- move key -key_next knxt str %5 KEY_NEXT 0557 ----- next key -key_open kopn str %6 KEY_OPEN 0560 ----- open key -key_options kopt str %7 KEY_OPTIONS 0561 ----- options key -key_previous kprv str %8 KEY_PREVIOUS 0562 ----- previous key -key_print kprt str %9 KEY_PRINT 0532 ----- print key -key_redo krdo str %0 KEY_REDO 0563 ----- redo key -key_reference kref str &1 KEY_REFERENCE 0564 ----- reference key -key_refresh krfr str &2 KEY_REFRESH 0565 ----- refresh key -key_replace krpl str &3 KEY_REPLACE 0566 ----- replace key -key_restart krst str &4 KEY_RESTART 0567 ----- restart key -key_resume kres str &5 KEY_RESUME 0570 ----- resume key -key_save ksav str &6 KEY_SAVE 0571 ----- save key -key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key -key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key -key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key -key_scopy kCPY str *2 KEY_SCOPY 0575 ----- shifted copy key -key_screate kCRT str *3 KEY_SCREATE 0576 ----- shifted create key -key_sdc kDC str *4 KEY_SDC 0577 ----- shifted delete-character key -key_sdl kDL str *5 KEY_SDL 0600 ----- shifted delete-line key -key_send kEND str *7 KEY_SEND 0602 ----- shifted end key -key_seol kEOL str *8 KEY_SEOL 0603 ----- shifted clear-to-end-of-line key -key_sexit kEXT str *9 KEY_SEXIT 0604 ----- shifted exit key -key_sfind kFND str *0 KEY_SFIND 0605 ----- shifted find key -key_shelp kHLP str #1 KEY_SHELP 0606 ----- shifted help key -key_shome kHOM str #2 KEY_SHOME 0607 ----- shifted home key -key_sic kIC str #3 KEY_SIC 0610 ----- shifted insert-character key -key_sleft kLFT str #4 KEY_SLEFT 0611 ----- shifted left-arrow key -key_smessage kMSG str %a KEY_SMESSAGE 0612 ----- shifted message key -key_smove kMOV str %b KEY_SMOVE 0613 ----- shifted move key -key_snext kNXT str %c KEY_SNEXT 0614 ----- shifted next key -key_soptions kOPT str %d KEY_SOPTIONS 0615 ----- shifted options key -key_sprevious kPRV str %e KEY_SPREVIOUS 0616 ----- shifted previous key -key_sprint kPRT str %f KEY_SPRINT 0617 ----- shifted print key -key_sredo kRDO str %g KEY_SREDO 0620 ----- shifted redo key -key_sreplace kRPL str %h KEY_SREPLACE 0621 ----- shifted replace key -key_sright kRIT str %i KEY_SRIGHT 0622 ----- shifted right-arrow key -key_srsume kRES str %j KEY_SRSUME 0623 ----- shifted resume key -key_ssave kSAV str !1 KEY_SSAVE 0624 ----- shifted save key -key_ssuspend kSPD str !2 KEY_SSUSPEND 0625 ----- shifted suspend key -key_sundo kUND str !3 KEY_SUNDO 0626 ----- shifted undo key -key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key -key_undo kund str &8 KEY_UNDO 0630 ----- undo key -label_format fln str Lf - - ----- label format -label_off rmln str LF - - ----- turn off soft labels -label_on smln str LO - - ----- turn on soft labels -micro_column_address mhpa str ZY - - ----- Like column_address in micro mode -micro_down mcud1 str ZZ - - ----- Like cursor_down in micro mode -micro_left mcub1 str Za - - ----- Like cursor_left in micro mode -micro_right mcuf1 str Zb - - ----- Like cursor_right in micro mode -micro_row_address mvpa str Zc - - ----- Like row_address #1 in micro mode -micro_up mcuu1 str Zd - - ----- Like cursor_up in micro mode -mouse_info minfo str Mi - - ----- Mouse status information -order_of_pins porder str Ze - - ----- Match software bits to print-head pins -orig_colors oc str oc - - ----- Set all color pairs to the original ones -orig_pair op str op - - ----- Set default pair to its original value -parm_down_micro mcud str Zf - - ----- Like parm_down_cursor in micro mode -parm_left_micro mcub str Zg - - ----- Like parm_left_cursor in micro mode -parm_right_micro mcuf str Zh - - ----- Like parm_right_cursor in micro mode -parm_up_micro mcuu str Zi - - ----- Like parm_up_cursor in micro mode -pc_term_options pctrm str S6 - - ----- PC terminal options -pkey_plab pfxl str xl - - ----- Program function key #1 to type string #2 and show string #3 -plab_norm pln str pn - - ----- program label #1 to show string #2 -pulse pulse str PU - - ----- select pulse dialing -quick_dial qdial str QD - - ----- dial number #1 without checking -req_for_input rfi str RF - - ----- send next input char (for ptys) -req_mouse_pos reqmp str RQ - - ----- Request mouse position -remove_clock rmclk str RC - - ----- remove clock -scancode_escape scesc str S7 - - ----- Escape for scancode emulation -select_char_set scs str Zj - - ----- Select character set, #1 -set0_des_seq s0ds str s0 - - ----- Shift to codeset 0 (EUC set 0, ASCII) -set1_des_seq s1ds str s1 - - ----- Shift to codeset 1 -set2_des_seq s2ds str s2 - - ----- Shift to codeset 2 -set3_des_seq s3ds str s3 - - ----- Shift to codeset 3 -set_a_background setab str AB - - ----- Set background color to #1, using ANSI escape -set_a_foreground setaf str AF - - ----- Set foreground color to #1, using ANSI escape -set_background setb str Sb - - ----- Set background color #1 -set_bottom_margin smgb str Zk - - ----- Set bottom margin at current line -set_bottom_margin_parm smgbp str Zl - - ----- Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom -set_clock sclk str SC - - ----- set clock, #1 hrs #2 mins #3 secs -set_color_band setcolor str Yz - - ----- Change to ribbon color #1 -set_color_pair scp str sp - - ----- Set current color pair to #1 -set_foreground setf str Sf - - ----- Set foreground color #1 -set_left_margin smgl str ML - - ----- set left soft margin at current column. (ML is not in BSD termcap). -set_left_margin_parm smglp str Zm - - ----- Set left (right) margin at column #1 -set_lr_margin smglr str ML - - ----- Set both left and right margins to #1, #2. (ML is not in BSD termcap). -set_page_length slines str YZ - - ----- Set page length to #1 lines -set_right_margin smgr str MR - - ----- set right soft margin at current column -set_right_margin_parm smgrp str Zn - - ----- Set right margin at column #1 -set_tb_margin smgtb str MT - - ----- Sets both top and bottom margins to #1, #2 -set_top_margin smgt str Zo - - ----- Set top margin at current line -set_top_margin_parm smgtp str Zp - - ----- Set top (bottom) margin at row #1 -start_bit_image sbim str Zq - - ----- Start printing bit image graphics -start_char_set_def scsd str Zr - - ----- Start character set definition #1, with #2 characters in the set -stop_bit_image rbim str Zs - - ----- Stop printing bit image graphics -stop_char_set_def rcsd str Zt - - ----- End definition of character set #1 -subscript_characters subcs str Zu - - ----- List of subscriptable characters -superscript_characters supcs str Zv - - ----- List of superscriptable characters -these_cause_cr docr str Zw - - ----- Printing any of these characters causes CR -tone tone str TO - - ----- select touch tone dialing -user0 u0 str u0 - - ----- User string #0 -user1 u1 str u1 - - ----- User string #1 -user2 u2 str u2 - - ----- User string #2 -user3 u3 str u3 - - ----- User string #3 -user4 u4 str u4 - - ----- User string #4 -user5 u5 str u5 - - ----- User string #5 -user6 u6 str u6 - - ----- User string #6 -user7 u7 str u7 - - ----- User string #7 -user8 u8 str u8 - - ----- User string #8 -user9 u9 str u9 - - ----- User string #9 -wait_tone wait str WA - - ----- wait for dial-tone -xoff_character xoffc str XF - - ----- XOFF character -xon_character xonc str XN - - ----- XON character -zero_motion zerom str Zx - - ----- No motion for subsequent character -set_pglen_inch slength str YI - - ----- Set page length to #1 hundredth of an inch (some implementations use sL for termcap). -enter_horizontal_hl_mode ehhlm str Xh - - ----- Enter horizontal highlight mode -enter_left_hl_mode elhlm str Xl - - ----- Enter left highlight mode -enter_low_hl_mode elohlm str Xo - - ----- Enter low highlight mode -enter_right_hl_mode erhlm str Xr - - ----- Enter right highlight mode -enter_top_hl_mode ethlm str Xt - - ----- Enter top highlight mode -enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode -set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6 -# -# -# -# %%-STOP-HERE-%% -# -# Don't move this casually! In fact, don't move it at all unless you're -# either doing it to add System V or XPG4 extensions, or have decided you -# don't care about SVr4 binary compatibility. -# -############################################################################# -# -# TERMCAP EXTENSION CAPABILITIES -# -# The capabilities below are either obsolete or extensions on certain systems. -# They are not used by SVR4 terminfo. Some are used by captoinfo to translate -# termcap sources; the rest are listed for completeness, and in case somebody -# cares about them enough to hack in code that will translate them into -# terminfo capabilities. -# -# The first part of the list is from Ross Ridge's `mytinfo' package -# (comp.sources.unix, volume 26); the variable names and terminfo names (as -# well as the termcap codes) match his list. -# -# This group of codes is not marked obsolete in 4.4BSD, but have no direct -# terminfo equivalents. The rs capability is specially translated to terminfo -# r2, and vice versa, if an entry does not already have an r2. Similarly, -# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2). -# The ug capability is thrown away, but assumed to be whatever sg is if the -# latter is nonzero and we're dumping in termcap format. -# -termcap_init2 OTi2 str i2 - - YB--- secondary initialization string -termcap_reset OTrs str rs - - YB-G- terminal reset string -magic_cookie_glitch_ul OTug num ug - - YBCGE number of blanks left by ul -# -# Obsolete termcap capabilities. Some are used for termcap translation. The -# code uses the 'OT' prefix we put on obsolete capabilities to suppress -# printing them in terminfo source dumps of compiled entries. -# -backspaces_with_bs OTbs bool bs - - YBCGE uses ^H to move left -crt_no_scrolling OTns bool ns - - YBCG- crt cannot scroll -no_correctly_working_cr OTnc bool nc - - YBCG- no way to go to start of line -carriage_return_delay OTdC num dC - - YB-G- pad needed for CR -new_line_delay OTdN num dN - - YB-G- pad needed for LF -linefeed_if_not_lf OTnl str nl - - YBCGE use to move down -backspace_if_not_bs OTbc str bc - - YBCGE move left, if not ^H -# -# GNU termcap library extensions. The GNU termcap file distributed with -# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the -# BSD termcap file. The name clash with terminfo MT is resolved by type -# info; MT is converted to km. -# -gnu_has_meta_key OTMT bool MT - - ----E has meta key -# gnu_tab_width OTtw num tw - - ----E tab width in spaces -# -# GNU termcap *does* include the following extended capability, Only the -# now-obsolete Ann Arbor terminals used it. -# -# gnu_change_scroll_region OTcS str cS - - ---GE alternate set scrolling region -# -# The following comments describe capnames so ancient that I believe no -# software uses them any longer. Some of these have to go because they -# clash with terminfo names in ways that cannot be resolved by type -# information. -# -# These mytinfo codes are not used in the 4.4BSD curses code. They are -# marked obsolete in the 4.4BSD manual pages. -# -# There is one conflict with terminfo; ma is in both. This conflict is -# resolved by type information. -# -# The `ko' capability is translated by special code. It should contain a -# comma-separated list of capabilities for which there are corresponding keys. -# The `kn' code is accepted but ignored. -# -# The `ma' capability was a 4.0BSD feature used by vi version 2. -# It consists of pairs of characters corresponding to kl, kr, ku, kd, and kh. -# Besides being obsolete, that interpretation conflicts with max_attributes. -# -# Here is a description of memory_lock_above and memory_unlock: -# "You can 'freeze' data on the screen by turning on Memory Lock in a line of -# text. All lines above the cursor's current line become locked in place on -# the screen. Then enter data normally. When the screen fills up, any -# further data entered forces the first line of unfrozen line text to scroll -# under the frozen data. Lines scrolled off the screen are inserted into -# memory immediately preceding the first frozen line." (from the HP 700/96 -# User's manual). VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l. -# -# Applications that use terminfo are supposed to behave as though xr is -# always true. -# -linefeed_is_newline OTNL bool NL - - YB--- move down with \n -# even_parity OTEP bool EP - - -B--- terminal requires even parity -# odd_parity OTOP bool OP - - -B--- terminal requires odd parity -# half_duplex OTHD bool HD - - -B--- terminal is half-duplex -# lower_case_only OTLC bool LC - - -B--- terminal has only lower case -# upper_case_only OTUC bool UC - - -B--- terminal has only upper case -backspace_delay OTdB num dB - - YB-G- padding required for ^H -# form_feed_delay OTdF num dF - - -B-G- padding required for ^L -horizontal_tab_delay OTdT num dT - - YB-G- padding required for ^I -# vertical_tab_delay OTdV num dV - - -B--- padding required for ^V -number_of_function_keys OTkn num kn - - -B-G- count of function keys -other_non_function_keys OTko str ko - - -B-G- list of self-mapped keycaps -arrow_key_map OTma str ma - - YBC-- map motion-keys for vi version 2 -# memory_lock_above OTml str ml - - -B--- lock visible screen memory above the current line -# memory_unlock OTmu str mu - - -B--- unlock visible screen memory above the current line -has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I -return_does_clr_eol OTxr bool xr - - YB--- return clears the line -# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch -# -# mytinfo described this as a termcap capability, but it is not listed in the -# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses -# package, like System V, behaves as though it is always true. -# -# rind_only_at_top OTxq bool xq - - ----- reverse index only works from top line -# -# University of Waterloo termcap extensions (as described in mytinfo). -# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot -# be resolved by a type check. The descriptions are guesses from what was -# in the mytinfo tables. -# -# key_interrupt_char OTki str ki - - ----- string set by interrupt key (?) -# key_kill_char OTkk str kk - - ----- string set by kill key (?) -# key_suspend_char OTkz str kz - - ----- string set by suspend key (?) -# initialization_messy OTxc bool xc - - ----- initialization leaves garbage on the screen (?) -# ind_at_bottom_does_cr OTxl bool xl - - ----- index does a carriage return -# -# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package. -# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type -# check. -# -# scroll_left OTsl1 str Sl - - ----- scroll screen leftward -# scroll_right OTsr1 str Sr - - ----- scroll screen rightward -# parm_scroll_left OTsl str SL - - ----- scroll screen leftward #1 characters -# parm_scroll_right OTsr str SR - - ----- scroll screen rightward #1 characters -# -# The mytinfo capabilities end here. -# -# XENIX extensions: -# -# Xenix defined its own set of forms-drawing capabilities: -# -# cap IBM ASCII description ACS ASCII -# --- ----------- -------------------- ------------- ------ -# G1 191 \277 M-? single upper right ACS_URCORNER -# G2 218 \332 M-Z single upper left ACS_ULCORNER -# G3 192 \300 M-@ single lower left ACS_LLCORNER -# G4 217 \331 M-Y single lower right ACS_LRCORNER -# G5 187 \273 M-; double upper right -# G6 201 \311 M-I double upper left -# G7 200 \310 M-H double lower left -# G8 188 \274 M-< double lower right -# GC 197 \305 M-E single intersection ACS_PLUS _ _ -# GD 194 \302 M-B single down-tick ACS_TTEE | -# GH 196 \304 M-D single horizontal line ACS_HLINE -# GL 180 \264 M-4 single left tick ACS_RTEE -| -# GR 195 \303 M-C single right tick ACS_LTEE |- -# GU 193 \301 M-A single up tick ACS_BTEE _|_ -# GV 179 \263 M-3 single vertical line ACS_VLINE -# Gc 206 \316 M-N double intersection -# Gd 203 \313 M-K double down tick -# Gh 205 \315 M-M double horizontal line -# Gl 204 \204 M-L double left tick -# Gr 185 \271 M-9 double right tick -# Gu 202 \312 M-J double up tick -# Gv 186 \272 M-: double vertical line -# -# The compiler will translate the single-line caps and discard the others -# (via IGNORE aliases further down). We don't want to do normal pad -# translation on these, they're often single-character printable ASCII -# strings that happen to be numerics. There's awk code in parametrized.sh -# that detects the acs_ prefix and uses it to suppress pad translation. -# These terminfo names are invented. -# -acs_ulcorner OTG2 str G2 - - ----- single upper left -acs_llcorner OTG3 str G3 - - ----- single lower left -acs_urcorner OTG1 str G1 - - ----- single upper right -acs_lrcorner OTG4 str G4 - - ----- single lower right -acs_ltee OTGR str GR - - ----- tee pointing right -acs_rtee OTGL str GL - - ----- tee pointing left -acs_btee OTGU str GU - - ----- tee pointing up -acs_ttee OTGD str GD - - ----- tee pointing down -acs_hline OTGH str GH - - ----- single horizontal line -acs_vline OTGV str GV - - ----- single vertical line -acs_plus OTGC str GC - - ----- single intersection -# -############################################################################# -# -# TERMINFO EXTENSION CAPABILITIES -# -# (see Caps-ncurses for the complete set of comments) -# -memory_lock meml str ml - - ----K lock memory above cursor -memory_unlock memu str mu - - ----K unlock memory -# -############################################################################# diff --git a/include/Caps.uwin b/include/Caps.uwin deleted file mode 100644 index af47de9..0000000 --- a/include/Caps.uwin +++ /dev/null @@ -1,796 +0,0 @@ -############################################################################## -# Copyright 2019-2020,2021 Thomas E. Dickey # -# Copyright 2001-2015,2016 Free Software Foundation, Inc. # -# # -# Permission is hereby granted, free of charge, to any person obtaining a # -# copy of this software and associated documentation files (the "Software"), # -# to deal in the Software without restriction, including without limitation # -# the rights to use, copy, modify, merge, publish, distribute, distribute # -# with modifications, sublicense, and/or sell copies of the Software, and to # -# permit persons to whom the Software is furnished to do so, subject to the # -# following conditions: # -# # -# The above copyright notice and this permission notice shall be included in # -# all copies or substantial portions of the Software. # -# # -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # -# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # -# DEALINGS IN THE SOFTWARE. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas Dickey -# -# $Id: Caps.uwin,v 1.15 2021/10/08 07:55:48 tom Exp $ -# -# This is an adaptation of ncurses' termcap/terminfo capability table, which -# is designed to align with U/Win's terminfo. -# -# This table is used to generate initializers for tables that drive tic, -# infocmp, and the library compilation code used to support the termcap -# compatibility hack. It is also used to generate the tabular portion of the -# terminfo(5) man page; lines beginning with `#%' are passed through to become -# the terminfo table. -# -# This file has three major sections; a standard-capabilities table, two -# extension-capability tables, and a section of aliases declarations. -# The first two have the same format, as follows: -# -# FILE FORMAT -# -# Column 1: terminfo variable name -# Column 2: terminfo capability name -# Column 3: capability type (boolean, numeric, or string) -# Column 4: termcap capability name -# Column 5: KEY_xxx name, if any, `-' otherwise -# Column 6: value for KEY_xxx name, if any, `-' otherwise -# Column 7: Lead with `Y' if capability should be emitted in termcap -# translations, `-' otherwise -# Column 8: capability description -# -# The codes following [Y-] in column 7 describe the versions of termcap which -# use the given capability. This information is not used by the curses library -# proper; rather, it is there to help the terminfo maintainer avoid emitting -# termcap entry translations that are more than 1023 bytes long (and tank a -# lot of old termcap-using programs). The codes read as follows: -# B = mentioned in the BSD man page for 4.4BSD curses -# C = used by the 4.4BSD curses library -# G = mentioned in the documentation for GNU termcap -# E = used by GNU Emacs -# K = remove this terminfo capability when translating to standard format -# The important codes are C and E. A cap with C or E should be preserved in -# translation if possible. The problem is that preserving all such caps may -# lead to some termcap translations being too long. The termcap maintainer -# has a bit of a juggling act to do...potential problem cases are marked with -# an asterisk (*). -# -# The aliases section has the following format: -# -# Column 1: either `capalias' or `infoalias' -# Column 2: name to be aliased -# Column 3: what name it should translate to. The name IGNORE means it -# should be discarded with a warning message. -# Column 4: name of the extension set (used for compiler warning messages) -# Column 5: capability description (usually an associated terminfo variable) -# -# HANDLING TERMCAP AND TERMINFO EXTENSIONS -# -# There are basically five different ways to handle termcap and terminfo -# extensions: -# -# 1. Don't list the capname here, or list it but comment it out (the latter -# is preferable; someone might want to handle it in the future). If you do -# this, the capability will be treated as unknown and raise a warning from -# the compiler. -# -# 2. Alias it. This is appropriate if the capability has the same meaning -# as an already-supported one. The compiler will handle aliasing, emitting -# an appropriate informational message whenever an alias fires. -# -# 3. List it in the standard table. You almost certainly do *not* want -# to do this -- the capabilities in that one, and their order, have been -# carefully chosen to be SVr4-binary-compatible when they're written out -# as a terminfo object, and breaking this would be bad. It is up to the ncurses -# library what to do with the terminfo data after it is read in. -# -# 4. List it in the aliases table with an IGNORE target field. If you -# do this, the capability will be ignored on input (though the user will -# get a warning message about it). -# -# 5. List it in the extensions table. If you do this, the compiler will -# silently accept the capability, but the curses library proper will never -# see it (because it won't be written out as part of the terminfo object -# format). It is up to you what you have the compiler do with it. -# -# There are two opposite reasons to choose option 5. One is when you want -# to eat the capability silently and discard it when doing translations -# to terminfo with tic -I. Some very old obsolete BSD caps like :kn: are -# in this class. Nothing will ever use them again. -# -# More usually, you want the compiler to try to deduce something from the -# capability value that it can use to translate it into your output format. -# You'll need to write custom code, probably in postprocess_termcap() or -# postprocess_terminfo(), to handle the translation. -# -# CONTROLLING ENTRY LENGTH -# -# Notes on specific elisions made to fit translations within 1023 bytes: -# -# Machines with IBM PC-like keyboards want to be able to define the following -# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap- -# only environments for End or Home-Down), key_dc, and key_ic. This is also -# the set of keys the `joe' editor will be upset if it can't see. So don't -# trim those out of the set to be translated to termcap, or various users of -# the termcap file will become irate. -# -# It might look tempting to leave those long init strings out of translations. -# We can't do it (yet); 4.4BSD tput and tset use them. -# -# We retain the sgr capability in translation in spite of the fact that neither -# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are -# hard to understand without it, and (b) the entries in which it is long tend -# to be older types that don't use up a lot of string space on function keys. -# The tic(1) translation code will complain and elide it if it makes a critical -# difference (there is special code in tic to recognize this situation). -# -# Yes, BSD tset(1) uses hpa. We elide hpa/vpa anyway because the motion -# optimizer in BSD curses didn't use them. This omission seems to be the -# single most effective one, it shortened the resolved length of all thirteen -# problem entries in the 9.9.0 version of the terminfo master below critical. -# -# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap -# translations go back over critical if we do this. As 4.4BSD curses fades -# into history and GNU termcap's application base shrinks towards being GNU -# Emacs only, we'll probably elide out some BSD-only capabilities in order -# to buy space for non-essentials Emacs is still using. Capabilities high -# on that hit list: rc, sc, uc. -# -############################################################################# -# -# STANDARD CAPABILITIES -# -#%The following is a complete table of the capabilities included in a -#%terminfo description block and available to terminfo-using code. In each -#%line of the table, -#% -#%The \fBvariable\fR is the name by which the programmer (at the terminfo level) -#%accesses the capability. -#% -#%The \fBcapname\fR is the short name used in the text of the database, -#%and is used by a person updating the database. -#%Whenever possible, capnames are chosen to be the same as or similar to -#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses -#%identical or very similar names). Semantics are also intended to match -#%those of the specification. -#% -#%The termcap code is the old -#%.B termcap -#%capability name (some capabilities are new, and have names which termcap -#%did not originate). -#%.P -#%Capability names have no hard length limit, but an informal limit of 5 -#%characters has been adopted to keep them short and to allow the tabs in -#%the source file -#%.B Caps -#%to line up nicely. -#% -#%Finally, the description field attempts to convey the semantics of the -#%capability. You may find some codes in the description field: -#%.TP -#%(P) -#%indicates that padding may be specified -#%.TP -#%#[1-9] -#%in the description field indicates that the string is passed -#%through \fBtparm\fP(3X) with parameters as given (#\fIi\fP). -#%.IP -#%If no parameters are listed in the description, -#%passing the string through \fBtparm\fP(3X) may give unexpected results, -#%e.g., if it contains percent (%%) signs. -#%.TP -#%(P*) -#%indicates that padding may vary in proportion to the number of -#%lines affected -#%.TP -#%(#\d\fIi\fP\u) -#%indicates the \fIi\fP\uth\d parameter. -#% -#%.PP -#% These are the boolean capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBBooleans name Code\fR -auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column -auto_right_margin am bool am - - YBCGE terminal has automatic margins -no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C) -ceol_standout_glitch xhp bool xs - - YBCGE standout not erased by overwriting (hp) -eat_newline_glitch xenl bool xn - - YBCGE newline ignored after 80 cols (concept) -erase_overstrike eo bool eo - - YBCG- can erase overstrikes with a blank -generic_type gn bool gn - - YB-G- generic line type -hard_copy hc bool hc - - YBCG- hardcopy terminal -has_meta_key km bool km - - YB-GE Has a meta key (i.e., sets 8th-bit) -has_status_line hs bool hs - - YB-G- has extra status line -insert_null_glitch in bool in - - YBCGE insert mode distinguishes nulls -memory_above da bool da - - YBCG- display may be retained above the screen -memory_below db bool db - - YB-GE display may be retained below the screen -move_insert_mode mir bool mi - - YBCGE safe to move while in insert mode -move_standout_mode msgr bool ms - - YBCGE safe to move while in standout mode -over_strike os bool os - - YBCG- terminal can overstrike -status_line_esc_ok eslok bool es - - YB-G- escape can be used on the status line -dest_tabs_magic_smso xt bool xt - - YBCGE tabs destructive, magic so char (t1061) -tilde_glitch hz bool hz - - YB-GE cannot print ~'s (Hazeltine) -transparent_underline ul bool ul - - YBCGE underline character overstrikes -xon_xoff xon bool xo - - YB--- terminal uses xon/xoff handshaking -needs_xon_xoff nxon bool nx - - ----- padding will not work, xon/xoff required -prtr_silent mc5i bool 5i - - ----- printer will not echo on screen -hard_cursor chts bool HC - - ----- cursor is hard to see -non_rev_rmcup nrrmc bool NR - - ----- smcup does not reverse rmcup -no_pad_char npc bool NP - - ----- pad character does not exist -non_dest_scroll_region ndscr bool ND - - ----- scrolling region is non-destructive -back_color_erase bce bool ut - - ----- screen erased with background color -can_change ccc bool cc - - ----- terminal can re-define existing colors -hue_lightness_saturation hls bool hl - - ----- terminal uses only HLS color notation (Tektronix) -#%.TE -#%.ad -#% -#%These are the numeric capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBNumeric name Code\fR -columns cols num co - - YBCGE number of columns in a line -init_tabs it num it - - YB-G- tabs initially every # spaces -lines lines num li - - YBCGE number of lines on screen or page -lines_of_memory lm num lm - - YB-G- lines of memory if > line. 0 means varies -magic_cookie_glitch xmc num sg - - YBCGE number of blank characters left by smso or rmso -padding_baud_rate pb num pb - - YB-GE lowest baud rate where padding needed -virtual_terminal vt num vt - - YB--- virtual terminal number (CB/unix) -width_status_line wsl num ws - - YB-G- number of columns in status line -num_labels nlab num Nl - - ----- number of labels on screen -label_height lh num lh - - ----- rows in each label -label_width lw num lw - - ----- columns in each label -buttons btns num BT - - ----- number of buttons on mouse -#max_attributes ma num ma - - YBC-- maximum combined attributes terminal can handle -#maximum_windows wnum num MW - - ----- maximum number of defineable windows -# These came in with SVr4's color support -max_colors colors num Co - - ----- maximum number of colors on screen -max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen -no_color_video ncv num NC - - ----- video attributes that cannot be used with colors -#%.TE -#%.ad -#% -#%The following numeric capabilities are present in the SVr4.0 term structure, -#%but are not yet documented in the man page. They came in with SVr4's -#%printer support. -#% -#%.na -#% -#%These are the string capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -back_tab cbt str bt - - YBCGE back tab (P) -bell bel str bl - - YB-GE audible signal (bell) (P) -carriage_return cr str cr - - YBCGE carriage return (P*) (P*) -change_scroll_region csr str cs - - YBCGE change region to line #1 to line #2 (P) -clear_all_tabs tbc str ct - - YB-G- clear all tab stops (P) -clear_screen clear str cl - - YBCGE clear screen and home cursor (P*) -clr_eol el str ce - - YBCGE clear to end of line (P) -clr_eos ed str cd - - YBCGE clear to end of screen (P*) -column_address hpa str ch - - -B-GE* horizontal position #1, absolute (P) -command_character cmdch str CC - - YB-G- terminal settable cmd character in prototype !? -cursor_address cup str cm - - YBCGE move to row #1 columns #2 -cursor_down cud1 str do - - YBCGE down one line -cursor_home home str ho - - YBCGE home cursor (if no cup) -cursor_invisible civis str vi - - YB-G- make cursor invisible -cursor_left cub1 str le - - YBCGE move left one space -cursor_mem_address mrcup str CM - - YB-G- memory relative cursor addressing, move to row #1 columns #2 -cursor_normal cnorm str ve - - YBCGE make cursor appear normal (undo civis/cvvis) -cursor_right cuf1 str nd - - YBCGE non-destructive space (move right one space) -cursor_to_ll ll str ll - - YBCGE last line, first column (if no cup) -cursor_up cuu1 str up - - YBCGE up one line -cursor_visible cvvis str vs - - YBCGE make cursor very visible -delete_character dch1 str dc - - YBCGE delete character (P*) -delete_line dl1 str dl - - YBCGE delete line (P*) -dis_status_line dsl str ds - - YB-G- disable status line -down_half_line hd str hd - - YB-G- half a line down -enter_alt_charset_mode smacs str as - - YB-G- start alternate character set (P) -enter_blink_mode blink str mb - - YB-G- turn on blinking -enter_bold_mode bold str md - - YB-G- turn on bold (extra bright) mode -enter_ca_mode smcup str ti - - YBCGE string to start programs using cup -enter_delete_mode smdc str dm - - YBCGE enter delete mode -enter_dim_mode dim str mh - - YB-G- turn on half-bright mode -enter_insert_mode smir str im - - YBCGE enter insert mode -enter_secure_mode invis str mk - - -B-G-* turn on blank mode (characters invisible) -enter_protected_mode prot str mp - - -B-G-* turn on protected mode -enter_reverse_mode rev str mr - - YB-G- turn on reverse video mode -enter_standout_mode smso str so - - YBCGE begin standout mode -enter_underline_mode smul str us - - YBCGE begin underline mode -erase_chars ech str ec - - YB-G- erase #1 characters (P) -exit_alt_charset_mode rmacs str ae - - YB-G- end alternate character set (P) -exit_attribute_mode sgr0 str me - - YB-GE turn off all attributes -exit_ca_mode rmcup str te - - YBCGE strings to end programs using cup -exit_delete_mode rmdc str ed - - YBCGE end delete mode -exit_insert_mode rmir str ei - - YBCGE exit insert mode -exit_standout_mode rmso str se - - YBCGE exit standout mode -exit_underline_mode rmul str ue - - YBCGE exit underline mode -flash_screen flash str vb - - YBCGE visible bell (may not move cursor) -form_feed ff str ff - - YB-G- hardcopy terminal page eject (P*) -from_status_line fsl str fs - - YB-G- return from status line -init_1string is1 str i1 - - YB-G- initialization string -init_2string is2 str is - - YB-G- initialization string -init_3string is3 str i3 - - YB-G- initialization string -init_file if str if - - YB-G- name of initialization file -insert_character ich1 str ic - - YBCGE insert character (P) -insert_line il1 str al - - YBCGE insert line (P*) -insert_padding ip str ip - - YBCGE insert padding after inserted character -key_backspace kbs str kb KEY_BACKSPACE 0407 YB-G- backspace key -key_catab ktbc str ka KEY_CATAB 0526 -B-G-* clear-all-tabs key -key_clear kclr str kC KEY_CLEAR 0515 -B-G-* clear-screen or erase key -key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key -key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key -key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key -key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key -key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode -key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key -key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key -key_f0 kf0 str k0 KEY_F(0) 0410 YBCGE F0 function key -key_f1 kf1 str k1 KEY_F(1) - YBCGE F1 function key -key_f10 kf10 str k; KEY_F(10) - ----E F10 function key -key_f2 kf2 str k2 KEY_F(2) - YBCGE F2 function key -key_f3 kf3 str k3 KEY_F(3) - YBCGE F3 function key -key_f4 kf4 str k4 KEY_F(4) - YBCGE F4 function key -key_f5 kf5 str k5 KEY_F(5) - YBCGE F5 function key -key_f6 kf6 str k6 KEY_F(6) - YBCGE F6 function key -key_f7 kf7 str k7 KEY_F(7) - YBCGE F7 function key -key_f8 kf8 str k8 KEY_F(8) - YBCGE F8 function key -key_f9 kf9 str k9 KEY_F(9) - YBCGE F9 function key -key_home khome str kh KEY_HOME 0406 YBCGE home key -key_ic kich1 str kI KEY_IC 0513 YB-GE insert-character key -key_il kil1 str kA KEY_IL 0511 -B-G-* insert-line key -key_left kcub1 str kl KEY_LEFT 0404 YBCGE left-arrow key -key_ll kll str kH KEY_LL 0533 YB-G- lower-left key (home down) -key_npage knp str kN KEY_NPAGE 0522 YB-GE next-page key -key_ppage kpp str kP KEY_PPAGE 0523 YB-GE previous-page key -key_right kcuf1 str kr KEY_RIGHT 0405 YBCGE right-arrow key -key_sf kind str kF KEY_SF 0520 -B-G-* scroll-forward key -key_sr kri str kR KEY_SR 0521 -B-G-* scroll-backward key -key_stab khts str kT KEY_STAB 0524 -B-G-* set-tab key -key_up kcuu1 str ku KEY_UP 0403 YBCGE up-arrow key -keypad_local rmkx str ke - - YBCGE leave 'keyboard_transmit' mode -keypad_xmit smkx str ks - - YBCGE enter 'keyboard_transmit' mode -lab_f0 lf0 str l0 - - -B-G-* label on function key f0 if not f0 -lab_f1 lf1 str l1 - - -B-G-* label on function key f1 if not f1 -lab_f10 lf10 str la - - ----- label on function key f10 if not f10 -lab_f2 lf2 str l2 - - -B-G-* label on function key f2 if not f2 -lab_f3 lf3 str l3 - - -B-G-* label on function key f3 if not f3 -lab_f4 lf4 str l4 - - -B-G-* label on function key f4 if not f4 -lab_f5 lf5 str l5 - - -B-G-* label on function key f5 if not f5 -lab_f6 lf6 str l6 - - -B-G-* label on function key f6 if not f6 -lab_f7 lf7 str l7 - - -B-G-* label on function key f7 if not f7 -lab_f8 lf8 str l8 - - -B-G-* label on function key f8 if not f8 -lab_f9 lf9 str l9 - - -B-G-* label on function key f9 if not f9 -meta_off rmm str mo - - YB-G-* turn off meta mode -meta_on smm str mm - - YB-G-* turn on meta mode (8th-bit on) -newline nel str nw - - YB-G-* newline (behave like cr followed by lf) -pad_char pad str pc - - YBCGE padding char (instead of null) -parm_dch dch str DC - - YB-GE delete #1 characters (P*) -parm_delete_line dl str DL - - YBCGE delete #1 lines (P*) -parm_down_cursor cud str DO - - YBCGE down #1 lines (P*) -parm_ich ich str IC - - YB-GE insert #1 characters (P*) -parm_index indn str SF - - YBCG- scroll forward #1 lines (P) -parm_insert_line il str AL - - YBCGE insert #1 lines (P*) -parm_left_cursor cub str LE - - YBCGE move #1 characters to the left (P) -parm_right_cursor cuf str RI - - YBCGE move #1 characters to the right (P*) -parm_rindex rin str SR - - YBCG- scroll back #1 lines (P) -parm_up_cursor cuu str UP - - YBCGE up #1 lines (P*) -pkey_key pfkey str pk - - -B--- program function key #1 to type string #2 -pkey_local pfloc str pl - - -B--- program function key #1 to execute string #2 -pkey_xmit pfx str px - - -B--- program function key #1 to transmit string #2 -print_screen mc0 str ps - - -B-G-* print contents of screen -prtr_off mc4 str pf - - -B-G-* turn off printer -prtr_on mc5 str po - - -B-G-* turn on printer -repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*) -reset_1string rs1 str r1 - - -B--- reset string -reset_2string rs2 str r2 - - -B--- reset string -reset_3string rs3 str r3 - - -B--- reset string -reset_file rf str rf - - -B--- name of reset file -restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor -row_address vpa str cv - - -B-GE* vertical position #1 absolute (P) -save_cursor sc str sc - - YBCG- save current cursor position (P) -scroll_forward ind str sf - - YBCGE scroll text up (P) -scroll_reverse ri str sr - - YBCGE scroll text down (P) -set_attributes sgr str sa - - YB-G- define video attributes #1-#9 (PG9) -set_tab hts str st - - YB-G- set a tab in every row, current columns -set_window wind str wi - - -B-GE current window is lines #1-#2 cols #3-#4 -tab ht str ta - - YBCGE tab to next 8-space hardware tab stop -to_status_line tsl str ts - - YB-G- move to status line, column #1 -underline_char uc str uc - - YBCG- underline char and move past it -up_half_line hu str hu - - YB-G- half a line up -init_prog iprog str iP - - -B--- path name of program for initialization -key_a1 ka1 str K1 KEY_A1 0534 YB-GE upper left of keypad -key_a3 ka3 str K3 KEY_A3 0535 YB-GE upper right of keypad -key_b2 kb2 str K2 KEY_B2 0536 YB-GE center of keypad -key_c1 kc1 str K4 KEY_C1 0537 YB-GE lower left of keypad -key_c3 kc3 str K5 KEY_C3 0540 YB-GE lower right of keypad -prtr_non mc5p str pO - - -B-G-* turn on printer for #1 bytes -# -# SVr1 capabilities stop here. IBM's version of terminfo is the same as -# SVr4 up to this point, but has a different set afterwards. -# -char_padding rmp str rP - - ----- like ip but when in insert mode -acs_chars acsc str ac - - ----- graphics charset pairs, based on vt100 -plab_norm pln str pn - - ----- program label #1 to show string #2 -key_btab kcbt str kB KEY_BTAB 0541 ----- back-tab key -enter_xon_mode smxon str SX - - ----- turn on xon/xoff handshaking -exit_xon_mode rmxon str RX - - ----- turn off xon/xoff handshaking -enter_am_mode smam str SA - - ----- turn on automatic margins -exit_am_mode rmam str RA - - ----- turn off automatic margins -xon_character xonc str XN - - ----- XON character -xoff_character xoffc str XF - - ----- XOFF character -ena_acs enacs str eA - - ----- enable alternate char set -label_on smln str LO - - ----- turn on soft labels -label_off rmln str LF - - ----- turn off soft labels -key_beg kbeg str @1 KEY_BEG 0542 ----- begin key -key_cancel kcan str @2 KEY_CANCEL 0543 ----- cancel key -key_close kclo str @3 KEY_CLOSE 0544 ----- close key -key_command kcmd str @4 KEY_COMMAND 0545 ----- command key -key_copy kcpy str @5 KEY_COPY 0546 ----- copy key -key_create kcrt str @6 KEY_CREATE 0547 ----- create key -key_end kend str @7 KEY_END 0550 ----- end key -key_enter kent str @8 KEY_ENTER 0527 ----- enter/send key -key_exit kext str @9 KEY_EXIT 0551 ----- exit key -key_find kfnd str @0 KEY_FIND 0552 ----- find key -key_help khlp str %1 KEY_HELP 0553 ----- help key -key_mark kmrk str %2 KEY_MARK 0554 ----- mark key -key_message kmsg str %3 KEY_MESSAGE 0555 ----- message key -key_move kmov str %4 KEY_MOVE 0556 ----- move key -key_next knxt str %5 KEY_NEXT 0557 ----- next key -key_open kopn str %6 KEY_OPEN 0560 ----- open key -key_options kopt str %7 KEY_OPTIONS 0561 ----- options key -key_previous kprv str %8 KEY_PREVIOUS 0562 ----- previous key -key_print kprt str %9 KEY_PRINT 0532 ----- print key -key_redo krdo str %0 KEY_REDO 0563 ----- redo key -key_reference kref str &1 KEY_REFERENCE 0564 ----- reference key -key_refresh krfr str &2 KEY_REFRESH 0565 ----- refresh key -key_replace krpl str &3 KEY_REPLACE 0566 ----- replace key -key_restart krst str &4 KEY_RESTART 0567 ----- restart key -key_resume kres str &5 KEY_RESUME 0570 ----- resume key -key_save ksav str &6 KEY_SAVE 0571 ----- save key -key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key -key_undo kund str &8 KEY_UNDO 0630 ----- undo key -key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key -key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key -key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key -key_scopy kCPY str *2 KEY_SCOPY 0575 ----- shifted copy key -key_screate kCRT str *3 KEY_SCREATE 0576 ----- shifted create key -key_sdc kDC str *4 KEY_SDC 0577 ----- shifted delete-character key -key_sdl kDL str *5 KEY_SDL 0600 ----- shifted delete-line key -key_select kslt str *6 KEY_SELECT 0601 ----- select key -key_send kEND str *7 KEY_SEND 0602 ----- shifted end key -key_seol kEOL str *8 KEY_SEOL 0603 ----- shifted clear-to-end-of-line key -key_sexit kEXT str *9 KEY_SEXIT 0604 ----- shifted exit key -key_sfind kFND str *0 KEY_SFIND 0605 ----- shifted find key -key_shelp kHLP str #1 KEY_SHELP 0606 ----- shifted help key -key_shome kHOM str #2 KEY_SHOME 0607 ----- shifted home key -key_sic kIC str #3 KEY_SIC 0610 ----- shifted insert-character key -key_sleft kLFT str #4 KEY_SLEFT 0611 ----- shifted left-arrow key -key_smessage kMSG str %a KEY_SMESSAGE 0612 ----- shifted message key -key_smove kMOV str %b KEY_SMOVE 0613 ----- shifted move key -key_snext kNXT str %c KEY_SNEXT 0614 ----- shifted next key -key_soptions kOPT str %d KEY_SOPTIONS 0615 ----- shifted options key -key_sprevious kPRV str %e KEY_SPREVIOUS 0616 ----- shifted previous key -key_sprint kPRT str %f KEY_SPRINT 0617 ----- shifted print key -key_sredo kRDO str %g KEY_SREDO 0620 ----- shifted redo key -key_sreplace kRPL str %h KEY_SREPLACE 0621 ----- shifted replace key -key_sright kRIT str %i KEY_SRIGHT 0622 ----- shifted right-arrow key -key_srsume kRES str %j KEY_SRSUME 0623 ----- shifted resume key -key_ssave kSAV str !1 KEY_SSAVE 0624 ----- shifted save key -key_ssuspend kSPD str !2 KEY_SSUSPEND 0625 ----- shifted suspend key -key_sundo kUND str !3 KEY_SUNDO 0626 ----- shifted undo key -req_for_input rfi str RF - - ----- send next input char (for ptys) -key_f11 kf11 str F1 KEY_F(11) - ----E F11 function key -key_f12 kf12 str F2 KEY_F(12) - ----E F12 function key -key_f13 kf13 str F3 KEY_F(13) - ----E F13 function key -key_f14 kf14 str F4 KEY_F(14) - ----E F14 function key -key_f15 kf15 str F5 KEY_F(15) - ----E F15 function key -key_f16 kf16 str F6 KEY_F(16) - ----E F16 function key -key_f17 kf17 str F7 KEY_F(17) - ----E F17 function key -key_f18 kf18 str F8 KEY_F(18) - ----E F18 function key -key_f19 kf19 str F9 KEY_F(19) - ----E F19 function key -key_f20 kf20 str FA KEY_F(20) - ----E F20 function key -key_f21 kf21 str FB KEY_F(21) - ----E F21 function key -key_f22 kf22 str FC KEY_F(22) - ----E F22 function key -key_f23 kf23 str FD KEY_F(23) - ----E F23 function key -key_f24 kf24 str FE KEY_F(24) - ----E F24 function key -key_f25 kf25 str FF KEY_F(25) - ----E F25 function key -key_f26 kf26 str FG KEY_F(26) - ----E F26 function key -key_f27 kf27 str FH KEY_F(27) - ----E F27 function key -key_f28 kf28 str FI KEY_F(28) - ----E F28 function key -key_f29 kf29 str FJ KEY_F(29) - ----E F29 function key -key_f30 kf30 str FK KEY_F(30) - ----E F30 function key -key_f31 kf31 str FL KEY_F(31) - ----E F31 function key -key_f32 kf32 str FM KEY_F(32) - ----E F32 function key -key_f33 kf33 str FN KEY_F(33) - ----E F33 function key -key_f34 kf34 str FO KEY_F(34) - ----E F34 function key -key_f35 kf35 str FP KEY_F(35) - ----E F35 function key -key_f36 kf36 str FQ KEY_F(36) - ----E F36 function key -key_f37 kf37 str FR KEY_F(37) - ----E F37 function key -key_f38 kf38 str FS KEY_F(38) - ----E F38 function key -key_f39 kf39 str FT KEY_F(39) - ----E F39 function key -key_f40 kf40 str FU KEY_F(40) - ----E F40 function key -key_f41 kf41 str FV KEY_F(41) - ----E F41 function key -key_f42 kf42 str FW KEY_F(42) - ----E F42 function key -key_f43 kf43 str FX KEY_F(43) - ----E F43 function key -key_f44 kf44 str FY KEY_F(44) - ----E F44 function key -key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key -key_f46 kf46 str Fa KEY_F(46) - ----E F46 function key -key_f47 kf47 str Fb KEY_F(47) - ----E F47 function key -key_f48 kf48 str Fc KEY_F(48) - ----E F48 function key -key_f49 kf49 str Fd KEY_F(49) - ----E F49 function key -key_f50 kf50 str Fe KEY_F(50) - ----E F50 function key -key_f51 kf51 str Ff KEY_F(51) - ----E F51 function key -key_f52 kf52 str Fg KEY_F(52) - ----E F52 function key -key_f53 kf53 str Fh KEY_F(53) - ----E F53 function key -key_f54 kf54 str Fi KEY_F(54) - ----E F54 function key -key_f55 kf55 str Fj KEY_F(55) - ----E F55 function key -key_f56 kf56 str Fk KEY_F(56) - ----E F56 function key -key_f57 kf57 str Fl KEY_F(57) - ----E F57 function key -key_f58 kf58 str Fm KEY_F(58) - ----E F58 function key -key_f59 kf59 str Fn KEY_F(59) - ----E F59 function key -key_f60 kf60 str Fo KEY_F(60) - ----E F60 function key -key_f61 kf61 str Fp KEY_F(61) - ----E F61 function key -key_f62 kf62 str Fq KEY_F(62) - ----E F62 function key -key_f63 kf63 str Fr KEY_F(63) - ----E F63 function key -clr_bol el1 str cb - - ----- Clear to beginning of line -clear_margins mgc str MC - - ----- clear right and left soft margins -set_left_margin smgl str ML - - ----- set left soft margin at current column. (ML is not in BSD termcap). -set_right_margin smgr str MR - - ----- set right soft margin at current column -device_type devt str dv - - ----- Indicate language/codeset support -code_set_init csin str ci - - ----- Init sequence for multiple codesets -set0_des_seq s0ds str s0 - - ----- Shift to codeset 0 (EUC set 0, ASCII) -set1_des_seq s1ds str s1 - - ----- Shift to codeset 1 -set2_des_seq s2ds str s2 - - ----- Shift to codeset 2 -set3_des_seq s3ds str s3 - - ----- Shift to codeset 3 -key_mouse kmous str Km KEY_MOUSE 0631 ----- Mouse event has occurred -mouse_info minfo str Mi - - ----- Mouse status information -req_mouse_pos reqmp str RQ - - ----- Request mouse position -get_mouse getm str Gm - - ----- Curses should get button events, parameter #1 not documented. -release_mouse relm str Rm - - ----- Curses should release the mouse */ -color_names colornm str Yw - - ----- Give name for color #1 -initialize_color initc str Ic - - ----- initialize color #1 to (#2,#3,#4) -initialize_pair initp str Ip - - ----- Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7) -orig_colors oc str oc - - ----- Set all color pairs to the original ones -orig_pair op str op - - ----- Set default pair to its original value -set_a_background setab str AB - - ----- Set background color to #1, using ANSI escape -set_a_foreground setaf str AF - - ----- Set foreground color to #1, using ANSI escape -set_background setb str Sb - - ----- Set background color #1 -set_color_pair scp str sp - - ----- Set current color pair to #1 -set_foreground setf str Sf - - ----- Set foreground color #1 -#%.TE -#%.ad -#% -# The magic token below tells the tic compiler-generator code that all the caps -# past it should be ignored (not written out) when dumping terminfo objects. It -# also tells the man page table generator not to pass through following lines -# This means we can have obsolete capabilities and pseudo-capabilities that are -# recognized for termcap or terminfo compilation, but not output. -# -# %%-STOP-HERE-%% -# -# Don't move this casually! In fact, don't move it at all unless you're -# either doing it to add System V or XPG4 extensions, or have decided you -# don't care about SVr4 binary compatibility. -# -############################################################################# -# -# TERMCAP EXTENSION CAPABILITIES -# -# The capabilities below are either obsolete or extensions on certain systems. -# They are not used by SVR4 terminfo. Some are used by captoinfo to translate -# termcap sources; the rest are listed for completeness, and in case somebody -# cares about them enough to hack in code that will translate them into -# terminfo capabilities. -# -# The first part of the list is from Ross Ridge's `mytinfo' package -# (comp.sources.unix, volume 26); the variable names and terminfo names (as -# well as the termcap codes) match his list. -# -# This group of codes is not marked obsolete in 4.4BSD, but have no direct -# terminfo equivalents. The rs capability is specially translated to terminfo -# r2, and vice versa, if an entry does not already have an r2. Similarly, -# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2). -# The ug capability is thrown away, but assumed to be whatever sg is if the -# latter is nonzero and we're dumping in termcap format. -# -termcap_init2 OTi2 str i2 - - YB--- secondary initialization string -termcap_reset OTrs str rs - - YB-G- terminal reset string -magic_cookie_glitch_ul OTug num ug - - YBCGE number of blanks left by ul -# -# Obsolete termcap capabilities. Some are used for termcap translation. The -# code uses the 'OT' prefix we put on obsolete capabilities to suppress -# printing them in terminfo source dumps of compiled entries. -# -backspaces_with_bs OTbs bool bs - - YBCGE uses ^H to move left -crt_no_scrolling OTns bool ns - - YBCG- crt cannot scroll -no_correctly_working_cr OTnc bool nc - - YBCG- no way to go to start of line -carriage_return_delay OTdC num dC - - YB-G- pad needed for CR -new_line_delay OTdN num dN - - YB-G- pad needed for LF -linefeed_if_not_lf OTnl str nl - - YBCGE use to move down -backspace_if_not_bs OTbc str bc - - YBCGE move left, if not ^H -# -# GNU termcap library extensions. The GNU termcap file distributed with -# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the -# BSD termcap file. The name clash with terminfo MT is resolved by type -# info; MT is converted to km. -# -gnu_has_meta_key OTMT bool MT - - ----E has meta key -# gnu_tab_width OTtw num tw - - ----E tab width in spaces -# -# GNU termcap *does* include the following extended capability, Only the -# now-obsolete Ann Arbor terminals used it. -# -# gnu_change_scroll_region OTcS str cS - - ---GE alternate set scrolling region -# -# The following comments describe capnames so ancient that I believe no -# software uses them any longer. Some of these have to go because they -# clash with terminfo names in ways that cannot be resolved by type -# information. -# -# These mytinfo codes are not used in the 4.4BSD curses code. They are -# marked obsolete in the 4.4BSD manual pages. -# -# There is one conflict with terminfo; ma is in both. This conflict is -# resolved by type information. -# -# The `ko' capability is translated by special code. It should contain a -# comma-separated list of capabilities for which there are corresponding keys. -# The `kn' code is accepted but ignored. -# -# The `ma' capability was a 4.0BSD feature used by vi version 2. -# It consists of pairs of characters corresponding to kl, kr, ku, kd, and kh. -# Besides being obsolete, that interpretation conflicts with max_attributes. -# -# Here is a description of memory_lock_above and memory_unlock: -# "You can 'freeze' data on the screen by turning on Memory Lock in a line of -# text. All lines above the cursor's current line become locked in place on -# the screen. Then enter data normally. When the screen fills up, any -# further data entered forces the first line of unfrozen line text to scroll -# under the frozen data. Lines scrolled off the screen are inserted into -# memory immediately preceding the first frozen line." (from the HP 700/96 -# User's manual). VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l. -# -# Applications that use terminfo are supposed to behave as though xr is -# always true. -# -linefeed_is_newline OTNL bool NL - - YB--- move down with \n -# even_parity OTEP bool EP - - -B--- terminal requires even parity -# odd_parity OTOP bool OP - - -B--- terminal requires odd parity -# half_duplex OTHD bool HD - - -B--- terminal is half-duplex -# lower_case_only OTLC bool LC - - -B--- terminal has only lower case -# upper_case_only OTUC bool UC - - -B--- terminal has only upper case -backspace_delay OTdB num dB - - YB-G- padding required for ^H -# form_feed_delay OTdF num dF - - -B-G- padding required for ^L -horizontal_tab_delay OTdT num dT - - YB-G- padding required for ^I -# vertical_tab_delay OTdV num dV - - -B--- padding required for ^V -number_of_function_keys OTkn num kn - - -B-G- count of function keys -other_non_function_keys OTko str ko - - -B-G- list of self-mapped keycaps -arrow_key_map OTma str ma - - YBC-- map motion-keys for vi version 2 -# memory_lock_above OTml str ml - - -B--- lock visible screen memory above the current line -# memory_unlock OTmu str mu - - -B--- unlock visible screen memory above the current line -has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I -return_does_clr_eol OTxr bool xr - - YB--- return clears the line -# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch -# -# mytinfo described this as a termcap capability, but it is not listed in the -# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses -# package, like System V, behaves as though it is always true. -# -# rind_only_at_top OTxq bool xq - - ----- reverse index only works from top line -# -# University of Waterloo termcap extensions (as described in mytinfo). -# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot -# be resolved by a type check. The descriptions are guesses from what was -# in the mytinfo tables. -# -# key_interrupt_char OTki str ki - - ----- string set by interrupt key (?) -# key_kill_char OTkk str kk - - ----- string set by kill key (?) -# key_suspend_char OTkz str kz - - ----- string set by suspend key (?) -# initialization_messy OTxc bool xc - - ----- initialization leaves garbage on the screen (?) -# ind_at_bottom_does_cr OTxl bool xl - - ----- index does a carriage return -# -# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package. -# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type -# check. -# -# scroll_left OTsl1 str Sl - - ----- scroll screen leftward -# scroll_right OTsr1 str Sr - - ----- scroll screen rightward -# parm_scroll_left OTsl str SL - - ----- scroll screen leftward #1 characters -# parm_scroll_right OTsr str SR - - ----- scroll screen rightward #1 characters -# -# The mytinfo capabilities end here. -# -# XENIX extensions: -# -# Xenix defined its own set of forms-drawing capabilities: -# -# cap IBM ASCII description ACS ASCII -# --- ----------- -------------------- ------------- ------ -# G1 191 \277 M-? single upper right ACS_URCORNER -# G2 218 \332 M-Z single upper left ACS_ULCORNER -# G3 192 \300 M-@ single lower left ACS_LLCORNER -# G4 217 \331 M-Y single lower right ACS_LRCORNER -# G5 187 \273 M-; double upper right -# G6 201 \311 M-I double upper left -# G7 200 \310 M-H double lower left -# G8 188 \274 M-< double lower right -# GC 197 \305 M-E single intersection ACS_PLUS _ _ -# GD 194 \302 M-B single down-tick ACS_TTEE | -# GH 196 \304 M-D single horizontal line ACS_HLINE -# GL 180 \264 M-4 single left tick ACS_RTEE -| -# GR 195 \303 M-C single right tick ACS_LTEE |- -# GU 193 \301 M-A single up tick ACS_BTEE _|_ -# GV 179 \263 M-3 single vertical line ACS_VLINE -# Gc 206 \316 M-N double intersection -# Gd 203 \313 M-K double down tick -# Gh 205 \315 M-M double horizontal line -# Gl 204 \204 M-L double left tick -# Gr 185 \271 M-9 double right tick -# Gu 202 \312 M-J double up tick -# Gv 186 \272 M-: double vertical line -# -# The compiler will translate the single-line caps and discard the others -# (via IGNORE aliases further down). We don't want to do normal pad -# translation on these, they're often single-character printable ASCII -# strings that happen to be numerics. There's awk code in parametrized.sh -# that detects the acs_ prefix and uses it to suppress pad translation. -# These terminfo names are invented. -# -acs_ulcorner OTG2 str G2 - - ----- single upper left -acs_llcorner OTG3 str G3 - - ----- single lower left -acs_urcorner OTG1 str G1 - - ----- single upper right -acs_lrcorner OTG4 str G4 - - ----- single lower right -acs_ltee OTGR str GR - - ----- tee pointing right -acs_rtee OTGL str GL - - ----- tee pointing left -acs_btee OTGU str GU - - ----- tee pointing up -acs_ttee OTGD str GD - - ----- tee pointing down -acs_hline OTGH str GH - - ----- single horizontal line -acs_vline OTGV str GV - - ----- single vertical line -acs_plus OTGC str GC - - ----- single intersection -# -############################################################################# -# -# TERMINFO EXTENSION CAPABILITIES -# -# (see Caps-ncurses for the complete set of comments) -# -memory_lock meml str ml - - ----K lock memory above cursor -memory_unlock memu str mu - - ----K unlock memory -box_chars_1 box1 str bx - - ----K box characters primary set -# -############################################################################# diff --git a/include/MKhashsize.sh b/include/MKhashsize.sh deleted file mode 100755 index 8a534d4..0000000 --- a/include/MKhashsize.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh -############################################################################## -# Copyright 2019,2020 Thomas E. Dickey # -# Copyright 1998,2006 Free Software Foundation, Inc. # -# # -# Permission is hereby granted, free of charge, to any person obtaining a # -# copy of this software and associated documentation files (the "Software"), # -# to deal in the Software without restriction, including without limitation # -# the rights to use, copy, modify, merge, publish, distribute, distribute # -# with modifications, sublicense, and/or sell copies of the Software, and to # -# permit persons to whom the Software is furnished to do so, subject to the # -# following conditions: # -# # -# The above copyright notice and this permission notice shall be included in # -# all copies or substantial portions of the Software. # -# # -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # -# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # -# DEALINGS IN THE SOFTWARE. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# $Id: MKhashsize.sh,v 1.9 2020/02/02 23:34:34 tom Exp $ -# -# MKhashsize.sh --- generate size include for hash functions -# -echo "/*" -echo " * hashsize.h -- hash and token table constants" -echo " */" - -test $# = 0 && set Caps -TABSIZE=`cat "$@" | grep -v '^[ #]' | grep -v "^$" | grep -v "^capalias"| grep -v "^infoalias" | grep -v "^userdef" | grep -v "^used_by" | wc -l` - -echo "" -echo "#define CAPTABSIZE ${TABSIZE}" -echo "#define HASHTABSIZE (${TABSIZE} * 2)" diff --git a/include/MKkey_defs.sh b/include/MKkey_defs.sh deleted file mode 100755 index 86d6891..0000000 --- a/include/MKkey_defs.sh +++ /dev/null @@ -1,196 +0,0 @@ -#! /bin/sh -# $Id: MKkey_defs.sh,v 1.21 2020/08/17 10:45:33 tom Exp $ -############################################################################## -# Copyright 2019,2020 Thomas E. Dickey # -# Copyright 2001-2013,2017 Free Software Foundation, Inc. # -# # -# Permission is hereby granted, free of charge, to any person obtaining a # -# copy of this software and associated documentation files (the "Software"), # -# to deal in the Software without restriction, including without limitation # -# the rights to use, copy, modify, merge, publish, distribute, distribute # -# with modifications, sublicense, and/or sell copies of the Software, and to # -# permit persons to whom the Software is furnished to do so, subject to the # -# following conditions: # -# # -# The above copyright notice and this permission notice shall be included in # -# all copies or substantial portions of the Software. # -# # -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # -# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # -# DEALINGS IN THE SOFTWARE. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# MKkey_defs.sh -- generate function-key definitions for curses.h -# -# Author: Thomas E. Dickey 2001 -# -# Extract function-key definitions from the Caps file -# -: ${AWK-awk} - -test $# = 0 && set Caps - -data=data$$ -pass1=pass1_$$ -pass2=pass2_$$ -pass3=pass3_$$ -pass4=pass4_$$ -trap 'rm -f $data pass[1234]_$$' EXIT INT QUIT TERM HUP - -# change repeated tabs (used for readability) to single tabs (needed to make -# awk see the right field alignment of the corresponding columns): -if sort -k 6 "$@" >$data 2>/dev/null -then - # POSIX - sed -e 's/[ ][ ]*/ /g' "$@" |sort -n -k 6 >$data -elif sort -n +5 "$@" >$data 2>/dev/null -then - # SunOS (and SVr4, marked as obsolete but still recognized) - sed -e 's/[ ][ ]*/ /g' "$@" |sort -n +5 >$data -else - echo "Your sort utility is broken. Please install one that works." >&2 - exit 1 -fi - -# add keys that we generate automatically: -cat >>$data <$output <$data ' -function print_cols(text,cols) { - printf "%s", text - len = length(text); - while (len < cols) { - printf " " - len += 8; - } -} -function decode(keycode) { - result = 0; - if (substr(keycode, 1, 2) == "0x") { - digits="0123456789abcdef"; - } else if (substr(keycode, 1, 1) == "0") { - digits="01234567"; - } else { - digits="0123456789"; - } - while (length(keycode) != 0) { - digit=substr(keycode, 1, 1); - keycode=substr(keycode, 2); - result = result * length(digits) + index(digits, digit) - 1; - } - return result; -} - -BEGIN { - maxkey='$maxkey'; - pass='$pass'; - key_max=1; - bits=1; - while (key_max < maxkey) { - bits = bits + 1; - key_max = (key_max * 2) + 1; - } - octal_fmt = sprintf ("%%0%do", (bits + 2) / 3 + 1); -} - -/^$/ {next;} -/^#/ {next;} -/^capalias/ {next;} -/^infoalias/ {next;} -/^used_by/ {next;} -/^userdef/ {next;} - -$5 != "-" && $6 != "-" { - if ($6 == "+") { - if (pass == 1 || pass == 2) - next; - thiskey=maxkey + 1; - } else { - if (pass == 3) - next; - thiskey=decode($6); - } - if (thiskey > maxkey) - maxkey = thiskey; - if (pass == 2 || pass == 3) { - showkey=sprintf(octal_fmt, thiskey); - ifdef = 0; - if (index($7,"NCURSES_") == 1) { - ifdef = 1; - printf "\n"; - printf "#ifdef %s\n", $7; - } - if ($5 == "KEY_F(0)" ) { - printf "#define " - print_cols("KEY_F0", 16); - print_cols(showkey, 16); - print "/* Function keys. Space for 64 */"; - printf "#define " - print_cols("KEY_F(n)", 16); - print_cols("(KEY_F0+(n))", 16); - print "/* Value of function key n */" - } else { - printf "#define " - print_cols($5, 16); - print_cols(showkey, 16); - printf "/*" - for (i = 8; i <= NF; i++) - printf " %s", $i - print " */" - } - if (ifdef != 0) { - printf "#endif\n"; - } - } - } -END { - if (pass == 1) { - print maxkey; - } else if (pass == 4) { - print ""; - printf "#define "; - print_cols("KEY_MAX", 16); - result = sprintf (octal_fmt, key_max); - print_cols(result, 16); - printf "/* Maximum key value is "; - printf octal_fmt, maxkey; - print " */"; - } - } -' -if test $pass = 1 ; then - maxkey=`cat $pass1` -fi - -done - -cat $pass2 -cat $pass3 -cat $pass4 diff --git a/include/MKncurses_def.sh b/include/MKncurses_def.sh deleted file mode 100755 index 81f39d2..0000000 --- a/include/MKncurses_def.sh +++ /dev/null @@ -1,81 +0,0 @@ -#! /bin/sh -# $Id: MKncurses_def.sh,v 1.4 2020/02/02 23:34:34 tom Exp $ -############################################################################## -# Copyright 2020 Thomas E. Dickey # -# Copyright 2000,2003 Free Software Foundation, Inc. # -# # -# Permission is hereby granted, free of charge, to any person obtaining a # -# copy of this software and associated documentation files (the "Software"), # -# to deal in the Software without restriction, including without limitation # -# the rights to use, copy, modify, merge, publish, distribute, distribute # -# with modifications, sublicense, and/or sell copies of the Software, and to # -# permit persons to whom the Software is furnished to do so, subject to the # -# following conditions: # -# # -# The above copyright notice and this permission notice shall be included in # -# all copies or substantial portions of the Software. # -# # -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # -# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # -# DEALINGS IN THE SOFTWARE. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# MKncurses_def.sh -- generate fallback definitions for ncurses_cfg.h -# -# Author: Thomas E. Dickey 2000 -# -# Given the choice between constructs such as -# -# #if defined(foo) && foo -# #if foo -# -# we chose the latter. It is guaranteed by the language standard, and there -# appear to be no broken compilers that do not honor that detail. But some -# people want to use gcc's -Wundef option (corresponding to one of the less -# useful features in Watcom's compiler) to check for misspellings. So we -# generate a set of fallback definitions to quiet the warnings without making -# the code ugly. -# -DEFS="${1-ncurses_defs}" -cat < 1992,1995 */" - print "/* and: Eric S. Raymond */" - print "/* and: Thomas E. Dickey 1995-on */" - print "/****************************************************************************/" - print "" - print "/* $Id: MKterm.h.awk.in,v 1.82 2021/09/24 17:02:46 tom Exp $ */" - print "" - print "/*" - print "** term.h -- Definition of struct term" - print "*/" - print "" - print "#ifndef NCURSES_TERM_H_incl" - print "#define NCURSES_TERM_H_incl 1" - print "" - print "#undef NCURSES_VERSION" - print "#define NCURSES_VERSION \"6.3\"" - print "" - print "#include " - print "" - print "#ifdef __cplusplus" - printf "extern \"C\" %s\n", lcurl; - print "#endif" - print "" - print "/* Make this file self-contained by providing defaults for the HAVE_TERMIO[S]_H" - print " * definition (based on the system for which this was configured)." - print " */" - print "" - print "#ifndef __NCURSES_H" - print "" - print "typedef struct screen SCREEN;" - print "" - print "#if 1" - print "#undef NCURSES_SP_FUNCS" - print "#define NCURSES_SP_FUNCS 20211021" - print "#undef NCURSES_SP_NAME" - print "#define NCURSES_SP_NAME(name) name##_sp" - print "" - print "/* Define the sp-funcs helper function */" - print "#undef NCURSES_SP_OUTC" - print "#define NCURSES_SP_OUTC NCURSES_SP_NAME(NCURSES_OUTC)" - print "typedef int (*NCURSES_SP_OUTC)(SCREEN*, int);" - print "#endif" - print "" - print "#endif /* __NCURSES_H */" - print "" - print "#undef NCURSES_CONST" - print "#define NCURSES_CONST const" - print "" - print "#undef NCURSES_SBOOL" - print "#define NCURSES_SBOOL char" - print "" - print "#undef NCURSES_USE_DATABASE" - print "#define NCURSES_USE_DATABASE 1" - print "" - print "#undef NCURSES_USE_TERMCAP" - print "#define NCURSES_USE_TERMCAP 0" - print "" - print "#undef NCURSES_XNAMES" - print "#define NCURSES_XNAMES 1" - print "" - print "/* We will use these symbols to hide differences between" - print " * termios/termio/sgttyb interfaces." - print " */" - print "#undef TTY" - print "#undef SET_TTY" - print "#undef GET_TTY" - print "" - print "/* Assume POSIX termio if we have the header and function */" - print "/* #if HAVE_TERMIOS_H && HAVE_TCGETATTR */" - print "#if 1 && 1" - print "" - print "#undef TERMIOS" - print "#define TERMIOS 1" - print "" - print "#include " - print "#define TTY struct termios" - print "" - print "#else /* !HAVE_TERMIOS_H */" - print "" - print "/* #if HAVE_TERMIO_H */" - print "#if 1" - print "" - print "#undef TERMIOS" - print "#define TERMIOS 1" - print "" - print "#include " - print "#define TTY struct termio" - print "" - print "#else /* !HAVE_TERMIO_H */" - print "" - print "#if (defined(_WIN32) || defined(_WIN64))" - print "#if 0" - print "#include " - print "#define TTY struct winconmode" - print "#else" - print "#include " - print "#define TTY struct termios" - print "#endif" - print "#else" - print "#undef TERMIOS" - print "#include " - print "#include " - print "#define TTY struct sgttyb" - print "#endif /* MINGW32 */" - print "#endif /* HAVE_TERMIO_H */" - print "" - print "#endif /* HAVE_TERMIOS_H */" - print "" - print "#ifdef TERMIOS" - print "#define GET_TTY(fd, buf) tcgetattr(fd, buf)" - print "#define SET_TTY(fd, buf) tcsetattr(fd, TCSADRAIN, buf)" - print "#elif 0 && (defined(_WIN32) || defined(_WIN64))" - print "#define GET_TTY(fd, buf) _nc_console_getmode(_nc_console_fd2handle(fd),buf)" - print "#define SET_TTY(fd, buf) _nc_console_setmode(_nc_console_fd2handle(fd),buf)" - print "#else" - print "#define GET_TTY(fd, buf) gtty(fd, buf)" - print "#define SET_TTY(fd, buf) stty(fd, buf)" - print "#endif" - print "" - print "#ifndef GCC_NORETURN" - print "#define GCC_NORETURN /* nothing */" - print "#endif" - print "" - print "#define NAMESIZE 256" - print "" - print "/* The cast works because TERMTYPE is the first data in TERMINAL */" - print "#define CUR ((TERMTYPE *)(cur_term))->" - print "" -} - -$2 == "%%-STOP-HERE-%%" { - print "" - printf "#define BOOLWRITE %d\n", BoolCount - printf "#define NUMWRITE %d\n", NumberCount - printf "#define STRWRITE %d\n", StringCount - print "" - print "/* older synonyms for some capabilities */" - print "#define beehive_glitch no_esc_ctlc" - print "#define teleray_glitch dest_tabs_magic_smso" - print "" - print "/* HPUX-11 uses this name rather than the standard one */" - print "#ifndef micro_char_size" - print "#define micro_char_size micro_col_size" - print "#endif" - print "" - print "#ifdef __INTERNAL_CAPS_VISIBLE" -} - -/^#/ { next; } - -/^used_by/ { next ; } -/^userdef/ { next ; } - -$1 == "acs_chars" { - acsindex = StringCount; -} - -$3 == "bool" { - printf "#define %-30s CUR Booleans[%d]\n", $1, BoolCount++ -} - -$3 == "num" { - printf "#define %-30s CUR Numbers[%d]\n", $1, NumberCount++ -} - -$3 == "str" { - printf "#define %-30s CUR Strings[%d]\n", $1, StringCount++ -} - -END { - print "#endif /* __INTERNAL_CAPS_VISIBLE */" - print "" - print "" - print "/*" - print " * Predefined terminfo array sizes" - print " */" - printf "#define BOOLCOUNT %d\n", BoolCount - printf "#define NUMCOUNT %d\n", NumberCount - printf "#define STRCOUNT %d\n", StringCount - print "" - print "/* used by code for comparing entries */" - print "#define acs_chars_index ", acsindex - print "" - declare_termtype("short",""); - print "" - print "/*" - print " * The only reason these structures are visible is for read-only use." - print " * Programs which modify the data are not, never were, portable across" - print " * curses implementations." - print " *" - print " * The first field in TERMINAL is used in macros." - print " * The remaining fields are private." - print " */" - print "#ifdef NCURSES_INTERNALS" - print "" - print "#undef TERMINAL" - print "#define TERMINAL struct term" - print "TERMINAL;" - print "" - if (0) { - declare_termtype("int","2"); - } else { - print "#undef TERMTYPE2" - print "#define TERMTYPE2 TERMTYPE" - } - print "#else" - print "" - print "typedef struct term { /* describe an actual terminal */" - print " TERMTYPE type; /* terminal type description */" - print "} TERMINAL;" - print "" - print "#endif /* NCURSES_INTERNALS */" - print "" - print "" - print "#if 0 && !1" - print "extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term;" - print "#elif 1" - print "NCURSES_WRAPPED_VAR(TERMINAL *, cur_term);" - print "#define cur_term NCURSES_PUBLIC_VAR(cur_term())" - print "#else" - print "extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term;" - print "#endif" - print "" - print "#if 0 || 1" - print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolnames);" - print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolcodes);" - print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolfnames);" - print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numnames);" - print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numcodes);" - print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numfnames);" - print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strnames);" - print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strcodes);" - print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strfnames);" - print "" - print "#define boolnames NCURSES_PUBLIC_VAR(boolnames())" - print "#define boolcodes NCURSES_PUBLIC_VAR(boolcodes())" - print "#define boolfnames NCURSES_PUBLIC_VAR(boolfnames())" - print "#define numnames NCURSES_PUBLIC_VAR(numnames())" - print "#define numcodes NCURSES_PUBLIC_VAR(numcodes())" - print "#define numfnames NCURSES_PUBLIC_VAR(numfnames())" - print "#define strnames NCURSES_PUBLIC_VAR(strnames())" - print "#define strcodes NCURSES_PUBLIC_VAR(strcodes())" - print "#define strfnames NCURSES_PUBLIC_VAR(strfnames())" - print "" - print "#else" - print "" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolnames[];" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolcodes[];" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolfnames[];" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numnames[];" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numcodes[];" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numfnames[];" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strnames[];" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strcodes[];" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strfnames[];" - print "" - print "#endif" - print "" - print "/*" - print " * These entrypoints are used only by the ncurses utilities such as tic." - print " */" - print "#ifdef NCURSES_INTERNALS" - print "" - print "extern NCURSES_EXPORT(int) _nc_set_tty_mode (TTY *buf);" - print "extern NCURSES_EXPORT(int) _nc_read_entry2 (const char * const, char * const, TERMTYPE2 *const);" - print "extern NCURSES_EXPORT(int) _nc_read_file_entry (const char *const, TERMTYPE2 *);" - print "extern NCURSES_EXPORT(int) _nc_read_termtype (TERMTYPE2 *, char *, int);" - print "extern NCURSES_EXPORT(char *) _nc_first_name (const char *const);" - print "extern NCURSES_EXPORT(int) _nc_name_match (const char *const, const char *const, const char *const);" - print "extern NCURSES_EXPORT(char *) _nc_tiparm(int, const char *, ...);" - print "" - print "#endif /* NCURSES_INTERNALS */" - print "" - print "" - print "/*" - print " * These entrypoints are used by tack 1.07." - print " */" - print "extern NCURSES_EXPORT(const TERMTYPE *) _nc_fallback (const char *);" - print "extern NCURSES_EXPORT(int) _nc_read_entry (const char * const, char * const, TERMTYPE *const);" - print "" - print "/*" - print " * Normal entry points" - print " */" - print "extern NCURSES_EXPORT(TERMINAL *) set_curterm (TERMINAL *);" - print "extern NCURSES_EXPORT(int) del_curterm (TERMINAL *);" - print "" - print "/* miscellaneous entry points */" - print "extern NCURSES_EXPORT(int) restartterm (NCURSES_CONST char *, int, int *);" - print "extern NCURSES_EXPORT(int) setupterm (const char *,int,int *);" - print "" - print "/* terminfo entry points, also declared in curses.h */" - print "#if !defined(__NCURSES_H)" - print "extern NCURSES_EXPORT(char *) tigetstr (const char *);" - print "extern NCURSES_EXPORT_VAR(char) ttytype[];" - print "extern NCURSES_EXPORT(int) putp (const char *);" - print "extern NCURSES_EXPORT(int) tigetflag (const char *);" - print "extern NCURSES_EXPORT(int) tigetnum (const char *);" - print "" - print "#if 1 /* NCURSES_TPARM_VARARGS */" - print "extern NCURSES_EXPORT(char *) tparm (const char *, ...); /* special */" - print "#else" - print "extern NCURSES_EXPORT(char *) tparm (const char *, long,long,long,long,long,long,long,long,long); /* special */" - print "#endif" - print "" - print "extern NCURSES_EXPORT(char *) tiparm (const char *, ...); /* special */" - print "" - print "#endif /* __NCURSES_H */" - print "" - print "/* termcap database emulation (XPG4 uses const only for 2nd param of tgetent) */" - print "#if !defined(NCURSES_TERMCAP_H_incl)" - print "extern NCURSES_EXPORT(char *) tgetstr (const char *, char **);" - print "extern NCURSES_EXPORT(char *) tgoto (const char *, int, int);" - print "extern NCURSES_EXPORT(int) tgetent (char *, const char *);" - print "extern NCURSES_EXPORT(int) tgetflag (const char *);" - print "extern NCURSES_EXPORT(int) tgetnum (const char *);" - print "extern NCURSES_EXPORT(int) tputs (const char *, int, int (*)(int));" - print "#endif /* NCURSES_TERMCAP_H_incl */" - print "" - print "/*" - print " * Include curses.h before term.h to enable these extensions." - print " */" - print "#if defined(NCURSES_SP_FUNCS) && (NCURSES_SP_FUNCS != 0)" - print "" - print "extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tigetstr) (SCREEN*, const char *);" - print "extern NCURSES_EXPORT(int) NCURSES_SP_NAME(putp) (SCREEN*, const char *);" - print "extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tigetflag) (SCREEN*, const char *);" - print "extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tigetnum) (SCREEN*, const char *);" - print "" - print "#if 1 /* NCURSES_TPARM_VARARGS */" - print "extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tparm) (SCREEN*, const char *, ...); /* special */" - print "#else" - print "extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tparm) (SCREEN*, const char *, long,long,long,long,long,long,long,long,long); /* special */" - print "#endif" - print "" - print "/* termcap database emulation (XPG4 uses const only for 2nd param of tgetent) */" - print "extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tgetstr) (SCREEN*, const char *, char **);" - print "extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tgoto) (SCREEN*, const char *, int, int);" - print "extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tgetent) (SCREEN*, char *, const char *);" - print "extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tgetflag) (SCREEN*, const char *);" - print "extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tgetnum) (SCREEN*, const char *);" - print "extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tputs) (SCREEN*, const char *, int, NCURSES_SP_OUTC);" - print "" - print "extern NCURSES_EXPORT(TERMINAL *) NCURSES_SP_NAME(set_curterm) (SCREEN*, TERMINAL *);" - print "extern NCURSES_EXPORT(int) NCURSES_SP_NAME(del_curterm) (SCREEN*, TERMINAL *);" - print "" - print "extern NCURSES_EXPORT(int) NCURSES_SP_NAME(restartterm) (SCREEN*, NCURSES_CONST char *, int, int *);" - print "#endif /* NCURSES_SP_FUNCS */" - print "" - print "/*" - print " * Debugging features." - print " */" - print "extern GCC_NORETURN NCURSES_EXPORT(void) exit_terminfo(int);" - print "" - print "#ifdef __cplusplus" - printf "%s\n", rcurl; - print "#endif" - print "" - print "#endif /* NCURSES_TERM_H_incl */" -} diff --git a/include/MKterm.h.awk.in b/include/MKterm.h.awk.in deleted file mode 100644 index e79840d..0000000 --- a/include/MKterm.h.awk.in +++ /dev/null @@ -1,416 +0,0 @@ -# vile:awkmode -function declare_termtype(number,suffix) { - printf "typedef struct termtype%s { /* in-core form of terminfo data */\n", suffix; - print " char *term_names; /* str_table offset of term names */" - print " char *str_table; /* pointer to string table */" - print " NCURSES_SBOOL *Booleans; /* array of boolean values */" - printf " %-5s *Numbers; /* array of integer values */\n", number; - print " char **Strings; /* array of string offsets */" - print "" - print "#if NCURSES_XNAMES" - print " char *ext_str_table; /* pointer to extended string table */" - print " char **ext_Names; /* corresponding names */" - print "" - print " unsigned short num_Booleans;/* count total Booleans */"; - print " unsigned short num_Numbers; /* count total Numbers */"; - print " unsigned short num_Strings; /* count total Strings */"; - print "" - print " unsigned short ext_Booleans;/* count extensions to Booleans */"; - print " unsigned short ext_Numbers; /* count extensions to Numbers */"; - print " unsigned short ext_Strings; /* count extensions to Strings */"; - print "#endif /* NCURSES_XNAMES */" - print "" - printf "} TERMTYPE%s;\n", suffix; -} -BEGIN { - lcurl = "{"; - rcurl = "}"; - print "/****************************************************************************" - print " * Copyright 2018-2020,2021 Thomas E. Dickey *" - print " * Copyright 1998-2013,2017 Free Software Foundation, Inc. *" - print " * *" - print " * Permission is hereby granted, free of charge, to any person obtaining a *" - print " * copy of this software and associated documentation files (the *" - print " * \"Software\"), to deal in the Software without restriction, including *" - print " * without limitation the rights to use, copy, modify, merge, publish, *" - print " * distribute, distribute with modifications, sublicense, and/or sell *" - print " * copies of the Software, and to permit persons to whom the Software is *" - print " * furnished to do so, subject to the following conditions: *" - print " * *" - print " * The above copyright notice and this permission notice shall be included *" - print " * in all copies or substantial portions of the Software. *" - print " * *" - print " * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS *" - print " * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *" - print " * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *" - print " * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *" - print " * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *" - print " * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *" - print " * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *" - print " * *" - print " * Except as contained in this notice, the name(s) of the above copyright *" - print " * holders shall not be used in advertising or otherwise to promote the *" - print " * sale, use or other dealings in this Software without prior written *" - print " * authorization. *" - print " ****************************************************************************/" - print "" - print "/****************************************************************************/" - print "/* Author: Zeyd M. Ben-Halim 1992,1995 */" - print "/* and: Eric S. Raymond */" - print "/* and: Thomas E. Dickey 1995-on */" - print "/****************************************************************************/" - print "" - print "/* $Id: MKterm.h.awk.in,v 1.82 2021/09/24 17:02:46 tom Exp $ */" - print "" - print "/*" - print "** term.h -- Definition of struct term" - print "*/" - print "" - print "#ifndef NCURSES_TERM_H_incl" - print "#define NCURSES_TERM_H_incl 1" - print "" - print "#undef NCURSES_VERSION" - print "#define NCURSES_VERSION \"@NCURSES_MAJOR@.@NCURSES_MINOR@\"" - print "" - print "#include " - print "" - print "#ifdef __cplusplus" - printf "extern \"C\" %s\n", lcurl; - print "#endif" - print "" - print "/* Make this file self-contained by providing defaults for the HAVE_TERMIO[S]_H" - print " * definition (based on the system for which this was configured)." - print " */" - print "" - print "#ifndef __NCURSES_H" - print "" - print "typedef struct screen SCREEN;" - print "" - print "#if @NCURSES_SP_FUNCS@" - print "#undef NCURSES_SP_FUNCS" - print "#define NCURSES_SP_FUNCS @NCURSES_PATCH@" - print "#undef NCURSES_SP_NAME" - print "#define NCURSES_SP_NAME(name) name##_sp" - print "" - print "/* Define the sp-funcs helper function */" - print "#undef NCURSES_SP_OUTC" - print "#define NCURSES_SP_OUTC NCURSES_SP_NAME(NCURSES_OUTC)" - print "typedef int (*NCURSES_SP_OUTC)(SCREEN*, int);" - print "#endif" - print "" - print "#endif /* __NCURSES_H */" - print "" - print "#undef NCURSES_CONST" - print "#define NCURSES_CONST @NCURSES_CONST@" - print "" - print "#undef NCURSES_SBOOL" - print "#define NCURSES_SBOOL @NCURSES_SBOOL@" - print "" - print "#undef NCURSES_USE_DATABASE" - print "#define NCURSES_USE_DATABASE @NCURSES_USE_DATABASE@" - print "" - print "#undef NCURSES_USE_TERMCAP" - print "#define NCURSES_USE_TERMCAP @NCURSES_USE_TERMCAP@" - print "" - print "#undef NCURSES_XNAMES" - print "#define NCURSES_XNAMES @NCURSES_XNAMES@" - print "" - print "/* We will use these symbols to hide differences between" - print " * termios/termio/sgttyb interfaces." - print " */" - print "#undef TTY" - print "#undef SET_TTY" - print "#undef GET_TTY" - print "" - print "/* Assume POSIX termio if we have the header and function */" - print "/* #if HAVE_TERMIOS_H && HAVE_TCGETATTR */" - print "#if @HAVE_TERMIOS_H@ && @HAVE_TCGETATTR@" - print "" - print "#undef TERMIOS" - print "#define TERMIOS 1" - print "" - print "#include " - print "#define TTY struct termios" - print "" - print "#else /* !HAVE_TERMIOS_H */" - print "" - print "/* #if HAVE_TERMIO_H */" - print "#if @HAVE_TERMIO_H@" - print "" - print "#undef TERMIOS" - print "#define TERMIOS 1" - print "" - print "#include " - print "#define TTY struct termio" - print "" - print "#else /* !HAVE_TERMIO_H */" - print "" - print "#if (defined(_WIN32) || defined(_WIN64))" - print "#if @EXP_WIN32_DRIVER@" - print "#include " - print "#define TTY struct winconmode" - print "#else" - print "#include " - print "#define TTY struct termios" - print "#endif" - print "#else" - print "#undef TERMIOS" - print "#include " - print "#include " - print "#define TTY struct sgttyb" - print "#endif /* MINGW32 */" - print "#endif /* HAVE_TERMIO_H */" - print "" - print "#endif /* HAVE_TERMIOS_H */" - print "" - print "#ifdef TERMIOS" - print "#define GET_TTY(fd, buf) tcgetattr(fd, buf)" - print "#define SET_TTY(fd, buf) tcsetattr(fd, TCSADRAIN, buf)" - print "#elif @EXP_WIN32_DRIVER@ && (defined(_WIN32) || defined(_WIN64))" - print "#define GET_TTY(fd, buf) _nc_console_getmode(_nc_console_fd2handle(fd),buf)" - print "#define SET_TTY(fd, buf) _nc_console_setmode(_nc_console_fd2handle(fd),buf)" - print "#else" - print "#define GET_TTY(fd, buf) gtty(fd, buf)" - print "#define SET_TTY(fd, buf) stty(fd, buf)" - print "#endif" - print "" - print "#ifndef GCC_NORETURN" - print "#define GCC_NORETURN /* nothing */" - print "#endif" - print "" - print "#define NAMESIZE 256" - print "" - print "/* The cast works because TERMTYPE is the first data in TERMINAL */" - print "#define CUR ((TERMTYPE *)(cur_term))->" - print "" -} - -$2 == "%%-STOP-HERE-%%" { - print "" - printf "#define BOOLWRITE %d\n", BoolCount - printf "#define NUMWRITE %d\n", NumberCount - printf "#define STRWRITE %d\n", StringCount - print "" - print "/* older synonyms for some capabilities */" - print "#define beehive_glitch no_esc_ctlc" - print "#define teleray_glitch dest_tabs_magic_smso" - print "" - print "/* HPUX-11 uses this name rather than the standard one */" - print "#ifndef micro_char_size" - print "#define micro_char_size micro_col_size" - print "#endif" - print "" - print "#ifdef __INTERNAL_CAPS_VISIBLE" -} - -/^#/ { next; } - -/^used_by/ { next ; } -/^userdef/ { next ; } - -$1 == "acs_chars" { - acsindex = StringCount; -} - -$3 == "bool" { - printf "#define %-30s CUR Booleans[%d]\n", $1, BoolCount++ -} - -$3 == "num" { - printf "#define %-30s CUR Numbers[%d]\n", $1, NumberCount++ -} - -$3 == "str" { - printf "#define %-30s CUR Strings[%d]\n", $1, StringCount++ -} - -END { - print "#endif /* __INTERNAL_CAPS_VISIBLE */" - print "" - print "" - print "/*" - print " * Predefined terminfo array sizes" - print " */" - printf "#define BOOLCOUNT %d\n", BoolCount - printf "#define NUMCOUNT %d\n", NumberCount - printf "#define STRCOUNT %d\n", StringCount - print "" - print "/* used by code for comparing entries */" - print "#define acs_chars_index ", acsindex - print "" - declare_termtype("short",""); - print "" - print "/*" - print " * The only reason these structures are visible is for read-only use." - print " * Programs which modify the data are not, never were, portable across" - print " * curses implementations." - print " *" - print " * The first field in TERMINAL is used in macros." - print " * The remaining fields are private." - print " */" - print "#ifdef NCURSES_INTERNALS" - print "" - print "#undef TERMINAL" - print "#define TERMINAL struct term" - print "TERMINAL;" - print "" - if (@NCURSES_EXT_COLORS@) { - declare_termtype("int","2"); - } else { - print "#undef TERMTYPE2" - print "#define TERMTYPE2 TERMTYPE" - } - print "#else" - print "" - print "typedef struct term { /* describe an actual terminal */" - print " TERMTYPE type; /* terminal type description */" - print "} TERMINAL;" - print "" - print "#endif /* NCURSES_INTERNALS */" - print "" - print "" - print "#if @BROKEN_LINKER@ && !@cf_cv_enable_reentrant@" - print "extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term;" - print "#elif @cf_cv_enable_reentrant@" - print "NCURSES_WRAPPED_VAR(TERMINAL *, cur_term);" - print "#define cur_term NCURSES_PUBLIC_VAR(cur_term())" - print "#else" - print "extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term;" - print "#endif" - print "" - print "#if @BROKEN_LINKER@ || @cf_cv_enable_reentrant@" - print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolnames);" - print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolcodes);" - print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolfnames);" - print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numnames);" - print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numcodes);" - print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numfnames);" - print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strnames);" - print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strcodes);" - print "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strfnames);" - print "" - print "#define boolnames NCURSES_PUBLIC_VAR(boolnames())" - print "#define boolcodes NCURSES_PUBLIC_VAR(boolcodes())" - print "#define boolfnames NCURSES_PUBLIC_VAR(boolfnames())" - print "#define numnames NCURSES_PUBLIC_VAR(numnames())" - print "#define numcodes NCURSES_PUBLIC_VAR(numcodes())" - print "#define numfnames NCURSES_PUBLIC_VAR(numfnames())" - print "#define strnames NCURSES_PUBLIC_VAR(strnames())" - print "#define strcodes NCURSES_PUBLIC_VAR(strcodes())" - print "#define strfnames NCURSES_PUBLIC_VAR(strfnames())" - print "" - print "#else" - print "" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolnames[];" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolcodes[];" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolfnames[];" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numnames[];" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numcodes[];" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numfnames[];" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strnames[];" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strcodes[];" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strfnames[];" - print "" - print "#endif" - print "" - print "/*" - print " * These entrypoints are used only by the ncurses utilities such as tic." - print " */" - print "#ifdef NCURSES_INTERNALS" - print "" - print "extern NCURSES_EXPORT(int) _nc_set_tty_mode (TTY *buf);" - print "extern NCURSES_EXPORT(int) _nc_read_entry2 (const char * const, char * const, TERMTYPE2 *const);" - print "extern NCURSES_EXPORT(int) _nc_read_file_entry (const char *const, TERMTYPE2 *);" - print "extern NCURSES_EXPORT(int) _nc_read_termtype (TERMTYPE2 *, char *, int);" - print "extern NCURSES_EXPORT(char *) _nc_first_name (const char *const);" - print "extern NCURSES_EXPORT(int) _nc_name_match (const char *const, const char *const, const char *const);" - print "extern NCURSES_EXPORT(char *) _nc_tiparm(int, const char *, ...);" - print "" - print "#endif /* NCURSES_INTERNALS */" - print "" - print "" - print "/*" - print " * These entrypoints are used by tack 1.07." - print " */" - print "extern NCURSES_EXPORT(const TERMTYPE *) _nc_fallback (const char *);" - print "extern NCURSES_EXPORT(int) _nc_read_entry (const char * const, char * const, TERMTYPE *const);" - print "" - print "/*" - print " * Normal entry points" - print " */" - print "extern NCURSES_EXPORT(TERMINAL *) set_curterm (TERMINAL *);" - print "extern NCURSES_EXPORT(int) del_curterm (TERMINAL *);" - print "" - print "/* miscellaneous entry points */" - print "extern NCURSES_EXPORT(int) restartterm (NCURSES_CONST char *, int, int *);" - print "extern NCURSES_EXPORT(int) setupterm (const char *,int,int *);" - print "" - print "/* terminfo entry points, also declared in curses.h */" - print "#if !defined(__NCURSES_H)" - print "extern NCURSES_EXPORT(char *) tigetstr (const char *);" - print "extern NCURSES_EXPORT_VAR(char) ttytype[];" - print "extern NCURSES_EXPORT(int) putp (const char *);" - print "extern NCURSES_EXPORT(int) tigetflag (const char *);" - print "extern NCURSES_EXPORT(int) tigetnum (const char *);" - print "" - print "#if @NCURSES_TPARM_VARARGS@ /* NCURSES_TPARM_VARARGS */" - print "extern NCURSES_EXPORT(char *) tparm (const char *, ...); /* special */" - print "#else" - print "extern NCURSES_EXPORT(char *) tparm (const char *, long,long,long,long,long,long,long,long,long); /* special */" - print "#endif" - print "" - print "extern NCURSES_EXPORT(char *) tiparm (const char *, ...); /* special */" - print "" - print "#endif /* __NCURSES_H */" - print "" - print "/* termcap database emulation (XPG4 uses const only for 2nd param of tgetent) */" - print "#if !defined(NCURSES_TERMCAP_H_incl)" - print "extern NCURSES_EXPORT(char *) tgetstr (const char *, char **);" - print "extern NCURSES_EXPORT(char *) tgoto (const char *, int, int);" - print "extern NCURSES_EXPORT(int) tgetent (char *, const char *);" - print "extern NCURSES_EXPORT(int) tgetflag (const char *);" - print "extern NCURSES_EXPORT(int) tgetnum (const char *);" - print "extern NCURSES_EXPORT(int) tputs (const char *, int, int (*)(int));" - print "#endif /* NCURSES_TERMCAP_H_incl */" - print "" - print "/*" - print " * Include curses.h before term.h to enable these extensions." - print " */" - print "#if defined(NCURSES_SP_FUNCS) && (NCURSES_SP_FUNCS != 0)" - print "" - print "extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tigetstr) (SCREEN*, const char *);" - print "extern NCURSES_EXPORT(int) NCURSES_SP_NAME(putp) (SCREEN*, const char *);" - print "extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tigetflag) (SCREEN*, const char *);" - print "extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tigetnum) (SCREEN*, const char *);" - print "" - print "#if @NCURSES_TPARM_VARARGS@ /* NCURSES_TPARM_VARARGS */" - print "extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tparm) (SCREEN*, const char *, ...); /* special */" - print "#else" - print "extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tparm) (SCREEN*, const char *, long,long,long,long,long,long,long,long,long); /* special */" - print "#endif" - print "" - print "/* termcap database emulation (XPG4 uses const only for 2nd param of tgetent) */" - print "extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tgetstr) (SCREEN*, const char *, char **);" - print "extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tgoto) (SCREEN*, const char *, int, int);" - print "extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tgetent) (SCREEN*, char *, const char *);" - print "extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tgetflag) (SCREEN*, const char *);" - print "extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tgetnum) (SCREEN*, const char *);" - print "extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tputs) (SCREEN*, const char *, int, NCURSES_SP_OUTC);" - print "" - print "extern NCURSES_EXPORT(TERMINAL *) NCURSES_SP_NAME(set_curterm) (SCREEN*, TERMINAL *);" - print "extern NCURSES_EXPORT(int) NCURSES_SP_NAME(del_curterm) (SCREEN*, TERMINAL *);" - print "" - print "extern NCURSES_EXPORT(int) NCURSES_SP_NAME(restartterm) (SCREEN*, NCURSES_CONST char *, int, int *);" - print "#endif /* NCURSES_SP_FUNCS */" - print "" - print "/*" - print " * Debugging features." - print " */" - print "extern GCC_NORETURN NCURSES_EXPORT(void) exit_terminfo(int);" - print "" - print "#ifdef __cplusplus" - printf "%s\n", rcurl; - print "#endif" - print "" - print "#endif /* NCURSES_TERM_H_incl */" -} diff --git a/include/Makefile b/include/Makefile deleted file mode 100644 index 1eaed43..0000000 --- a/include/Makefile +++ /dev/null @@ -1,218 +0,0 @@ -# $Id: Makefile.in,v 1.53 2021/07/03 18:56:51 tom Exp $ -############################################################################## -# Copyright 2019-2020,2021 Thomas E. Dickey # -# Copyright 1998-2013,2015 Free Software Foundation, Inc. # -# # -# Permission is hereby granted, free of charge, to any person obtaining a # -# copy of this software and associated documentation files (the "Software"), # -# to deal in the Software without restriction, including without limitation # -# the rights to use, copy, modify, merge, publish, distribute, distribute # -# with modifications, sublicense, and/or sell copies of the Software, and to # -# permit persons to whom the Software is furnished to do so, subject to the # -# following conditions: # -# # -# The above copyright notice and this permission notice shall be included in # -# all copies or substantial portions of the Software. # -# # -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # -# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # -# DEALINGS IN THE SOFTWARE. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas E. Dickey 1996-on -# -# Makefile for ncurses source code. -# -# This makes/installs ncurses include-files -# -# The variable 'srcdir' refers to the source-distribution, and can be set with -# the configure script by "--srcdir=DIR". - -# turn off _all_ suffix rules; we'll generate our own -.SUFFIXES: - -SHELL = /bin/sh - -THIS = Makefile - -DESTDIR = -srcdir = . -prefix = /usr -exec_prefix = ${prefix} -includedir = ${prefix}/include -includesubdir = - -INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir) - -INSTALL = /usr/bin/install -c -INSTALL_DATA = ${INSTALL} -m 644 - -AWK = gawk -LN_S = ln -s -f - -CC = gcc -CFLAGS = -O2 --param max-inline-insns-single=1200 -CPPFLAGS = -DHAVE_CONFIG_H -I. -I. -I../include -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG - -CTAGS = -ETAGS = - -VERSION = 6.3 - -# The "Caps" file specifies the terminfo database format, as well as the list -# of function keys. -TERMINFO_CAPS = $(srcdir)/Caps -CAPLIST = $(TERMINFO_CAPS) \ - $(srcdir)/Caps-ncurses - -# These files are generated by the configure script -CONFIG_SRC = \ - MKterm.h.awk \ - curses.head \ - ncurses_dll.h \ - termcap.h \ - unctrl.h - -# These files are generated by this makefile -AUTO_SRC = \ - curses.h \ - hashsize.h \ - ncurses_def.h \ - parametrized.h \ - config.h \ - term.h - -################################################################################ - -.PHONY : all -.PHONY : check -.PHONY : clean -.PHONY : depend -.PHONY : distclean -.PHONY : install -.PHONY : install.libs -.PHONY : libs -.PHONY : mostlyclean -.PHONY : realclean -.PHONY : sources -.PHONY : uninstall -.PHONY : uninstall.libs - -all \ -libs \ -depend \ -sources \ -install :: $(AUTO_SRC) - -curses.h : $(CAPLIST) \ - curses.head \ - $(srcdir)/curses.tail \ - $(srcdir)/MKkey_defs.sh - cat curses.head >$@ - AWK=$(AWK) $(SHELL) $(srcdir)/MKkey_defs.sh $(CAPLIST) >>$@ - $(SHELL) -c 'if test "0" = "1" ; then cat $(srcdir)/curses.events >>$@ ; fi' - $(SHELL) -c 'if test "chtype" = "cchar_t" ; then cat $(srcdir)/curses.wide >>$@ ; fi' - cat $(srcdir)/curses.tail >>$@ - -term.h: $(CAPLIST) \ - MKterm.h.awk - $(AWK) -f MKterm.h.awk $(CAPLIST) > $@ - $(SHELL) $(srcdir)/edit_cfg.sh ../include/ncurses_cfg.h $@ - -hashsize.h: $(CAPLIST) \ - $(srcdir)/MKhashsize.sh - $(SHELL) $(srcdir)/MKhashsize.sh $(CAPLIST) >$@ - -ncurses_def.h: $(srcdir)/ncurses_defs $(srcdir)/MKncurses_def.sh - AWK=$(AWK) $(SHELL) $(srcdir)/MKncurses_def.sh $(srcdir)/ncurses_defs >$@ - -parametrized.h: $(CAPLIST) \ - $(srcdir)/MKparametrized.sh - AWK=$(AWK) $(SHELL) $(srcdir)/MKparametrized.sh $(CAPLIST) >$@ - -# This is required by pthread.h on MinGW -config.h: - touch $@ - -tags: - $(CTAGS) *.[ch] - -#TAGS: -# $(ETAGS) *.[ch] - -mostlyclean :: - -rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace - -clean :: mostlyclean - -rm -f $(AUTO_SRC) - -rm -rf *.dSYM - -distclean :: clean - -rm -f Makefile $(CONFIG_SRC) config.h - -realclean :: distclean - -# Verify that each header-file can be compiled without including another. -check: - @$(SHELL) -c "for header in *.h;\ - do \ - echo \"** testing \$${header}\" ; \ - echo \"#include <\$${header}>\" >headers.c; \ - echo \"int main(void) { return 0; }\" >>headers.c; \ - $(CC) -c $(CFLAGS) $(CPPFLAGS) headers.c; \ - done" - -@rm -f headers.* - -############################################################################### -# The remainder of this file is automatically generated during configuration -############################################################################### - -# generated by mk-hdr.awk -# subset: ticlib+termlib+ext_tinfo+base+ext_funcs -# compat: yes - -${INCLUDEDIR} : - mkdir -p $@ - -install \ -install.libs \ -install.includes :: ${AUTO_SRC} ${INCLUDEDIR} \ - curses.h \ - unctrl.h \ - ncurses_dll.h \ - term.h \ - termcap.h \ - $(srcdir)/tic.h \ - $(srcdir)/term_entry.h \ - $(srcdir)/nc_tparm.h - @ (cd ${INCLUDEDIR} && rm -f curses.h) ; ../headers.sh ${INSTALL_DATA} ${INCLUDEDIR} ${srcdir} curses.h - @ (cd ${INCLUDEDIR} && rm -f ncurses.h && ${LN_S} curses.h ncurses.h) - @ (cd ${INCLUDEDIR} && rm -f unctrl.h) ; ../headers.sh ${INSTALL_DATA} ${INCLUDEDIR} ${srcdir} unctrl.h - @ (cd ${INCLUDEDIR} && rm -f ncurses_dll.h) ; ../headers.sh ${INSTALL_DATA} ${INCLUDEDIR} ${srcdir} ncurses_dll.h - @ (cd ${INCLUDEDIR} && rm -f term.h) ; ../headers.sh ${INSTALL_DATA} ${INCLUDEDIR} ${srcdir} term.h - @ (cd ${INCLUDEDIR} && rm -f termcap.h) ; ../headers.sh ${INSTALL_DATA} ${INCLUDEDIR} ${srcdir} termcap.h - @ (cd ${INCLUDEDIR} && rm -f tic.h) ; ../headers.sh ${INSTALL_DATA} ${INCLUDEDIR} ${srcdir} $(srcdir)/tic.h - @ (cd ${INCLUDEDIR} && rm -f term_entry.h) ; ../headers.sh ${INSTALL_DATA} ${INCLUDEDIR} ${srcdir} $(srcdir)/term_entry.h - @ (cd ${INCLUDEDIR} && rm -f nc_tparm.h) ; ../headers.sh ${INSTALL_DATA} ${INCLUDEDIR} ${srcdir} $(srcdir)/nc_tparm.h - -uninstall \ -uninstall.libs \ -uninstall.includes :: - -@ (cd ${INCLUDEDIR} && rm -f curses.h) - -@ (cd ${INCLUDEDIR} && rm -f ncurses.h) - -@ (cd ${INCLUDEDIR} && rm -f unctrl.h) - -@ (cd ${INCLUDEDIR} && rm -f ncurses_dll.h) - -@ (cd ${INCLUDEDIR} && rm -f term.h) - -@ (cd ${INCLUDEDIR} && rm -f termcap.h) - -@ (cd ${INCLUDEDIR} && rm -f tic.h) - -@ (cd ${INCLUDEDIR} && rm -f term_entry.h) - -@ (cd ${INCLUDEDIR} && rm -f nc_tparm.h) diff --git a/include/Makefile.in b/include/Makefile.in deleted file mode 100644 index 351383b..0000000 --- a/include/Makefile.in +++ /dev/null @@ -1,177 +0,0 @@ -# $Id: Makefile.in,v 1.53 2021/07/03 18:56:51 tom Exp $ -############################################################################## -# Copyright 2019-2020,2021 Thomas E. Dickey # -# Copyright 1998-2013,2015 Free Software Foundation, Inc. # -# # -# Permission is hereby granted, free of charge, to any person obtaining a # -# copy of this software and associated documentation files (the "Software"), # -# to deal in the Software without restriction, including without limitation # -# the rights to use, copy, modify, merge, publish, distribute, distribute # -# with modifications, sublicense, and/or sell copies of the Software, and to # -# permit persons to whom the Software is furnished to do so, subject to the # -# following conditions: # -# # -# The above copyright notice and this permission notice shall be included in # -# all copies or substantial portions of the Software. # -# # -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # -# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # -# DEALINGS IN THE SOFTWARE. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas E. Dickey 1996-on -# -# Makefile for ncurses source code. -# -# This makes/installs ncurses include-files -# -# The variable 'srcdir' refers to the source-distribution, and can be set with -# the configure script by "--srcdir=DIR". - -# turn off _all_ suffix rules; we'll generate our own -.SUFFIXES: - -SHELL = @SHELL@ -VPATH = @srcdir@ -THIS = Makefile - -DESTDIR = @DESTDIR@ -srcdir = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ -includedir = @includedir@ -includesubdir = @includesubdir@ - -INCLUDEDIR = $(DESTDIR)$(includedir)$(includesubdir) - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ - -AWK = @AWK@ -LN_S = @LN_S@ - -CC = @CC@ -CFLAGS = @CFLAGS@ @EXTRA_CFLAGS@ -CPPFLAGS = -DHAVE_CONFIG_H -I. @CPPFLAGS@ - -CTAGS = @CTAGS@ -ETAGS = @ETAGS@ - -VERSION = @cf_cv_rel_version@ - -# The "Caps" file specifies the terminfo database format, as well as the list -# of function keys. -TERMINFO_CAPS = $(srcdir)/@TERMINFO_CAPS@ -CAPLIST = $(TERMINFO_CAPS) \ - $(srcdir)/Caps-ncurses - -# These files are generated by the configure script -CONFIG_SRC = \ - MKterm.h.awk \ - curses.head \ - ncurses_dll.h \ - termcap.h \ - unctrl.h - -# These files are generated by this makefile -AUTO_SRC = \ - curses.h \ - hashsize.h \ - ncurses_def.h \ - parametrized.h \ - config.h \ - term.h - -################################################################################ - -@MAKE_PHONY@.PHONY : all -@MAKE_PHONY@.PHONY : check -@MAKE_PHONY@.PHONY : clean -@MAKE_PHONY@.PHONY : depend -@MAKE_PHONY@.PHONY : distclean -@MAKE_PHONY@.PHONY : install -@MAKE_PHONY@.PHONY : install.libs -@MAKE_PHONY@.PHONY : libs -@MAKE_PHONY@.PHONY : mostlyclean -@MAKE_PHONY@.PHONY : realclean -@MAKE_PHONY@.PHONY : sources -@MAKE_PHONY@.PHONY : uninstall -@MAKE_PHONY@.PHONY : uninstall.libs - -all \ -libs \ -depend \ -sources \ -install :: $(AUTO_SRC) - -curses.h : $(CAPLIST) \ - curses.head \ - $(srcdir)/curses.tail \ - $(srcdir)/MKkey_defs.sh - cat curses.head >$@ - AWK=$(AWK) $(SHELL) $(srcdir)/MKkey_defs.sh $(CAPLIST) >>$@ - $(SHELL) -c 'if test "@NCURSES_WGETCH_EVENTS@" = "1" ; then cat $(srcdir)/curses.events >>$@ ; fi' - $(SHELL) -c 'if test "@NCURSES_CH_T@" = "cchar_t" ; then cat $(srcdir)/curses.wide >>$@ ; fi' - cat $(srcdir)/curses.tail >>$@ - -term.h: $(CAPLIST) \ - MKterm.h.awk - $(AWK) -f MKterm.h.awk $(CAPLIST) > $@ - $(SHELL) $(srcdir)/edit_cfg.sh ../include/ncurses_cfg.h $@ - -hashsize.h: $(CAPLIST) \ - $(srcdir)/MKhashsize.sh - $(SHELL) $(srcdir)/MKhashsize.sh $(CAPLIST) >$@ - -ncurses_def.h: $(srcdir)/ncurses_defs $(srcdir)/MKncurses_def.sh - AWK=$(AWK) $(SHELL) $(srcdir)/MKncurses_def.sh $(srcdir)/ncurses_defs >$@ - -parametrized.h: $(CAPLIST) \ - $(srcdir)/MKparametrized.sh - AWK=$(AWK) $(SHELL) $(srcdir)/MKparametrized.sh $(CAPLIST) >$@ - -# This is required by pthread.h on MinGW -config.h: - touch $@ - -tags: - $(CTAGS) *.[ch] - -@MAKE_UPPER_TAGS@TAGS: -@MAKE_UPPER_TAGS@ $(ETAGS) *.[ch] - -mostlyclean :: - -rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace - -clean :: mostlyclean - -rm -f $(AUTO_SRC) - -rm -rf *.dSYM - -distclean :: clean - -rm -f Makefile $(CONFIG_SRC) config.h - -realclean :: distclean - -# Verify that each header-file can be compiled without including another. -check: - @$(SHELL) -c "for header in *.h;\ - do \ - echo \"** testing \$${header}\" ; \ - echo \"#include <\$${header}>\" >headers.c; \ - echo \"int main(void) { return 0; }\" >>headers.c; \ - $(CC) -c $(CFLAGS) $(CPPFLAGS) headers.c; \ - done" - -@rm -f headers.* - -############################################################################### -# The remainder of this file is automatically generated during configuration -############################################################################### diff --git a/include/capdefaults.c b/include/capdefaults.c deleted file mode 100644 index 0bdda14..0000000 --- a/include/capdefaults.c +++ /dev/null @@ -1,87 +0,0 @@ -/**************************************************************************** - * Copyright 2020,2021 Thomas E. Dickey * - * Copyright 1998-2000,2008 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* $Id: capdefaults.c,v 1.16 2021/09/04 10:52:55 tom Exp $ */ - - /* - * Compute obsolete capabilities. The reason this is an include file is - * that the two places where it is needed require the macros to generate - * offsets to different structures. See the file Caps for explanations of - * these conversions. - * - * Note: This code is the functional inverse of the first part of - * postprocess_termcap(). - */ -{ - char *strp; - short capval; - -#define EXTRACT_DELAY(str) \ - (short) (strp = strchr(str, '*'), strp ? atoi(strp+1) : 0) - - /* current (4.4BSD) capabilities marked obsolete */ - if (VALID_STRING(carriage_return) - && (capval = EXTRACT_DELAY(carriage_return))) - carriage_return_delay = capval; - if (VALID_STRING(newline) && (capval = EXTRACT_DELAY(newline))) - new_line_delay = capval; - - /* current (4.4BSD) capabilities not obsolete */ - if (!VALID_STRING(termcap_init2) && VALID_STRING(init_3string)) { - termcap_init2 = init_3string; - init_3string = ABSENT_STRING; - } - if (!VALID_STRING(termcap_reset) - && VALID_STRING(reset_2string) - && !VALID_STRING(reset_1string) - && !VALID_STRING(reset_3string)) { - termcap_reset = reset_2string; - reset_2string = ABSENT_STRING; - } - if (magic_cookie_glitch_ul == ABSENT_NUMERIC - && magic_cookie_glitch != ABSENT_NUMERIC - && VALID_STRING(enter_underline_mode)) - magic_cookie_glitch_ul = magic_cookie_glitch; - - /* totally obsolete capabilities */ - linefeed_is_newline = (char) (VALID_STRING(newline) - && (strcmp("\n", newline) == 0)); - if (VALID_STRING(cursor_left) - && (capval = EXTRACT_DELAY(cursor_left))) - backspace_delay = capval; - if (VALID_STRING(tab) && (capval = EXTRACT_DELAY(tab))) - horizontal_tab_delay = capval; -#undef EXTRACT_DELAY -} diff --git a/include/config.h b/include/config.h deleted file mode 100644 index e69de29..0000000 diff --git a/include/curses.events b/include/curses.events deleted file mode 100644 index 25a2583..0000000 --- a/include/curses.events +++ /dev/null @@ -1,55 +0,0 @@ -/* $Id*/ -/* - * vile:cmode: - * This file is part of ncurses, designed to be appended after curses.h.in - * (see that file for the relevant copyright). - */ - -/* - * This is an extension to support events... - */ -#ifdef NCURSES_WGETCH_EVENTS -#if !defined(__BEOS__) || defined(__HAIKU__) - /* Fix _nc_timed_wait() on BEOS... */ -# define NCURSES_EVENT_VERSION 1 -#endif /* !defined(__BEOS__) */ - -/* - * Bits to set in _nc_event.data.flags - */ -# define _NC_EVENT_TIMEOUT_MSEC 1 -# define _NC_EVENT_FILE 2 -# define _NC_EVENT_FILE_READABLE 2 -# if 0 /* Not supported yet... */ -# define _NC_EVENT_FILE_WRITABLE 4 -# define _NC_EVENT_FILE_EXCEPTION 8 -# endif - -typedef struct -{ - int type; - union - { - long timeout_msec; /* _NC_EVENT_TIMEOUT_MSEC */ - struct - { - unsigned int flags; - int fd; - unsigned int result; - } fev; /* _NC_EVENT_FILE */ - } data; -} _nc_event; - -typedef struct -{ - int count; - int result_flags; /* _NC_EVENT_TIMEOUT_MSEC or _NC_EVENT_FILE_READABLE */ - _nc_event *events[1]; -} _nc_eventlist; - -extern NCURSES_EXPORT(int) wgetch_events (WINDOW *, _nc_eventlist *) GCC_DEPRECATED(experimental option); /* experimental */ -extern NCURSES_EXPORT(int) wgetnstr_events (WINDOW *,char *,int,_nc_eventlist *) GCC_DEPRECATED(experimental option); /* experimental */ - -#define KEY_EVENT 0633 /* We were interrupted by an event */ - -#endif /* NCURSES_WGETCH_EVENTS */ diff --git a/include/curses.h b/include/curses.h deleted file mode 100644 index 8e667af..0000000 --- a/include/curses.h +++ /dev/null @@ -1,1800 +0,0 @@ -/**************************************************************************** - * Copyright 2018-2020,2021 Thomas E. Dickey * - * Copyright 1998-2016,2017 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* $Id: curses.h.in,v 1.277 2021/09/24 16:07:37 tom Exp $ */ - -#ifndef __NCURSES_H -#define __NCURSES_H - -/* - The symbols beginning NCURSES_ or USE_ are configuration choices. - A few of the former can be overridden by applications at compile-time. - Most of the others correspond to configure-script options (or checks - by the configure-script for features of the system on which it is built). - - These symbols can be overridden by applications at compile-time: - NCURSES_NOMACROS suppresses macro definitions in favor of functions - NCURSES_WATTR_MACROS suppresses wattr_* macro definitions - NCURSES_WIDECHAR is an alternative for declaring wide-character functions. - - These symbols are used only when building ncurses: - NCURSES_ATTR_T - NCURSES_FIELD_INTERNALS - NCURSES_INTERNALS - - These symbols are set by the configure script: - NCURSES_ENABLE_STDBOOL_H - NCURSES_EXPANDED - NCURSES_EXT_COLORS - NCURSES_EXT_FUNCS - NCURSES_EXT_PUTWIN - NCURSES_NO_PADDING - NCURSES_OSPEED_COMPAT - NCURSES_PATHSEP - NCURSES_REENTRANT - */ - -#define CURSES 1 -#define CURSES_H 1 - -/* These are defined only in curses.h, and are used for conditional compiles */ -#define NCURSES_VERSION_MAJOR 6 -#define NCURSES_VERSION_MINOR 3 -#define NCURSES_VERSION_PATCH 20211021 - -/* This is defined in more than one ncurses header, for identification */ -#undef NCURSES_VERSION -#define NCURSES_VERSION "6.3" - -/* - * Identify the mouse encoding version. - */ -#define NCURSES_MOUSE_VERSION 2 - -/* - * Definitions to facilitate DLL's. - */ -#include - -/* - * Extra headers. - */ -#if 1 -#include -#endif - -#ifdef __cplusplus -#else -#if 0 -#include -#undef GCC_NORETURN -#define GCC_NORETURN _Noreturn -#endif -#endif - -/* - * User-definable tweak to disable the include of . - */ -#ifndef NCURSES_ENABLE_STDBOOL_H -#define NCURSES_ENABLE_STDBOOL_H 1 -#endif - -/* - * NCURSES_ATTR_T is used to quiet compiler warnings when building ncurses - * configured using --disable-macros. - */ -#ifndef NCURSES_ATTR_T -#define NCURSES_ATTR_T int -#endif - -/* - * Expands to 'const' if ncurses is configured using --enable-const. Note that - * doing so makes it incompatible with other implementations of X/Open Curses. - */ -#undef NCURSES_CONST -#define NCURSES_CONST const - -#undef NCURSES_INLINE -#define NCURSES_INLINE inline - -/* - * The standard type used for color values, and for color-pairs. The latter - * allows the curses library to enumerate the combinations of foreground and - * background colors used by an application, and is normally the product of the - * total foreground and background colors. - * - * X/Open uses "short" for both of these types, ultimately because they are - * numbers from the SVr4 terminal database, which uses 16-bit signed values. - */ -#undef NCURSES_COLOR_T -#define NCURSES_COLOR_T short - -#undef NCURSES_PAIRS_T -#define NCURSES_PAIRS_T short - -/* - * Definitions used to make WINDOW and similar structs opaque. - */ -#ifndef NCURSES_INTERNALS -#define NCURSES_OPAQUE 1 -#define NCURSES_OPAQUE_FORM 0 -#define NCURSES_OPAQUE_MENU 0 -#define NCURSES_OPAQUE_PANEL 0 -#endif - -/* - * Definition used to optionally suppress wattr* macros to help with the - * transition from ncurses5 to ncurses6 by allowing the header files to - * be shared across development packages for ncursesw in both ABIs. - */ -#ifndef NCURSES_WATTR_MACROS -#define NCURSES_WATTR_MACROS 0 -#endif - -/* - * The reentrant code relies on the opaque setting, but adds features. - */ -#ifndef NCURSES_REENTRANT -#define NCURSES_REENTRANT 1 -#endif - -/* - * In certain environments, we must work around linker problems for data - */ -#undef NCURSES_BROKEN_LINKER -#if 0 -#define NCURSES_BROKEN_LINKER 1 -#endif - -/* - * Control whether bindings for interop support are added. - */ -#undef NCURSES_INTEROP_FUNCS -#define NCURSES_INTEROP_FUNCS 1 - -/* - * The internal type used for window dimensions. - */ -#undef NCURSES_SIZE_T -#define NCURSES_SIZE_T int - -/* - * Control whether tparm() supports varargs or fixed-parameter list. - */ -#undef NCURSES_TPARM_VARARGS -#define NCURSES_TPARM_VARARGS 1 - -/* - * Control type used for tparm's arguments. While X/Open equates long and - * char* values, this is not always workable for 64-bit platforms. - */ -#undef NCURSES_TPARM_ARG -#define NCURSES_TPARM_ARG intptr_t - -/* - * Control whether ncurses uses wcwidth() for checking width of line-drawing - * characters. - */ -#undef NCURSES_WCWIDTH_GRAPHICS -#define NCURSES_WCWIDTH_GRAPHICS 1 - -/* - * NCURSES_CH_T is used in building the library, but not used otherwise in - * this header file, since that would make the normal/wide-character versions - * of the header incompatible. - */ -#undef NCURSES_CH_T -#define NCURSES_CH_T chtype - -#if 1 && defined(_LP64) -typedef unsigned chtype; -typedef unsigned mmask_t; -#else -typedef uint32_t chtype; -typedef uint32_t mmask_t; -#endif - -/* - * We need FILE, etc. Include this before checking any feature symbols. - */ -#include - -/* - * With XPG4, you must define _XOPEN_SOURCE_EXTENDED, it is redundant (or - * conflicting) when _XOPEN_SOURCE is 500 or greater. If NCURSES_WIDECHAR is - * not already defined, e.g., if the platform relies upon nonstandard feature - * test macros, define it at this point if the standard feature test macros - * indicate that it should be defined. - */ -#ifndef NCURSES_WIDECHAR -#if defined(_XOPEN_SOURCE_EXTENDED) || (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0 >= 500)) -#define NCURSES_WIDECHAR 1 -#else -#define NCURSES_WIDECHAR 0 -#endif -#endif /* NCURSES_WIDECHAR */ - -#include /* we need va_list */ -#if NCURSES_WIDECHAR -#include /* we want wchar_t */ -#endif - -/* X/Open and SVr4 specify that curses implements 'bool'. However, C++ may also - * implement it. If so, we must use the C++ compiler's type to avoid conflict - * with other interfaces. - * - * A further complication is that may declare 'bool' to be a - * different type, such as an enum which is not necessarily compatible with - * C++. If we have , make 'bool' a macro, so users may #undef it. - * Otherwise, let it remain a typedef to avoid conflicts with other #define's. - * In either case, make a typedef for NCURSES_BOOL which can be used if needed - * from either C or C++. - */ - -#undef TRUE -#define TRUE 1 - -#undef FALSE -#define FALSE 0 - -typedef unsigned char NCURSES_BOOL; - -#if defined(__cplusplus) /* __cplusplus, etc. */ - -/* use the C++ compiler's bool type */ -#define NCURSES_BOOL bool - -#else /* c89, c99, etc. */ - -#if NCURSES_ENABLE_STDBOOL_H -#include -/* use whatever the C compiler decides bool really is */ -#define NCURSES_BOOL bool -#else -/* there is no predefined bool - use our own */ -#undef bool -#define bool NCURSES_BOOL -#endif - -#endif /* !__cplusplus, etc. */ - -#ifdef __cplusplus -extern "C" { -#define NCURSES_CAST(type,value) static_cast(value) -#else -#define NCURSES_CAST(type,value) (type)(value) -#endif - -#define NCURSES_OK_ADDR(p) (0 != NCURSES_CAST(const void *, (p))) - -/* - * X/Open attributes. In the ncurses implementation, they are identical to the - * A_ attributes. - */ -#define WA_ATTRIBUTES A_ATTRIBUTES -#define WA_NORMAL A_NORMAL -#define WA_STANDOUT A_STANDOUT -#define WA_UNDERLINE A_UNDERLINE -#define WA_REVERSE A_REVERSE -#define WA_BLINK A_BLINK -#define WA_DIM A_DIM -#define WA_BOLD A_BOLD -#define WA_ALTCHARSET A_ALTCHARSET -#define WA_INVIS A_INVIS -#define WA_PROTECT A_PROTECT -#define WA_HORIZONTAL A_HORIZONTAL -#define WA_LEFT A_LEFT -#define WA_LOW A_LOW -#define WA_RIGHT A_RIGHT -#define WA_TOP A_TOP -#define WA_VERTICAL A_VERTICAL - -#if 1 -#define WA_ITALIC A_ITALIC /* ncurses extension */ -#endif - -/* colors */ -#define COLOR_BLACK 0 -#define COLOR_RED 1 -#define COLOR_GREEN 2 -#define COLOR_YELLOW 3 -#define COLOR_BLUE 4 -#define COLOR_MAGENTA 5 -#define COLOR_CYAN 6 -#define COLOR_WHITE 7 - -/* line graphics */ - -#if 0 || NCURSES_REENTRANT -NCURSES_WRAPPED_VAR(chtype*, acs_map); -#define acs_map NCURSES_PUBLIC_VAR(acs_map()) -#else -extern NCURSES_EXPORT_VAR(chtype) acs_map[]; -#endif - -#define NCURSES_ACS(c) (acs_map[NCURSES_CAST(unsigned char,(c))]) - -/* VT100 symbols begin here */ -#define ACS_ULCORNER NCURSES_ACS('l') /* upper left corner */ -#define ACS_LLCORNER NCURSES_ACS('m') /* lower left corner */ -#define ACS_URCORNER NCURSES_ACS('k') /* upper right corner */ -#define ACS_LRCORNER NCURSES_ACS('j') /* lower right corner */ -#define ACS_LTEE NCURSES_ACS('t') /* tee pointing right */ -#define ACS_RTEE NCURSES_ACS('u') /* tee pointing left */ -#define ACS_BTEE NCURSES_ACS('v') /* tee pointing up */ -#define ACS_TTEE NCURSES_ACS('w') /* tee pointing down */ -#define ACS_HLINE NCURSES_ACS('q') /* horizontal line */ -#define ACS_VLINE NCURSES_ACS('x') /* vertical line */ -#define ACS_PLUS NCURSES_ACS('n') /* large plus or crossover */ -#define ACS_S1 NCURSES_ACS('o') /* scan line 1 */ -#define ACS_S9 NCURSES_ACS('s') /* scan line 9 */ -#define ACS_DIAMOND NCURSES_ACS('`') /* diamond */ -#define ACS_CKBOARD NCURSES_ACS('a') /* checker board (stipple) */ -#define ACS_DEGREE NCURSES_ACS('f') /* degree symbol */ -#define ACS_PLMINUS NCURSES_ACS('g') /* plus/minus */ -#define ACS_BULLET NCURSES_ACS('~') /* bullet */ -/* Teletype 5410v1 symbols begin here */ -#define ACS_LARROW NCURSES_ACS(',') /* arrow pointing left */ -#define ACS_RARROW NCURSES_ACS('+') /* arrow pointing right */ -#define ACS_DARROW NCURSES_ACS('.') /* arrow pointing down */ -#define ACS_UARROW NCURSES_ACS('-') /* arrow pointing up */ -#define ACS_BOARD NCURSES_ACS('h') /* board of squares */ -#define ACS_LANTERN NCURSES_ACS('i') /* lantern symbol */ -#define ACS_BLOCK NCURSES_ACS('0') /* solid square block */ -/* - * These aren't documented, but a lot of System Vs have them anyway - * (you can spot pprryyzz{{||}} in a lot of AT&T terminfo strings). - * The ACS_names may not match AT&T's, our source didn't know them. - */ -#define ACS_S3 NCURSES_ACS('p') /* scan line 3 */ -#define ACS_S7 NCURSES_ACS('r') /* scan line 7 */ -#define ACS_LEQUAL NCURSES_ACS('y') /* less/equal */ -#define ACS_GEQUAL NCURSES_ACS('z') /* greater/equal */ -#define ACS_PI NCURSES_ACS('{') /* Pi */ -#define ACS_NEQUAL NCURSES_ACS('|') /* not equal */ -#define ACS_STERLING NCURSES_ACS('}') /* UK pound sign */ - -/* - * Line drawing ACS names are of the form ACS_trbl, where t is the top, r - * is the right, b is the bottom, and l is the left. t, r, b, and l might - * be B (blank), S (single), D (double), or T (thick). The subset defined - * here only uses B and S. - */ -#define ACS_BSSB ACS_ULCORNER -#define ACS_SSBB ACS_LLCORNER -#define ACS_BBSS ACS_URCORNER -#define ACS_SBBS ACS_LRCORNER -#define ACS_SBSS ACS_RTEE -#define ACS_SSSB ACS_LTEE -#define ACS_SSBS ACS_BTEE -#define ACS_BSSS ACS_TTEE -#define ACS_BSBS ACS_HLINE -#define ACS_SBSB ACS_VLINE -#define ACS_SSSS ACS_PLUS - -#undef ERR -#define ERR (-1) - -#undef OK -#define OK (0) - -/* values for the _flags member */ -#define _SUBWIN 0x01 /* is this a sub-window? */ -#define _ENDLINE 0x02 /* is the window flush right? */ -#define _FULLWIN 0x04 /* is the window full-screen? */ -#define _SCROLLWIN 0x08 /* bottom edge is at screen bottom? */ -#define _ISPAD 0x10 /* is this window a pad? */ -#define _HASMOVED 0x20 /* has cursor moved since last refresh? */ -#define _WRAPPED 0x40 /* cursor was just wrappped */ - -/* - * this value is used in the firstchar and lastchar fields to mark - * unchanged lines - */ -#define _NOCHANGE -1 - -/* - * this value is used in the oldindex field to mark lines created by insertions - * and scrolls. - */ -#define _NEWINDEX -1 - -#ifdef NCURSES_INTERNALS -#undef SCREEN -#define SCREEN struct screen -SCREEN; -#else -typedef struct screen SCREEN; -#endif - -typedef struct _win_st WINDOW; - -typedef chtype attr_t; /* ...must be at least as wide as chtype */ - -#if NCURSES_WIDECHAR - -#if 0 -#ifdef mblen /* libutf8.h defines it w/o undefining first */ -#undef mblen -#endif -#include -#endif - -#if 0 -#include /* ...to get mbstate_t, etc. */ -#endif - -#if 0 -typedef unsigned short wchar_t; -#endif - -#if 0 -typedef unsigned int wint_t; -#endif - -/* - * cchar_t stores an array of CCHARW_MAX wide characters. The first is - * normally a spacing character. The others are non-spacing. If those - * (spacing and nonspacing) do not fill the array, a null L'\0' follows. - * Otherwise, a null is assumed to follow when extracting via getcchar(). - */ -#define CCHARW_MAX 5 -typedef struct -{ - attr_t attr; - wchar_t chars[CCHARW_MAX]; -#if 0 -#undef NCURSES_EXT_COLORS -#define NCURSES_EXT_COLORS 20211021 - int ext_color; /* color pair, must be more than 16-bits */ -#endif -} -cchar_t; - -#endif /* NCURSES_WIDECHAR */ - -#if !NCURSES_OPAQUE -struct ldat; - -struct _win_st -{ - NCURSES_SIZE_T _cury, _curx; /* current cursor position */ - - /* window location and size */ - NCURSES_SIZE_T _maxy, _maxx; /* maximums of x and y, NOT window size */ - NCURSES_SIZE_T _begy, _begx; /* screen coords of upper-left-hand corner */ - - short _flags; /* window state flags */ - - /* attribute tracking */ - attr_t _attrs; /* current attribute for non-space character */ - chtype _bkgd; /* current background char/attribute pair */ - - /* option values set by user */ - bool _notimeout; /* no time out on function-key entry? */ - bool _clear; /* consider all data in the window invalid? */ - bool _leaveok; /* OK to not reset cursor on exit? */ - bool _scroll; /* OK to scroll this window? */ - bool _idlok; /* OK to use insert/delete line? */ - bool _idcok; /* OK to use insert/delete char? */ - bool _immed; /* window in immed mode? (not yet used) */ - bool _sync; /* window in sync mode? */ - bool _use_keypad; /* process function keys into KEY_ symbols? */ - int _delay; /* 0 = nodelay, <0 = blocking, >0 = delay */ - - struct ldat *_line; /* the actual line data */ - - /* global screen state */ - NCURSES_SIZE_T _regtop; /* top line of scrolling region */ - NCURSES_SIZE_T _regbottom; /* bottom line of scrolling region */ - - /* these are used only if this is a sub-window */ - int _parx; /* x coordinate of this window in parent */ - int _pary; /* y coordinate of this window in parent */ - WINDOW *_parent; /* pointer to parent if a sub-window */ - - /* these are used only if this is a pad */ - struct pdat - { - NCURSES_SIZE_T _pad_y, _pad_x; - NCURSES_SIZE_T _pad_top, _pad_left; - NCURSES_SIZE_T _pad_bottom, _pad_right; - } _pad; - - NCURSES_SIZE_T _yoffset; /* real begy is _begy + _yoffset */ - -#if NCURSES_WIDECHAR - cchar_t _bkgrnd; /* current background char/attribute pair */ -#if 0 - int _color; /* current color-pair for non-space character */ -#endif -#endif -}; -#endif /* NCURSES_OPAQUE */ - -/* - * GCC (and some other compilers) define '__attribute__'; we're using this - * macro to alert the compiler to flag inconsistencies in printf/scanf-like - * function calls. Just in case '__attribute__' isn't defined, make a dummy. - * Old versions of G++ do not accept it anyway, at least not consistently with - * GCC. - */ -#if !(defined(__GNUC__) || defined(__GNUG__) || defined(__attribute__)) -#define __attribute__(p) /* nothing */ -#endif - -/* - * We cannot define these in ncurses_cfg.h, since they require parameters to be - * passed (that is non-portable). - */ -#ifndef GCC_PRINTFLIKE -#ifndef printf -#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var))) -#else -#define GCC_PRINTFLIKE(fmt,var) /*nothing*/ -#endif -#endif - -#ifndef GCC_SCANFLIKE -#ifndef scanf -#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var))) -#else -#define GCC_SCANFLIKE(fmt,var) /*nothing*/ -#endif -#endif - -#ifndef GCC_NORETURN -#define GCC_NORETURN /* nothing */ -#endif - -#ifndef GCC_UNUSED -#define GCC_UNUSED /* nothing */ -#endif - -#undef GCC_DEPRECATED -#if (__GNUC__ - 0 > 3 || (__GNUC__ - 0 == 3 && __GNUC_MINOR__ - 0 >= 2)) && !defined(NCURSES_INTERNALS) -#define GCC_DEPRECATED(msg) __attribute__((deprecated)) -#else -#define GCC_DEPRECATED(msg) /* nothing */ -#endif - -/* - * Curses uses a helper function. Define our type for this to simplify - * extending it for the sp-funcs feature. - */ -typedef int (*NCURSES_OUTC)(int); - -/* - * Function prototypes. This is the complete X/Open Curses list of required - * functions. Those marked `generated' will have sources generated from the - * macro definitions later in this file, in order to satisfy XPG4.2 - * requirements. - */ - -extern NCURSES_EXPORT(int) addch (const chtype); /* generated */ -extern NCURSES_EXPORT(int) addchnstr (const chtype *, int); /* generated */ -extern NCURSES_EXPORT(int) addchstr (const chtype *); /* generated */ -extern NCURSES_EXPORT(int) addnstr (const char *, int); /* generated */ -extern NCURSES_EXPORT(int) addstr (const char *); /* generated */ -extern NCURSES_EXPORT(int) attroff (NCURSES_ATTR_T); /* generated */ -extern NCURSES_EXPORT(int) attron (NCURSES_ATTR_T); /* generated */ -extern NCURSES_EXPORT(int) attrset (NCURSES_ATTR_T); /* generated */ -extern NCURSES_EXPORT(int) attr_get (attr_t *, NCURSES_PAIRS_T *, void *); /* generated */ -extern NCURSES_EXPORT(int) attr_off (attr_t, void *); /* generated */ -extern NCURSES_EXPORT(int) attr_on (attr_t, void *); /* generated */ -extern NCURSES_EXPORT(int) attr_set (attr_t, NCURSES_PAIRS_T, void *); /* generated */ -extern NCURSES_EXPORT(int) baudrate (void); /* implemented */ -extern NCURSES_EXPORT(int) beep (void); /* implemented */ -extern NCURSES_EXPORT(int) bkgd (chtype); /* generated */ -extern NCURSES_EXPORT(void) bkgdset (chtype); /* generated */ -extern NCURSES_EXPORT(int) border (chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype); /* generated */ -extern NCURSES_EXPORT(int) box (WINDOW *, chtype, chtype); /* generated */ -extern NCURSES_EXPORT(bool) can_change_color (void); /* implemented */ -extern NCURSES_EXPORT(int) cbreak (void); /* implemented */ -extern NCURSES_EXPORT(int) chgat (int, attr_t, NCURSES_PAIRS_T, const void *); /* generated */ -extern NCURSES_EXPORT(int) clear (void); /* generated */ -extern NCURSES_EXPORT(int) clearok (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(int) clrtobot (void); /* generated */ -extern NCURSES_EXPORT(int) clrtoeol (void); /* generated */ -extern NCURSES_EXPORT(int) color_content (NCURSES_COLOR_T,NCURSES_COLOR_T*,NCURSES_COLOR_T*,NCURSES_COLOR_T*); /* implemented */ -extern NCURSES_EXPORT(int) color_set (NCURSES_PAIRS_T,void*); /* generated */ -extern NCURSES_EXPORT(int) COLOR_PAIR (int); /* generated */ -extern NCURSES_EXPORT(int) copywin (const WINDOW*,WINDOW*,int,int,int,int,int,int,int); /* implemented */ -extern NCURSES_EXPORT(int) curs_set (int); /* implemented */ -extern NCURSES_EXPORT(int) def_prog_mode (void); /* implemented */ -extern NCURSES_EXPORT(int) def_shell_mode (void); /* implemented */ -extern NCURSES_EXPORT(int) delay_output (int); /* implemented */ -extern NCURSES_EXPORT(int) delch (void); /* generated */ -extern NCURSES_EXPORT(void) delscreen (SCREEN *); /* implemented */ -extern NCURSES_EXPORT(int) delwin (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) deleteln (void); /* generated */ -extern NCURSES_EXPORT(WINDOW *) derwin (WINDOW *,int,int,int,int); /* implemented */ -extern NCURSES_EXPORT(int) doupdate (void); /* implemented */ -extern NCURSES_EXPORT(WINDOW *) dupwin (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) echo (void); /* implemented */ -extern NCURSES_EXPORT(int) echochar (const chtype); /* generated */ -extern NCURSES_EXPORT(int) erase (void); /* generated */ -extern NCURSES_EXPORT(int) endwin (void); /* implemented */ -extern NCURSES_EXPORT(char) erasechar (void); /* implemented */ -extern NCURSES_EXPORT(void) filter (void); /* implemented */ -extern NCURSES_EXPORT(int) flash (void); /* implemented */ -extern NCURSES_EXPORT(int) flushinp (void); /* implemented */ -extern NCURSES_EXPORT(chtype) getbkgd (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getch (void); /* generated */ -extern NCURSES_EXPORT(int) getnstr (char *, int); /* generated */ -extern NCURSES_EXPORT(int) getstr (char *); /* generated */ -extern NCURSES_EXPORT(WINDOW *) getwin (FILE *); /* implemented */ -extern NCURSES_EXPORT(int) halfdelay (int); /* implemented */ -extern NCURSES_EXPORT(bool) has_colors (void); /* implemented */ -extern NCURSES_EXPORT(bool) has_ic (void); /* implemented */ -extern NCURSES_EXPORT(bool) has_il (void); /* implemented */ -extern NCURSES_EXPORT(int) hline (chtype, int); /* generated */ -extern NCURSES_EXPORT(void) idcok (WINDOW *, bool); /* implemented */ -extern NCURSES_EXPORT(int) idlok (WINDOW *, bool); /* implemented */ -extern NCURSES_EXPORT(void) immedok (WINDOW *, bool); /* implemented */ -extern NCURSES_EXPORT(chtype) inch (void); /* generated */ -extern NCURSES_EXPORT(int) inchnstr (chtype *, int); /* generated */ -extern NCURSES_EXPORT(int) inchstr (chtype *); /* generated */ -extern NCURSES_EXPORT(WINDOW *) initscr (void); /* implemented */ -extern NCURSES_EXPORT(int) init_color (NCURSES_COLOR_T,NCURSES_COLOR_T,NCURSES_COLOR_T,NCURSES_COLOR_T); /* implemented */ -extern NCURSES_EXPORT(int) init_pair (NCURSES_PAIRS_T,NCURSES_COLOR_T,NCURSES_COLOR_T); /* implemented */ -extern NCURSES_EXPORT(int) innstr (char *, int); /* generated */ -extern NCURSES_EXPORT(int) insch (chtype); /* generated */ -extern NCURSES_EXPORT(int) insdelln (int); /* generated */ -extern NCURSES_EXPORT(int) insertln (void); /* generated */ -extern NCURSES_EXPORT(int) insnstr (const char *, int); /* generated */ -extern NCURSES_EXPORT(int) insstr (const char *); /* generated */ -extern NCURSES_EXPORT(int) instr (char *); /* generated */ -extern NCURSES_EXPORT(int) intrflush (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(bool) isendwin (void); /* implemented */ -extern NCURSES_EXPORT(bool) is_linetouched (WINDOW *,int); /* implemented */ -extern NCURSES_EXPORT(bool) is_wintouched (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(NCURSES_CONST char *) keyname (int); /* implemented */ -extern NCURSES_EXPORT(int) keypad (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(char) killchar (void); /* implemented */ -extern NCURSES_EXPORT(int) leaveok (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(char *) longname (void); /* implemented */ -extern NCURSES_EXPORT(int) meta (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(int) move (int, int); /* generated */ -extern NCURSES_EXPORT(int) mvaddch (int, int, const chtype); /* generated */ -extern NCURSES_EXPORT(int) mvaddchnstr (int, int, const chtype *, int); /* generated */ -extern NCURSES_EXPORT(int) mvaddchstr (int, int, const chtype *); /* generated */ -extern NCURSES_EXPORT(int) mvaddnstr (int, int, const char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvaddstr (int, int, const char *); /* generated */ -extern NCURSES_EXPORT(int) mvchgat (int, int, int, attr_t, NCURSES_PAIRS_T, const void *); /* generated */ -extern NCURSES_EXPORT(int) mvcur (int,int,int,int); /* implemented */ -extern NCURSES_EXPORT(int) mvdelch (int, int); /* generated */ -extern NCURSES_EXPORT(int) mvderwin (WINDOW *, int, int); /* implemented */ -extern NCURSES_EXPORT(int) mvgetch (int, int); /* generated */ -extern NCURSES_EXPORT(int) mvgetnstr (int, int, char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvgetstr (int, int, char *); /* generated */ -extern NCURSES_EXPORT(int) mvhline (int, int, chtype, int); /* generated */ -extern NCURSES_EXPORT(chtype) mvinch (int, int); /* generated */ -extern NCURSES_EXPORT(int) mvinchnstr (int, int, chtype *, int); /* generated */ -extern NCURSES_EXPORT(int) mvinchstr (int, int, chtype *); /* generated */ -extern NCURSES_EXPORT(int) mvinnstr (int, int, char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvinsch (int, int, chtype); /* generated */ -extern NCURSES_EXPORT(int) mvinsnstr (int, int, const char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvinsstr (int, int, const char *); /* generated */ -extern NCURSES_EXPORT(int) mvinstr (int, int, char *); /* generated */ -extern NCURSES_EXPORT(int) mvprintw (int,int, const char *,...) /* implemented */ - GCC_PRINTFLIKE(3,4); -extern NCURSES_EXPORT(int) mvscanw (int,int, const char *,...) /* implemented */ - GCC_SCANFLIKE(3,4); -extern NCURSES_EXPORT(int) mvvline (int, int, chtype, int); /* generated */ -extern NCURSES_EXPORT(int) mvwaddch (WINDOW *, int, int, const chtype); /* generated */ -extern NCURSES_EXPORT(int) mvwaddchnstr (WINDOW *, int, int, const chtype *, int);/* generated */ -extern NCURSES_EXPORT(int) mvwaddchstr (WINDOW *, int, int, const chtype *); /* generated */ -extern NCURSES_EXPORT(int) mvwaddnstr (WINDOW *, int, int, const char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvwaddstr (WINDOW *, int, int, const char *); /* generated */ -extern NCURSES_EXPORT(int) mvwchgat (WINDOW *, int, int, int, attr_t, NCURSES_PAIRS_T, const void *);/* generated */ -extern NCURSES_EXPORT(int) mvwdelch (WINDOW *, int, int); /* generated */ -extern NCURSES_EXPORT(int) mvwgetch (WINDOW *, int, int); /* generated */ -extern NCURSES_EXPORT(int) mvwgetnstr (WINDOW *, int, int, char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvwgetstr (WINDOW *, int, int, char *); /* generated */ -extern NCURSES_EXPORT(int) mvwhline (WINDOW *, int, int, chtype, int); /* generated */ -extern NCURSES_EXPORT(int) mvwin (WINDOW *,int,int); /* implemented */ -extern NCURSES_EXPORT(chtype) mvwinch (WINDOW *, int, int); /* generated */ -extern NCURSES_EXPORT(int) mvwinchnstr (WINDOW *, int, int, chtype *, int); /* generated */ -extern NCURSES_EXPORT(int) mvwinchstr (WINDOW *, int, int, chtype *); /* generated */ -extern NCURSES_EXPORT(int) mvwinnstr (WINDOW *, int, int, char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvwinsch (WINDOW *, int, int, chtype); /* generated */ -extern NCURSES_EXPORT(int) mvwinsnstr (WINDOW *, int, int, const char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvwinsstr (WINDOW *, int, int, const char *); /* generated */ -extern NCURSES_EXPORT(int) mvwinstr (WINDOW *, int, int, char *); /* generated */ -extern NCURSES_EXPORT(int) mvwprintw (WINDOW*,int,int, const char *,...) /* implemented */ - GCC_PRINTFLIKE(4,5); -extern NCURSES_EXPORT(int) mvwscanw (WINDOW *,int,int, const char *,...) /* implemented */ - GCC_SCANFLIKE(4,5); -extern NCURSES_EXPORT(int) mvwvline (WINDOW *,int, int, chtype, int); /* generated */ -extern NCURSES_EXPORT(int) napms (int); /* implemented */ -extern NCURSES_EXPORT(WINDOW *) newpad (int,int); /* implemented */ -extern NCURSES_EXPORT(SCREEN *) newterm (const char *,FILE *,FILE *); /* implemented */ -extern NCURSES_EXPORT(WINDOW *) newwin (int,int,int,int); /* implemented */ -extern NCURSES_EXPORT(int) nl (void); /* implemented */ -extern NCURSES_EXPORT(int) nocbreak (void); /* implemented */ -extern NCURSES_EXPORT(int) nodelay (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(int) noecho (void); /* implemented */ -extern NCURSES_EXPORT(int) nonl (void); /* implemented */ -extern NCURSES_EXPORT(void) noqiflush (void); /* implemented */ -extern NCURSES_EXPORT(int) noraw (void); /* implemented */ -extern NCURSES_EXPORT(int) notimeout (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(int) overlay (const WINDOW*,WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) overwrite (const WINDOW*,WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) pair_content (NCURSES_PAIRS_T,NCURSES_COLOR_T*,NCURSES_COLOR_T*); /* implemented */ -extern NCURSES_EXPORT(int) PAIR_NUMBER (int); /* generated */ -extern NCURSES_EXPORT(int) pechochar (WINDOW *, const chtype); /* implemented */ -extern NCURSES_EXPORT(int) pnoutrefresh (WINDOW*,int,int,int,int,int,int);/* implemented */ -extern NCURSES_EXPORT(int) prefresh (WINDOW *,int,int,int,int,int,int); /* implemented */ -extern NCURSES_EXPORT(int) printw (const char *,...) /* implemented */ - GCC_PRINTFLIKE(1,2); -extern NCURSES_EXPORT(int) putwin (WINDOW *, FILE *); /* implemented */ -extern NCURSES_EXPORT(void) qiflush (void); /* implemented */ -extern NCURSES_EXPORT(int) raw (void); /* implemented */ -extern NCURSES_EXPORT(int) redrawwin (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) refresh (void); /* generated */ -extern NCURSES_EXPORT(int) resetty (void); /* implemented */ -extern NCURSES_EXPORT(int) reset_prog_mode (void); /* implemented */ -extern NCURSES_EXPORT(int) reset_shell_mode (void); /* implemented */ -extern NCURSES_EXPORT(int) ripoffline (int, int (*)(WINDOW *, int)); /* implemented */ -extern NCURSES_EXPORT(int) savetty (void); /* implemented */ -extern NCURSES_EXPORT(int) scanw (const char *,...) /* implemented */ - GCC_SCANFLIKE(1,2); -extern NCURSES_EXPORT(int) scr_dump (const char *); /* implemented */ -extern NCURSES_EXPORT(int) scr_init (const char *); /* implemented */ -extern NCURSES_EXPORT(int) scrl (int); /* generated */ -extern NCURSES_EXPORT(int) scroll (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) scrollok (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(int) scr_restore (const char *); /* implemented */ -extern NCURSES_EXPORT(int) scr_set (const char *); /* implemented */ -extern NCURSES_EXPORT(int) setscrreg (int,int); /* generated */ -extern NCURSES_EXPORT(SCREEN *) set_term (SCREEN *); /* implemented */ -extern NCURSES_EXPORT(int) slk_attroff (const chtype); /* implemented */ -extern NCURSES_EXPORT(int) slk_attr_off (const attr_t, void *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) slk_attron (const chtype); /* implemented */ -extern NCURSES_EXPORT(int) slk_attr_on (attr_t,void*); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) slk_attrset (const chtype); /* implemented */ -extern NCURSES_EXPORT(attr_t) slk_attr (void); /* implemented */ -extern NCURSES_EXPORT(int) slk_attr_set (const attr_t,NCURSES_PAIRS_T,void*); /* implemented */ -extern NCURSES_EXPORT(int) slk_clear (void); /* implemented */ -extern NCURSES_EXPORT(int) slk_color (NCURSES_PAIRS_T); /* implemented */ -extern NCURSES_EXPORT(int) slk_init (int); /* implemented */ -extern NCURSES_EXPORT(char *) slk_label (int); /* implemented */ -extern NCURSES_EXPORT(int) slk_noutrefresh (void); /* implemented */ -extern NCURSES_EXPORT(int) slk_refresh (void); /* implemented */ -extern NCURSES_EXPORT(int) slk_restore (void); /* implemented */ -extern NCURSES_EXPORT(int) slk_set (int,const char *,int); /* implemented */ -extern NCURSES_EXPORT(int) slk_touch (void); /* implemented */ -extern NCURSES_EXPORT(int) standout (void); /* generated */ -extern NCURSES_EXPORT(int) standend (void); /* generated */ -extern NCURSES_EXPORT(int) start_color (void); /* implemented */ -extern NCURSES_EXPORT(WINDOW *) subpad (WINDOW *, int, int, int, int); /* implemented */ -extern NCURSES_EXPORT(WINDOW *) subwin (WINDOW *, int, int, int, int); /* implemented */ -extern NCURSES_EXPORT(int) syncok (WINDOW *, bool); /* implemented */ -extern NCURSES_EXPORT(chtype) termattrs (void); /* implemented */ -extern NCURSES_EXPORT(char *) termname (void); /* implemented */ -extern NCURSES_EXPORT(void) timeout (int); /* generated */ -extern NCURSES_EXPORT(int) touchline (WINDOW *, int, int); /* generated */ -extern NCURSES_EXPORT(int) touchwin (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) typeahead (int); /* implemented */ -extern NCURSES_EXPORT(int) ungetch (int); /* implemented */ -extern NCURSES_EXPORT(int) untouchwin (WINDOW *); /* generated */ -extern NCURSES_EXPORT(void) use_env (bool); /* implemented */ -extern NCURSES_EXPORT(void) use_tioctl (bool); /* implemented */ -extern NCURSES_EXPORT(int) vidattr (chtype); /* implemented */ -extern NCURSES_EXPORT(int) vidputs (chtype, NCURSES_OUTC); /* implemented */ -extern NCURSES_EXPORT(int) vline (chtype, int); /* generated */ -extern NCURSES_EXPORT(int) vwprintw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_printw) /* implemented */ - GCC_PRINTFLIKE(2,0); -extern NCURSES_EXPORT(int) vw_printw (WINDOW *, const char *, va_list) /* implemented */ - GCC_PRINTFLIKE(2,0); -extern NCURSES_EXPORT(int) vwscanw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_scanw) /* implemented */ - GCC_SCANFLIKE(2,0); -extern NCURSES_EXPORT(int) vw_scanw (WINDOW *, const char *, va_list) /* implemented */ - GCC_SCANFLIKE(2,0); -extern NCURSES_EXPORT(int) waddch (WINDOW *, const chtype); /* implemented */ -extern NCURSES_EXPORT(int) waddchnstr (WINDOW *,const chtype *,int); /* implemented */ -extern NCURSES_EXPORT(int) waddchstr (WINDOW *,const chtype *); /* generated */ -extern NCURSES_EXPORT(int) waddnstr (WINDOW *,const char *,int); /* implemented */ -extern NCURSES_EXPORT(int) waddstr (WINDOW *,const char *); /* generated */ -extern NCURSES_EXPORT(int) wattron (WINDOW *, int); /* generated */ -extern NCURSES_EXPORT(int) wattroff (WINDOW *, int); /* generated */ -extern NCURSES_EXPORT(int) wattrset (WINDOW *, int); /* generated */ -extern NCURSES_EXPORT(int) wattr_get (WINDOW *, attr_t *, NCURSES_PAIRS_T *, void *); /* generated */ -extern NCURSES_EXPORT(int) wattr_on (WINDOW *, attr_t, void *); /* implemented */ -extern NCURSES_EXPORT(int) wattr_off (WINDOW *, attr_t, void *); /* implemented */ -extern NCURSES_EXPORT(int) wattr_set (WINDOW *, attr_t, NCURSES_PAIRS_T, void *); /* generated */ -extern NCURSES_EXPORT(int) wbkgd (WINDOW *, chtype); /* implemented */ -extern NCURSES_EXPORT(void) wbkgdset (WINDOW *,chtype); /* implemented */ -extern NCURSES_EXPORT(int) wborder (WINDOW *,chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype); /* implemented */ -extern NCURSES_EXPORT(int) wchgat (WINDOW *, int, attr_t, NCURSES_PAIRS_T, const void *);/* implemented */ -extern NCURSES_EXPORT(int) wclear (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wclrtobot (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wclrtoeol (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wcolor_set (WINDOW*,NCURSES_PAIRS_T,void*); /* implemented */ -extern NCURSES_EXPORT(void) wcursyncup (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wdelch (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wdeleteln (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) wechochar (WINDOW *, const chtype); /* implemented */ -extern NCURSES_EXPORT(int) werase (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wgetch (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wgetnstr (WINDOW *,char *,int); /* implemented */ -extern NCURSES_EXPORT(int) wgetstr (WINDOW *, char *); /* generated */ -extern NCURSES_EXPORT(int) whline (WINDOW *, chtype, int); /* implemented */ -extern NCURSES_EXPORT(chtype) winch (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) winchnstr (WINDOW *, chtype *, int); /* implemented */ -extern NCURSES_EXPORT(int) winchstr (WINDOW *, chtype *); /* generated */ -extern NCURSES_EXPORT(int) winnstr (WINDOW *, char *, int); /* implemented */ -extern NCURSES_EXPORT(int) winsch (WINDOW *, chtype); /* implemented */ -extern NCURSES_EXPORT(int) winsdelln (WINDOW *,int); /* implemented */ -extern NCURSES_EXPORT(int) winsertln (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) winsnstr (WINDOW *, const char *,int); /* implemented */ -extern NCURSES_EXPORT(int) winsstr (WINDOW *, const char *); /* generated */ -extern NCURSES_EXPORT(int) winstr (WINDOW *, char *); /* generated */ -extern NCURSES_EXPORT(int) wmove (WINDOW *,int,int); /* implemented */ -extern NCURSES_EXPORT(int) wnoutrefresh (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wprintw (WINDOW *, const char *,...) /* implemented */ - GCC_PRINTFLIKE(2,3); -extern NCURSES_EXPORT(int) wredrawln (WINDOW *,int,int); /* implemented */ -extern NCURSES_EXPORT(int) wrefresh (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wscanw (WINDOW *, const char *,...) /* implemented */ - GCC_SCANFLIKE(2,3); -extern NCURSES_EXPORT(int) wscrl (WINDOW *,int); /* implemented */ -extern NCURSES_EXPORT(int) wsetscrreg (WINDOW *,int,int); /* implemented */ -extern NCURSES_EXPORT(int) wstandout (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) wstandend (WINDOW *); /* generated */ -extern NCURSES_EXPORT(void) wsyncdown (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(void) wsyncup (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(void) wtimeout (WINDOW *,int); /* implemented */ -extern NCURSES_EXPORT(int) wtouchln (WINDOW *,int,int,int); /* implemented */ -extern NCURSES_EXPORT(int) wvline (WINDOW *,chtype,int); /* implemented */ - -/* - * These are also declared in : - */ -extern NCURSES_EXPORT(int) tigetflag (const char *); /* implemented */ -extern NCURSES_EXPORT(int) tigetnum (const char *); /* implemented */ -extern NCURSES_EXPORT(char *) tigetstr (const char *); /* implemented */ -extern NCURSES_EXPORT(int) putp (const char *); /* implemented */ - -#if NCURSES_TPARM_VARARGS -extern NCURSES_EXPORT(char *) tparm (const char *, ...); /* special */ -#else -extern NCURSES_EXPORT(char *) tparm (const char *, NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG); /* special */ -#endif - -extern NCURSES_EXPORT(char *) tiparm (const char *, ...); /* special */ - -/* - * These functions are not in X/Open, but we use them in macro definitions: - */ -extern NCURSES_EXPORT(int) getattrs (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getcurx (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getcury (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getbegx (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getbegy (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getmaxx (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getmaxy (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getparx (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getpary (const WINDOW *); /* generated */ - -/* - * vid_attr() was implemented originally based on a draft of X/Open curses. - */ -#if !NCURSES_WIDECHAR -#define vid_attr(a,pair,opts) vidattr(a) -#endif - -/* - * These functions are extensions - not in X/Open Curses. - */ -#if 1 -#undef NCURSES_EXT_FUNCS -#define NCURSES_EXT_FUNCS 20211021 -typedef int (*NCURSES_WINDOW_CB)(WINDOW *, void *); -typedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *); -extern NCURSES_EXPORT(bool) is_term_resized (int, int); -extern NCURSES_EXPORT(char *) keybound (int, int); -extern NCURSES_EXPORT(const char *) curses_version (void); -extern NCURSES_EXPORT(int) alloc_pair (int, int); -extern NCURSES_EXPORT(int) assume_default_colors (int, int); -extern NCURSES_EXPORT(int) define_key (const char *, int); -extern NCURSES_EXPORT(int) extended_color_content(int, int *, int *, int *); -extern NCURSES_EXPORT(int) extended_pair_content(int, int *, int *); -extern NCURSES_EXPORT(int) extended_slk_color(int); -extern NCURSES_EXPORT(int) find_pair (int, int); -extern NCURSES_EXPORT(int) free_pair (int); -extern NCURSES_EXPORT(int) get_escdelay (void); -extern NCURSES_EXPORT(int) init_extended_color(int, int, int, int); -extern NCURSES_EXPORT(int) init_extended_pair(int, int, int); -extern NCURSES_EXPORT(int) key_defined (const char *); -extern NCURSES_EXPORT(int) keyok (int, bool); -extern NCURSES_EXPORT(void) reset_color_pairs (void); -extern NCURSES_EXPORT(int) resize_term (int, int); -extern NCURSES_EXPORT(int) resizeterm (int, int); -extern NCURSES_EXPORT(int) set_escdelay (int); -extern NCURSES_EXPORT(int) set_tabsize (int); -extern NCURSES_EXPORT(int) use_default_colors (void); -extern NCURSES_EXPORT(int) use_extended_names (bool); -extern NCURSES_EXPORT(int) use_legacy_coding (int); -extern NCURSES_EXPORT(int) use_screen (SCREEN *, NCURSES_SCREEN_CB, void *); -extern NCURSES_EXPORT(int) use_window (WINDOW *, NCURSES_WINDOW_CB, void *); -extern NCURSES_EXPORT(int) wresize (WINDOW *, int, int); -extern NCURSES_EXPORT(void) nofilter(void); - -/* - * These extensions provide access to information stored in the WINDOW even - * when NCURSES_OPAQUE is set: - */ -extern NCURSES_EXPORT(WINDOW *) wgetparent (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(bool) is_cleared (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(bool) is_idcok (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(bool) is_idlok (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(bool) is_immedok (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(bool) is_keypad (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(bool) is_leaveok (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(bool) is_nodelay (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(bool) is_notimeout (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(bool) is_pad (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(bool) is_scrollok (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(bool) is_subwin (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(bool) is_syncok (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) wgetdelay (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) wgetscrreg (const WINDOW *, int *, int *); /* generated */ - -#else -#define curses_version() NCURSES_VERSION -#endif - -/* - * Extra extension-functions, which pass a SCREEN pointer rather than using - * a global variable SP. - */ -#if 1 -#undef NCURSES_SP_FUNCS -#define NCURSES_SP_FUNCS 20211021 -#define NCURSES_SP_NAME(name) name##_sp - -/* Define the sp-funcs helper function */ -#define NCURSES_SP_OUTC NCURSES_SP_NAME(NCURSES_OUTC) -typedef int (*NCURSES_SP_OUTC)(SCREEN*, int); - -extern NCURSES_EXPORT(SCREEN *) new_prescr (void); /* implemented:SP_FUNC */ - -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(baudrate) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(beep) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(can_change_color) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(cbreak) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(curs_set) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(color_content) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T*, NCURSES_COLOR_T*, NCURSES_COLOR_T*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_prog_mode) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_shell_mode) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(delay_output) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(doupdate) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(echo) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(endwin) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(char) NCURSES_SP_NAME(erasechar) (SCREEN*);/* implemented:SP_FUNC */ -extern NCURSES_EXPORT(void) NCURSES_SP_NAME(filter) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(flash) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(flushinp) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(getwin) (SCREEN*, FILE *); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(halfdelay) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_colors) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_ic) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_il) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_color) (SCREEN*, NCURSES_COLOR_T, NCURSES_COLOR_T, NCURSES_COLOR_T, NCURSES_COLOR_T); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_pair) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T, NCURSES_COLOR_T); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(intrflush) (SCREEN*, WINDOW*, bool); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(isendwin) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(NCURSES_CONST char *) NCURSES_SP_NAME(keyname) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(char) NCURSES_SP_NAME(killchar) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(longname) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(mvcur) (SCREEN*, int, int, int, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(napms) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(newpad) (SCREEN*, int, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(SCREEN *) NCURSES_SP_NAME(newterm) (SCREEN*, const char *, FILE *, FILE *); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(newwin) (SCREEN*, int, int, int, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nl) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nocbreak) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(noecho) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nonl) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(void) NCURSES_SP_NAME(noqiflush) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(noraw) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(pair_content) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T*, NCURSES_COLOR_T*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(void) NCURSES_SP_NAME(qiflush) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(raw) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(reset_prog_mode) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(reset_shell_mode) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resetty) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ripoffline) (SCREEN*, int, int (*)(WINDOW *, int)); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(savetty) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_init) (SCREEN*, const char *); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_restore) (SCREEN*, const char *); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_set) (SCREEN*, const char *); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attroff) (SCREEN*, const chtype); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attron) (SCREEN*, const chtype); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attrset) (SCREEN*, const chtype); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(attr_t) NCURSES_SP_NAME(slk_attr) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attr_set) (SCREEN*, const attr_t, NCURSES_PAIRS_T, void*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_clear) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_color) (SCREEN*, NCURSES_PAIRS_T); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_init) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(slk_label) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_noutrefresh) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_refresh) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_restore) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_set) (SCREEN*, int, const char *, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_touch) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(start_color) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(chtype) NCURSES_SP_NAME(termattrs) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(termname) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(typeahead) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ungetch) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_env) (SCREEN*, bool); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_tioctl) (SCREEN*, bool); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidattr) (SCREEN*, chtype); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidputs) (SCREEN*, chtype, NCURSES_SP_OUTC); /* implemented:SP_FUNC */ -#if 1 -extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(keybound) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(alloc_pair) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(assume_default_colors) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(define_key) (SCREEN*, const char *, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_color_content) (SCREEN*, int, int *, int *, int *); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_pair_content) (SCREEN*, int, int *, int *); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_slk_color) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(get_escdelay) (SCREEN*); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(find_pair) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(free_pair) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_color) (SCREEN*, int, int, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_pair) (SCREEN*, int, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(is_term_resized) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(key_defined) (SCREEN*, const char *); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(keyok) (SCREEN*, int, bool); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(void) NCURSES_SP_NAME(nofilter) (SCREEN*); /* implemented */ /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(void) NCURSES_SP_NAME(reset_color_pairs) (SCREEN*); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resize_term) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resizeterm) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(set_escdelay) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(set_tabsize) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_default_colors) (SCREEN*); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_legacy_coding) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ -#endif -#else -#undef NCURSES_SP_FUNCS -#define NCURSES_SP_FUNCS 0 -#define NCURSES_SP_NAME(name) name -#define NCURSES_SP_OUTC NCURSES_OUTC -#endif - -/* attributes */ - -#define NCURSES_ATTR_SHIFT 8 -#define NCURSES_BITS(mask,shift) (NCURSES_CAST(chtype,(mask)) << ((shift) + NCURSES_ATTR_SHIFT)) - -#define A_NORMAL (1U - 1U) -#define A_ATTRIBUTES NCURSES_BITS(~(1U - 1U),0) -#define A_CHARTEXT (NCURSES_BITS(1U,0) - 1U) -#define A_COLOR NCURSES_BITS(((1U) << 8) - 1U,0) -#define A_STANDOUT NCURSES_BITS(1U,8) -#define A_UNDERLINE NCURSES_BITS(1U,9) -#define A_REVERSE NCURSES_BITS(1U,10) -#define A_BLINK NCURSES_BITS(1U,11) -#define A_DIM NCURSES_BITS(1U,12) -#define A_BOLD NCURSES_BITS(1U,13) -#define A_ALTCHARSET NCURSES_BITS(1U,14) -#define A_INVIS NCURSES_BITS(1U,15) -#define A_PROTECT NCURSES_BITS(1U,16) -#define A_HORIZONTAL NCURSES_BITS(1U,17) -#define A_LEFT NCURSES_BITS(1U,18) -#define A_LOW NCURSES_BITS(1U,19) -#define A_RIGHT NCURSES_BITS(1U,20) -#define A_TOP NCURSES_BITS(1U,21) -#define A_VERTICAL NCURSES_BITS(1U,22) - -#if 1 -#define A_ITALIC NCURSES_BITS(1U,23) /* ncurses extension */ -#endif - -/* - * Most of the pseudo functions are macros that either provide compatibility - * with older versions of curses, or provide inline functionality to improve - * performance. - */ - -/* - * These pseudo functions are always implemented as macros: - */ - -#define getyx(win,y,x) (y = getcury(win), x = getcurx(win)) -#define getbegyx(win,y,x) (y = getbegy(win), x = getbegx(win)) -#define getmaxyx(win,y,x) (y = getmaxy(win), x = getmaxx(win)) -#define getparyx(win,y,x) (y = getpary(win), x = getparx(win)) - -#define getsyx(y,x) do { if (newscr) { \ - if (is_leaveok(newscr)) \ - (y) = (x) = -1; \ - else \ - getyx(newscr,(y), (x)); \ - } \ - } while(0) - -#define setsyx(y,x) do { if (newscr) { \ - if ((y) == -1 && (x) == -1) \ - leaveok(newscr, TRUE); \ - else { \ - leaveok(newscr, FALSE); \ - wmove(newscr, (y), (x)); \ - } \ - } \ - } while(0) - -#ifndef NCURSES_NOMACROS - -/* - * These miscellaneous pseudo functions are provided for compatibility: - */ - -#define wgetstr(w, s) wgetnstr(w, s, -1) -#define getnstr(s, n) wgetnstr(stdscr, s, (n)) - -#define setterm(term) setupterm(term, 1, (int *)0) - -#define fixterm() reset_prog_mode() -#define resetterm() reset_shell_mode() -#define saveterm() def_prog_mode() -#define crmode() cbreak() -#define nocrmode() nocbreak() -#define gettmode() - -/* It seems older SYSV curses versions define these */ -#if !NCURSES_OPAQUE -#define getattrs(win) NCURSES_CAST(int, NCURSES_OK_ADDR(win) ? (win)->_attrs : A_NORMAL) -#define getcurx(win) (NCURSES_OK_ADDR(win) ? (win)->_curx : ERR) -#define getcury(win) (NCURSES_OK_ADDR(win) ? (win)->_cury : ERR) -#define getbegx(win) (NCURSES_OK_ADDR(win) ? (win)->_begx : ERR) -#define getbegy(win) (NCURSES_OK_ADDR(win) ? (win)->_begy : ERR) -#define getmaxx(win) (NCURSES_OK_ADDR(win) ? ((win)->_maxx + 1) : ERR) -#define getmaxy(win) (NCURSES_OK_ADDR(win) ? ((win)->_maxy + 1) : ERR) -#define getparx(win) (NCURSES_OK_ADDR(win) ? (win)->_parx : ERR) -#define getpary(win) (NCURSES_OK_ADDR(win) ? (win)->_pary : ERR) -#endif /* NCURSES_OPAQUE */ - -#define wstandout(win) (wattrset(win,A_STANDOUT)) -#define wstandend(win) (wattrset(win,A_NORMAL)) - -#define wattron(win,at) wattr_on(win, NCURSES_CAST(attr_t, at), NULL) -#define wattroff(win,at) wattr_off(win, NCURSES_CAST(attr_t, at), NULL) - -#if !NCURSES_OPAQUE -#if NCURSES_WATTR_MACROS -#if NCURSES_WIDECHAR && 0 -#define wattrset(win,at) \ - (NCURSES_OK_ADDR(win) \ - ? ((win)->_color = NCURSES_CAST(int, PAIR_NUMBER(at)), \ - (win)->_attrs = NCURSES_CAST(attr_t, at), \ - OK) \ - : ERR) -#else -#define wattrset(win,at) \ - (NCURSES_OK_ADDR(win) \ - ? ((win)->_attrs = NCURSES_CAST(attr_t, at), \ - OK) \ - : ERR) -#endif -#endif /* NCURSES_WATTR_MACROS */ -#endif /* NCURSES_OPAQUE */ - -#define scroll(win) wscrl(win,1) - -#define touchwin(win) wtouchln((win), 0, getmaxy(win), 1) -#define touchline(win, s, c) wtouchln((win), s, c, 1) -#define untouchwin(win) wtouchln((win), 0, getmaxy(win), 0) - -#define box(win, v, h) wborder(win, v, v, h, h, 0, 0, 0, 0) -#define border(ls, rs, ts, bs, tl, tr, bl, br) wborder(stdscr, ls, rs, ts, bs, tl, tr, bl, br) -#define hline(ch, n) whline(stdscr, ch, (n)) -#define vline(ch, n) wvline(stdscr, ch, (n)) - -#define winstr(w, s) winnstr(w, s, -1) -#define winchstr(w, s) winchnstr(w, s, -1) -#define winsstr(w, s) winsnstr(w, s, -1) - -#if !NCURSES_OPAQUE -#define redrawwin(win) wredrawln(win, 0, (NCURSES_OK_ADDR(win) ? (win)->_maxy+1 : -1)) -#endif /* NCURSES_OPAQUE */ - -#define waddstr(win,str) waddnstr(win,str,-1) -#define waddchstr(win,str) waddchnstr(win,str,-1) - -/* - * These apply to the first 256 color pairs. - */ -#define COLOR_PAIR(n) (NCURSES_BITS((n), 0) & A_COLOR) -#define PAIR_NUMBER(a) (NCURSES_CAST(int,((NCURSES_CAST(unsigned long,(a)) & A_COLOR) >> NCURSES_ATTR_SHIFT))) - -/* - * pseudo functions for standard screen - */ - -#define addch(ch) waddch(stdscr,(ch)) -#define addchnstr(str,n) waddchnstr(stdscr,(str),(n)) -#define addchstr(str) waddchstr(stdscr,(str)) -#define addnstr(str,n) waddnstr(stdscr,(str),(n)) -#define addstr(str) waddnstr(stdscr,(str),-1) -#define attr_get(ap,cp,o) wattr_get(stdscr,(ap),(cp),(o)) -#define attr_off(a,o) wattr_off(stdscr,(a),(o)) -#define attr_on(a,o) wattr_on(stdscr,(a),(o)) -#define attr_set(a,c,o) wattr_set(stdscr,(a),(c),(o)) -#define attroff(at) wattroff(stdscr,(at)) -#define attron(at) wattron(stdscr,(at)) -#define attrset(at) wattrset(stdscr,(at)) -#define bkgd(ch) wbkgd(stdscr,(ch)) -#define bkgdset(ch) wbkgdset(stdscr,(ch)) -#define chgat(n,a,c,o) wchgat(stdscr,(n),(a),(c),(o)) -#define clear() wclear(stdscr) -#define clrtobot() wclrtobot(stdscr) -#define clrtoeol() wclrtoeol(stdscr) -#define color_set(c,o) wcolor_set(stdscr,(c),(o)) -#define delch() wdelch(stdscr) -#define deleteln() winsdelln(stdscr,-1) -#define echochar(c) wechochar(stdscr,(c)) -#define erase() werase(stdscr) -#define getch() wgetch(stdscr) -#define getstr(str) wgetstr(stdscr,(str)) -#define inch() winch(stdscr) -#define inchnstr(s,n) winchnstr(stdscr,(s),(n)) -#define inchstr(s) winchstr(stdscr,(s)) -#define innstr(s,n) winnstr(stdscr,(s),(n)) -#define insch(c) winsch(stdscr,(c)) -#define insdelln(n) winsdelln(stdscr,(n)) -#define insertln() winsdelln(stdscr,1) -#define insnstr(s,n) winsnstr(stdscr,(s),(n)) -#define insstr(s) winsstr(stdscr,(s)) -#define instr(s) winstr(stdscr,(s)) -#define move(y,x) wmove(stdscr,(y),(x)) -#define refresh() wrefresh(stdscr) -#define scrl(n) wscrl(stdscr,(n)) -#define setscrreg(t,b) wsetscrreg(stdscr,(t),(b)) -#define standend() wstandend(stdscr) -#define standout() wstandout(stdscr) -#define timeout(delay) wtimeout(stdscr,(delay)) -#define wdeleteln(win) winsdelln(win,-1) -#define winsertln(win) winsdelln(win,1) - -/* - * mv functions - */ - -#define mvwaddch(win,y,x,ch) (wmove((win),(y),(x)) == ERR ? ERR : waddch((win),(ch))) -#define mvwaddchnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),(n))) -#define mvwaddchstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),-1)) -#define mvwaddnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),(n))) -#define mvwaddstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),-1)) -#define mvwchgat(win,y,x,n,a,c,o) (wmove((win),(y),(x)) == ERR ? ERR : wchgat((win),(n),(a),(c),(o))) -#define mvwdelch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wdelch(win)) -#define mvwgetch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wgetch(win)) -#define mvwgetnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : wgetnstr((win),(str),(n))) -#define mvwgetstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : wgetstr((win),(str))) -#define mvwhline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : whline((win),(c),(n))) -#define mvwinch(win,y,x) (wmove((win),(y),(x)) == ERR ? NCURSES_CAST(chtype, ERR) : winch(win)) -#define mvwinchnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winchnstr((win),(s),(n))) -#define mvwinchstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winchstr((win),(s))) -#define mvwinnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winnstr((win),(s),(n))) -#define mvwinsch(win,y,x,c) (wmove((win),(y),(x)) == ERR ? ERR : winsch((win),(c))) -#define mvwinsnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winsnstr((win),(s),(n))) -#define mvwinsstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winsstr((win),(s))) -#define mvwinstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winstr((win),(s))) -#define mvwvline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : wvline((win),(c),(n))) - -#define mvaddch(y,x,ch) mvwaddch(stdscr,(y),(x),(ch)) -#define mvaddchnstr(y,x,str,n) mvwaddchnstr(stdscr,(y),(x),(str),(n)) -#define mvaddchstr(y,x,str) mvwaddchstr(stdscr,(y),(x),(str)) -#define mvaddnstr(y,x,str,n) mvwaddnstr(stdscr,(y),(x),(str),(n)) -#define mvaddstr(y,x,str) mvwaddstr(stdscr,(y),(x),(str)) -#define mvchgat(y,x,n,a,c,o) mvwchgat(stdscr,(y),(x),(n),(a),(c),(o)) -#define mvdelch(y,x) mvwdelch(stdscr,(y),(x)) -#define mvgetch(y,x) mvwgetch(stdscr,(y),(x)) -#define mvgetnstr(y,x,str,n) mvwgetnstr(stdscr,(y),(x),(str),(n)) -#define mvgetstr(y,x,str) mvwgetstr(stdscr,(y),(x),(str)) -#define mvhline(y,x,c,n) mvwhline(stdscr,(y),(x),(c),(n)) -#define mvinch(y,x) mvwinch(stdscr,(y),(x)) -#define mvinchnstr(y,x,s,n) mvwinchnstr(stdscr,(y),(x),(s),(n)) -#define mvinchstr(y,x,s) mvwinchstr(stdscr,(y),(x),(s)) -#define mvinnstr(y,x,s,n) mvwinnstr(stdscr,(y),(x),(s),(n)) -#define mvinsch(y,x,c) mvwinsch(stdscr,(y),(x),(c)) -#define mvinsnstr(y,x,s,n) mvwinsnstr(stdscr,(y),(x),(s),(n)) -#define mvinsstr(y,x,s) mvwinsstr(stdscr,(y),(x),(s)) -#define mvinstr(y,x,s) mvwinstr(stdscr,(y),(x),(s)) -#define mvvline(y,x,c,n) mvwvline(stdscr,(y),(x),(c),(n)) - -/* - * Some wide-character functions can be implemented without the extensions. - */ -#if !NCURSES_OPAQUE -#define getbkgd(win) (NCURSES_OK_ADDR(win) ? ((win)->_bkgd) : 0) -#endif /* NCURSES_OPAQUE */ - -#define slk_attr_off(a,v) ((v) ? ERR : slk_attroff(a)) -#define slk_attr_on(a,v) ((v) ? ERR : slk_attron(a)) - -#if !NCURSES_OPAQUE -#if NCURSES_WATTR_MACROS -#if NCURSES_WIDECHAR && 0 -#define wattr_set(win,a,p,opts) \ - (NCURSES_OK_ADDR(win) \ - ? ((void)((win)->_attrs = ((a) & ~A_COLOR), \ - (win)->_color = (opts) ? *(int *)(opts) : (p)), \ - OK) \ - : ERR) -#define wattr_get(win,a,p,opts) \ - (NCURSES_OK_ADDR(win) \ - ? ((void)(NCURSES_OK_ADDR(a) \ - ? (*(a) = (win)->_attrs) \ - : OK), \ - (void)(NCURSES_OK_ADDR(p) \ - ? (*(p) = (NCURSES_PAIRS_T) (win)->_color) \ - : OK), \ - (void)(NCURSES_OK_ADDR(opts) \ - ? (*(int *)(opts) = (win)->_color) \ - : OK), \ - OK) \ - : ERR) -#else /* !(NCURSES_WIDECHAR && NCURSES_EXE_COLORS) */ -#define wattr_set(win,a,p,opts) \ - (NCURSES_OK_ADDR(win) \ - ? ((void)((win)->_attrs = (((a) & ~A_COLOR) | \ - (attr_t)COLOR_PAIR(p))), \ - OK) \ - : ERR) -#define wattr_get(win,a,p,opts) \ - (NCURSES_OK_ADDR(win) \ - ? ((void)(NCURSES_OK_ADDR(a) \ - ? (*(a) = (win)->_attrs) \ - : OK), \ - (void)(NCURSES_OK_ADDR(p) \ - ? (*(p) = (NCURSES_PAIRS_T) PAIR_NUMBER((win)->_attrs)) \ - : OK), \ - OK) \ - : ERR) -#endif /* (NCURSES_WIDECHAR && NCURSES_EXE_COLORS) */ -#endif /* NCURSES_WATTR_MACROS */ -#endif /* NCURSES_OPAQUE */ - -/* - * X/Open curses deprecates SVr4 vwprintw/vwscanw, which are supposed to use - * varargs.h. It adds new calls vw_printw/vw_scanw, which are supposed to - * use POSIX stdarg.h. The ncurses versions of vwprintw/vwscanw already - * use stdarg.h, so... - */ -/* define vw_printw vwprintw */ -/* define vw_scanw vwscanw */ - -/* - * Export fallback function for use in C++ binding. - */ -#if !1 -#define vsscanf(a,b,c) _nc_vsscanf(a,b,c) -NCURSES_EXPORT(int) vsscanf(const char *, const char *, va_list); -#endif - -/* - * These macros are extensions - not in X/Open Curses. - */ -#if 1 -#if !NCURSES_OPAQUE -#define is_cleared(win) (NCURSES_OK_ADDR(win) ? (win)->_clear : FALSE) -#define is_idcok(win) (NCURSES_OK_ADDR(win) ? (win)->_idcok : FALSE) -#define is_idlok(win) (NCURSES_OK_ADDR(win) ? (win)->_idlok : FALSE) -#define is_immedok(win) (NCURSES_OK_ADDR(win) ? (win)->_immed : FALSE) -#define is_keypad(win) (NCURSES_OK_ADDR(win) ? (win)->_use_keypad : FALSE) -#define is_leaveok(win) (NCURSES_OK_ADDR(win) ? (win)->_leaveok : FALSE) -#define is_nodelay(win) (NCURSES_OK_ADDR(win) ? ((win)->_delay == 0) : FALSE) -#define is_notimeout(win) (NCURSES_OK_ADDR(win) ? (win)->_notimeout : FALSE) -#define is_pad(win) (NCURSES_OK_ADDR(win) ? ((win)->_flags & _ISPAD) != 0 : FALSE) -#define is_scrollok(win) (NCURSES_OK_ADDR(win) ? (win)->_scroll : FALSE) -#define is_subwin(win) (NCURSES_OK_ADDR(win) ? ((win)->_flags & _SUBWIN) != 0 : FALSE) -#define is_syncok(win) (NCURSES_OK_ADDR(win) ? (win)->_sync : FALSE) -#define wgetdelay(win) (NCURSES_OK_ADDR(win) ? (win)->_delay : 0) -#define wgetparent(win) (NCURSES_OK_ADDR(win) ? (win)->_parent : 0) -#define wgetscrreg(win,t,b) (NCURSES_OK_ADDR(win) ? (*(t) = (win)->_regtop, *(b) = (win)->_regbottom, OK) : ERR) -#endif -#endif - -/* - * X/Open says this returns a bool; SVr4 also checked for out-of-range line. - * The macro provides compatibility: - */ -#define is_linetouched(w,l) ((!(w) || ((l) > getmaxy(w)) || ((l) < 0)) ? ERR : (is_linetouched)((w),(l))) - -#endif /* NCURSES_NOMACROS */ - -/* - * Public variables. - * - * Notes: - * a. ESCDELAY was an undocumented feature under AIX curses. - * It gives the ESC expire time in milliseconds. - * b. ttytype is needed for backward compatibility - */ -#if NCURSES_REENTRANT - -NCURSES_WRAPPED_VAR(WINDOW *, curscr); -NCURSES_WRAPPED_VAR(WINDOW *, newscr); -NCURSES_WRAPPED_VAR(WINDOW *, stdscr); -NCURSES_WRAPPED_VAR(char *, ttytype); -NCURSES_WRAPPED_VAR(int, COLORS); -NCURSES_WRAPPED_VAR(int, COLOR_PAIRS); -NCURSES_WRAPPED_VAR(int, COLS); -NCURSES_WRAPPED_VAR(int, ESCDELAY); -NCURSES_WRAPPED_VAR(int, LINES); -NCURSES_WRAPPED_VAR(int, TABSIZE); - -#define curscr NCURSES_PUBLIC_VAR(curscr()) -#define newscr NCURSES_PUBLIC_VAR(newscr()) -#define stdscr NCURSES_PUBLIC_VAR(stdscr()) -#define ttytype NCURSES_PUBLIC_VAR(ttytype()) -#define COLORS NCURSES_PUBLIC_VAR(COLORS()) -#define COLOR_PAIRS NCURSES_PUBLIC_VAR(COLOR_PAIRS()) -#define COLS NCURSES_PUBLIC_VAR(COLS()) -#define ESCDELAY NCURSES_PUBLIC_VAR(ESCDELAY()) -#define LINES NCURSES_PUBLIC_VAR(LINES()) -#define TABSIZE NCURSES_PUBLIC_VAR(TABSIZE()) - -#else - -extern NCURSES_EXPORT_VAR(WINDOW *) curscr; -extern NCURSES_EXPORT_VAR(WINDOW *) newscr; -extern NCURSES_EXPORT_VAR(WINDOW *) stdscr; -extern NCURSES_EXPORT_VAR(char) ttytype[]; -extern NCURSES_EXPORT_VAR(int) COLORS; -extern NCURSES_EXPORT_VAR(int) COLOR_PAIRS; -extern NCURSES_EXPORT_VAR(int) COLS; -extern NCURSES_EXPORT_VAR(int) ESCDELAY; -extern NCURSES_EXPORT_VAR(int) LINES; -extern NCURSES_EXPORT_VAR(int) TABSIZE; - -#endif - -/* - * Pseudo-character tokens outside ASCII range. The curses wgetch() function - * will return any given one of these only if the corresponding k- capability - * is defined in your terminal's terminfo entry. - * - * Some keys (KEY_A1, etc) are arranged like this: - * a1 up a3 - * left b2 right - * c1 down c3 - * - * A few key codes do not depend upon the terminfo entry. - */ -#define KEY_CODE_YES 0400 /* A wchar_t contains a key code */ -#define KEY_MIN 0401 /* Minimum curses key */ -#define KEY_BREAK 0401 /* Break key (unreliable) */ -#define KEY_SRESET 0530 /* Soft (partial) reset (unreliable) */ -#define KEY_RESET 0531 /* Reset or hard reset (unreliable) */ -/* - * These definitions were generated by ./MKkey_defs.sh ./Caps ./Caps-ncurses - */ -#define KEY_DOWN 0402 /* down-arrow key */ -#define KEY_UP 0403 /* up-arrow key */ -#define KEY_LEFT 0404 /* left-arrow key */ -#define KEY_RIGHT 0405 /* right-arrow key */ -#define KEY_HOME 0406 /* home key */ -#define KEY_BACKSPACE 0407 /* backspace key */ -#define KEY_F0 0410 /* Function keys. Space for 64 */ -#define KEY_F(n) (KEY_F0+(n)) /* Value of function key n */ -#define KEY_DL 0510 /* delete-line key */ -#define KEY_IL 0511 /* insert-line key */ -#define KEY_DC 0512 /* delete-character key */ -#define KEY_IC 0513 /* insert-character key */ -#define KEY_EIC 0514 /* sent by rmir or smir in insert mode */ -#define KEY_CLEAR 0515 /* clear-screen or erase key */ -#define KEY_EOS 0516 /* clear-to-end-of-screen key */ -#define KEY_EOL 0517 /* clear-to-end-of-line key */ -#define KEY_SF 0520 /* scroll-forward key */ -#define KEY_SR 0521 /* scroll-backward key */ -#define KEY_NPAGE 0522 /* next-page key */ -#define KEY_PPAGE 0523 /* previous-page key */ -#define KEY_STAB 0524 /* set-tab key */ -#define KEY_CTAB 0525 /* clear-tab key */ -#define KEY_CATAB 0526 /* clear-all-tabs key */ -#define KEY_ENTER 0527 /* enter/send key */ -#define KEY_PRINT 0532 /* print key */ -#define KEY_LL 0533 /* lower-left key (home down) */ -#define KEY_A1 0534 /* upper left of keypad */ -#define KEY_A3 0535 /* upper right of keypad */ -#define KEY_B2 0536 /* center of keypad */ -#define KEY_C1 0537 /* lower left of keypad */ -#define KEY_C3 0540 /* lower right of keypad */ -#define KEY_BTAB 0541 /* back-tab key */ -#define KEY_BEG 0542 /* begin key */ -#define KEY_CANCEL 0543 /* cancel key */ -#define KEY_CLOSE 0544 /* close key */ -#define KEY_COMMAND 0545 /* command key */ -#define KEY_COPY 0546 /* copy key */ -#define KEY_CREATE 0547 /* create key */ -#define KEY_END 0550 /* end key */ -#define KEY_EXIT 0551 /* exit key */ -#define KEY_FIND 0552 /* find key */ -#define KEY_HELP 0553 /* help key */ -#define KEY_MARK 0554 /* mark key */ -#define KEY_MESSAGE 0555 /* message key */ -#define KEY_MOVE 0556 /* move key */ -#define KEY_NEXT 0557 /* next key */ -#define KEY_OPEN 0560 /* open key */ -#define KEY_OPTIONS 0561 /* options key */ -#define KEY_PREVIOUS 0562 /* previous key */ -#define KEY_REDO 0563 /* redo key */ -#define KEY_REFERENCE 0564 /* reference key */ -#define KEY_REFRESH 0565 /* refresh key */ -#define KEY_REPLACE 0566 /* replace key */ -#define KEY_RESTART 0567 /* restart key */ -#define KEY_RESUME 0570 /* resume key */ -#define KEY_SAVE 0571 /* save key */ -#define KEY_SBEG 0572 /* shifted begin key */ -#define KEY_SCANCEL 0573 /* shifted cancel key */ -#define KEY_SCOMMAND 0574 /* shifted command key */ -#define KEY_SCOPY 0575 /* shifted copy key */ -#define KEY_SCREATE 0576 /* shifted create key */ -#define KEY_SDC 0577 /* shifted delete-character key */ -#define KEY_SDL 0600 /* shifted delete-line key */ -#define KEY_SELECT 0601 /* select key */ -#define KEY_SEND 0602 /* shifted end key */ -#define KEY_SEOL 0603 /* shifted clear-to-end-of-line key */ -#define KEY_SEXIT 0604 /* shifted exit key */ -#define KEY_SFIND 0605 /* shifted find key */ -#define KEY_SHELP 0606 /* shifted help key */ -#define KEY_SHOME 0607 /* shifted home key */ -#define KEY_SIC 0610 /* shifted insert-character key */ -#define KEY_SLEFT 0611 /* shifted left-arrow key */ -#define KEY_SMESSAGE 0612 /* shifted message key */ -#define KEY_SMOVE 0613 /* shifted move key */ -#define KEY_SNEXT 0614 /* shifted next key */ -#define KEY_SOPTIONS 0615 /* shifted options key */ -#define KEY_SPREVIOUS 0616 /* shifted previous key */ -#define KEY_SPRINT 0617 /* shifted print key */ -#define KEY_SREDO 0620 /* shifted redo key */ -#define KEY_SREPLACE 0621 /* shifted replace key */ -#define KEY_SRIGHT 0622 /* shifted right-arrow key */ -#define KEY_SRSUME 0623 /* shifted resume key */ -#define KEY_SSAVE 0624 /* shifted save key */ -#define KEY_SSUSPEND 0625 /* shifted suspend key */ -#define KEY_SUNDO 0626 /* shifted undo key */ -#define KEY_SUSPEND 0627 /* suspend key */ -#define KEY_UNDO 0630 /* undo key */ -#define KEY_MOUSE 0631 /* Mouse event has occurred */ - -#ifdef NCURSES_EXT_FUNCS -#define KEY_RESIZE 0632 /* Terminal resize event */ -#endif - -#define KEY_MAX 0777 /* Maximum key value is 0632 */ -/* $Id: curses.tail,v 1.26 2021/03/20 15:49:25 tom Exp $ */ -/* - * vile:cmode: - * This file is part of ncurses, designed to be appended after curses.h.in - * (see that file for the relevant copyright). - */ - -/* mouse interface */ - -#if NCURSES_MOUSE_VERSION > 1 -#define NCURSES_MOUSE_MASK(b,m) ((m) << (((b) - 1) * 5)) -#else -#define NCURSES_MOUSE_MASK(b,m) ((m) << (((b) - 1) * 6)) -#endif - -#define NCURSES_BUTTON_RELEASED 001L -#define NCURSES_BUTTON_PRESSED 002L -#define NCURSES_BUTTON_CLICKED 004L -#define NCURSES_DOUBLE_CLICKED 010L -#define NCURSES_TRIPLE_CLICKED 020L -#define NCURSES_RESERVED_EVENT 040L - -/* event masks */ -#define BUTTON1_RELEASED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_RELEASED) -#define BUTTON1_PRESSED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_PRESSED) -#define BUTTON1_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_CLICKED) -#define BUTTON1_DOUBLE_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_DOUBLE_CLICKED) -#define BUTTON1_TRIPLE_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_TRIPLE_CLICKED) - -#define BUTTON2_RELEASED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_RELEASED) -#define BUTTON2_PRESSED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_PRESSED) -#define BUTTON2_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_CLICKED) -#define BUTTON2_DOUBLE_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_DOUBLE_CLICKED) -#define BUTTON2_TRIPLE_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_TRIPLE_CLICKED) - -#define BUTTON3_RELEASED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_RELEASED) -#define BUTTON3_PRESSED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_PRESSED) -#define BUTTON3_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_CLICKED) -#define BUTTON3_DOUBLE_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_DOUBLE_CLICKED) -#define BUTTON3_TRIPLE_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_TRIPLE_CLICKED) - -#define BUTTON4_RELEASED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_RELEASED) -#define BUTTON4_PRESSED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_PRESSED) -#define BUTTON4_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_CLICKED) -#define BUTTON4_DOUBLE_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_DOUBLE_CLICKED) -#define BUTTON4_TRIPLE_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_TRIPLE_CLICKED) - -/* - * In 32 bits the version-1 scheme does not provide enough space for a 5th - * button, unless we choose to change the ABI by omitting the reserved-events. - */ -#if NCURSES_MOUSE_VERSION > 1 - -#define BUTTON5_RELEASED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_RELEASED) -#define BUTTON5_PRESSED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_PRESSED) -#define BUTTON5_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_CLICKED) -#define BUTTON5_DOUBLE_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_DOUBLE_CLICKED) -#define BUTTON5_TRIPLE_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_TRIPLE_CLICKED) - -#define BUTTON_CTRL NCURSES_MOUSE_MASK(6, 0001L) -#define BUTTON_SHIFT NCURSES_MOUSE_MASK(6, 0002L) -#define BUTTON_ALT NCURSES_MOUSE_MASK(6, 0004L) -#define REPORT_MOUSE_POSITION NCURSES_MOUSE_MASK(6, 0010L) - -#else - -#define BUTTON1_RESERVED_EVENT NCURSES_MOUSE_MASK(1, NCURSES_RESERVED_EVENT) -#define BUTTON2_RESERVED_EVENT NCURSES_MOUSE_MASK(2, NCURSES_RESERVED_EVENT) -#define BUTTON3_RESERVED_EVENT NCURSES_MOUSE_MASK(3, NCURSES_RESERVED_EVENT) -#define BUTTON4_RESERVED_EVENT NCURSES_MOUSE_MASK(4, NCURSES_RESERVED_EVENT) - -#define BUTTON_CTRL NCURSES_MOUSE_MASK(5, 0001L) -#define BUTTON_SHIFT NCURSES_MOUSE_MASK(5, 0002L) -#define BUTTON_ALT NCURSES_MOUSE_MASK(5, 0004L) -#define REPORT_MOUSE_POSITION NCURSES_MOUSE_MASK(5, 0010L) - -#endif - -#define ALL_MOUSE_EVENTS (REPORT_MOUSE_POSITION - 1) - -/* macros to extract single event-bits from masks */ -#define BUTTON_RELEASE(e, x) ((e) & NCURSES_MOUSE_MASK(x, 001)) -#define BUTTON_PRESS(e, x) ((e) & NCURSES_MOUSE_MASK(x, 002)) -#define BUTTON_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 004)) -#define BUTTON_DOUBLE_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 010)) -#define BUTTON_TRIPLE_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 020)) -#define BUTTON_RESERVED_EVENT(e, x) ((e) & NCURSES_MOUSE_MASK(x, 040)) - -typedef struct -{ - short id; /* ID to distinguish multiple devices */ - int x, y, z; /* event coordinates (character-cell) */ - mmask_t bstate; /* button state bits */ -} -MEVENT; - -extern NCURSES_EXPORT(bool) has_mouse(void); -extern NCURSES_EXPORT(int) getmouse (MEVENT *); -extern NCURSES_EXPORT(int) ungetmouse (MEVENT *); -extern NCURSES_EXPORT(mmask_t) mousemask (mmask_t, mmask_t *); -extern NCURSES_EXPORT(bool) wenclose (const WINDOW *, int, int); -extern NCURSES_EXPORT(int) mouseinterval (int); -extern NCURSES_EXPORT(bool) wmouse_trafo (const WINDOW*, int*, int*, bool); -extern NCURSES_EXPORT(bool) mouse_trafo (int*, int*, bool); /* generated */ - -#if NCURSES_SP_FUNCS -extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_mouse) (SCREEN*); -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(getmouse) (SCREEN*, MEVENT *); -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ungetmouse) (SCREEN*,MEVENT *); -extern NCURSES_EXPORT(mmask_t) NCURSES_SP_NAME(mousemask) (SCREEN*, mmask_t, mmask_t *); -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(mouseinterval) (SCREEN*, int); -#endif - -#ifndef NCURSES_NOMACROS -#define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen) -#endif - -/* other non-XSI functions */ - -extern NCURSES_EXPORT(int) mcprint (char *, int); /* direct data to printer */ -extern NCURSES_EXPORT(int) has_key (int); /* do we have given key? */ - -#if NCURSES_SP_FUNCS -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(has_key) (SCREEN*, int); /* do we have given key? */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(mcprint) (SCREEN*, char *, int); /* direct data to printer */ -#endif - -/* Debugging : use with libncurses_g.a */ - -extern NCURSES_EXPORT(void) _tracef (const char *, ...) GCC_PRINTFLIKE(1,2); -extern NCURSES_EXPORT(char *) _traceattr (attr_t); -extern NCURSES_EXPORT(char *) _traceattr2 (int, chtype); -extern NCURSES_EXPORT(char *) _tracechar (int); -extern NCURSES_EXPORT(char *) _tracechtype (chtype); -extern NCURSES_EXPORT(char *) _tracechtype2 (int, chtype); -#if NCURSES_WIDECHAR -#define _tracech_t _tracecchar_t -extern NCURSES_EXPORT(char *) _tracecchar_t (const cchar_t *); -#define _tracech_t2 _tracecchar_t2 -extern NCURSES_EXPORT(char *) _tracecchar_t2 (int, const cchar_t *); -#else -#define _tracech_t _tracechtype -#define _tracech_t2 _tracechtype2 -#endif -extern NCURSES_EXPORT(void) trace (const unsigned) GCC_DEPRECATED("use curses_trace"); -extern NCURSES_EXPORT(unsigned) curses_trace (const unsigned); - -/* trace masks */ -#define TRACE_DISABLE 0x0000 /* turn off tracing */ -#define TRACE_TIMES 0x0001 /* trace user and system times of updates */ -#define TRACE_TPUTS 0x0002 /* trace tputs calls */ -#define TRACE_UPDATE 0x0004 /* trace update actions, old & new screens */ -#define TRACE_MOVE 0x0008 /* trace cursor moves and scrolls */ -#define TRACE_CHARPUT 0x0010 /* trace all character outputs */ -#define TRACE_ORDINARY 0x001F /* trace all update actions */ -#define TRACE_CALLS 0x0020 /* trace all curses calls */ -#define TRACE_VIRTPUT 0x0040 /* trace virtual character puts */ -#define TRACE_IEVENT 0x0080 /* trace low-level input processing */ -#define TRACE_BITS 0x0100 /* trace state of TTY control bits */ -#define TRACE_ICALLS 0x0200 /* trace internal/nested calls */ -#define TRACE_CCALLS 0x0400 /* trace per-character calls */ -#define TRACE_DATABASE 0x0800 /* trace read/write of terminfo/termcap data */ -#define TRACE_ATTRS 0x1000 /* trace attribute updates */ - -#define TRACE_SHIFT 13 /* number of bits in the trace masks */ -#define TRACE_MAXIMUM ((1 << TRACE_SHIFT) - 1) /* maximum trace level */ - -#if defined(TRACE) || defined(NCURSES_TEST) -extern NCURSES_EXPORT_VAR(int) _nc_optimize_enable; /* enable optimizations */ -extern NCURSES_EXPORT(const char *) _nc_visbuf (const char *); -#define OPTIMIZE_MVCUR 0x01 /* cursor movement optimization */ -#define OPTIMIZE_HASHMAP 0x02 /* diff hashing to detect scrolls */ -#define OPTIMIZE_SCROLL 0x04 /* scroll optimization */ -#define OPTIMIZE_ALL 0xff /* enable all optimizations (dflt) */ -#endif - -extern GCC_NORETURN NCURSES_EXPORT(void) exit_curses (int); - -#include - -#ifdef __cplusplus - -#ifndef NCURSES_NOMACROS - -/* these names conflict with STL */ -#undef box -#undef clear -#undef erase -#undef move -#undef refresh - -#endif /* NCURSES_NOMACROS */ - -} -#endif - -#endif /* __NCURSES_H */ diff --git a/include/curses.h.in b/include/curses.h.in deleted file mode 100644 index 6acf2d0..0000000 --- a/include/curses.h.in +++ /dev/null @@ -1,1506 +0,0 @@ -/**************************************************************************** - * Copyright 2018-2020,2021 Thomas E. Dickey * - * Copyright 1998-2016,2017 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* $Id: curses.h.in,v 1.277 2021/09/24 16:07:37 tom Exp $ */ - -#ifndef __NCURSES_H -#define __NCURSES_H - -/* - The symbols beginning NCURSES_ or USE_ are configuration choices. - A few of the former can be overridden by applications at compile-time. - Most of the others correspond to configure-script options (or checks - by the configure-script for features of the system on which it is built). - - These symbols can be overridden by applications at compile-time: - NCURSES_NOMACROS suppresses macro definitions in favor of functions - NCURSES_WATTR_MACROS suppresses wattr_* macro definitions - NCURSES_WIDECHAR is an alternative for declaring wide-character functions. - - These symbols are used only when building ncurses: - NCURSES_ATTR_T - NCURSES_FIELD_INTERNALS - NCURSES_INTERNALS - - These symbols are set by the configure script: - NCURSES_ENABLE_STDBOOL_H - NCURSES_EXPANDED - NCURSES_EXT_COLORS - NCURSES_EXT_FUNCS - NCURSES_EXT_PUTWIN - NCURSES_NO_PADDING - NCURSES_OSPEED_COMPAT - NCURSES_PATHSEP - NCURSES_REENTRANT - */ - -#define CURSES 1 -#define CURSES_H 1 - -/* These are defined only in curses.h, and are used for conditional compiles */ -#define NCURSES_VERSION_MAJOR @NCURSES_MAJOR@ -#define NCURSES_VERSION_MINOR @NCURSES_MINOR@ -#define NCURSES_VERSION_PATCH @NCURSES_PATCH@ - -/* This is defined in more than one ncurses header, for identification */ -#undef NCURSES_VERSION -#define NCURSES_VERSION "@NCURSES_MAJOR@.@NCURSES_MINOR@" - -/* - * Identify the mouse encoding version. - */ -#define NCURSES_MOUSE_VERSION @NCURSES_MOUSE_VERSION@ - -/* - * Definitions to facilitate DLL's. - */ -#include - -/* - * Extra headers. - */ -#if @HAVE_STDINT_H@ -#include -#endif - -#ifdef __cplusplus -#else -#if @HAVE_STDNORETURN_H@ -#include -#undef GCC_NORETURN -#define GCC_NORETURN _Noreturn -#endif -#endif - -/* - * User-definable tweak to disable the include of . - */ -#ifndef NCURSES_ENABLE_STDBOOL_H -#define NCURSES_ENABLE_STDBOOL_H @cf_cv_header_stdbool_h@ -#endif - -/* - * NCURSES_ATTR_T is used to quiet compiler warnings when building ncurses - * configured using --disable-macros. - */ -#ifndef NCURSES_ATTR_T -#define NCURSES_ATTR_T int -#endif - -/* - * Expands to 'const' if ncurses is configured using --enable-const. Note that - * doing so makes it incompatible with other implementations of X/Open Curses. - */ -#undef NCURSES_CONST -#define NCURSES_CONST @NCURSES_CONST@ - -#undef NCURSES_INLINE -#define NCURSES_INLINE @NCURSES_INLINE@ - -/* - * The standard type used for color values, and for color-pairs. The latter - * allows the curses library to enumerate the combinations of foreground and - * background colors used by an application, and is normally the product of the - * total foreground and background colors. - * - * X/Open uses "short" for both of these types, ultimately because they are - * numbers from the SVr4 terminal database, which uses 16-bit signed values. - */ -#undef NCURSES_COLOR_T -#define NCURSES_COLOR_T short - -#undef NCURSES_PAIRS_T -#define NCURSES_PAIRS_T short - -/* - * Definitions used to make WINDOW and similar structs opaque. - */ -#ifndef NCURSES_INTERNALS -#define NCURSES_OPAQUE @NCURSES_OPAQUE@ -#define NCURSES_OPAQUE_FORM @NCURSES_OPAQUE_FORM@ -#define NCURSES_OPAQUE_MENU @NCURSES_OPAQUE_MENU@ -#define NCURSES_OPAQUE_PANEL @NCURSES_OPAQUE_PANEL@ -#endif - -/* - * Definition used to optionally suppress wattr* macros to help with the - * transition from ncurses5 to ncurses6 by allowing the header files to - * be shared across development packages for ncursesw in both ABIs. - */ -#ifndef NCURSES_WATTR_MACROS -#define NCURSES_WATTR_MACROS @NCURSES_WATTR_MACROS@ -#endif - -/* - * The reentrant code relies on the opaque setting, but adds features. - */ -#ifndef NCURSES_REENTRANT -#define NCURSES_REENTRANT @cf_cv_enable_reentrant@ -#endif - -/* - * In certain environments, we must work around linker problems for data - */ -#undef NCURSES_BROKEN_LINKER -#if @BROKEN_LINKER@ -#define NCURSES_BROKEN_LINKER 1 -#endif - -/* - * Control whether bindings for interop support are added. - */ -#undef NCURSES_INTEROP_FUNCS -#define NCURSES_INTEROP_FUNCS @NCURSES_INTEROP_FUNCS@ - -/* - * The internal type used for window dimensions. - */ -#undef NCURSES_SIZE_T -#define NCURSES_SIZE_T @NCURSES_SIZE_T@ - -/* - * Control whether tparm() supports varargs or fixed-parameter list. - */ -#undef NCURSES_TPARM_VARARGS -#define NCURSES_TPARM_VARARGS @NCURSES_TPARM_VARARGS@ - -/* - * Control type used for tparm's arguments. While X/Open equates long and - * char* values, this is not always workable for 64-bit platforms. - */ -#undef NCURSES_TPARM_ARG -#define NCURSES_TPARM_ARG @NCURSES_TPARM_ARG@ - -/* - * Control whether ncurses uses wcwidth() for checking width of line-drawing - * characters. - */ -#undef NCURSES_WCWIDTH_GRAPHICS -#define NCURSES_WCWIDTH_GRAPHICS @NCURSES_WCWIDTH_GRAPHICS@ - -/* - * NCURSES_CH_T is used in building the library, but not used otherwise in - * this header file, since that would make the normal/wide-character versions - * of the header incompatible. - */ -#undef NCURSES_CH_T -#define NCURSES_CH_T @NCURSES_CH_T@ - -#if @cf_cv_enable_lp64@ && defined(_LP64) -typedef unsigned chtype; -typedef unsigned mmask_t; -#else -typedef @cf_cv_typeof_chtype@ chtype; -typedef @cf_cv_typeof_mmask_t@ mmask_t; -#endif - -/* - * We need FILE, etc. Include this before checking any feature symbols. - */ -#include - -/* - * With XPG4, you must define _XOPEN_SOURCE_EXTENDED, it is redundant (or - * conflicting) when _XOPEN_SOURCE is 500 or greater. If NCURSES_WIDECHAR is - * not already defined, e.g., if the platform relies upon nonstandard feature - * test macros, define it at this point if the standard feature test macros - * indicate that it should be defined. - */ -#ifndef NCURSES_WIDECHAR -#if defined(_XOPEN_SOURCE_EXTENDED) || (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0 >= 500)) -#define NCURSES_WIDECHAR 1 -#else -#define NCURSES_WIDECHAR 0 -#endif -#endif /* NCURSES_WIDECHAR */ - -#include /* we need va_list */ -#if NCURSES_WIDECHAR -#include /* we want wchar_t */ -#endif - -/* X/Open and SVr4 specify that curses implements 'bool'. However, C++ may also - * implement it. If so, we must use the C++ compiler's type to avoid conflict - * with other interfaces. - * - * A further complication is that may declare 'bool' to be a - * different type, such as an enum which is not necessarily compatible with - * C++. If we have , make 'bool' a macro, so users may #undef it. - * Otherwise, let it remain a typedef to avoid conflicts with other #define's. - * In either case, make a typedef for NCURSES_BOOL which can be used if needed - * from either C or C++. - */ - -#undef TRUE -#define TRUE 1 - -#undef FALSE -#define FALSE 0 - -typedef @cf_cv_type_of_bool@ NCURSES_BOOL; - -#if @USE_CXX_BOOL@ /* __cplusplus, etc. */ - -/* use the C++ compiler's bool type */ -#define NCURSES_BOOL bool - -#else /* c89, c99, etc. */ - -#if NCURSES_ENABLE_STDBOOL_H -#include -/* use whatever the C compiler decides bool really is */ -#define NCURSES_BOOL bool -#else -/* there is no predefined bool - use our own */ -#undef bool -#define bool NCURSES_BOOL -#endif - -#endif /* !__cplusplus, etc. */ - -#ifdef __cplusplus -extern "C" { -#define NCURSES_CAST(type,value) static_cast(value) -#else -#define NCURSES_CAST(type,value) (type)(value) -#endif - -#define NCURSES_OK_ADDR(p) (0 != NCURSES_CAST(const void *, (p))) - -/* - * X/Open attributes. In the ncurses implementation, they are identical to the - * A_ attributes. - */ -#define WA_ATTRIBUTES A_ATTRIBUTES -#define WA_NORMAL A_NORMAL -#define WA_STANDOUT A_STANDOUT -#define WA_UNDERLINE A_UNDERLINE -#define WA_REVERSE A_REVERSE -#define WA_BLINK A_BLINK -#define WA_DIM A_DIM -#define WA_BOLD A_BOLD -#define WA_ALTCHARSET A_ALTCHARSET -#define WA_INVIS A_INVIS -#define WA_PROTECT A_PROTECT -#define WA_HORIZONTAL A_HORIZONTAL -#define WA_LEFT A_LEFT -#define WA_LOW A_LOW -#define WA_RIGHT A_RIGHT -#define WA_TOP A_TOP -#define WA_VERTICAL A_VERTICAL - -#if @NCURSES_EXT_FUNCS@ -#define WA_ITALIC A_ITALIC /* ncurses extension */ -#endif - -/* colors */ -#define COLOR_BLACK 0 -#define COLOR_RED 1 -#define COLOR_GREEN 2 -#define COLOR_YELLOW 3 -#define COLOR_BLUE 4 -#define COLOR_MAGENTA 5 -#define COLOR_CYAN 6 -#define COLOR_WHITE 7 - -/* line graphics */ - -#if @BROKEN_LINKER@ || NCURSES_REENTRANT -NCURSES_WRAPPED_VAR(chtype*, acs_map); -#define acs_map NCURSES_PUBLIC_VAR(acs_map()) -#else -extern NCURSES_EXPORT_VAR(chtype) acs_map[]; -#endif - -#define NCURSES_ACS(c) (acs_map[NCURSES_CAST(unsigned char,(c))]) - -/* VT100 symbols begin here */ -#define ACS_ULCORNER NCURSES_ACS('l') /* upper left corner */ -#define ACS_LLCORNER NCURSES_ACS('m') /* lower left corner */ -#define ACS_URCORNER NCURSES_ACS('k') /* upper right corner */ -#define ACS_LRCORNER NCURSES_ACS('j') /* lower right corner */ -#define ACS_LTEE NCURSES_ACS('t') /* tee pointing right */ -#define ACS_RTEE NCURSES_ACS('u') /* tee pointing left */ -#define ACS_BTEE NCURSES_ACS('v') /* tee pointing up */ -#define ACS_TTEE NCURSES_ACS('w') /* tee pointing down */ -#define ACS_HLINE NCURSES_ACS('q') /* horizontal line */ -#define ACS_VLINE NCURSES_ACS('x') /* vertical line */ -#define ACS_PLUS NCURSES_ACS('n') /* large plus or crossover */ -#define ACS_S1 NCURSES_ACS('o') /* scan line 1 */ -#define ACS_S9 NCURSES_ACS('s') /* scan line 9 */ -#define ACS_DIAMOND NCURSES_ACS('`') /* diamond */ -#define ACS_CKBOARD NCURSES_ACS('a') /* checker board (stipple) */ -#define ACS_DEGREE NCURSES_ACS('f') /* degree symbol */ -#define ACS_PLMINUS NCURSES_ACS('g') /* plus/minus */ -#define ACS_BULLET NCURSES_ACS('~') /* bullet */ -/* Teletype 5410v1 symbols begin here */ -#define ACS_LARROW NCURSES_ACS(',') /* arrow pointing left */ -#define ACS_RARROW NCURSES_ACS('+') /* arrow pointing right */ -#define ACS_DARROW NCURSES_ACS('.') /* arrow pointing down */ -#define ACS_UARROW NCURSES_ACS('-') /* arrow pointing up */ -#define ACS_BOARD NCURSES_ACS('h') /* board of squares */ -#define ACS_LANTERN NCURSES_ACS('i') /* lantern symbol */ -#define ACS_BLOCK NCURSES_ACS('0') /* solid square block */ -/* - * These aren't documented, but a lot of System Vs have them anyway - * (you can spot pprryyzz{{||}} in a lot of AT&T terminfo strings). - * The ACS_names may not match AT&T's, our source didn't know them. - */ -#define ACS_S3 NCURSES_ACS('p') /* scan line 3 */ -#define ACS_S7 NCURSES_ACS('r') /* scan line 7 */ -#define ACS_LEQUAL NCURSES_ACS('y') /* less/equal */ -#define ACS_GEQUAL NCURSES_ACS('z') /* greater/equal */ -#define ACS_PI NCURSES_ACS('{') /* Pi */ -#define ACS_NEQUAL NCURSES_ACS('|') /* not equal */ -#define ACS_STERLING NCURSES_ACS('}') /* UK pound sign */ - -/* - * Line drawing ACS names are of the form ACS_trbl, where t is the top, r - * is the right, b is the bottom, and l is the left. t, r, b, and l might - * be B (blank), S (single), D (double), or T (thick). The subset defined - * here only uses B and S. - */ -#define ACS_BSSB ACS_ULCORNER -#define ACS_SSBB ACS_LLCORNER -#define ACS_BBSS ACS_URCORNER -#define ACS_SBBS ACS_LRCORNER -#define ACS_SBSS ACS_RTEE -#define ACS_SSSB ACS_LTEE -#define ACS_SSBS ACS_BTEE -#define ACS_BSSS ACS_TTEE -#define ACS_BSBS ACS_HLINE -#define ACS_SBSB ACS_VLINE -#define ACS_SSSS ACS_PLUS - -#undef ERR -#define ERR (-1) - -#undef OK -#define OK (0) - -/* values for the _flags member */ -#define _SUBWIN 0x01 /* is this a sub-window? */ -#define _ENDLINE 0x02 /* is the window flush right? */ -#define _FULLWIN 0x04 /* is the window full-screen? */ -#define _SCROLLWIN 0x08 /* bottom edge is at screen bottom? */ -#define _ISPAD 0x10 /* is this window a pad? */ -#define _HASMOVED 0x20 /* has cursor moved since last refresh? */ -#define _WRAPPED 0x40 /* cursor was just wrappped */ - -/* - * this value is used in the firstchar and lastchar fields to mark - * unchanged lines - */ -#define _NOCHANGE -1 - -/* - * this value is used in the oldindex field to mark lines created by insertions - * and scrolls. - */ -#define _NEWINDEX -1 - -#ifdef NCURSES_INTERNALS -#undef SCREEN -#define SCREEN struct screen -SCREEN; -#else -typedef struct screen SCREEN; -#endif - -typedef struct _win_st WINDOW; - -typedef chtype attr_t; /* ...must be at least as wide as chtype */ - -#if NCURSES_WIDECHAR - -#if @NCURSES_LIBUTF8@ -#ifdef mblen /* libutf8.h defines it w/o undefining first */ -#undef mblen -#endif -#include -#endif - -#if @NEED_WCHAR_H@ -#include /* ...to get mbstate_t, etc. */ -#endif - -#if @NCURSES_WCHAR_T@ -typedef unsigned short wchar_t@NCURSES_OK_WCHAR_T@; -#endif - -#if @NCURSES_WINT_T@ -typedef unsigned int wint_t@NCURSES_OK_WCHAR_T@; -#endif - -/* - * cchar_t stores an array of CCHARW_MAX wide characters. The first is - * normally a spacing character. The others are non-spacing. If those - * (spacing and nonspacing) do not fill the array, a null L'\0' follows. - * Otherwise, a null is assumed to follow when extracting via getcchar(). - */ -#define CCHARW_MAX @NCURSES_CCHARW_MAX@ -typedef struct -{ - attr_t attr; - wchar_t chars[CCHARW_MAX]; -#if @NCURSES_EXT_COLORS@ -#undef NCURSES_EXT_COLORS -#define NCURSES_EXT_COLORS @NCURSES_PATCH@ - int ext_color; /* color pair, must be more than 16-bits */ -#endif -} -cchar_t; - -#endif /* NCURSES_WIDECHAR */ - -#if !NCURSES_OPAQUE -struct ldat; - -struct _win_st -{ - NCURSES_SIZE_T _cury, _curx; /* current cursor position */ - - /* window location and size */ - NCURSES_SIZE_T _maxy, _maxx; /* maximums of x and y, NOT window size */ - NCURSES_SIZE_T _begy, _begx; /* screen coords of upper-left-hand corner */ - - short _flags; /* window state flags */ - - /* attribute tracking */ - attr_t _attrs; /* current attribute for non-space character */ - chtype _bkgd; /* current background char/attribute pair */ - - /* option values set by user */ - bool _notimeout; /* no time out on function-key entry? */ - bool _clear; /* consider all data in the window invalid? */ - bool _leaveok; /* OK to not reset cursor on exit? */ - bool _scroll; /* OK to scroll this window? */ - bool _idlok; /* OK to use insert/delete line? */ - bool _idcok; /* OK to use insert/delete char? */ - bool _immed; /* window in immed mode? (not yet used) */ - bool _sync; /* window in sync mode? */ - bool _use_keypad; /* process function keys into KEY_ symbols? */ - int _delay; /* 0 = nodelay, <0 = blocking, >0 = delay */ - - struct ldat *_line; /* the actual line data */ - - /* global screen state */ - NCURSES_SIZE_T _regtop; /* top line of scrolling region */ - NCURSES_SIZE_T _regbottom; /* bottom line of scrolling region */ - - /* these are used only if this is a sub-window */ - int _parx; /* x coordinate of this window in parent */ - int _pary; /* y coordinate of this window in parent */ - WINDOW *_parent; /* pointer to parent if a sub-window */ - - /* these are used only if this is a pad */ - struct pdat - { - NCURSES_SIZE_T _pad_y, _pad_x; - NCURSES_SIZE_T _pad_top, _pad_left; - NCURSES_SIZE_T _pad_bottom, _pad_right; - } _pad; - - NCURSES_SIZE_T _yoffset; /* real begy is _begy + _yoffset */ - -#if NCURSES_WIDECHAR - cchar_t _bkgrnd; /* current background char/attribute pair */ -#if @NCURSES_EXT_COLORS@ - int _color; /* current color-pair for non-space character */ -#endif -#endif -}; -#endif /* NCURSES_OPAQUE */ - -/* - * GCC (and some other compilers) define '__attribute__'; we're using this - * macro to alert the compiler to flag inconsistencies in printf/scanf-like - * function calls. Just in case '__attribute__' isn't defined, make a dummy. - * Old versions of G++ do not accept it anyway, at least not consistently with - * GCC. - */ -#if !(defined(__GNUC__) || defined(__GNUG__) || defined(__attribute__)) -#define __attribute__(p) /* nothing */ -#endif - -/* - * We cannot define these in ncurses_cfg.h, since they require parameters to be - * passed (that is non-portable). - */ -#ifndef GCC_PRINTFLIKE -#ifndef printf -#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var))) -#else -#define GCC_PRINTFLIKE(fmt,var) /*nothing*/ -#endif -#endif - -#ifndef GCC_SCANFLIKE -#ifndef scanf -#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var))) -#else -#define GCC_SCANFLIKE(fmt,var) /*nothing*/ -#endif -#endif - -#ifndef GCC_NORETURN -#define GCC_NORETURN /* nothing */ -#endif - -#ifndef GCC_UNUSED -#define GCC_UNUSED /* nothing */ -#endif - -#undef GCC_DEPRECATED -#if (__GNUC__ - 0 > 3 || (__GNUC__ - 0 == 3 && __GNUC_MINOR__ - 0 >= 2)) && !defined(NCURSES_INTERNALS) -#define GCC_DEPRECATED(msg) __attribute__((deprecated)) -#else -#define GCC_DEPRECATED(msg) /* nothing */ -#endif - -/* - * Curses uses a helper function. Define our type for this to simplify - * extending it for the sp-funcs feature. - */ -typedef int (*NCURSES_OUTC)(int); - -/* - * Function prototypes. This is the complete X/Open Curses list of required - * functions. Those marked `generated' will have sources generated from the - * macro definitions later in this file, in order to satisfy XPG4.2 - * requirements. - */ - -extern NCURSES_EXPORT(int) addch (const chtype); /* generated */ -extern NCURSES_EXPORT(int) addchnstr (const chtype *, int); /* generated */ -extern NCURSES_EXPORT(int) addchstr (const chtype *); /* generated */ -extern NCURSES_EXPORT(int) addnstr (const char *, int); /* generated */ -extern NCURSES_EXPORT(int) addstr (const char *); /* generated */ -extern NCURSES_EXPORT(int) attroff (NCURSES_ATTR_T); /* generated */ -extern NCURSES_EXPORT(int) attron (NCURSES_ATTR_T); /* generated */ -extern NCURSES_EXPORT(int) attrset (NCURSES_ATTR_T); /* generated */ -extern NCURSES_EXPORT(int) attr_get (attr_t *, NCURSES_PAIRS_T *, void *); /* generated */ -extern NCURSES_EXPORT(int) attr_off (attr_t, void *); /* generated */ -extern NCURSES_EXPORT(int) attr_on (attr_t, void *); /* generated */ -extern NCURSES_EXPORT(int) attr_set (attr_t, NCURSES_PAIRS_T, void *); /* generated */ -extern NCURSES_EXPORT(int) baudrate (void); /* implemented */ -extern NCURSES_EXPORT(int) beep (void); /* implemented */ -extern NCURSES_EXPORT(int) bkgd (chtype); /* generated */ -extern NCURSES_EXPORT(void) bkgdset (chtype); /* generated */ -extern NCURSES_EXPORT(int) border (chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype); /* generated */ -extern NCURSES_EXPORT(int) box (WINDOW *, chtype, chtype); /* generated */ -extern NCURSES_EXPORT(bool) can_change_color (void); /* implemented */ -extern NCURSES_EXPORT(int) cbreak (void); /* implemented */ -extern NCURSES_EXPORT(int) chgat (int, attr_t, NCURSES_PAIRS_T, const void *); /* generated */ -extern NCURSES_EXPORT(int) clear (void); /* generated */ -extern NCURSES_EXPORT(int) clearok (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(int) clrtobot (void); /* generated */ -extern NCURSES_EXPORT(int) clrtoeol (void); /* generated */ -extern NCURSES_EXPORT(int) color_content (NCURSES_COLOR_T,NCURSES_COLOR_T*,NCURSES_COLOR_T*,NCURSES_COLOR_T*); /* implemented */ -extern NCURSES_EXPORT(int) color_set (NCURSES_PAIRS_T,void*); /* generated */ -extern NCURSES_EXPORT(int) COLOR_PAIR (int); /* generated */ -extern NCURSES_EXPORT(int) copywin (const WINDOW*,WINDOW*,int,int,int,int,int,int,int); /* implemented */ -extern NCURSES_EXPORT(int) curs_set (int); /* implemented */ -extern NCURSES_EXPORT(int) def_prog_mode (void); /* implemented */ -extern NCURSES_EXPORT(int) def_shell_mode (void); /* implemented */ -extern NCURSES_EXPORT(int) delay_output (int); /* implemented */ -extern NCURSES_EXPORT(int) delch (void); /* generated */ -extern NCURSES_EXPORT(void) delscreen (SCREEN *); /* implemented */ -extern NCURSES_EXPORT(int) delwin (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) deleteln (void); /* generated */ -extern NCURSES_EXPORT(WINDOW *) derwin (WINDOW *,int,int,int,int); /* implemented */ -extern NCURSES_EXPORT(int) doupdate (void); /* implemented */ -extern NCURSES_EXPORT(WINDOW *) dupwin (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) echo (void); /* implemented */ -extern NCURSES_EXPORT(int) echochar (const chtype); /* generated */ -extern NCURSES_EXPORT(int) erase (void); /* generated */ -extern NCURSES_EXPORT(int) endwin (void); /* implemented */ -extern NCURSES_EXPORT(char) erasechar (void); /* implemented */ -extern NCURSES_EXPORT(void) filter (void); /* implemented */ -extern NCURSES_EXPORT(int) flash (void); /* implemented */ -extern NCURSES_EXPORT(int) flushinp (void); /* implemented */ -extern NCURSES_EXPORT(chtype) getbkgd (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getch (void); /* generated */ -extern NCURSES_EXPORT(int) getnstr (char *, int); /* generated */ -extern NCURSES_EXPORT(int) getstr (char *); /* generated */ -extern NCURSES_EXPORT(WINDOW *) getwin (FILE *); /* implemented */ -extern NCURSES_EXPORT(int) halfdelay (int); /* implemented */ -extern NCURSES_EXPORT(bool) has_colors (void); /* implemented */ -extern NCURSES_EXPORT(bool) has_ic (void); /* implemented */ -extern NCURSES_EXPORT(bool) has_il (void); /* implemented */ -extern NCURSES_EXPORT(int) hline (chtype, int); /* generated */ -extern NCURSES_EXPORT(void) idcok (WINDOW *, bool); /* implemented */ -extern NCURSES_EXPORT(int) idlok (WINDOW *, bool); /* implemented */ -extern NCURSES_EXPORT(void) immedok (WINDOW *, bool); /* implemented */ -extern NCURSES_EXPORT(chtype) inch (void); /* generated */ -extern NCURSES_EXPORT(int) inchnstr (chtype *, int); /* generated */ -extern NCURSES_EXPORT(int) inchstr (chtype *); /* generated */ -extern NCURSES_EXPORT(WINDOW *) initscr (void); /* implemented */ -extern NCURSES_EXPORT(int) init_color (NCURSES_COLOR_T,NCURSES_COLOR_T,NCURSES_COLOR_T,NCURSES_COLOR_T); /* implemented */ -extern NCURSES_EXPORT(int) init_pair (NCURSES_PAIRS_T,NCURSES_COLOR_T,NCURSES_COLOR_T); /* implemented */ -extern NCURSES_EXPORT(int) innstr (char *, int); /* generated */ -extern NCURSES_EXPORT(int) insch (chtype); /* generated */ -extern NCURSES_EXPORT(int) insdelln (int); /* generated */ -extern NCURSES_EXPORT(int) insertln (void); /* generated */ -extern NCURSES_EXPORT(int) insnstr (const char *, int); /* generated */ -extern NCURSES_EXPORT(int) insstr (const char *); /* generated */ -extern NCURSES_EXPORT(int) instr (char *); /* generated */ -extern NCURSES_EXPORT(int) intrflush (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(bool) isendwin (void); /* implemented */ -extern NCURSES_EXPORT(bool) is_linetouched (WINDOW *,int); /* implemented */ -extern NCURSES_EXPORT(bool) is_wintouched (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(NCURSES_CONST char *) keyname (int); /* implemented */ -extern NCURSES_EXPORT(int) keypad (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(char) killchar (void); /* implemented */ -extern NCURSES_EXPORT(int) leaveok (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(char *) longname (void); /* implemented */ -extern NCURSES_EXPORT(int) meta (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(int) move (int, int); /* generated */ -extern NCURSES_EXPORT(int) mvaddch (int, int, const chtype); /* generated */ -extern NCURSES_EXPORT(int) mvaddchnstr (int, int, const chtype *, int); /* generated */ -extern NCURSES_EXPORT(int) mvaddchstr (int, int, const chtype *); /* generated */ -extern NCURSES_EXPORT(int) mvaddnstr (int, int, const char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvaddstr (int, int, const char *); /* generated */ -extern NCURSES_EXPORT(int) mvchgat (int, int, int, attr_t, NCURSES_PAIRS_T, const void *); /* generated */ -extern NCURSES_EXPORT(int) mvcur (int,int,int,int); /* implemented */ -extern NCURSES_EXPORT(int) mvdelch (int, int); /* generated */ -extern NCURSES_EXPORT(int) mvderwin (WINDOW *, int, int); /* implemented */ -extern NCURSES_EXPORT(int) mvgetch (int, int); /* generated */ -extern NCURSES_EXPORT(int) mvgetnstr (int, int, char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvgetstr (int, int, char *); /* generated */ -extern NCURSES_EXPORT(int) mvhline (int, int, chtype, int); /* generated */ -extern NCURSES_EXPORT(chtype) mvinch (int, int); /* generated */ -extern NCURSES_EXPORT(int) mvinchnstr (int, int, chtype *, int); /* generated */ -extern NCURSES_EXPORT(int) mvinchstr (int, int, chtype *); /* generated */ -extern NCURSES_EXPORT(int) mvinnstr (int, int, char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvinsch (int, int, chtype); /* generated */ -extern NCURSES_EXPORT(int) mvinsnstr (int, int, const char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvinsstr (int, int, const char *); /* generated */ -extern NCURSES_EXPORT(int) mvinstr (int, int, char *); /* generated */ -extern NCURSES_EXPORT(int) mvprintw (int,int, const char *,...) /* implemented */ - GCC_PRINTFLIKE(3,4); -extern NCURSES_EXPORT(int) mvscanw (int,int, const char *,...) /* implemented */ - GCC_SCANFLIKE(3,4); -extern NCURSES_EXPORT(int) mvvline (int, int, chtype, int); /* generated */ -extern NCURSES_EXPORT(int) mvwaddch (WINDOW *, int, int, const chtype); /* generated */ -extern NCURSES_EXPORT(int) mvwaddchnstr (WINDOW *, int, int, const chtype *, int);/* generated */ -extern NCURSES_EXPORT(int) mvwaddchstr (WINDOW *, int, int, const chtype *); /* generated */ -extern NCURSES_EXPORT(int) mvwaddnstr (WINDOW *, int, int, const char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvwaddstr (WINDOW *, int, int, const char *); /* generated */ -extern NCURSES_EXPORT(int) mvwchgat (WINDOW *, int, int, int, attr_t, NCURSES_PAIRS_T, const void *);/* generated */ -extern NCURSES_EXPORT(int) mvwdelch (WINDOW *, int, int); /* generated */ -extern NCURSES_EXPORT(int) mvwgetch (WINDOW *, int, int); /* generated */ -extern NCURSES_EXPORT(int) mvwgetnstr (WINDOW *, int, int, char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvwgetstr (WINDOW *, int, int, char *); /* generated */ -extern NCURSES_EXPORT(int) mvwhline (WINDOW *, int, int, chtype, int); /* generated */ -extern NCURSES_EXPORT(int) mvwin (WINDOW *,int,int); /* implemented */ -extern NCURSES_EXPORT(chtype) mvwinch (WINDOW *, int, int); /* generated */ -extern NCURSES_EXPORT(int) mvwinchnstr (WINDOW *, int, int, chtype *, int); /* generated */ -extern NCURSES_EXPORT(int) mvwinchstr (WINDOW *, int, int, chtype *); /* generated */ -extern NCURSES_EXPORT(int) mvwinnstr (WINDOW *, int, int, char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvwinsch (WINDOW *, int, int, chtype); /* generated */ -extern NCURSES_EXPORT(int) mvwinsnstr (WINDOW *, int, int, const char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvwinsstr (WINDOW *, int, int, const char *); /* generated */ -extern NCURSES_EXPORT(int) mvwinstr (WINDOW *, int, int, char *); /* generated */ -extern NCURSES_EXPORT(int) mvwprintw (WINDOW*,int,int, const char *,...) /* implemented */ - GCC_PRINTFLIKE(4,5); -extern NCURSES_EXPORT(int) mvwscanw (WINDOW *,int,int, const char *,...) /* implemented */ - GCC_SCANFLIKE(4,5); -extern NCURSES_EXPORT(int) mvwvline (WINDOW *,int, int, chtype, int); /* generated */ -extern NCURSES_EXPORT(int) napms (int); /* implemented */ -extern NCURSES_EXPORT(WINDOW *) newpad (int,int); /* implemented */ -extern NCURSES_EXPORT(SCREEN *) newterm (const char *,FILE *,FILE *); /* implemented */ -extern NCURSES_EXPORT(WINDOW *) newwin (int,int,int,int); /* implemented */ -extern NCURSES_EXPORT(int) nl (void); /* implemented */ -extern NCURSES_EXPORT(int) nocbreak (void); /* implemented */ -extern NCURSES_EXPORT(int) nodelay (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(int) noecho (void); /* implemented */ -extern NCURSES_EXPORT(int) nonl (void); /* implemented */ -extern NCURSES_EXPORT(void) noqiflush (void); /* implemented */ -extern NCURSES_EXPORT(int) noraw (void); /* implemented */ -extern NCURSES_EXPORT(int) notimeout (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(int) overlay (const WINDOW*,WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) overwrite (const WINDOW*,WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) pair_content (NCURSES_PAIRS_T,NCURSES_COLOR_T*,NCURSES_COLOR_T*); /* implemented */ -extern NCURSES_EXPORT(int) PAIR_NUMBER (int); /* generated */ -extern NCURSES_EXPORT(int) pechochar (WINDOW *, const chtype); /* implemented */ -extern NCURSES_EXPORT(int) pnoutrefresh (WINDOW*,int,int,int,int,int,int);/* implemented */ -extern NCURSES_EXPORT(int) prefresh (WINDOW *,int,int,int,int,int,int); /* implemented */ -extern NCURSES_EXPORT(int) printw (const char *,...) /* implemented */ - GCC_PRINTFLIKE(1,2); -extern NCURSES_EXPORT(int) putwin (WINDOW *, FILE *); /* implemented */ -extern NCURSES_EXPORT(void) qiflush (void); /* implemented */ -extern NCURSES_EXPORT(int) raw (void); /* implemented */ -extern NCURSES_EXPORT(int) redrawwin (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) refresh (void); /* generated */ -extern NCURSES_EXPORT(int) resetty (void); /* implemented */ -extern NCURSES_EXPORT(int) reset_prog_mode (void); /* implemented */ -extern NCURSES_EXPORT(int) reset_shell_mode (void); /* implemented */ -extern NCURSES_EXPORT(int) ripoffline (int, int (*)(WINDOW *, int)); /* implemented */ -extern NCURSES_EXPORT(int) savetty (void); /* implemented */ -extern NCURSES_EXPORT(int) scanw (const char *,...) /* implemented */ - GCC_SCANFLIKE(1,2); -extern NCURSES_EXPORT(int) scr_dump (const char *); /* implemented */ -extern NCURSES_EXPORT(int) scr_init (const char *); /* implemented */ -extern NCURSES_EXPORT(int) scrl (int); /* generated */ -extern NCURSES_EXPORT(int) scroll (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) scrollok (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(int) scr_restore (const char *); /* implemented */ -extern NCURSES_EXPORT(int) scr_set (const char *); /* implemented */ -extern NCURSES_EXPORT(int) setscrreg (int,int); /* generated */ -extern NCURSES_EXPORT(SCREEN *) set_term (SCREEN *); /* implemented */ -extern NCURSES_EXPORT(int) slk_attroff (const chtype); /* implemented */ -extern NCURSES_EXPORT(int) slk_attr_off (const attr_t, void *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) slk_attron (const chtype); /* implemented */ -extern NCURSES_EXPORT(int) slk_attr_on (attr_t,void*); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) slk_attrset (const chtype); /* implemented */ -extern NCURSES_EXPORT(attr_t) slk_attr (void); /* implemented */ -extern NCURSES_EXPORT(int) slk_attr_set (const attr_t,NCURSES_PAIRS_T,void*); /* implemented */ -extern NCURSES_EXPORT(int) slk_clear (void); /* implemented */ -extern NCURSES_EXPORT(int) slk_color (NCURSES_PAIRS_T); /* implemented */ -extern NCURSES_EXPORT(int) slk_init (int); /* implemented */ -extern NCURSES_EXPORT(char *) slk_label (int); /* implemented */ -extern NCURSES_EXPORT(int) slk_noutrefresh (void); /* implemented */ -extern NCURSES_EXPORT(int) slk_refresh (void); /* implemented */ -extern NCURSES_EXPORT(int) slk_restore (void); /* implemented */ -extern NCURSES_EXPORT(int) slk_set (int,const char *,int); /* implemented */ -extern NCURSES_EXPORT(int) slk_touch (void); /* implemented */ -extern NCURSES_EXPORT(int) standout (void); /* generated */ -extern NCURSES_EXPORT(int) standend (void); /* generated */ -extern NCURSES_EXPORT(int) start_color (void); /* implemented */ -extern NCURSES_EXPORT(WINDOW *) subpad (WINDOW *, int, int, int, int); /* implemented */ -extern NCURSES_EXPORT(WINDOW *) subwin (WINDOW *, int, int, int, int); /* implemented */ -extern NCURSES_EXPORT(int) syncok (WINDOW *, bool); /* implemented */ -extern NCURSES_EXPORT(chtype) termattrs (void); /* implemented */ -extern NCURSES_EXPORT(char *) termname (void); /* implemented */ -extern NCURSES_EXPORT(void) timeout (int); /* generated */ -extern NCURSES_EXPORT(int) touchline (WINDOW *, int, int); /* generated */ -extern NCURSES_EXPORT(int) touchwin (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) typeahead (int); /* implemented */ -extern NCURSES_EXPORT(int) ungetch (int); /* implemented */ -extern NCURSES_EXPORT(int) untouchwin (WINDOW *); /* generated */ -extern NCURSES_EXPORT(void) use_env (bool); /* implemented */ -extern NCURSES_EXPORT(void) use_tioctl (bool); /* implemented */ -extern NCURSES_EXPORT(int) vidattr (chtype); /* implemented */ -extern NCURSES_EXPORT(int) vidputs (chtype, NCURSES_OUTC); /* implemented */ -extern NCURSES_EXPORT(int) vline (chtype, int); /* generated */ -extern NCURSES_EXPORT(int) vwprintw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_printw) /* implemented */ - GCC_PRINTFLIKE(2,0); -extern NCURSES_EXPORT(int) vw_printw (WINDOW *, const char *, va_list) /* implemented */ - GCC_PRINTFLIKE(2,0); -extern NCURSES_EXPORT(int) vwscanw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_scanw) /* implemented */ - GCC_SCANFLIKE(2,0); -extern NCURSES_EXPORT(int) vw_scanw (WINDOW *, const char *, va_list) /* implemented */ - GCC_SCANFLIKE(2,0); -extern NCURSES_EXPORT(int) waddch (WINDOW *, const chtype); /* implemented */ -extern NCURSES_EXPORT(int) waddchnstr (WINDOW *,const chtype *,int); /* implemented */ -extern NCURSES_EXPORT(int) waddchstr (WINDOW *,const chtype *); /* generated */ -extern NCURSES_EXPORT(int) waddnstr (WINDOW *,const char *,int); /* implemented */ -extern NCURSES_EXPORT(int) waddstr (WINDOW *,const char *); /* generated */ -extern NCURSES_EXPORT(int) wattron (WINDOW *, int); /* generated */ -extern NCURSES_EXPORT(int) wattroff (WINDOW *, int); /* generated */ -extern NCURSES_EXPORT(int) wattrset (WINDOW *, int); /* generated */ -extern NCURSES_EXPORT(int) wattr_get (WINDOW *, attr_t *, NCURSES_PAIRS_T *, void *); /* generated */ -extern NCURSES_EXPORT(int) wattr_on (WINDOW *, attr_t, void *); /* implemented */ -extern NCURSES_EXPORT(int) wattr_off (WINDOW *, attr_t, void *); /* implemented */ -extern NCURSES_EXPORT(int) wattr_set (WINDOW *, attr_t, NCURSES_PAIRS_T, void *); /* generated */ -extern NCURSES_EXPORT(int) wbkgd (WINDOW *, chtype); /* implemented */ -extern NCURSES_EXPORT(void) wbkgdset (WINDOW *,chtype); /* implemented */ -extern NCURSES_EXPORT(int) wborder (WINDOW *,chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype); /* implemented */ -extern NCURSES_EXPORT(int) wchgat (WINDOW *, int, attr_t, NCURSES_PAIRS_T, const void *);/* implemented */ -extern NCURSES_EXPORT(int) wclear (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wclrtobot (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wclrtoeol (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wcolor_set (WINDOW*,NCURSES_PAIRS_T,void*); /* implemented */ -extern NCURSES_EXPORT(void) wcursyncup (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wdelch (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wdeleteln (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) wechochar (WINDOW *, const chtype); /* implemented */ -extern NCURSES_EXPORT(int) werase (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wgetch (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wgetnstr (WINDOW *,char *,int); /* implemented */ -extern NCURSES_EXPORT(int) wgetstr (WINDOW *, char *); /* generated */ -extern NCURSES_EXPORT(int) whline (WINDOW *, chtype, int); /* implemented */ -extern NCURSES_EXPORT(chtype) winch (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) winchnstr (WINDOW *, chtype *, int); /* implemented */ -extern NCURSES_EXPORT(int) winchstr (WINDOW *, chtype *); /* generated */ -extern NCURSES_EXPORT(int) winnstr (WINDOW *, char *, int); /* implemented */ -extern NCURSES_EXPORT(int) winsch (WINDOW *, chtype); /* implemented */ -extern NCURSES_EXPORT(int) winsdelln (WINDOW *,int); /* implemented */ -extern NCURSES_EXPORT(int) winsertln (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) winsnstr (WINDOW *, const char *,int); /* implemented */ -extern NCURSES_EXPORT(int) winsstr (WINDOW *, const char *); /* generated */ -extern NCURSES_EXPORT(int) winstr (WINDOW *, char *); /* generated */ -extern NCURSES_EXPORT(int) wmove (WINDOW *,int,int); /* implemented */ -extern NCURSES_EXPORT(int) wnoutrefresh (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wprintw (WINDOW *, const char *,...) /* implemented */ - GCC_PRINTFLIKE(2,3); -extern NCURSES_EXPORT(int) wredrawln (WINDOW *,int,int); /* implemented */ -extern NCURSES_EXPORT(int) wrefresh (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wscanw (WINDOW *, const char *,...) /* implemented */ - GCC_SCANFLIKE(2,3); -extern NCURSES_EXPORT(int) wscrl (WINDOW *,int); /* implemented */ -extern NCURSES_EXPORT(int) wsetscrreg (WINDOW *,int,int); /* implemented */ -extern NCURSES_EXPORT(int) wstandout (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) wstandend (WINDOW *); /* generated */ -extern NCURSES_EXPORT(void) wsyncdown (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(void) wsyncup (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(void) wtimeout (WINDOW *,int); /* implemented */ -extern NCURSES_EXPORT(int) wtouchln (WINDOW *,int,int,int); /* implemented */ -extern NCURSES_EXPORT(int) wvline (WINDOW *,chtype,int); /* implemented */ - -/* - * These are also declared in : - */ -extern NCURSES_EXPORT(int) tigetflag (const char *); /* implemented */ -extern NCURSES_EXPORT(int) tigetnum (const char *); /* implemented */ -extern NCURSES_EXPORT(char *) tigetstr (const char *); /* implemented */ -extern NCURSES_EXPORT(int) putp (const char *); /* implemented */ - -#if NCURSES_TPARM_VARARGS -extern NCURSES_EXPORT(char *) tparm (const char *, ...); /* special */ -#else -extern NCURSES_EXPORT(char *) tparm (const char *, NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG); /* special */ -#endif - -extern NCURSES_EXPORT(char *) tiparm (const char *, ...); /* special */ - -/* - * These functions are not in X/Open, but we use them in macro definitions: - */ -extern NCURSES_EXPORT(int) getattrs (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getcurx (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getcury (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getbegx (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getbegy (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getmaxx (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getmaxy (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getparx (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getpary (const WINDOW *); /* generated */ - -/* - * vid_attr() was implemented originally based on a draft of X/Open curses. - */ -#if !NCURSES_WIDECHAR -#define vid_attr(a,pair,opts) vidattr(a) -#endif - -/* - * These functions are extensions - not in X/Open Curses. - */ -#if @NCURSES_EXT_FUNCS@ -#undef NCURSES_EXT_FUNCS -#define NCURSES_EXT_FUNCS @NCURSES_PATCH@ -typedef int (*NCURSES_WINDOW_CB)(WINDOW *, void *); -typedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *); -extern NCURSES_EXPORT(bool) is_term_resized (int, int); -extern NCURSES_EXPORT(char *) keybound (int, int); -extern NCURSES_EXPORT(const char *) curses_version (void); -extern NCURSES_EXPORT(int) alloc_pair (int, int); -extern NCURSES_EXPORT(int) assume_default_colors (int, int); -extern NCURSES_EXPORT(int) define_key (const char *, int); -extern NCURSES_EXPORT(int) extended_color_content(int, int *, int *, int *); -extern NCURSES_EXPORT(int) extended_pair_content(int, int *, int *); -extern NCURSES_EXPORT(int) extended_slk_color(int); -extern NCURSES_EXPORT(int) find_pair (int, int); -extern NCURSES_EXPORT(int) free_pair (int); -extern NCURSES_EXPORT(int) get_escdelay (void); -extern NCURSES_EXPORT(int) init_extended_color(int, int, int, int); -extern NCURSES_EXPORT(int) init_extended_pair(int, int, int); -extern NCURSES_EXPORT(int) key_defined (const char *); -extern NCURSES_EXPORT(int) keyok (int, bool); -extern NCURSES_EXPORT(void) reset_color_pairs (void); -extern NCURSES_EXPORT(int) resize_term (int, int); -extern NCURSES_EXPORT(int) resizeterm (int, int); -extern NCURSES_EXPORT(int) set_escdelay (int); -extern NCURSES_EXPORT(int) set_tabsize (int); -extern NCURSES_EXPORT(int) use_default_colors (void); -extern NCURSES_EXPORT(int) use_extended_names (bool); -extern NCURSES_EXPORT(int) use_legacy_coding (int); -extern NCURSES_EXPORT(int) use_screen (SCREEN *, NCURSES_SCREEN_CB, void *); -extern NCURSES_EXPORT(int) use_window (WINDOW *, NCURSES_WINDOW_CB, void *); -extern NCURSES_EXPORT(int) wresize (WINDOW *, int, int); -extern NCURSES_EXPORT(void) nofilter(void); - -/* - * These extensions provide access to information stored in the WINDOW even - * when NCURSES_OPAQUE is set: - */ -extern NCURSES_EXPORT(WINDOW *) wgetparent (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ -extern NCURSES_EXPORT(bool) is_cleared (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ -extern NCURSES_EXPORT(bool) is_idcok (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ -extern NCURSES_EXPORT(bool) is_idlok (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ -extern NCURSES_EXPORT(bool) is_immedok (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ -extern NCURSES_EXPORT(bool) is_keypad (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ -extern NCURSES_EXPORT(bool) is_leaveok (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ -extern NCURSES_EXPORT(bool) is_nodelay (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ -extern NCURSES_EXPORT(bool) is_notimeout (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ -extern NCURSES_EXPORT(bool) is_pad (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ -extern NCURSES_EXPORT(bool) is_scrollok (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ -extern NCURSES_EXPORT(bool) is_subwin (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ -extern NCURSES_EXPORT(bool) is_syncok (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ -extern NCURSES_EXPORT(int) wgetdelay (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ -extern NCURSES_EXPORT(int) wgetscrreg (const WINDOW *, int *, int *); /* @GENERATED_EXT_FUNCS@ */ - -#else -#define curses_version() NCURSES_VERSION -#endif - -/* - * Extra extension-functions, which pass a SCREEN pointer rather than using - * a global variable SP. - */ -#if @NCURSES_SP_FUNCS@ -#undef NCURSES_SP_FUNCS -#define NCURSES_SP_FUNCS @NCURSES_PATCH@ -#define NCURSES_SP_NAME(name) name##_sp - -/* Define the sp-funcs helper function */ -#define NCURSES_SP_OUTC NCURSES_SP_NAME(NCURSES_OUTC) -typedef int (*NCURSES_SP_OUTC)(SCREEN*, int); - -extern NCURSES_EXPORT(SCREEN *) new_prescr (void); /* implemented:SP_FUNC */ - -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(baudrate) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(beep) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(can_change_color) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(cbreak) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(curs_set) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(color_content) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T*, NCURSES_COLOR_T*, NCURSES_COLOR_T*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_prog_mode) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_shell_mode) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(delay_output) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(doupdate) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(echo) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(endwin) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(char) NCURSES_SP_NAME(erasechar) (SCREEN*);/* implemented:SP_FUNC */ -extern NCURSES_EXPORT(void) NCURSES_SP_NAME(filter) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(flash) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(flushinp) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(getwin) (SCREEN*, FILE *); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(halfdelay) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_colors) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_ic) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_il) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_color) (SCREEN*, NCURSES_COLOR_T, NCURSES_COLOR_T, NCURSES_COLOR_T, NCURSES_COLOR_T); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_pair) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T, NCURSES_COLOR_T); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(intrflush) (SCREEN*, WINDOW*, bool); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(isendwin) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(NCURSES_CONST char *) NCURSES_SP_NAME(keyname) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(char) NCURSES_SP_NAME(killchar) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(longname) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(mvcur) (SCREEN*, int, int, int, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(napms) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(newpad) (SCREEN*, int, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(SCREEN *) NCURSES_SP_NAME(newterm) (SCREEN*, const char *, FILE *, FILE *); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(newwin) (SCREEN*, int, int, int, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nl) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nocbreak) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(noecho) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nonl) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(void) NCURSES_SP_NAME(noqiflush) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(noraw) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(pair_content) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T*, NCURSES_COLOR_T*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(void) NCURSES_SP_NAME(qiflush) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(raw) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(reset_prog_mode) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(reset_shell_mode) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resetty) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ripoffline) (SCREEN*, int, int (*)(WINDOW *, int)); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(savetty) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_init) (SCREEN*, const char *); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_restore) (SCREEN*, const char *); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_set) (SCREEN*, const char *); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attroff) (SCREEN*, const chtype); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attron) (SCREEN*, const chtype); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attrset) (SCREEN*, const chtype); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(attr_t) NCURSES_SP_NAME(slk_attr) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attr_set) (SCREEN*, const attr_t, NCURSES_PAIRS_T, void*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_clear) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_color) (SCREEN*, NCURSES_PAIRS_T); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_init) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(slk_label) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_noutrefresh) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_refresh) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_restore) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_set) (SCREEN*, int, const char *, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_touch) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(start_color) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(chtype) NCURSES_SP_NAME(termattrs) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(termname) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(typeahead) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ungetch) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_env) (SCREEN*, bool); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_tioctl) (SCREEN*, bool); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidattr) (SCREEN*, chtype); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidputs) (SCREEN*, chtype, NCURSES_SP_OUTC); /* implemented:SP_FUNC */ -#if @NCURSES_EXT_FUNCS@ -extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(keybound) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(alloc_pair) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(assume_default_colors) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(define_key) (SCREEN*, const char *, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_color_content) (SCREEN*, int, int *, int *, int *); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_pair_content) (SCREEN*, int, int *, int *); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_slk_color) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(get_escdelay) (SCREEN*); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(find_pair) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(free_pair) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_color) (SCREEN*, int, int, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_pair) (SCREEN*, int, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(is_term_resized) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(key_defined) (SCREEN*, const char *); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(keyok) (SCREEN*, int, bool); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(void) NCURSES_SP_NAME(nofilter) (SCREEN*); /* implemented */ /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(void) NCURSES_SP_NAME(reset_color_pairs) (SCREEN*); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resize_term) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resizeterm) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(set_escdelay) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(set_tabsize) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_default_colors) (SCREEN*); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_legacy_coding) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ -#endif -#else -#undef NCURSES_SP_FUNCS -#define NCURSES_SP_FUNCS 0 -#define NCURSES_SP_NAME(name) name -#define NCURSES_SP_OUTC NCURSES_OUTC -#endif - -/* attributes */ - -#define NCURSES_ATTR_SHIFT 8 -#define NCURSES_BITS(mask,shift) (NCURSES_CAST(chtype,(mask)) << ((shift) + NCURSES_ATTR_SHIFT)) - -#define A_NORMAL (@cf_cv_1UL@ - @cf_cv_1UL@) -#define A_ATTRIBUTES NCURSES_BITS(~(@cf_cv_1UL@ - @cf_cv_1UL@),0) -#define A_CHARTEXT (NCURSES_BITS(@cf_cv_1UL@,0) - @cf_cv_1UL@) -#define A_COLOR NCURSES_BITS(((@cf_cv_1UL@) << 8) - @cf_cv_1UL@,0) -#define A_STANDOUT NCURSES_BITS(@cf_cv_1UL@,8) -#define A_UNDERLINE NCURSES_BITS(@cf_cv_1UL@,9) -#define A_REVERSE NCURSES_BITS(@cf_cv_1UL@,10) -#define A_BLINK NCURSES_BITS(@cf_cv_1UL@,11) -#define A_DIM NCURSES_BITS(@cf_cv_1UL@,12) -#define A_BOLD NCURSES_BITS(@cf_cv_1UL@,13) -#define A_ALTCHARSET NCURSES_BITS(@cf_cv_1UL@,14) -#define A_INVIS NCURSES_BITS(@cf_cv_1UL@,15) -#define A_PROTECT NCURSES_BITS(@cf_cv_1UL@,16) -#define A_HORIZONTAL NCURSES_BITS(@cf_cv_1UL@,17) -#define A_LEFT NCURSES_BITS(@cf_cv_1UL@,18) -#define A_LOW NCURSES_BITS(@cf_cv_1UL@,19) -#define A_RIGHT NCURSES_BITS(@cf_cv_1UL@,20) -#define A_TOP NCURSES_BITS(@cf_cv_1UL@,21) -#define A_VERTICAL NCURSES_BITS(@cf_cv_1UL@,22) - -#if @NCURSES_EXT_FUNCS@ -#define A_ITALIC NCURSES_BITS(@cf_cv_1UL@,23) /* ncurses extension */ -#endif - -/* - * Most of the pseudo functions are macros that either provide compatibility - * with older versions of curses, or provide inline functionality to improve - * performance. - */ - -/* - * These pseudo functions are always implemented as macros: - */ - -#define getyx(win,y,x) (y = getcury(win), x = getcurx(win)) -#define getbegyx(win,y,x) (y = getbegy(win), x = getbegx(win)) -#define getmaxyx(win,y,x) (y = getmaxy(win), x = getmaxx(win)) -#define getparyx(win,y,x) (y = getpary(win), x = getparx(win)) - -#define getsyx(y,x) do { if (newscr) { \ - if (is_leaveok(newscr)) \ - (y) = (x) = -1; \ - else \ - getyx(newscr,(y), (x)); \ - } \ - } while(0) - -#define setsyx(y,x) do { if (newscr) { \ - if ((y) == -1 && (x) == -1) \ - leaveok(newscr, TRUE); \ - else { \ - leaveok(newscr, FALSE); \ - wmove(newscr, (y), (x)); \ - } \ - } \ - } while(0) - -#ifndef NCURSES_NOMACROS - -/* - * These miscellaneous pseudo functions are provided for compatibility: - */ - -#define wgetstr(w, s) wgetnstr(w, s, -1) -#define getnstr(s, n) wgetnstr(stdscr, s, (n)) - -#define setterm(term) setupterm(term, 1, (int *)0) - -#define fixterm() reset_prog_mode() -#define resetterm() reset_shell_mode() -#define saveterm() def_prog_mode() -#define crmode() cbreak() -#define nocrmode() nocbreak() -#define gettmode() - -/* It seems older SYSV curses versions define these */ -#if !NCURSES_OPAQUE -#define getattrs(win) NCURSES_CAST(int, NCURSES_OK_ADDR(win) ? (win)->_attrs : A_NORMAL) -#define getcurx(win) (NCURSES_OK_ADDR(win) ? (win)->_curx : ERR) -#define getcury(win) (NCURSES_OK_ADDR(win) ? (win)->_cury : ERR) -#define getbegx(win) (NCURSES_OK_ADDR(win) ? (win)->_begx : ERR) -#define getbegy(win) (NCURSES_OK_ADDR(win) ? (win)->_begy : ERR) -#define getmaxx(win) (NCURSES_OK_ADDR(win) ? ((win)->_maxx + 1) : ERR) -#define getmaxy(win) (NCURSES_OK_ADDR(win) ? ((win)->_maxy + 1) : ERR) -#define getparx(win) (NCURSES_OK_ADDR(win) ? (win)->_parx : ERR) -#define getpary(win) (NCURSES_OK_ADDR(win) ? (win)->_pary : ERR) -#endif /* NCURSES_OPAQUE */ - -#define wstandout(win) (wattrset(win,A_STANDOUT)) -#define wstandend(win) (wattrset(win,A_NORMAL)) - -#define wattron(win,at) wattr_on(win, NCURSES_CAST(attr_t, at), NULL) -#define wattroff(win,at) wattr_off(win, NCURSES_CAST(attr_t, at), NULL) - -#if !NCURSES_OPAQUE -#if NCURSES_WATTR_MACROS -#if NCURSES_WIDECHAR && @NCURSES_EXT_COLORS@ -#define wattrset(win,at) \ - (NCURSES_OK_ADDR(win) \ - ? ((win)->_color = NCURSES_CAST(int, PAIR_NUMBER(at)), \ - (win)->_attrs = NCURSES_CAST(attr_t, at), \ - OK) \ - : ERR) -#else -#define wattrset(win,at) \ - (NCURSES_OK_ADDR(win) \ - ? ((win)->_attrs = NCURSES_CAST(attr_t, at), \ - OK) \ - : ERR) -#endif -#endif /* NCURSES_WATTR_MACROS */ -#endif /* NCURSES_OPAQUE */ - -#define scroll(win) wscrl(win,1) - -#define touchwin(win) wtouchln((win), 0, getmaxy(win), 1) -#define touchline(win, s, c) wtouchln((win), s, c, 1) -#define untouchwin(win) wtouchln((win), 0, getmaxy(win), 0) - -#define box(win, v, h) wborder(win, v, v, h, h, 0, 0, 0, 0) -#define border(ls, rs, ts, bs, tl, tr, bl, br) wborder(stdscr, ls, rs, ts, bs, tl, tr, bl, br) -#define hline(ch, n) whline(stdscr, ch, (n)) -#define vline(ch, n) wvline(stdscr, ch, (n)) - -#define winstr(w, s) winnstr(w, s, -1) -#define winchstr(w, s) winchnstr(w, s, -1) -#define winsstr(w, s) winsnstr(w, s, -1) - -#if !NCURSES_OPAQUE -#define redrawwin(win) wredrawln(win, 0, (NCURSES_OK_ADDR(win) ? (win)->_maxy+1 : -1)) -#endif /* NCURSES_OPAQUE */ - -#define waddstr(win,str) waddnstr(win,str,-1) -#define waddchstr(win,str) waddchnstr(win,str,-1) - -/* - * These apply to the first 256 color pairs. - */ -#define COLOR_PAIR(n) (NCURSES_BITS((n), 0) & A_COLOR) -#define PAIR_NUMBER(a) (NCURSES_CAST(int,((NCURSES_CAST(unsigned long,(a)) & A_COLOR) >> NCURSES_ATTR_SHIFT))) - -/* - * pseudo functions for standard screen - */ - -#define addch(ch) waddch(stdscr,(ch)) -#define addchnstr(str,n) waddchnstr(stdscr,(str),(n)) -#define addchstr(str) waddchstr(stdscr,(str)) -#define addnstr(str,n) waddnstr(stdscr,(str),(n)) -#define addstr(str) waddnstr(stdscr,(str),-1) -#define attr_get(ap,cp,o) wattr_get(stdscr,(ap),(cp),(o)) -#define attr_off(a,o) wattr_off(stdscr,(a),(o)) -#define attr_on(a,o) wattr_on(stdscr,(a),(o)) -#define attr_set(a,c,o) wattr_set(stdscr,(a),(c),(o)) -#define attroff(at) wattroff(stdscr,(at)) -#define attron(at) wattron(stdscr,(at)) -#define attrset(at) wattrset(stdscr,(at)) -#define bkgd(ch) wbkgd(stdscr,(ch)) -#define bkgdset(ch) wbkgdset(stdscr,(ch)) -#define chgat(n,a,c,o) wchgat(stdscr,(n),(a),(c),(o)) -#define clear() wclear(stdscr) -#define clrtobot() wclrtobot(stdscr) -#define clrtoeol() wclrtoeol(stdscr) -#define color_set(c,o) wcolor_set(stdscr,(c),(o)) -#define delch() wdelch(stdscr) -#define deleteln() winsdelln(stdscr,-1) -#define echochar(c) wechochar(stdscr,(c)) -#define erase() werase(stdscr) -#define getch() wgetch(stdscr) -#define getstr(str) wgetstr(stdscr,(str)) -#define inch() winch(stdscr) -#define inchnstr(s,n) winchnstr(stdscr,(s),(n)) -#define inchstr(s) winchstr(stdscr,(s)) -#define innstr(s,n) winnstr(stdscr,(s),(n)) -#define insch(c) winsch(stdscr,(c)) -#define insdelln(n) winsdelln(stdscr,(n)) -#define insertln() winsdelln(stdscr,1) -#define insnstr(s,n) winsnstr(stdscr,(s),(n)) -#define insstr(s) winsstr(stdscr,(s)) -#define instr(s) winstr(stdscr,(s)) -#define move(y,x) wmove(stdscr,(y),(x)) -#define refresh() wrefresh(stdscr) -#define scrl(n) wscrl(stdscr,(n)) -#define setscrreg(t,b) wsetscrreg(stdscr,(t),(b)) -#define standend() wstandend(stdscr) -#define standout() wstandout(stdscr) -#define timeout(delay) wtimeout(stdscr,(delay)) -#define wdeleteln(win) winsdelln(win,-1) -#define winsertln(win) winsdelln(win,1) - -/* - * mv functions - */ - -#define mvwaddch(win,y,x,ch) (wmove((win),(y),(x)) == ERR ? ERR : waddch((win),(ch))) -#define mvwaddchnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),(n))) -#define mvwaddchstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),-1)) -#define mvwaddnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),(n))) -#define mvwaddstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),-1)) -#define mvwchgat(win,y,x,n,a,c,o) (wmove((win),(y),(x)) == ERR ? ERR : wchgat((win),(n),(a),(c),(o))) -#define mvwdelch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wdelch(win)) -#define mvwgetch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wgetch(win)) -#define mvwgetnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : wgetnstr((win),(str),(n))) -#define mvwgetstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : wgetstr((win),(str))) -#define mvwhline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : whline((win),(c),(n))) -#define mvwinch(win,y,x) (wmove((win),(y),(x)) == ERR ? NCURSES_CAST(chtype, ERR) : winch(win)) -#define mvwinchnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winchnstr((win),(s),(n))) -#define mvwinchstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winchstr((win),(s))) -#define mvwinnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winnstr((win),(s),(n))) -#define mvwinsch(win,y,x,c) (wmove((win),(y),(x)) == ERR ? ERR : winsch((win),(c))) -#define mvwinsnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winsnstr((win),(s),(n))) -#define mvwinsstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winsstr((win),(s))) -#define mvwinstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winstr((win),(s))) -#define mvwvline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : wvline((win),(c),(n))) - -#define mvaddch(y,x,ch) mvwaddch(stdscr,(y),(x),(ch)) -#define mvaddchnstr(y,x,str,n) mvwaddchnstr(stdscr,(y),(x),(str),(n)) -#define mvaddchstr(y,x,str) mvwaddchstr(stdscr,(y),(x),(str)) -#define mvaddnstr(y,x,str,n) mvwaddnstr(stdscr,(y),(x),(str),(n)) -#define mvaddstr(y,x,str) mvwaddstr(stdscr,(y),(x),(str)) -#define mvchgat(y,x,n,a,c,o) mvwchgat(stdscr,(y),(x),(n),(a),(c),(o)) -#define mvdelch(y,x) mvwdelch(stdscr,(y),(x)) -#define mvgetch(y,x) mvwgetch(stdscr,(y),(x)) -#define mvgetnstr(y,x,str,n) mvwgetnstr(stdscr,(y),(x),(str),(n)) -#define mvgetstr(y,x,str) mvwgetstr(stdscr,(y),(x),(str)) -#define mvhline(y,x,c,n) mvwhline(stdscr,(y),(x),(c),(n)) -#define mvinch(y,x) mvwinch(stdscr,(y),(x)) -#define mvinchnstr(y,x,s,n) mvwinchnstr(stdscr,(y),(x),(s),(n)) -#define mvinchstr(y,x,s) mvwinchstr(stdscr,(y),(x),(s)) -#define mvinnstr(y,x,s,n) mvwinnstr(stdscr,(y),(x),(s),(n)) -#define mvinsch(y,x,c) mvwinsch(stdscr,(y),(x),(c)) -#define mvinsnstr(y,x,s,n) mvwinsnstr(stdscr,(y),(x),(s),(n)) -#define mvinsstr(y,x,s) mvwinsstr(stdscr,(y),(x),(s)) -#define mvinstr(y,x,s) mvwinstr(stdscr,(y),(x),(s)) -#define mvvline(y,x,c,n) mvwvline(stdscr,(y),(x),(c),(n)) - -/* - * Some wide-character functions can be implemented without the extensions. - */ -#if !NCURSES_OPAQUE -#define getbkgd(win) (NCURSES_OK_ADDR(win) ? ((win)->_bkgd) : 0) -#endif /* NCURSES_OPAQUE */ - -#define slk_attr_off(a,v) ((v) ? ERR : slk_attroff(a)) -#define slk_attr_on(a,v) ((v) ? ERR : slk_attron(a)) - -#if !NCURSES_OPAQUE -#if NCURSES_WATTR_MACROS -#if NCURSES_WIDECHAR && @NCURSES_EXT_COLORS@ -#define wattr_set(win,a,p,opts) \ - (NCURSES_OK_ADDR(win) \ - ? ((void)((win)->_attrs = ((a) & ~A_COLOR), \ - (win)->_color = (opts) ? *(int *)(opts) : (p)), \ - OK) \ - : ERR) -#define wattr_get(win,a,p,opts) \ - (NCURSES_OK_ADDR(win) \ - ? ((void)(NCURSES_OK_ADDR(a) \ - ? (*(a) = (win)->_attrs) \ - : OK), \ - (void)(NCURSES_OK_ADDR(p) \ - ? (*(p) = (NCURSES_PAIRS_T) (win)->_color) \ - : OK), \ - (void)(NCURSES_OK_ADDR(opts) \ - ? (*(int *)(opts) = (win)->_color) \ - : OK), \ - OK) \ - : ERR) -#else /* !(NCURSES_WIDECHAR && NCURSES_EXE_COLORS) */ -#define wattr_set(win,a,p,opts) \ - (NCURSES_OK_ADDR(win) \ - ? ((void)((win)->_attrs = (((a) & ~A_COLOR) | \ - (attr_t)COLOR_PAIR(p))), \ - OK) \ - : ERR) -#define wattr_get(win,a,p,opts) \ - (NCURSES_OK_ADDR(win) \ - ? ((void)(NCURSES_OK_ADDR(a) \ - ? (*(a) = (win)->_attrs) \ - : OK), \ - (void)(NCURSES_OK_ADDR(p) \ - ? (*(p) = (NCURSES_PAIRS_T) PAIR_NUMBER((win)->_attrs)) \ - : OK), \ - OK) \ - : ERR) -#endif /* (NCURSES_WIDECHAR && NCURSES_EXE_COLORS) */ -#endif /* NCURSES_WATTR_MACROS */ -#endif /* NCURSES_OPAQUE */ - -/* - * X/Open curses deprecates SVr4 vwprintw/vwscanw, which are supposed to use - * varargs.h. It adds new calls vw_printw/vw_scanw, which are supposed to - * use POSIX stdarg.h. The ncurses versions of vwprintw/vwscanw already - * use stdarg.h, so... - */ -/* define vw_printw vwprintw */ -/* define vw_scanw vwscanw */ - -/* - * Export fallback function for use in C++ binding. - */ -#if !@HAVE_VSSCANF@ -#define vsscanf(a,b,c) _nc_vsscanf(a,b,c) -NCURSES_EXPORT(int) vsscanf(const char *, const char *, va_list); -#endif - -/* - * These macros are extensions - not in X/Open Curses. - */ -#if @NCURSES_EXT_FUNCS@ -#if !NCURSES_OPAQUE -#define is_cleared(win) (NCURSES_OK_ADDR(win) ? (win)->_clear : FALSE) -#define is_idcok(win) (NCURSES_OK_ADDR(win) ? (win)->_idcok : FALSE) -#define is_idlok(win) (NCURSES_OK_ADDR(win) ? (win)->_idlok : FALSE) -#define is_immedok(win) (NCURSES_OK_ADDR(win) ? (win)->_immed : FALSE) -#define is_keypad(win) (NCURSES_OK_ADDR(win) ? (win)->_use_keypad : FALSE) -#define is_leaveok(win) (NCURSES_OK_ADDR(win) ? (win)->_leaveok : FALSE) -#define is_nodelay(win) (NCURSES_OK_ADDR(win) ? ((win)->_delay == 0) : FALSE) -#define is_notimeout(win) (NCURSES_OK_ADDR(win) ? (win)->_notimeout : FALSE) -#define is_pad(win) (NCURSES_OK_ADDR(win) ? ((win)->_flags & _ISPAD) != 0 : FALSE) -#define is_scrollok(win) (NCURSES_OK_ADDR(win) ? (win)->_scroll : FALSE) -#define is_subwin(win) (NCURSES_OK_ADDR(win) ? ((win)->_flags & _SUBWIN) != 0 : FALSE) -#define is_syncok(win) (NCURSES_OK_ADDR(win) ? (win)->_sync : FALSE) -#define wgetdelay(win) (NCURSES_OK_ADDR(win) ? (win)->_delay : 0) -#define wgetparent(win) (NCURSES_OK_ADDR(win) ? (win)->_parent : 0) -#define wgetscrreg(win,t,b) (NCURSES_OK_ADDR(win) ? (*(t) = (win)->_regtop, *(b) = (win)->_regbottom, OK) : ERR) -#endif -#endif - -/* - * X/Open says this returns a bool; SVr4 also checked for out-of-range line. - * The macro provides compatibility: - */ -#define is_linetouched(w,l) ((!(w) || ((l) > getmaxy(w)) || ((l) < 0)) ? ERR : (is_linetouched)((w),(l))) - -#endif /* NCURSES_NOMACROS */ - -/* - * Public variables. - * - * Notes: - * a. ESCDELAY was an undocumented feature under AIX curses. - * It gives the ESC expire time in milliseconds. - * b. ttytype is needed for backward compatibility - */ -#if NCURSES_REENTRANT - -NCURSES_WRAPPED_VAR(WINDOW *, curscr); -NCURSES_WRAPPED_VAR(WINDOW *, newscr); -NCURSES_WRAPPED_VAR(WINDOW *, stdscr); -NCURSES_WRAPPED_VAR(char *, ttytype); -NCURSES_WRAPPED_VAR(int, COLORS); -NCURSES_WRAPPED_VAR(int, COLOR_PAIRS); -NCURSES_WRAPPED_VAR(int, COLS); -NCURSES_WRAPPED_VAR(int, ESCDELAY); -NCURSES_WRAPPED_VAR(int, LINES); -NCURSES_WRAPPED_VAR(int, TABSIZE); - -#define curscr NCURSES_PUBLIC_VAR(curscr()) -#define newscr NCURSES_PUBLIC_VAR(newscr()) -#define stdscr NCURSES_PUBLIC_VAR(stdscr()) -#define ttytype NCURSES_PUBLIC_VAR(ttytype()) -#define COLORS NCURSES_PUBLIC_VAR(COLORS()) -#define COLOR_PAIRS NCURSES_PUBLIC_VAR(COLOR_PAIRS()) -#define COLS NCURSES_PUBLIC_VAR(COLS()) -#define ESCDELAY NCURSES_PUBLIC_VAR(ESCDELAY()) -#define LINES NCURSES_PUBLIC_VAR(LINES()) -#define TABSIZE NCURSES_PUBLIC_VAR(TABSIZE()) - -#else - -extern NCURSES_EXPORT_VAR(WINDOW *) curscr; -extern NCURSES_EXPORT_VAR(WINDOW *) newscr; -extern NCURSES_EXPORT_VAR(WINDOW *) stdscr; -extern NCURSES_EXPORT_VAR(char) ttytype[]; -extern NCURSES_EXPORT_VAR(int) COLORS; -extern NCURSES_EXPORT_VAR(int) COLOR_PAIRS; -extern NCURSES_EXPORT_VAR(int) COLS; -extern NCURSES_EXPORT_VAR(int) ESCDELAY; -extern NCURSES_EXPORT_VAR(int) LINES; -extern NCURSES_EXPORT_VAR(int) TABSIZE; - -#endif - -/* - * Pseudo-character tokens outside ASCII range. The curses wgetch() function - * will return any given one of these only if the corresponding k- capability - * is defined in your terminal's terminfo entry. - * - * Some keys (KEY_A1, etc) are arranged like this: - * a1 up a3 - * left b2 right - * c1 down c3 - * - * A few key codes do not depend upon the terminfo entry. - */ -#define KEY_CODE_YES 0400 /* A wchar_t contains a key code */ -#define KEY_MIN 0401 /* Minimum curses key */ -#define KEY_BREAK 0401 /* Break key (unreliable) */ -#define KEY_SRESET 0530 /* Soft (partial) reset (unreliable) */ -#define KEY_RESET 0531 /* Reset or hard reset (unreliable) */ diff --git a/include/curses.head b/include/curses.head deleted file mode 100644 index 5bacfa4..0000000 --- a/include/curses.head +++ /dev/null @@ -1,1506 +0,0 @@ -/**************************************************************************** - * Copyright 2018-2020,2021 Thomas E. Dickey * - * Copyright 1998-2016,2017 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* $Id: curses.h.in,v 1.277 2021/09/24 16:07:37 tom Exp $ */ - -#ifndef __NCURSES_H -#define __NCURSES_H - -/* - The symbols beginning NCURSES_ or USE_ are configuration choices. - A few of the former can be overridden by applications at compile-time. - Most of the others correspond to configure-script options (or checks - by the configure-script for features of the system on which it is built). - - These symbols can be overridden by applications at compile-time: - NCURSES_NOMACROS suppresses macro definitions in favor of functions - NCURSES_WATTR_MACROS suppresses wattr_* macro definitions - NCURSES_WIDECHAR is an alternative for declaring wide-character functions. - - These symbols are used only when building ncurses: - NCURSES_ATTR_T - NCURSES_FIELD_INTERNALS - NCURSES_INTERNALS - - These symbols are set by the configure script: - NCURSES_ENABLE_STDBOOL_H - NCURSES_EXPANDED - NCURSES_EXT_COLORS - NCURSES_EXT_FUNCS - NCURSES_EXT_PUTWIN - NCURSES_NO_PADDING - NCURSES_OSPEED_COMPAT - NCURSES_PATHSEP - NCURSES_REENTRANT - */ - -#define CURSES 1 -#define CURSES_H 1 - -/* These are defined only in curses.h, and are used for conditional compiles */ -#define NCURSES_VERSION_MAJOR 6 -#define NCURSES_VERSION_MINOR 3 -#define NCURSES_VERSION_PATCH 20211021 - -/* This is defined in more than one ncurses header, for identification */ -#undef NCURSES_VERSION -#define NCURSES_VERSION "6.3" - -/* - * Identify the mouse encoding version. - */ -#define NCURSES_MOUSE_VERSION 2 - -/* - * Definitions to facilitate DLL's. - */ -#include - -/* - * Extra headers. - */ -#if 1 -#include -#endif - -#ifdef __cplusplus -#else -#if 0 -#include -#undef GCC_NORETURN -#define GCC_NORETURN _Noreturn -#endif -#endif - -/* - * User-definable tweak to disable the include of . - */ -#ifndef NCURSES_ENABLE_STDBOOL_H -#define NCURSES_ENABLE_STDBOOL_H 1 -#endif - -/* - * NCURSES_ATTR_T is used to quiet compiler warnings when building ncurses - * configured using --disable-macros. - */ -#ifndef NCURSES_ATTR_T -#define NCURSES_ATTR_T int -#endif - -/* - * Expands to 'const' if ncurses is configured using --enable-const. Note that - * doing so makes it incompatible with other implementations of X/Open Curses. - */ -#undef NCURSES_CONST -#define NCURSES_CONST const - -#undef NCURSES_INLINE -#define NCURSES_INLINE inline - -/* - * The standard type used for color values, and for color-pairs. The latter - * allows the curses library to enumerate the combinations of foreground and - * background colors used by an application, and is normally the product of the - * total foreground and background colors. - * - * X/Open uses "short" for both of these types, ultimately because they are - * numbers from the SVr4 terminal database, which uses 16-bit signed values. - */ -#undef NCURSES_COLOR_T -#define NCURSES_COLOR_T short - -#undef NCURSES_PAIRS_T -#define NCURSES_PAIRS_T short - -/* - * Definitions used to make WINDOW and similar structs opaque. - */ -#ifndef NCURSES_INTERNALS -#define NCURSES_OPAQUE 1 -#define NCURSES_OPAQUE_FORM 0 -#define NCURSES_OPAQUE_MENU 0 -#define NCURSES_OPAQUE_PANEL 0 -#endif - -/* - * Definition used to optionally suppress wattr* macros to help with the - * transition from ncurses5 to ncurses6 by allowing the header files to - * be shared across development packages for ncursesw in both ABIs. - */ -#ifndef NCURSES_WATTR_MACROS -#define NCURSES_WATTR_MACROS 0 -#endif - -/* - * The reentrant code relies on the opaque setting, but adds features. - */ -#ifndef NCURSES_REENTRANT -#define NCURSES_REENTRANT 1 -#endif - -/* - * In certain environments, we must work around linker problems for data - */ -#undef NCURSES_BROKEN_LINKER -#if 0 -#define NCURSES_BROKEN_LINKER 1 -#endif - -/* - * Control whether bindings for interop support are added. - */ -#undef NCURSES_INTEROP_FUNCS -#define NCURSES_INTEROP_FUNCS 1 - -/* - * The internal type used for window dimensions. - */ -#undef NCURSES_SIZE_T -#define NCURSES_SIZE_T int - -/* - * Control whether tparm() supports varargs or fixed-parameter list. - */ -#undef NCURSES_TPARM_VARARGS -#define NCURSES_TPARM_VARARGS 1 - -/* - * Control type used for tparm's arguments. While X/Open equates long and - * char* values, this is not always workable for 64-bit platforms. - */ -#undef NCURSES_TPARM_ARG -#define NCURSES_TPARM_ARG intptr_t - -/* - * Control whether ncurses uses wcwidth() for checking width of line-drawing - * characters. - */ -#undef NCURSES_WCWIDTH_GRAPHICS -#define NCURSES_WCWIDTH_GRAPHICS 1 - -/* - * NCURSES_CH_T is used in building the library, but not used otherwise in - * this header file, since that would make the normal/wide-character versions - * of the header incompatible. - */ -#undef NCURSES_CH_T -#define NCURSES_CH_T chtype - -#if 1 && defined(_LP64) -typedef unsigned chtype; -typedef unsigned mmask_t; -#else -typedef uint32_t chtype; -typedef uint32_t mmask_t; -#endif - -/* - * We need FILE, etc. Include this before checking any feature symbols. - */ -#include - -/* - * With XPG4, you must define _XOPEN_SOURCE_EXTENDED, it is redundant (or - * conflicting) when _XOPEN_SOURCE is 500 or greater. If NCURSES_WIDECHAR is - * not already defined, e.g., if the platform relies upon nonstandard feature - * test macros, define it at this point if the standard feature test macros - * indicate that it should be defined. - */ -#ifndef NCURSES_WIDECHAR -#if defined(_XOPEN_SOURCE_EXTENDED) || (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0 >= 500)) -#define NCURSES_WIDECHAR 1 -#else -#define NCURSES_WIDECHAR 0 -#endif -#endif /* NCURSES_WIDECHAR */ - -#include /* we need va_list */ -#if NCURSES_WIDECHAR -#include /* we want wchar_t */ -#endif - -/* X/Open and SVr4 specify that curses implements 'bool'. However, C++ may also - * implement it. If so, we must use the C++ compiler's type to avoid conflict - * with other interfaces. - * - * A further complication is that may declare 'bool' to be a - * different type, such as an enum which is not necessarily compatible with - * C++. If we have , make 'bool' a macro, so users may #undef it. - * Otherwise, let it remain a typedef to avoid conflicts with other #define's. - * In either case, make a typedef for NCURSES_BOOL which can be used if needed - * from either C or C++. - */ - -#undef TRUE -#define TRUE 1 - -#undef FALSE -#define FALSE 0 - -typedef unsigned char NCURSES_BOOL; - -#if defined(__cplusplus) /* __cplusplus, etc. */ - -/* use the C++ compiler's bool type */ -#define NCURSES_BOOL bool - -#else /* c89, c99, etc. */ - -#if NCURSES_ENABLE_STDBOOL_H -#include -/* use whatever the C compiler decides bool really is */ -#define NCURSES_BOOL bool -#else -/* there is no predefined bool - use our own */ -#undef bool -#define bool NCURSES_BOOL -#endif - -#endif /* !__cplusplus, etc. */ - -#ifdef __cplusplus -extern "C" { -#define NCURSES_CAST(type,value) static_cast(value) -#else -#define NCURSES_CAST(type,value) (type)(value) -#endif - -#define NCURSES_OK_ADDR(p) (0 != NCURSES_CAST(const void *, (p))) - -/* - * X/Open attributes. In the ncurses implementation, they are identical to the - * A_ attributes. - */ -#define WA_ATTRIBUTES A_ATTRIBUTES -#define WA_NORMAL A_NORMAL -#define WA_STANDOUT A_STANDOUT -#define WA_UNDERLINE A_UNDERLINE -#define WA_REVERSE A_REVERSE -#define WA_BLINK A_BLINK -#define WA_DIM A_DIM -#define WA_BOLD A_BOLD -#define WA_ALTCHARSET A_ALTCHARSET -#define WA_INVIS A_INVIS -#define WA_PROTECT A_PROTECT -#define WA_HORIZONTAL A_HORIZONTAL -#define WA_LEFT A_LEFT -#define WA_LOW A_LOW -#define WA_RIGHT A_RIGHT -#define WA_TOP A_TOP -#define WA_VERTICAL A_VERTICAL - -#if 1 -#define WA_ITALIC A_ITALIC /* ncurses extension */ -#endif - -/* colors */ -#define COLOR_BLACK 0 -#define COLOR_RED 1 -#define COLOR_GREEN 2 -#define COLOR_YELLOW 3 -#define COLOR_BLUE 4 -#define COLOR_MAGENTA 5 -#define COLOR_CYAN 6 -#define COLOR_WHITE 7 - -/* line graphics */ - -#if 0 || NCURSES_REENTRANT -NCURSES_WRAPPED_VAR(chtype*, acs_map); -#define acs_map NCURSES_PUBLIC_VAR(acs_map()) -#else -extern NCURSES_EXPORT_VAR(chtype) acs_map[]; -#endif - -#define NCURSES_ACS(c) (acs_map[NCURSES_CAST(unsigned char,(c))]) - -/* VT100 symbols begin here */ -#define ACS_ULCORNER NCURSES_ACS('l') /* upper left corner */ -#define ACS_LLCORNER NCURSES_ACS('m') /* lower left corner */ -#define ACS_URCORNER NCURSES_ACS('k') /* upper right corner */ -#define ACS_LRCORNER NCURSES_ACS('j') /* lower right corner */ -#define ACS_LTEE NCURSES_ACS('t') /* tee pointing right */ -#define ACS_RTEE NCURSES_ACS('u') /* tee pointing left */ -#define ACS_BTEE NCURSES_ACS('v') /* tee pointing up */ -#define ACS_TTEE NCURSES_ACS('w') /* tee pointing down */ -#define ACS_HLINE NCURSES_ACS('q') /* horizontal line */ -#define ACS_VLINE NCURSES_ACS('x') /* vertical line */ -#define ACS_PLUS NCURSES_ACS('n') /* large plus or crossover */ -#define ACS_S1 NCURSES_ACS('o') /* scan line 1 */ -#define ACS_S9 NCURSES_ACS('s') /* scan line 9 */ -#define ACS_DIAMOND NCURSES_ACS('`') /* diamond */ -#define ACS_CKBOARD NCURSES_ACS('a') /* checker board (stipple) */ -#define ACS_DEGREE NCURSES_ACS('f') /* degree symbol */ -#define ACS_PLMINUS NCURSES_ACS('g') /* plus/minus */ -#define ACS_BULLET NCURSES_ACS('~') /* bullet */ -/* Teletype 5410v1 symbols begin here */ -#define ACS_LARROW NCURSES_ACS(',') /* arrow pointing left */ -#define ACS_RARROW NCURSES_ACS('+') /* arrow pointing right */ -#define ACS_DARROW NCURSES_ACS('.') /* arrow pointing down */ -#define ACS_UARROW NCURSES_ACS('-') /* arrow pointing up */ -#define ACS_BOARD NCURSES_ACS('h') /* board of squares */ -#define ACS_LANTERN NCURSES_ACS('i') /* lantern symbol */ -#define ACS_BLOCK NCURSES_ACS('0') /* solid square block */ -/* - * These aren't documented, but a lot of System Vs have them anyway - * (you can spot pprryyzz{{||}} in a lot of AT&T terminfo strings). - * The ACS_names may not match AT&T's, our source didn't know them. - */ -#define ACS_S3 NCURSES_ACS('p') /* scan line 3 */ -#define ACS_S7 NCURSES_ACS('r') /* scan line 7 */ -#define ACS_LEQUAL NCURSES_ACS('y') /* less/equal */ -#define ACS_GEQUAL NCURSES_ACS('z') /* greater/equal */ -#define ACS_PI NCURSES_ACS('{') /* Pi */ -#define ACS_NEQUAL NCURSES_ACS('|') /* not equal */ -#define ACS_STERLING NCURSES_ACS('}') /* UK pound sign */ - -/* - * Line drawing ACS names are of the form ACS_trbl, where t is the top, r - * is the right, b is the bottom, and l is the left. t, r, b, and l might - * be B (blank), S (single), D (double), or T (thick). The subset defined - * here only uses B and S. - */ -#define ACS_BSSB ACS_ULCORNER -#define ACS_SSBB ACS_LLCORNER -#define ACS_BBSS ACS_URCORNER -#define ACS_SBBS ACS_LRCORNER -#define ACS_SBSS ACS_RTEE -#define ACS_SSSB ACS_LTEE -#define ACS_SSBS ACS_BTEE -#define ACS_BSSS ACS_TTEE -#define ACS_BSBS ACS_HLINE -#define ACS_SBSB ACS_VLINE -#define ACS_SSSS ACS_PLUS - -#undef ERR -#define ERR (-1) - -#undef OK -#define OK (0) - -/* values for the _flags member */ -#define _SUBWIN 0x01 /* is this a sub-window? */ -#define _ENDLINE 0x02 /* is the window flush right? */ -#define _FULLWIN 0x04 /* is the window full-screen? */ -#define _SCROLLWIN 0x08 /* bottom edge is at screen bottom? */ -#define _ISPAD 0x10 /* is this window a pad? */ -#define _HASMOVED 0x20 /* has cursor moved since last refresh? */ -#define _WRAPPED 0x40 /* cursor was just wrappped */ - -/* - * this value is used in the firstchar and lastchar fields to mark - * unchanged lines - */ -#define _NOCHANGE -1 - -/* - * this value is used in the oldindex field to mark lines created by insertions - * and scrolls. - */ -#define _NEWINDEX -1 - -#ifdef NCURSES_INTERNALS -#undef SCREEN -#define SCREEN struct screen -SCREEN; -#else -typedef struct screen SCREEN; -#endif - -typedef struct _win_st WINDOW; - -typedef chtype attr_t; /* ...must be at least as wide as chtype */ - -#if NCURSES_WIDECHAR - -#if 0 -#ifdef mblen /* libutf8.h defines it w/o undefining first */ -#undef mblen -#endif -#include -#endif - -#if 0 -#include /* ...to get mbstate_t, etc. */ -#endif - -#if 0 -typedef unsigned short wchar_t; -#endif - -#if 0 -typedef unsigned int wint_t; -#endif - -/* - * cchar_t stores an array of CCHARW_MAX wide characters. The first is - * normally a spacing character. The others are non-spacing. If those - * (spacing and nonspacing) do not fill the array, a null L'\0' follows. - * Otherwise, a null is assumed to follow when extracting via getcchar(). - */ -#define CCHARW_MAX 5 -typedef struct -{ - attr_t attr; - wchar_t chars[CCHARW_MAX]; -#if 0 -#undef NCURSES_EXT_COLORS -#define NCURSES_EXT_COLORS 20211021 - int ext_color; /* color pair, must be more than 16-bits */ -#endif -} -cchar_t; - -#endif /* NCURSES_WIDECHAR */ - -#if !NCURSES_OPAQUE -struct ldat; - -struct _win_st -{ - NCURSES_SIZE_T _cury, _curx; /* current cursor position */ - - /* window location and size */ - NCURSES_SIZE_T _maxy, _maxx; /* maximums of x and y, NOT window size */ - NCURSES_SIZE_T _begy, _begx; /* screen coords of upper-left-hand corner */ - - short _flags; /* window state flags */ - - /* attribute tracking */ - attr_t _attrs; /* current attribute for non-space character */ - chtype _bkgd; /* current background char/attribute pair */ - - /* option values set by user */ - bool _notimeout; /* no time out on function-key entry? */ - bool _clear; /* consider all data in the window invalid? */ - bool _leaveok; /* OK to not reset cursor on exit? */ - bool _scroll; /* OK to scroll this window? */ - bool _idlok; /* OK to use insert/delete line? */ - bool _idcok; /* OK to use insert/delete char? */ - bool _immed; /* window in immed mode? (not yet used) */ - bool _sync; /* window in sync mode? */ - bool _use_keypad; /* process function keys into KEY_ symbols? */ - int _delay; /* 0 = nodelay, <0 = blocking, >0 = delay */ - - struct ldat *_line; /* the actual line data */ - - /* global screen state */ - NCURSES_SIZE_T _regtop; /* top line of scrolling region */ - NCURSES_SIZE_T _regbottom; /* bottom line of scrolling region */ - - /* these are used only if this is a sub-window */ - int _parx; /* x coordinate of this window in parent */ - int _pary; /* y coordinate of this window in parent */ - WINDOW *_parent; /* pointer to parent if a sub-window */ - - /* these are used only if this is a pad */ - struct pdat - { - NCURSES_SIZE_T _pad_y, _pad_x; - NCURSES_SIZE_T _pad_top, _pad_left; - NCURSES_SIZE_T _pad_bottom, _pad_right; - } _pad; - - NCURSES_SIZE_T _yoffset; /* real begy is _begy + _yoffset */ - -#if NCURSES_WIDECHAR - cchar_t _bkgrnd; /* current background char/attribute pair */ -#if 0 - int _color; /* current color-pair for non-space character */ -#endif -#endif -}; -#endif /* NCURSES_OPAQUE */ - -/* - * GCC (and some other compilers) define '__attribute__'; we're using this - * macro to alert the compiler to flag inconsistencies in printf/scanf-like - * function calls. Just in case '__attribute__' isn't defined, make a dummy. - * Old versions of G++ do not accept it anyway, at least not consistently with - * GCC. - */ -#if !(defined(__GNUC__) || defined(__GNUG__) || defined(__attribute__)) -#define __attribute__(p) /* nothing */ -#endif - -/* - * We cannot define these in ncurses_cfg.h, since they require parameters to be - * passed (that is non-portable). - */ -#ifndef GCC_PRINTFLIKE -#ifndef printf -#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var))) -#else -#define GCC_PRINTFLIKE(fmt,var) /*nothing*/ -#endif -#endif - -#ifndef GCC_SCANFLIKE -#ifndef scanf -#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var))) -#else -#define GCC_SCANFLIKE(fmt,var) /*nothing*/ -#endif -#endif - -#ifndef GCC_NORETURN -#define GCC_NORETURN /* nothing */ -#endif - -#ifndef GCC_UNUSED -#define GCC_UNUSED /* nothing */ -#endif - -#undef GCC_DEPRECATED -#if (__GNUC__ - 0 > 3 || (__GNUC__ - 0 == 3 && __GNUC_MINOR__ - 0 >= 2)) && !defined(NCURSES_INTERNALS) -#define GCC_DEPRECATED(msg) __attribute__((deprecated)) -#else -#define GCC_DEPRECATED(msg) /* nothing */ -#endif - -/* - * Curses uses a helper function. Define our type for this to simplify - * extending it for the sp-funcs feature. - */ -typedef int (*NCURSES_OUTC)(int); - -/* - * Function prototypes. This is the complete X/Open Curses list of required - * functions. Those marked `generated' will have sources generated from the - * macro definitions later in this file, in order to satisfy XPG4.2 - * requirements. - */ - -extern NCURSES_EXPORT(int) addch (const chtype); /* generated */ -extern NCURSES_EXPORT(int) addchnstr (const chtype *, int); /* generated */ -extern NCURSES_EXPORT(int) addchstr (const chtype *); /* generated */ -extern NCURSES_EXPORT(int) addnstr (const char *, int); /* generated */ -extern NCURSES_EXPORT(int) addstr (const char *); /* generated */ -extern NCURSES_EXPORT(int) attroff (NCURSES_ATTR_T); /* generated */ -extern NCURSES_EXPORT(int) attron (NCURSES_ATTR_T); /* generated */ -extern NCURSES_EXPORT(int) attrset (NCURSES_ATTR_T); /* generated */ -extern NCURSES_EXPORT(int) attr_get (attr_t *, NCURSES_PAIRS_T *, void *); /* generated */ -extern NCURSES_EXPORT(int) attr_off (attr_t, void *); /* generated */ -extern NCURSES_EXPORT(int) attr_on (attr_t, void *); /* generated */ -extern NCURSES_EXPORT(int) attr_set (attr_t, NCURSES_PAIRS_T, void *); /* generated */ -extern NCURSES_EXPORT(int) baudrate (void); /* implemented */ -extern NCURSES_EXPORT(int) beep (void); /* implemented */ -extern NCURSES_EXPORT(int) bkgd (chtype); /* generated */ -extern NCURSES_EXPORT(void) bkgdset (chtype); /* generated */ -extern NCURSES_EXPORT(int) border (chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype); /* generated */ -extern NCURSES_EXPORT(int) box (WINDOW *, chtype, chtype); /* generated */ -extern NCURSES_EXPORT(bool) can_change_color (void); /* implemented */ -extern NCURSES_EXPORT(int) cbreak (void); /* implemented */ -extern NCURSES_EXPORT(int) chgat (int, attr_t, NCURSES_PAIRS_T, const void *); /* generated */ -extern NCURSES_EXPORT(int) clear (void); /* generated */ -extern NCURSES_EXPORT(int) clearok (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(int) clrtobot (void); /* generated */ -extern NCURSES_EXPORT(int) clrtoeol (void); /* generated */ -extern NCURSES_EXPORT(int) color_content (NCURSES_COLOR_T,NCURSES_COLOR_T*,NCURSES_COLOR_T*,NCURSES_COLOR_T*); /* implemented */ -extern NCURSES_EXPORT(int) color_set (NCURSES_PAIRS_T,void*); /* generated */ -extern NCURSES_EXPORT(int) COLOR_PAIR (int); /* generated */ -extern NCURSES_EXPORT(int) copywin (const WINDOW*,WINDOW*,int,int,int,int,int,int,int); /* implemented */ -extern NCURSES_EXPORT(int) curs_set (int); /* implemented */ -extern NCURSES_EXPORT(int) def_prog_mode (void); /* implemented */ -extern NCURSES_EXPORT(int) def_shell_mode (void); /* implemented */ -extern NCURSES_EXPORT(int) delay_output (int); /* implemented */ -extern NCURSES_EXPORT(int) delch (void); /* generated */ -extern NCURSES_EXPORT(void) delscreen (SCREEN *); /* implemented */ -extern NCURSES_EXPORT(int) delwin (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) deleteln (void); /* generated */ -extern NCURSES_EXPORT(WINDOW *) derwin (WINDOW *,int,int,int,int); /* implemented */ -extern NCURSES_EXPORT(int) doupdate (void); /* implemented */ -extern NCURSES_EXPORT(WINDOW *) dupwin (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) echo (void); /* implemented */ -extern NCURSES_EXPORT(int) echochar (const chtype); /* generated */ -extern NCURSES_EXPORT(int) erase (void); /* generated */ -extern NCURSES_EXPORT(int) endwin (void); /* implemented */ -extern NCURSES_EXPORT(char) erasechar (void); /* implemented */ -extern NCURSES_EXPORT(void) filter (void); /* implemented */ -extern NCURSES_EXPORT(int) flash (void); /* implemented */ -extern NCURSES_EXPORT(int) flushinp (void); /* implemented */ -extern NCURSES_EXPORT(chtype) getbkgd (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getch (void); /* generated */ -extern NCURSES_EXPORT(int) getnstr (char *, int); /* generated */ -extern NCURSES_EXPORT(int) getstr (char *); /* generated */ -extern NCURSES_EXPORT(WINDOW *) getwin (FILE *); /* implemented */ -extern NCURSES_EXPORT(int) halfdelay (int); /* implemented */ -extern NCURSES_EXPORT(bool) has_colors (void); /* implemented */ -extern NCURSES_EXPORT(bool) has_ic (void); /* implemented */ -extern NCURSES_EXPORT(bool) has_il (void); /* implemented */ -extern NCURSES_EXPORT(int) hline (chtype, int); /* generated */ -extern NCURSES_EXPORT(void) idcok (WINDOW *, bool); /* implemented */ -extern NCURSES_EXPORT(int) idlok (WINDOW *, bool); /* implemented */ -extern NCURSES_EXPORT(void) immedok (WINDOW *, bool); /* implemented */ -extern NCURSES_EXPORT(chtype) inch (void); /* generated */ -extern NCURSES_EXPORT(int) inchnstr (chtype *, int); /* generated */ -extern NCURSES_EXPORT(int) inchstr (chtype *); /* generated */ -extern NCURSES_EXPORT(WINDOW *) initscr (void); /* implemented */ -extern NCURSES_EXPORT(int) init_color (NCURSES_COLOR_T,NCURSES_COLOR_T,NCURSES_COLOR_T,NCURSES_COLOR_T); /* implemented */ -extern NCURSES_EXPORT(int) init_pair (NCURSES_PAIRS_T,NCURSES_COLOR_T,NCURSES_COLOR_T); /* implemented */ -extern NCURSES_EXPORT(int) innstr (char *, int); /* generated */ -extern NCURSES_EXPORT(int) insch (chtype); /* generated */ -extern NCURSES_EXPORT(int) insdelln (int); /* generated */ -extern NCURSES_EXPORT(int) insertln (void); /* generated */ -extern NCURSES_EXPORT(int) insnstr (const char *, int); /* generated */ -extern NCURSES_EXPORT(int) insstr (const char *); /* generated */ -extern NCURSES_EXPORT(int) instr (char *); /* generated */ -extern NCURSES_EXPORT(int) intrflush (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(bool) isendwin (void); /* implemented */ -extern NCURSES_EXPORT(bool) is_linetouched (WINDOW *,int); /* implemented */ -extern NCURSES_EXPORT(bool) is_wintouched (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(NCURSES_CONST char *) keyname (int); /* implemented */ -extern NCURSES_EXPORT(int) keypad (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(char) killchar (void); /* implemented */ -extern NCURSES_EXPORT(int) leaveok (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(char *) longname (void); /* implemented */ -extern NCURSES_EXPORT(int) meta (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(int) move (int, int); /* generated */ -extern NCURSES_EXPORT(int) mvaddch (int, int, const chtype); /* generated */ -extern NCURSES_EXPORT(int) mvaddchnstr (int, int, const chtype *, int); /* generated */ -extern NCURSES_EXPORT(int) mvaddchstr (int, int, const chtype *); /* generated */ -extern NCURSES_EXPORT(int) mvaddnstr (int, int, const char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvaddstr (int, int, const char *); /* generated */ -extern NCURSES_EXPORT(int) mvchgat (int, int, int, attr_t, NCURSES_PAIRS_T, const void *); /* generated */ -extern NCURSES_EXPORT(int) mvcur (int,int,int,int); /* implemented */ -extern NCURSES_EXPORT(int) mvdelch (int, int); /* generated */ -extern NCURSES_EXPORT(int) mvderwin (WINDOW *, int, int); /* implemented */ -extern NCURSES_EXPORT(int) mvgetch (int, int); /* generated */ -extern NCURSES_EXPORT(int) mvgetnstr (int, int, char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvgetstr (int, int, char *); /* generated */ -extern NCURSES_EXPORT(int) mvhline (int, int, chtype, int); /* generated */ -extern NCURSES_EXPORT(chtype) mvinch (int, int); /* generated */ -extern NCURSES_EXPORT(int) mvinchnstr (int, int, chtype *, int); /* generated */ -extern NCURSES_EXPORT(int) mvinchstr (int, int, chtype *); /* generated */ -extern NCURSES_EXPORT(int) mvinnstr (int, int, char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvinsch (int, int, chtype); /* generated */ -extern NCURSES_EXPORT(int) mvinsnstr (int, int, const char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvinsstr (int, int, const char *); /* generated */ -extern NCURSES_EXPORT(int) mvinstr (int, int, char *); /* generated */ -extern NCURSES_EXPORT(int) mvprintw (int,int, const char *,...) /* implemented */ - GCC_PRINTFLIKE(3,4); -extern NCURSES_EXPORT(int) mvscanw (int,int, const char *,...) /* implemented */ - GCC_SCANFLIKE(3,4); -extern NCURSES_EXPORT(int) mvvline (int, int, chtype, int); /* generated */ -extern NCURSES_EXPORT(int) mvwaddch (WINDOW *, int, int, const chtype); /* generated */ -extern NCURSES_EXPORT(int) mvwaddchnstr (WINDOW *, int, int, const chtype *, int);/* generated */ -extern NCURSES_EXPORT(int) mvwaddchstr (WINDOW *, int, int, const chtype *); /* generated */ -extern NCURSES_EXPORT(int) mvwaddnstr (WINDOW *, int, int, const char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvwaddstr (WINDOW *, int, int, const char *); /* generated */ -extern NCURSES_EXPORT(int) mvwchgat (WINDOW *, int, int, int, attr_t, NCURSES_PAIRS_T, const void *);/* generated */ -extern NCURSES_EXPORT(int) mvwdelch (WINDOW *, int, int); /* generated */ -extern NCURSES_EXPORT(int) mvwgetch (WINDOW *, int, int); /* generated */ -extern NCURSES_EXPORT(int) mvwgetnstr (WINDOW *, int, int, char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvwgetstr (WINDOW *, int, int, char *); /* generated */ -extern NCURSES_EXPORT(int) mvwhline (WINDOW *, int, int, chtype, int); /* generated */ -extern NCURSES_EXPORT(int) mvwin (WINDOW *,int,int); /* implemented */ -extern NCURSES_EXPORT(chtype) mvwinch (WINDOW *, int, int); /* generated */ -extern NCURSES_EXPORT(int) mvwinchnstr (WINDOW *, int, int, chtype *, int); /* generated */ -extern NCURSES_EXPORT(int) mvwinchstr (WINDOW *, int, int, chtype *); /* generated */ -extern NCURSES_EXPORT(int) mvwinnstr (WINDOW *, int, int, char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvwinsch (WINDOW *, int, int, chtype); /* generated */ -extern NCURSES_EXPORT(int) mvwinsnstr (WINDOW *, int, int, const char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvwinsstr (WINDOW *, int, int, const char *); /* generated */ -extern NCURSES_EXPORT(int) mvwinstr (WINDOW *, int, int, char *); /* generated */ -extern NCURSES_EXPORT(int) mvwprintw (WINDOW*,int,int, const char *,...) /* implemented */ - GCC_PRINTFLIKE(4,5); -extern NCURSES_EXPORT(int) mvwscanw (WINDOW *,int,int, const char *,...) /* implemented */ - GCC_SCANFLIKE(4,5); -extern NCURSES_EXPORT(int) mvwvline (WINDOW *,int, int, chtype, int); /* generated */ -extern NCURSES_EXPORT(int) napms (int); /* implemented */ -extern NCURSES_EXPORT(WINDOW *) newpad (int,int); /* implemented */ -extern NCURSES_EXPORT(SCREEN *) newterm (const char *,FILE *,FILE *); /* implemented */ -extern NCURSES_EXPORT(WINDOW *) newwin (int,int,int,int); /* implemented */ -extern NCURSES_EXPORT(int) nl (void); /* implemented */ -extern NCURSES_EXPORT(int) nocbreak (void); /* implemented */ -extern NCURSES_EXPORT(int) nodelay (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(int) noecho (void); /* implemented */ -extern NCURSES_EXPORT(int) nonl (void); /* implemented */ -extern NCURSES_EXPORT(void) noqiflush (void); /* implemented */ -extern NCURSES_EXPORT(int) noraw (void); /* implemented */ -extern NCURSES_EXPORT(int) notimeout (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(int) overlay (const WINDOW*,WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) overwrite (const WINDOW*,WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) pair_content (NCURSES_PAIRS_T,NCURSES_COLOR_T*,NCURSES_COLOR_T*); /* implemented */ -extern NCURSES_EXPORT(int) PAIR_NUMBER (int); /* generated */ -extern NCURSES_EXPORT(int) pechochar (WINDOW *, const chtype); /* implemented */ -extern NCURSES_EXPORT(int) pnoutrefresh (WINDOW*,int,int,int,int,int,int);/* implemented */ -extern NCURSES_EXPORT(int) prefresh (WINDOW *,int,int,int,int,int,int); /* implemented */ -extern NCURSES_EXPORT(int) printw (const char *,...) /* implemented */ - GCC_PRINTFLIKE(1,2); -extern NCURSES_EXPORT(int) putwin (WINDOW *, FILE *); /* implemented */ -extern NCURSES_EXPORT(void) qiflush (void); /* implemented */ -extern NCURSES_EXPORT(int) raw (void); /* implemented */ -extern NCURSES_EXPORT(int) redrawwin (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) refresh (void); /* generated */ -extern NCURSES_EXPORT(int) resetty (void); /* implemented */ -extern NCURSES_EXPORT(int) reset_prog_mode (void); /* implemented */ -extern NCURSES_EXPORT(int) reset_shell_mode (void); /* implemented */ -extern NCURSES_EXPORT(int) ripoffline (int, int (*)(WINDOW *, int)); /* implemented */ -extern NCURSES_EXPORT(int) savetty (void); /* implemented */ -extern NCURSES_EXPORT(int) scanw (const char *,...) /* implemented */ - GCC_SCANFLIKE(1,2); -extern NCURSES_EXPORT(int) scr_dump (const char *); /* implemented */ -extern NCURSES_EXPORT(int) scr_init (const char *); /* implemented */ -extern NCURSES_EXPORT(int) scrl (int); /* generated */ -extern NCURSES_EXPORT(int) scroll (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) scrollok (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(int) scr_restore (const char *); /* implemented */ -extern NCURSES_EXPORT(int) scr_set (const char *); /* implemented */ -extern NCURSES_EXPORT(int) setscrreg (int,int); /* generated */ -extern NCURSES_EXPORT(SCREEN *) set_term (SCREEN *); /* implemented */ -extern NCURSES_EXPORT(int) slk_attroff (const chtype); /* implemented */ -extern NCURSES_EXPORT(int) slk_attr_off (const attr_t, void *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) slk_attron (const chtype); /* implemented */ -extern NCURSES_EXPORT(int) slk_attr_on (attr_t,void*); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) slk_attrset (const chtype); /* implemented */ -extern NCURSES_EXPORT(attr_t) slk_attr (void); /* implemented */ -extern NCURSES_EXPORT(int) slk_attr_set (const attr_t,NCURSES_PAIRS_T,void*); /* implemented */ -extern NCURSES_EXPORT(int) slk_clear (void); /* implemented */ -extern NCURSES_EXPORT(int) slk_color (NCURSES_PAIRS_T); /* implemented */ -extern NCURSES_EXPORT(int) slk_init (int); /* implemented */ -extern NCURSES_EXPORT(char *) slk_label (int); /* implemented */ -extern NCURSES_EXPORT(int) slk_noutrefresh (void); /* implemented */ -extern NCURSES_EXPORT(int) slk_refresh (void); /* implemented */ -extern NCURSES_EXPORT(int) slk_restore (void); /* implemented */ -extern NCURSES_EXPORT(int) slk_set (int,const char *,int); /* implemented */ -extern NCURSES_EXPORT(int) slk_touch (void); /* implemented */ -extern NCURSES_EXPORT(int) standout (void); /* generated */ -extern NCURSES_EXPORT(int) standend (void); /* generated */ -extern NCURSES_EXPORT(int) start_color (void); /* implemented */ -extern NCURSES_EXPORT(WINDOW *) subpad (WINDOW *, int, int, int, int); /* implemented */ -extern NCURSES_EXPORT(WINDOW *) subwin (WINDOW *, int, int, int, int); /* implemented */ -extern NCURSES_EXPORT(int) syncok (WINDOW *, bool); /* implemented */ -extern NCURSES_EXPORT(chtype) termattrs (void); /* implemented */ -extern NCURSES_EXPORT(char *) termname (void); /* implemented */ -extern NCURSES_EXPORT(void) timeout (int); /* generated */ -extern NCURSES_EXPORT(int) touchline (WINDOW *, int, int); /* generated */ -extern NCURSES_EXPORT(int) touchwin (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) typeahead (int); /* implemented */ -extern NCURSES_EXPORT(int) ungetch (int); /* implemented */ -extern NCURSES_EXPORT(int) untouchwin (WINDOW *); /* generated */ -extern NCURSES_EXPORT(void) use_env (bool); /* implemented */ -extern NCURSES_EXPORT(void) use_tioctl (bool); /* implemented */ -extern NCURSES_EXPORT(int) vidattr (chtype); /* implemented */ -extern NCURSES_EXPORT(int) vidputs (chtype, NCURSES_OUTC); /* implemented */ -extern NCURSES_EXPORT(int) vline (chtype, int); /* generated */ -extern NCURSES_EXPORT(int) vwprintw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_printw) /* implemented */ - GCC_PRINTFLIKE(2,0); -extern NCURSES_EXPORT(int) vw_printw (WINDOW *, const char *, va_list) /* implemented */ - GCC_PRINTFLIKE(2,0); -extern NCURSES_EXPORT(int) vwscanw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_scanw) /* implemented */ - GCC_SCANFLIKE(2,0); -extern NCURSES_EXPORT(int) vw_scanw (WINDOW *, const char *, va_list) /* implemented */ - GCC_SCANFLIKE(2,0); -extern NCURSES_EXPORT(int) waddch (WINDOW *, const chtype); /* implemented */ -extern NCURSES_EXPORT(int) waddchnstr (WINDOW *,const chtype *,int); /* implemented */ -extern NCURSES_EXPORT(int) waddchstr (WINDOW *,const chtype *); /* generated */ -extern NCURSES_EXPORT(int) waddnstr (WINDOW *,const char *,int); /* implemented */ -extern NCURSES_EXPORT(int) waddstr (WINDOW *,const char *); /* generated */ -extern NCURSES_EXPORT(int) wattron (WINDOW *, int); /* generated */ -extern NCURSES_EXPORT(int) wattroff (WINDOW *, int); /* generated */ -extern NCURSES_EXPORT(int) wattrset (WINDOW *, int); /* generated */ -extern NCURSES_EXPORT(int) wattr_get (WINDOW *, attr_t *, NCURSES_PAIRS_T *, void *); /* generated */ -extern NCURSES_EXPORT(int) wattr_on (WINDOW *, attr_t, void *); /* implemented */ -extern NCURSES_EXPORT(int) wattr_off (WINDOW *, attr_t, void *); /* implemented */ -extern NCURSES_EXPORT(int) wattr_set (WINDOW *, attr_t, NCURSES_PAIRS_T, void *); /* generated */ -extern NCURSES_EXPORT(int) wbkgd (WINDOW *, chtype); /* implemented */ -extern NCURSES_EXPORT(void) wbkgdset (WINDOW *,chtype); /* implemented */ -extern NCURSES_EXPORT(int) wborder (WINDOW *,chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype); /* implemented */ -extern NCURSES_EXPORT(int) wchgat (WINDOW *, int, attr_t, NCURSES_PAIRS_T, const void *);/* implemented */ -extern NCURSES_EXPORT(int) wclear (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wclrtobot (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wclrtoeol (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wcolor_set (WINDOW*,NCURSES_PAIRS_T,void*); /* implemented */ -extern NCURSES_EXPORT(void) wcursyncup (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wdelch (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wdeleteln (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) wechochar (WINDOW *, const chtype); /* implemented */ -extern NCURSES_EXPORT(int) werase (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wgetch (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wgetnstr (WINDOW *,char *,int); /* implemented */ -extern NCURSES_EXPORT(int) wgetstr (WINDOW *, char *); /* generated */ -extern NCURSES_EXPORT(int) whline (WINDOW *, chtype, int); /* implemented */ -extern NCURSES_EXPORT(chtype) winch (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) winchnstr (WINDOW *, chtype *, int); /* implemented */ -extern NCURSES_EXPORT(int) winchstr (WINDOW *, chtype *); /* generated */ -extern NCURSES_EXPORT(int) winnstr (WINDOW *, char *, int); /* implemented */ -extern NCURSES_EXPORT(int) winsch (WINDOW *, chtype); /* implemented */ -extern NCURSES_EXPORT(int) winsdelln (WINDOW *,int); /* implemented */ -extern NCURSES_EXPORT(int) winsertln (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) winsnstr (WINDOW *, const char *,int); /* implemented */ -extern NCURSES_EXPORT(int) winsstr (WINDOW *, const char *); /* generated */ -extern NCURSES_EXPORT(int) winstr (WINDOW *, char *); /* generated */ -extern NCURSES_EXPORT(int) wmove (WINDOW *,int,int); /* implemented */ -extern NCURSES_EXPORT(int) wnoutrefresh (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wprintw (WINDOW *, const char *,...) /* implemented */ - GCC_PRINTFLIKE(2,3); -extern NCURSES_EXPORT(int) wredrawln (WINDOW *,int,int); /* implemented */ -extern NCURSES_EXPORT(int) wrefresh (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wscanw (WINDOW *, const char *,...) /* implemented */ - GCC_SCANFLIKE(2,3); -extern NCURSES_EXPORT(int) wscrl (WINDOW *,int); /* implemented */ -extern NCURSES_EXPORT(int) wsetscrreg (WINDOW *,int,int); /* implemented */ -extern NCURSES_EXPORT(int) wstandout (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) wstandend (WINDOW *); /* generated */ -extern NCURSES_EXPORT(void) wsyncdown (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(void) wsyncup (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(void) wtimeout (WINDOW *,int); /* implemented */ -extern NCURSES_EXPORT(int) wtouchln (WINDOW *,int,int,int); /* implemented */ -extern NCURSES_EXPORT(int) wvline (WINDOW *,chtype,int); /* implemented */ - -/* - * These are also declared in : - */ -extern NCURSES_EXPORT(int) tigetflag (const char *); /* implemented */ -extern NCURSES_EXPORT(int) tigetnum (const char *); /* implemented */ -extern NCURSES_EXPORT(char *) tigetstr (const char *); /* implemented */ -extern NCURSES_EXPORT(int) putp (const char *); /* implemented */ - -#if NCURSES_TPARM_VARARGS -extern NCURSES_EXPORT(char *) tparm (const char *, ...); /* special */ -#else -extern NCURSES_EXPORT(char *) tparm (const char *, NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG); /* special */ -#endif - -extern NCURSES_EXPORT(char *) tiparm (const char *, ...); /* special */ - -/* - * These functions are not in X/Open, but we use them in macro definitions: - */ -extern NCURSES_EXPORT(int) getattrs (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getcurx (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getcury (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getbegx (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getbegy (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getmaxx (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getmaxy (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getparx (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getpary (const WINDOW *); /* generated */ - -/* - * vid_attr() was implemented originally based on a draft of X/Open curses. - */ -#if !NCURSES_WIDECHAR -#define vid_attr(a,pair,opts) vidattr(a) -#endif - -/* - * These functions are extensions - not in X/Open Curses. - */ -#if 1 -#undef NCURSES_EXT_FUNCS -#define NCURSES_EXT_FUNCS 20211021 -typedef int (*NCURSES_WINDOW_CB)(WINDOW *, void *); -typedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *); -extern NCURSES_EXPORT(bool) is_term_resized (int, int); -extern NCURSES_EXPORT(char *) keybound (int, int); -extern NCURSES_EXPORT(const char *) curses_version (void); -extern NCURSES_EXPORT(int) alloc_pair (int, int); -extern NCURSES_EXPORT(int) assume_default_colors (int, int); -extern NCURSES_EXPORT(int) define_key (const char *, int); -extern NCURSES_EXPORT(int) extended_color_content(int, int *, int *, int *); -extern NCURSES_EXPORT(int) extended_pair_content(int, int *, int *); -extern NCURSES_EXPORT(int) extended_slk_color(int); -extern NCURSES_EXPORT(int) find_pair (int, int); -extern NCURSES_EXPORT(int) free_pair (int); -extern NCURSES_EXPORT(int) get_escdelay (void); -extern NCURSES_EXPORT(int) init_extended_color(int, int, int, int); -extern NCURSES_EXPORT(int) init_extended_pair(int, int, int); -extern NCURSES_EXPORT(int) key_defined (const char *); -extern NCURSES_EXPORT(int) keyok (int, bool); -extern NCURSES_EXPORT(void) reset_color_pairs (void); -extern NCURSES_EXPORT(int) resize_term (int, int); -extern NCURSES_EXPORT(int) resizeterm (int, int); -extern NCURSES_EXPORT(int) set_escdelay (int); -extern NCURSES_EXPORT(int) set_tabsize (int); -extern NCURSES_EXPORT(int) use_default_colors (void); -extern NCURSES_EXPORT(int) use_extended_names (bool); -extern NCURSES_EXPORT(int) use_legacy_coding (int); -extern NCURSES_EXPORT(int) use_screen (SCREEN *, NCURSES_SCREEN_CB, void *); -extern NCURSES_EXPORT(int) use_window (WINDOW *, NCURSES_WINDOW_CB, void *); -extern NCURSES_EXPORT(int) wresize (WINDOW *, int, int); -extern NCURSES_EXPORT(void) nofilter(void); - -/* - * These extensions provide access to information stored in the WINDOW even - * when NCURSES_OPAQUE is set: - */ -extern NCURSES_EXPORT(WINDOW *) wgetparent (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(bool) is_cleared (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(bool) is_idcok (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(bool) is_idlok (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(bool) is_immedok (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(bool) is_keypad (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(bool) is_leaveok (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(bool) is_nodelay (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(bool) is_notimeout (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(bool) is_pad (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(bool) is_scrollok (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(bool) is_subwin (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(bool) is_syncok (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) wgetdelay (const WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) wgetscrreg (const WINDOW *, int *, int *); /* generated */ - -#else -#define curses_version() NCURSES_VERSION -#endif - -/* - * Extra extension-functions, which pass a SCREEN pointer rather than using - * a global variable SP. - */ -#if 1 -#undef NCURSES_SP_FUNCS -#define NCURSES_SP_FUNCS 20211021 -#define NCURSES_SP_NAME(name) name##_sp - -/* Define the sp-funcs helper function */ -#define NCURSES_SP_OUTC NCURSES_SP_NAME(NCURSES_OUTC) -typedef int (*NCURSES_SP_OUTC)(SCREEN*, int); - -extern NCURSES_EXPORT(SCREEN *) new_prescr (void); /* implemented:SP_FUNC */ - -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(baudrate) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(beep) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(can_change_color) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(cbreak) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(curs_set) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(color_content) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T*, NCURSES_COLOR_T*, NCURSES_COLOR_T*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_prog_mode) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_shell_mode) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(delay_output) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(doupdate) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(echo) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(endwin) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(char) NCURSES_SP_NAME(erasechar) (SCREEN*);/* implemented:SP_FUNC */ -extern NCURSES_EXPORT(void) NCURSES_SP_NAME(filter) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(flash) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(flushinp) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(getwin) (SCREEN*, FILE *); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(halfdelay) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_colors) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_ic) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_il) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_color) (SCREEN*, NCURSES_COLOR_T, NCURSES_COLOR_T, NCURSES_COLOR_T, NCURSES_COLOR_T); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_pair) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T, NCURSES_COLOR_T); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(intrflush) (SCREEN*, WINDOW*, bool); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(isendwin) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(NCURSES_CONST char *) NCURSES_SP_NAME(keyname) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(char) NCURSES_SP_NAME(killchar) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(longname) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(mvcur) (SCREEN*, int, int, int, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(napms) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(newpad) (SCREEN*, int, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(SCREEN *) NCURSES_SP_NAME(newterm) (SCREEN*, const char *, FILE *, FILE *); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(newwin) (SCREEN*, int, int, int, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nl) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nocbreak) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(noecho) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nonl) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(void) NCURSES_SP_NAME(noqiflush) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(noraw) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(pair_content) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T*, NCURSES_COLOR_T*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(void) NCURSES_SP_NAME(qiflush) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(raw) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(reset_prog_mode) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(reset_shell_mode) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resetty) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ripoffline) (SCREEN*, int, int (*)(WINDOW *, int)); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(savetty) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_init) (SCREEN*, const char *); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_restore) (SCREEN*, const char *); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_set) (SCREEN*, const char *); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attroff) (SCREEN*, const chtype); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attron) (SCREEN*, const chtype); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attrset) (SCREEN*, const chtype); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(attr_t) NCURSES_SP_NAME(slk_attr) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attr_set) (SCREEN*, const attr_t, NCURSES_PAIRS_T, void*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_clear) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_color) (SCREEN*, NCURSES_PAIRS_T); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_init) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(slk_label) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_noutrefresh) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_refresh) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_restore) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_set) (SCREEN*, int, const char *, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_touch) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(start_color) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(chtype) NCURSES_SP_NAME(termattrs) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(termname) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(typeahead) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ungetch) (SCREEN*, int); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_env) (SCREEN*, bool); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_tioctl) (SCREEN*, bool); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidattr) (SCREEN*, chtype); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidputs) (SCREEN*, chtype, NCURSES_SP_OUTC); /* implemented:SP_FUNC */ -#if 1 -extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(keybound) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(alloc_pair) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(assume_default_colors) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(define_key) (SCREEN*, const char *, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_color_content) (SCREEN*, int, int *, int *, int *); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_pair_content) (SCREEN*, int, int *, int *); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_slk_color) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(get_escdelay) (SCREEN*); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(find_pair) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(free_pair) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_color) (SCREEN*, int, int, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_pair) (SCREEN*, int, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(is_term_resized) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(key_defined) (SCREEN*, const char *); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(keyok) (SCREEN*, int, bool); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(void) NCURSES_SP_NAME(nofilter) (SCREEN*); /* implemented */ /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(void) NCURSES_SP_NAME(reset_color_pairs) (SCREEN*); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resize_term) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resizeterm) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(set_escdelay) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(set_tabsize) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_default_colors) (SCREEN*); /* implemented:EXT_SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_legacy_coding) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ -#endif -#else -#undef NCURSES_SP_FUNCS -#define NCURSES_SP_FUNCS 0 -#define NCURSES_SP_NAME(name) name -#define NCURSES_SP_OUTC NCURSES_OUTC -#endif - -/* attributes */ - -#define NCURSES_ATTR_SHIFT 8 -#define NCURSES_BITS(mask,shift) (NCURSES_CAST(chtype,(mask)) << ((shift) + NCURSES_ATTR_SHIFT)) - -#define A_NORMAL (1U - 1U) -#define A_ATTRIBUTES NCURSES_BITS(~(1U - 1U),0) -#define A_CHARTEXT (NCURSES_BITS(1U,0) - 1U) -#define A_COLOR NCURSES_BITS(((1U) << 8) - 1U,0) -#define A_STANDOUT NCURSES_BITS(1U,8) -#define A_UNDERLINE NCURSES_BITS(1U,9) -#define A_REVERSE NCURSES_BITS(1U,10) -#define A_BLINK NCURSES_BITS(1U,11) -#define A_DIM NCURSES_BITS(1U,12) -#define A_BOLD NCURSES_BITS(1U,13) -#define A_ALTCHARSET NCURSES_BITS(1U,14) -#define A_INVIS NCURSES_BITS(1U,15) -#define A_PROTECT NCURSES_BITS(1U,16) -#define A_HORIZONTAL NCURSES_BITS(1U,17) -#define A_LEFT NCURSES_BITS(1U,18) -#define A_LOW NCURSES_BITS(1U,19) -#define A_RIGHT NCURSES_BITS(1U,20) -#define A_TOP NCURSES_BITS(1U,21) -#define A_VERTICAL NCURSES_BITS(1U,22) - -#if 1 -#define A_ITALIC NCURSES_BITS(1U,23) /* ncurses extension */ -#endif - -/* - * Most of the pseudo functions are macros that either provide compatibility - * with older versions of curses, or provide inline functionality to improve - * performance. - */ - -/* - * These pseudo functions are always implemented as macros: - */ - -#define getyx(win,y,x) (y = getcury(win), x = getcurx(win)) -#define getbegyx(win,y,x) (y = getbegy(win), x = getbegx(win)) -#define getmaxyx(win,y,x) (y = getmaxy(win), x = getmaxx(win)) -#define getparyx(win,y,x) (y = getpary(win), x = getparx(win)) - -#define getsyx(y,x) do { if (newscr) { \ - if (is_leaveok(newscr)) \ - (y) = (x) = -1; \ - else \ - getyx(newscr,(y), (x)); \ - } \ - } while(0) - -#define setsyx(y,x) do { if (newscr) { \ - if ((y) == -1 && (x) == -1) \ - leaveok(newscr, TRUE); \ - else { \ - leaveok(newscr, FALSE); \ - wmove(newscr, (y), (x)); \ - } \ - } \ - } while(0) - -#ifndef NCURSES_NOMACROS - -/* - * These miscellaneous pseudo functions are provided for compatibility: - */ - -#define wgetstr(w, s) wgetnstr(w, s, -1) -#define getnstr(s, n) wgetnstr(stdscr, s, (n)) - -#define setterm(term) setupterm(term, 1, (int *)0) - -#define fixterm() reset_prog_mode() -#define resetterm() reset_shell_mode() -#define saveterm() def_prog_mode() -#define crmode() cbreak() -#define nocrmode() nocbreak() -#define gettmode() - -/* It seems older SYSV curses versions define these */ -#if !NCURSES_OPAQUE -#define getattrs(win) NCURSES_CAST(int, NCURSES_OK_ADDR(win) ? (win)->_attrs : A_NORMAL) -#define getcurx(win) (NCURSES_OK_ADDR(win) ? (win)->_curx : ERR) -#define getcury(win) (NCURSES_OK_ADDR(win) ? (win)->_cury : ERR) -#define getbegx(win) (NCURSES_OK_ADDR(win) ? (win)->_begx : ERR) -#define getbegy(win) (NCURSES_OK_ADDR(win) ? (win)->_begy : ERR) -#define getmaxx(win) (NCURSES_OK_ADDR(win) ? ((win)->_maxx + 1) : ERR) -#define getmaxy(win) (NCURSES_OK_ADDR(win) ? ((win)->_maxy + 1) : ERR) -#define getparx(win) (NCURSES_OK_ADDR(win) ? (win)->_parx : ERR) -#define getpary(win) (NCURSES_OK_ADDR(win) ? (win)->_pary : ERR) -#endif /* NCURSES_OPAQUE */ - -#define wstandout(win) (wattrset(win,A_STANDOUT)) -#define wstandend(win) (wattrset(win,A_NORMAL)) - -#define wattron(win,at) wattr_on(win, NCURSES_CAST(attr_t, at), NULL) -#define wattroff(win,at) wattr_off(win, NCURSES_CAST(attr_t, at), NULL) - -#if !NCURSES_OPAQUE -#if NCURSES_WATTR_MACROS -#if NCURSES_WIDECHAR && 0 -#define wattrset(win,at) \ - (NCURSES_OK_ADDR(win) \ - ? ((win)->_color = NCURSES_CAST(int, PAIR_NUMBER(at)), \ - (win)->_attrs = NCURSES_CAST(attr_t, at), \ - OK) \ - : ERR) -#else -#define wattrset(win,at) \ - (NCURSES_OK_ADDR(win) \ - ? ((win)->_attrs = NCURSES_CAST(attr_t, at), \ - OK) \ - : ERR) -#endif -#endif /* NCURSES_WATTR_MACROS */ -#endif /* NCURSES_OPAQUE */ - -#define scroll(win) wscrl(win,1) - -#define touchwin(win) wtouchln((win), 0, getmaxy(win), 1) -#define touchline(win, s, c) wtouchln((win), s, c, 1) -#define untouchwin(win) wtouchln((win), 0, getmaxy(win), 0) - -#define box(win, v, h) wborder(win, v, v, h, h, 0, 0, 0, 0) -#define border(ls, rs, ts, bs, tl, tr, bl, br) wborder(stdscr, ls, rs, ts, bs, tl, tr, bl, br) -#define hline(ch, n) whline(stdscr, ch, (n)) -#define vline(ch, n) wvline(stdscr, ch, (n)) - -#define winstr(w, s) winnstr(w, s, -1) -#define winchstr(w, s) winchnstr(w, s, -1) -#define winsstr(w, s) winsnstr(w, s, -1) - -#if !NCURSES_OPAQUE -#define redrawwin(win) wredrawln(win, 0, (NCURSES_OK_ADDR(win) ? (win)->_maxy+1 : -1)) -#endif /* NCURSES_OPAQUE */ - -#define waddstr(win,str) waddnstr(win,str,-1) -#define waddchstr(win,str) waddchnstr(win,str,-1) - -/* - * These apply to the first 256 color pairs. - */ -#define COLOR_PAIR(n) (NCURSES_BITS((n), 0) & A_COLOR) -#define PAIR_NUMBER(a) (NCURSES_CAST(int,((NCURSES_CAST(unsigned long,(a)) & A_COLOR) >> NCURSES_ATTR_SHIFT))) - -/* - * pseudo functions for standard screen - */ - -#define addch(ch) waddch(stdscr,(ch)) -#define addchnstr(str,n) waddchnstr(stdscr,(str),(n)) -#define addchstr(str) waddchstr(stdscr,(str)) -#define addnstr(str,n) waddnstr(stdscr,(str),(n)) -#define addstr(str) waddnstr(stdscr,(str),-1) -#define attr_get(ap,cp,o) wattr_get(stdscr,(ap),(cp),(o)) -#define attr_off(a,o) wattr_off(stdscr,(a),(o)) -#define attr_on(a,o) wattr_on(stdscr,(a),(o)) -#define attr_set(a,c,o) wattr_set(stdscr,(a),(c),(o)) -#define attroff(at) wattroff(stdscr,(at)) -#define attron(at) wattron(stdscr,(at)) -#define attrset(at) wattrset(stdscr,(at)) -#define bkgd(ch) wbkgd(stdscr,(ch)) -#define bkgdset(ch) wbkgdset(stdscr,(ch)) -#define chgat(n,a,c,o) wchgat(stdscr,(n),(a),(c),(o)) -#define clear() wclear(stdscr) -#define clrtobot() wclrtobot(stdscr) -#define clrtoeol() wclrtoeol(stdscr) -#define color_set(c,o) wcolor_set(stdscr,(c),(o)) -#define delch() wdelch(stdscr) -#define deleteln() winsdelln(stdscr,-1) -#define echochar(c) wechochar(stdscr,(c)) -#define erase() werase(stdscr) -#define getch() wgetch(stdscr) -#define getstr(str) wgetstr(stdscr,(str)) -#define inch() winch(stdscr) -#define inchnstr(s,n) winchnstr(stdscr,(s),(n)) -#define inchstr(s) winchstr(stdscr,(s)) -#define innstr(s,n) winnstr(stdscr,(s),(n)) -#define insch(c) winsch(stdscr,(c)) -#define insdelln(n) winsdelln(stdscr,(n)) -#define insertln() winsdelln(stdscr,1) -#define insnstr(s,n) winsnstr(stdscr,(s),(n)) -#define insstr(s) winsstr(stdscr,(s)) -#define instr(s) winstr(stdscr,(s)) -#define move(y,x) wmove(stdscr,(y),(x)) -#define refresh() wrefresh(stdscr) -#define scrl(n) wscrl(stdscr,(n)) -#define setscrreg(t,b) wsetscrreg(stdscr,(t),(b)) -#define standend() wstandend(stdscr) -#define standout() wstandout(stdscr) -#define timeout(delay) wtimeout(stdscr,(delay)) -#define wdeleteln(win) winsdelln(win,-1) -#define winsertln(win) winsdelln(win,1) - -/* - * mv functions - */ - -#define mvwaddch(win,y,x,ch) (wmove((win),(y),(x)) == ERR ? ERR : waddch((win),(ch))) -#define mvwaddchnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),(n))) -#define mvwaddchstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),-1)) -#define mvwaddnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),(n))) -#define mvwaddstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),-1)) -#define mvwchgat(win,y,x,n,a,c,o) (wmove((win),(y),(x)) == ERR ? ERR : wchgat((win),(n),(a),(c),(o))) -#define mvwdelch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wdelch(win)) -#define mvwgetch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wgetch(win)) -#define mvwgetnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : wgetnstr((win),(str),(n))) -#define mvwgetstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : wgetstr((win),(str))) -#define mvwhline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : whline((win),(c),(n))) -#define mvwinch(win,y,x) (wmove((win),(y),(x)) == ERR ? NCURSES_CAST(chtype, ERR) : winch(win)) -#define mvwinchnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winchnstr((win),(s),(n))) -#define mvwinchstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winchstr((win),(s))) -#define mvwinnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winnstr((win),(s),(n))) -#define mvwinsch(win,y,x,c) (wmove((win),(y),(x)) == ERR ? ERR : winsch((win),(c))) -#define mvwinsnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winsnstr((win),(s),(n))) -#define mvwinsstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winsstr((win),(s))) -#define mvwinstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winstr((win),(s))) -#define mvwvline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : wvline((win),(c),(n))) - -#define mvaddch(y,x,ch) mvwaddch(stdscr,(y),(x),(ch)) -#define mvaddchnstr(y,x,str,n) mvwaddchnstr(stdscr,(y),(x),(str),(n)) -#define mvaddchstr(y,x,str) mvwaddchstr(stdscr,(y),(x),(str)) -#define mvaddnstr(y,x,str,n) mvwaddnstr(stdscr,(y),(x),(str),(n)) -#define mvaddstr(y,x,str) mvwaddstr(stdscr,(y),(x),(str)) -#define mvchgat(y,x,n,a,c,o) mvwchgat(stdscr,(y),(x),(n),(a),(c),(o)) -#define mvdelch(y,x) mvwdelch(stdscr,(y),(x)) -#define mvgetch(y,x) mvwgetch(stdscr,(y),(x)) -#define mvgetnstr(y,x,str,n) mvwgetnstr(stdscr,(y),(x),(str),(n)) -#define mvgetstr(y,x,str) mvwgetstr(stdscr,(y),(x),(str)) -#define mvhline(y,x,c,n) mvwhline(stdscr,(y),(x),(c),(n)) -#define mvinch(y,x) mvwinch(stdscr,(y),(x)) -#define mvinchnstr(y,x,s,n) mvwinchnstr(stdscr,(y),(x),(s),(n)) -#define mvinchstr(y,x,s) mvwinchstr(stdscr,(y),(x),(s)) -#define mvinnstr(y,x,s,n) mvwinnstr(stdscr,(y),(x),(s),(n)) -#define mvinsch(y,x,c) mvwinsch(stdscr,(y),(x),(c)) -#define mvinsnstr(y,x,s,n) mvwinsnstr(stdscr,(y),(x),(s),(n)) -#define mvinsstr(y,x,s) mvwinsstr(stdscr,(y),(x),(s)) -#define mvinstr(y,x,s) mvwinstr(stdscr,(y),(x),(s)) -#define mvvline(y,x,c,n) mvwvline(stdscr,(y),(x),(c),(n)) - -/* - * Some wide-character functions can be implemented without the extensions. - */ -#if !NCURSES_OPAQUE -#define getbkgd(win) (NCURSES_OK_ADDR(win) ? ((win)->_bkgd) : 0) -#endif /* NCURSES_OPAQUE */ - -#define slk_attr_off(a,v) ((v) ? ERR : slk_attroff(a)) -#define slk_attr_on(a,v) ((v) ? ERR : slk_attron(a)) - -#if !NCURSES_OPAQUE -#if NCURSES_WATTR_MACROS -#if NCURSES_WIDECHAR && 0 -#define wattr_set(win,a,p,opts) \ - (NCURSES_OK_ADDR(win) \ - ? ((void)((win)->_attrs = ((a) & ~A_COLOR), \ - (win)->_color = (opts) ? *(int *)(opts) : (p)), \ - OK) \ - : ERR) -#define wattr_get(win,a,p,opts) \ - (NCURSES_OK_ADDR(win) \ - ? ((void)(NCURSES_OK_ADDR(a) \ - ? (*(a) = (win)->_attrs) \ - : OK), \ - (void)(NCURSES_OK_ADDR(p) \ - ? (*(p) = (NCURSES_PAIRS_T) (win)->_color) \ - : OK), \ - (void)(NCURSES_OK_ADDR(opts) \ - ? (*(int *)(opts) = (win)->_color) \ - : OK), \ - OK) \ - : ERR) -#else /* !(NCURSES_WIDECHAR && NCURSES_EXE_COLORS) */ -#define wattr_set(win,a,p,opts) \ - (NCURSES_OK_ADDR(win) \ - ? ((void)((win)->_attrs = (((a) & ~A_COLOR) | \ - (attr_t)COLOR_PAIR(p))), \ - OK) \ - : ERR) -#define wattr_get(win,a,p,opts) \ - (NCURSES_OK_ADDR(win) \ - ? ((void)(NCURSES_OK_ADDR(a) \ - ? (*(a) = (win)->_attrs) \ - : OK), \ - (void)(NCURSES_OK_ADDR(p) \ - ? (*(p) = (NCURSES_PAIRS_T) PAIR_NUMBER((win)->_attrs)) \ - : OK), \ - OK) \ - : ERR) -#endif /* (NCURSES_WIDECHAR && NCURSES_EXE_COLORS) */ -#endif /* NCURSES_WATTR_MACROS */ -#endif /* NCURSES_OPAQUE */ - -/* - * X/Open curses deprecates SVr4 vwprintw/vwscanw, which are supposed to use - * varargs.h. It adds new calls vw_printw/vw_scanw, which are supposed to - * use POSIX stdarg.h. The ncurses versions of vwprintw/vwscanw already - * use stdarg.h, so... - */ -/* define vw_printw vwprintw */ -/* define vw_scanw vwscanw */ - -/* - * Export fallback function for use in C++ binding. - */ -#if !1 -#define vsscanf(a,b,c) _nc_vsscanf(a,b,c) -NCURSES_EXPORT(int) vsscanf(const char *, const char *, va_list); -#endif - -/* - * These macros are extensions - not in X/Open Curses. - */ -#if 1 -#if !NCURSES_OPAQUE -#define is_cleared(win) (NCURSES_OK_ADDR(win) ? (win)->_clear : FALSE) -#define is_idcok(win) (NCURSES_OK_ADDR(win) ? (win)->_idcok : FALSE) -#define is_idlok(win) (NCURSES_OK_ADDR(win) ? (win)->_idlok : FALSE) -#define is_immedok(win) (NCURSES_OK_ADDR(win) ? (win)->_immed : FALSE) -#define is_keypad(win) (NCURSES_OK_ADDR(win) ? (win)->_use_keypad : FALSE) -#define is_leaveok(win) (NCURSES_OK_ADDR(win) ? (win)->_leaveok : FALSE) -#define is_nodelay(win) (NCURSES_OK_ADDR(win) ? ((win)->_delay == 0) : FALSE) -#define is_notimeout(win) (NCURSES_OK_ADDR(win) ? (win)->_notimeout : FALSE) -#define is_pad(win) (NCURSES_OK_ADDR(win) ? ((win)->_flags & _ISPAD) != 0 : FALSE) -#define is_scrollok(win) (NCURSES_OK_ADDR(win) ? (win)->_scroll : FALSE) -#define is_subwin(win) (NCURSES_OK_ADDR(win) ? ((win)->_flags & _SUBWIN) != 0 : FALSE) -#define is_syncok(win) (NCURSES_OK_ADDR(win) ? (win)->_sync : FALSE) -#define wgetdelay(win) (NCURSES_OK_ADDR(win) ? (win)->_delay : 0) -#define wgetparent(win) (NCURSES_OK_ADDR(win) ? (win)->_parent : 0) -#define wgetscrreg(win,t,b) (NCURSES_OK_ADDR(win) ? (*(t) = (win)->_regtop, *(b) = (win)->_regbottom, OK) : ERR) -#endif -#endif - -/* - * X/Open says this returns a bool; SVr4 also checked for out-of-range line. - * The macro provides compatibility: - */ -#define is_linetouched(w,l) ((!(w) || ((l) > getmaxy(w)) || ((l) < 0)) ? ERR : (is_linetouched)((w),(l))) - -#endif /* NCURSES_NOMACROS */ - -/* - * Public variables. - * - * Notes: - * a. ESCDELAY was an undocumented feature under AIX curses. - * It gives the ESC expire time in milliseconds. - * b. ttytype is needed for backward compatibility - */ -#if NCURSES_REENTRANT - -NCURSES_WRAPPED_VAR(WINDOW *, curscr); -NCURSES_WRAPPED_VAR(WINDOW *, newscr); -NCURSES_WRAPPED_VAR(WINDOW *, stdscr); -NCURSES_WRAPPED_VAR(char *, ttytype); -NCURSES_WRAPPED_VAR(int, COLORS); -NCURSES_WRAPPED_VAR(int, COLOR_PAIRS); -NCURSES_WRAPPED_VAR(int, COLS); -NCURSES_WRAPPED_VAR(int, ESCDELAY); -NCURSES_WRAPPED_VAR(int, LINES); -NCURSES_WRAPPED_VAR(int, TABSIZE); - -#define curscr NCURSES_PUBLIC_VAR(curscr()) -#define newscr NCURSES_PUBLIC_VAR(newscr()) -#define stdscr NCURSES_PUBLIC_VAR(stdscr()) -#define ttytype NCURSES_PUBLIC_VAR(ttytype()) -#define COLORS NCURSES_PUBLIC_VAR(COLORS()) -#define COLOR_PAIRS NCURSES_PUBLIC_VAR(COLOR_PAIRS()) -#define COLS NCURSES_PUBLIC_VAR(COLS()) -#define ESCDELAY NCURSES_PUBLIC_VAR(ESCDELAY()) -#define LINES NCURSES_PUBLIC_VAR(LINES()) -#define TABSIZE NCURSES_PUBLIC_VAR(TABSIZE()) - -#else - -extern NCURSES_EXPORT_VAR(WINDOW *) curscr; -extern NCURSES_EXPORT_VAR(WINDOW *) newscr; -extern NCURSES_EXPORT_VAR(WINDOW *) stdscr; -extern NCURSES_EXPORT_VAR(char) ttytype[]; -extern NCURSES_EXPORT_VAR(int) COLORS; -extern NCURSES_EXPORT_VAR(int) COLOR_PAIRS; -extern NCURSES_EXPORT_VAR(int) COLS; -extern NCURSES_EXPORT_VAR(int) ESCDELAY; -extern NCURSES_EXPORT_VAR(int) LINES; -extern NCURSES_EXPORT_VAR(int) TABSIZE; - -#endif - -/* - * Pseudo-character tokens outside ASCII range. The curses wgetch() function - * will return any given one of these only if the corresponding k- capability - * is defined in your terminal's terminfo entry. - * - * Some keys (KEY_A1, etc) are arranged like this: - * a1 up a3 - * left b2 right - * c1 down c3 - * - * A few key codes do not depend upon the terminfo entry. - */ -#define KEY_CODE_YES 0400 /* A wchar_t contains a key code */ -#define KEY_MIN 0401 /* Minimum curses key */ -#define KEY_BREAK 0401 /* Break key (unreliable) */ -#define KEY_SRESET 0530 /* Soft (partial) reset (unreliable) */ -#define KEY_RESET 0531 /* Reset or hard reset (unreliable) */ diff --git a/include/curses.tail b/include/curses.tail deleted file mode 100644 index 1151449..0000000 --- a/include/curses.tail +++ /dev/null @@ -1,197 +0,0 @@ -/* $Id: curses.tail,v 1.26 2021/03/20 15:49:25 tom Exp $ */ -/* - * vile:cmode: - * This file is part of ncurses, designed to be appended after curses.h.in - * (see that file for the relevant copyright). - */ - -/* mouse interface */ - -#if NCURSES_MOUSE_VERSION > 1 -#define NCURSES_MOUSE_MASK(b,m) ((m) << (((b) - 1) * 5)) -#else -#define NCURSES_MOUSE_MASK(b,m) ((m) << (((b) - 1) * 6)) -#endif - -#define NCURSES_BUTTON_RELEASED 001L -#define NCURSES_BUTTON_PRESSED 002L -#define NCURSES_BUTTON_CLICKED 004L -#define NCURSES_DOUBLE_CLICKED 010L -#define NCURSES_TRIPLE_CLICKED 020L -#define NCURSES_RESERVED_EVENT 040L - -/* event masks */ -#define BUTTON1_RELEASED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_RELEASED) -#define BUTTON1_PRESSED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_PRESSED) -#define BUTTON1_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_CLICKED) -#define BUTTON1_DOUBLE_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_DOUBLE_CLICKED) -#define BUTTON1_TRIPLE_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_TRIPLE_CLICKED) - -#define BUTTON2_RELEASED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_RELEASED) -#define BUTTON2_PRESSED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_PRESSED) -#define BUTTON2_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_CLICKED) -#define BUTTON2_DOUBLE_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_DOUBLE_CLICKED) -#define BUTTON2_TRIPLE_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_TRIPLE_CLICKED) - -#define BUTTON3_RELEASED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_RELEASED) -#define BUTTON3_PRESSED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_PRESSED) -#define BUTTON3_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_CLICKED) -#define BUTTON3_DOUBLE_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_DOUBLE_CLICKED) -#define BUTTON3_TRIPLE_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_TRIPLE_CLICKED) - -#define BUTTON4_RELEASED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_RELEASED) -#define BUTTON4_PRESSED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_PRESSED) -#define BUTTON4_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_CLICKED) -#define BUTTON4_DOUBLE_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_DOUBLE_CLICKED) -#define BUTTON4_TRIPLE_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_TRIPLE_CLICKED) - -/* - * In 32 bits the version-1 scheme does not provide enough space for a 5th - * button, unless we choose to change the ABI by omitting the reserved-events. - */ -#if NCURSES_MOUSE_VERSION > 1 - -#define BUTTON5_RELEASED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_RELEASED) -#define BUTTON5_PRESSED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_PRESSED) -#define BUTTON5_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_CLICKED) -#define BUTTON5_DOUBLE_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_DOUBLE_CLICKED) -#define BUTTON5_TRIPLE_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_TRIPLE_CLICKED) - -#define BUTTON_CTRL NCURSES_MOUSE_MASK(6, 0001L) -#define BUTTON_SHIFT NCURSES_MOUSE_MASK(6, 0002L) -#define BUTTON_ALT NCURSES_MOUSE_MASK(6, 0004L) -#define REPORT_MOUSE_POSITION NCURSES_MOUSE_MASK(6, 0010L) - -#else - -#define BUTTON1_RESERVED_EVENT NCURSES_MOUSE_MASK(1, NCURSES_RESERVED_EVENT) -#define BUTTON2_RESERVED_EVENT NCURSES_MOUSE_MASK(2, NCURSES_RESERVED_EVENT) -#define BUTTON3_RESERVED_EVENT NCURSES_MOUSE_MASK(3, NCURSES_RESERVED_EVENT) -#define BUTTON4_RESERVED_EVENT NCURSES_MOUSE_MASK(4, NCURSES_RESERVED_EVENT) - -#define BUTTON_CTRL NCURSES_MOUSE_MASK(5, 0001L) -#define BUTTON_SHIFT NCURSES_MOUSE_MASK(5, 0002L) -#define BUTTON_ALT NCURSES_MOUSE_MASK(5, 0004L) -#define REPORT_MOUSE_POSITION NCURSES_MOUSE_MASK(5, 0010L) - -#endif - -#define ALL_MOUSE_EVENTS (REPORT_MOUSE_POSITION - 1) - -/* macros to extract single event-bits from masks */ -#define BUTTON_RELEASE(e, x) ((e) & NCURSES_MOUSE_MASK(x, 001)) -#define BUTTON_PRESS(e, x) ((e) & NCURSES_MOUSE_MASK(x, 002)) -#define BUTTON_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 004)) -#define BUTTON_DOUBLE_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 010)) -#define BUTTON_TRIPLE_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 020)) -#define BUTTON_RESERVED_EVENT(e, x) ((e) & NCURSES_MOUSE_MASK(x, 040)) - -typedef struct -{ - short id; /* ID to distinguish multiple devices */ - int x, y, z; /* event coordinates (character-cell) */ - mmask_t bstate; /* button state bits */ -} -MEVENT; - -extern NCURSES_EXPORT(bool) has_mouse(void); -extern NCURSES_EXPORT(int) getmouse (MEVENT *); -extern NCURSES_EXPORT(int) ungetmouse (MEVENT *); -extern NCURSES_EXPORT(mmask_t) mousemask (mmask_t, mmask_t *); -extern NCURSES_EXPORT(bool) wenclose (const WINDOW *, int, int); -extern NCURSES_EXPORT(int) mouseinterval (int); -extern NCURSES_EXPORT(bool) wmouse_trafo (const WINDOW*, int*, int*, bool); -extern NCURSES_EXPORT(bool) mouse_trafo (int*, int*, bool); /* generated */ - -#if NCURSES_SP_FUNCS -extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_mouse) (SCREEN*); -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(getmouse) (SCREEN*, MEVENT *); -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ungetmouse) (SCREEN*,MEVENT *); -extern NCURSES_EXPORT(mmask_t) NCURSES_SP_NAME(mousemask) (SCREEN*, mmask_t, mmask_t *); -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(mouseinterval) (SCREEN*, int); -#endif - -#ifndef NCURSES_NOMACROS -#define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen) -#endif - -/* other non-XSI functions */ - -extern NCURSES_EXPORT(int) mcprint (char *, int); /* direct data to printer */ -extern NCURSES_EXPORT(int) has_key (int); /* do we have given key? */ - -#if NCURSES_SP_FUNCS -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(has_key) (SCREEN*, int); /* do we have given key? */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(mcprint) (SCREEN*, char *, int); /* direct data to printer */ -#endif - -/* Debugging : use with libncurses_g.a */ - -extern NCURSES_EXPORT(void) _tracef (const char *, ...) GCC_PRINTFLIKE(1,2); -extern NCURSES_EXPORT(char *) _traceattr (attr_t); -extern NCURSES_EXPORT(char *) _traceattr2 (int, chtype); -extern NCURSES_EXPORT(char *) _tracechar (int); -extern NCURSES_EXPORT(char *) _tracechtype (chtype); -extern NCURSES_EXPORT(char *) _tracechtype2 (int, chtype); -#if NCURSES_WIDECHAR -#define _tracech_t _tracecchar_t -extern NCURSES_EXPORT(char *) _tracecchar_t (const cchar_t *); -#define _tracech_t2 _tracecchar_t2 -extern NCURSES_EXPORT(char *) _tracecchar_t2 (int, const cchar_t *); -#else -#define _tracech_t _tracechtype -#define _tracech_t2 _tracechtype2 -#endif -extern NCURSES_EXPORT(void) trace (const unsigned) GCC_DEPRECATED("use curses_trace"); -extern NCURSES_EXPORT(unsigned) curses_trace (const unsigned); - -/* trace masks */ -#define TRACE_DISABLE 0x0000 /* turn off tracing */ -#define TRACE_TIMES 0x0001 /* trace user and system times of updates */ -#define TRACE_TPUTS 0x0002 /* trace tputs calls */ -#define TRACE_UPDATE 0x0004 /* trace update actions, old & new screens */ -#define TRACE_MOVE 0x0008 /* trace cursor moves and scrolls */ -#define TRACE_CHARPUT 0x0010 /* trace all character outputs */ -#define TRACE_ORDINARY 0x001F /* trace all update actions */ -#define TRACE_CALLS 0x0020 /* trace all curses calls */ -#define TRACE_VIRTPUT 0x0040 /* trace virtual character puts */ -#define TRACE_IEVENT 0x0080 /* trace low-level input processing */ -#define TRACE_BITS 0x0100 /* trace state of TTY control bits */ -#define TRACE_ICALLS 0x0200 /* trace internal/nested calls */ -#define TRACE_CCALLS 0x0400 /* trace per-character calls */ -#define TRACE_DATABASE 0x0800 /* trace read/write of terminfo/termcap data */ -#define TRACE_ATTRS 0x1000 /* trace attribute updates */ - -#define TRACE_SHIFT 13 /* number of bits in the trace masks */ -#define TRACE_MAXIMUM ((1 << TRACE_SHIFT) - 1) /* maximum trace level */ - -#if defined(TRACE) || defined(NCURSES_TEST) -extern NCURSES_EXPORT_VAR(int) _nc_optimize_enable; /* enable optimizations */ -extern NCURSES_EXPORT(const char *) _nc_visbuf (const char *); -#define OPTIMIZE_MVCUR 0x01 /* cursor movement optimization */ -#define OPTIMIZE_HASHMAP 0x02 /* diff hashing to detect scrolls */ -#define OPTIMIZE_SCROLL 0x04 /* scroll optimization */ -#define OPTIMIZE_ALL 0xff /* enable all optimizations (dflt) */ -#endif - -extern GCC_NORETURN NCURSES_EXPORT(void) exit_curses (int); - -#include - -#ifdef __cplusplus - -#ifndef NCURSES_NOMACROS - -/* these names conflict with STL */ -#undef box -#undef clear -#undef erase -#undef move -#undef refresh - -#endif /* NCURSES_NOMACROS */ - -} -#endif - -#endif /* __NCURSES_H */ diff --git a/include/curses.wide b/include/curses.wide deleted file mode 100644 index 33adb07..0000000 --- a/include/curses.wide +++ /dev/null @@ -1,314 +0,0 @@ -/* $Id: curses.wide,v 1.51 2021/05/22 20:28:29 tom Exp $ */ -/* - * vile:cmode: - * This file is part of ncurses, designed to be appended after curses.h.in - * (see that file for the relevant copyright). - */ -#define _XOPEN_CURSES 1 - -#if NCURSES_WIDECHAR - -extern NCURSES_EXPORT_VAR(cchar_t *) _nc_wacs; - -#define NCURSES_WACS(c) (&_nc_wacs[NCURSES_CAST(unsigned char,(c))]) - -#define WACS_BSSB NCURSES_WACS('l') -#define WACS_SSBB NCURSES_WACS('m') -#define WACS_BBSS NCURSES_WACS('k') -#define WACS_SBBS NCURSES_WACS('j') -#define WACS_SBSS NCURSES_WACS('u') -#define WACS_SSSB NCURSES_WACS('t') -#define WACS_SSBS NCURSES_WACS('v') -#define WACS_BSSS NCURSES_WACS('w') -#define WACS_BSBS NCURSES_WACS('q') -#define WACS_SBSB NCURSES_WACS('x') -#define WACS_SSSS NCURSES_WACS('n') - -#define WACS_ULCORNER WACS_BSSB -#define WACS_LLCORNER WACS_SSBB -#define WACS_URCORNER WACS_BBSS -#define WACS_LRCORNER WACS_SBBS -#define WACS_RTEE WACS_SBSS -#define WACS_LTEE WACS_SSSB -#define WACS_BTEE WACS_SSBS -#define WACS_TTEE WACS_BSSS -#define WACS_HLINE WACS_BSBS -#define WACS_VLINE WACS_SBSB -#define WACS_PLUS WACS_SSSS - -#define WACS_S1 NCURSES_WACS('o') /* scan line 1 */ -#define WACS_S9 NCURSES_WACS('s') /* scan line 9 */ -#define WACS_DIAMOND NCURSES_WACS('`') /* diamond */ -#define WACS_CKBOARD NCURSES_WACS('a') /* checker board */ -#define WACS_DEGREE NCURSES_WACS('f') /* degree symbol */ -#define WACS_PLMINUS NCURSES_WACS('g') /* plus/minus */ -#define WACS_BULLET NCURSES_WACS('~') /* bullet */ - - /* Teletype 5410v1 symbols */ -#define WACS_LARROW NCURSES_WACS(',') /* arrow left */ -#define WACS_RARROW NCURSES_WACS('+') /* arrow right */ -#define WACS_DARROW NCURSES_WACS('.') /* arrow down */ -#define WACS_UARROW NCURSES_WACS('-') /* arrow up */ -#define WACS_BOARD NCURSES_WACS('h') /* board of squares */ -#define WACS_LANTERN NCURSES_WACS('i') /* lantern symbol */ -#define WACS_BLOCK NCURSES_WACS('0') /* solid square block */ - - /* ncurses extensions */ -#define WACS_S3 NCURSES_WACS('p') /* scan line 3 */ -#define WACS_S7 NCURSES_WACS('r') /* scan line 7 */ -#define WACS_LEQUAL NCURSES_WACS('y') /* less/equal */ -#define WACS_GEQUAL NCURSES_WACS('z') /* greater/equal */ -#define WACS_PI NCURSES_WACS('{') /* Pi */ -#define WACS_NEQUAL NCURSES_WACS('|') /* not equal */ -#define WACS_STERLING NCURSES_WACS('}') /* UK pound sign */ - - /* double lines */ -#define WACS_BDDB NCURSES_WACS('C') -#define WACS_DDBB NCURSES_WACS('D') -#define WACS_BBDD NCURSES_WACS('B') -#define WACS_DBBD NCURSES_WACS('A') -#define WACS_DBDD NCURSES_WACS('G') -#define WACS_DDDB NCURSES_WACS('F') -#define WACS_DDBD NCURSES_WACS('H') -#define WACS_BDDD NCURSES_WACS('I') -#define WACS_BDBD NCURSES_WACS('R') -#define WACS_DBDB NCURSES_WACS('Y') -#define WACS_DDDD NCURSES_WACS('E') - -#define WACS_D_ULCORNER WACS_BDDB -#define WACS_D_LLCORNER WACS_DDBB -#define WACS_D_URCORNER WACS_BBDD -#define WACS_D_LRCORNER WACS_DBBD -#define WACS_D_RTEE WACS_DBDD -#define WACS_D_LTEE WACS_DDDB -#define WACS_D_BTEE WACS_DDBD -#define WACS_D_TTEE WACS_BDDD -#define WACS_D_HLINE WACS_BDBD -#define WACS_D_VLINE WACS_DBDB -#define WACS_D_PLUS WACS_DDDD - - /* thick lines */ -#define WACS_BTTB NCURSES_WACS('L') -#define WACS_TTBB NCURSES_WACS('M') -#define WACS_BBTT NCURSES_WACS('K') -#define WACS_TBBT NCURSES_WACS('J') -#define WACS_TBTT NCURSES_WACS('U') -#define WACS_TTTB NCURSES_WACS('T') -#define WACS_TTBT NCURSES_WACS('V') -#define WACS_BTTT NCURSES_WACS('W') -#define WACS_BTBT NCURSES_WACS('Q') -#define WACS_TBTB NCURSES_WACS('X') -#define WACS_TTTT NCURSES_WACS('N') - -#define WACS_T_ULCORNER WACS_BTTB -#define WACS_T_LLCORNER WACS_TTBB -#define WACS_T_URCORNER WACS_BBTT -#define WACS_T_LRCORNER WACS_TBBT -#define WACS_T_RTEE WACS_TBTT -#define WACS_T_LTEE WACS_TTTB -#define WACS_T_BTEE WACS_TTBT -#define WACS_T_TTEE WACS_BTTT -#define WACS_T_HLINE WACS_BTBT -#define WACS_T_VLINE WACS_TBTB -#define WACS_T_PLUS WACS_TTTT - -/* - * Function prototypes for wide-character operations. - * - * "generated" comments should include ":WIDEC" to make the corresponding - * functions ifdef'd in lib_gen.c - * - * "implemented" comments do not need this marker. - */ - -extern NCURSES_EXPORT(int) add_wch (const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) add_wchnstr (const cchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) add_wchstr (const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) addnwstr (const wchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) addwstr (const wchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) bkgrnd (const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(void) bkgrndset (const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) border_set (const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) box_set (WINDOW *, const cchar_t *, const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) echo_wchar (const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) erasewchar (wchar_t*); /* implemented */ -extern NCURSES_EXPORT(int) get_wch (wint_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) get_wstr (wint_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) getbkgrnd (cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) getcchar (const cchar_t *, wchar_t*, attr_t*, NCURSES_PAIRS_T*, void*); /* implemented */ -extern NCURSES_EXPORT(int) getn_wstr (wint_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) hline_set (const cchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) in_wch (cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) in_wchnstr (cchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) in_wchstr (cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) innwstr (wchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) ins_nwstr (const wchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) ins_wch (const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) ins_wstr (const wchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) inwstr (wchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(NCURSES_CONST char*) key_name (wchar_t); /* implemented */ -extern NCURSES_EXPORT(int) killwchar (wchar_t *); /* implemented */ -extern NCURSES_EXPORT(int) mvadd_wch (int, int, const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvadd_wchnstr (int, int, const cchar_t *, int);/* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvadd_wchstr (int, int, const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvaddnwstr (int, int, const wchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvaddwstr (int, int, const wchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvget_wch (int, int, wint_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvget_wstr (int, int, wint_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvgetn_wstr (int, int, wint_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvhline_set (int, int, const cchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvin_wch (int, int, cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvin_wchnstr (int, int, cchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvin_wchstr (int, int, cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvinnwstr (int, int, wchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvins_nwstr (int, int, const wchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvins_wch (int, int, const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvins_wstr (int, int, const wchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvinwstr (int, int, wchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvvline_set (int, int, const cchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwadd_wch (WINDOW *, int, int, const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwadd_wchnstr (WINDOW *, int, int, const cchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwadd_wchstr (WINDOW *, int, int, const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwaddnwstr (WINDOW *, int, int, const wchar_t *, int);/* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwaddwstr (WINDOW *, int, int, const wchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwget_wch (WINDOW *, int, int, wint_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwget_wstr (WINDOW *, int, int, wint_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwgetn_wstr (WINDOW *, int, int, wint_t *, int);/* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwhline_set (WINDOW *, int, int, const cchar_t *, int);/* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwin_wch (WINDOW *, int, int, cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwin_wchnstr (WINDOW *, int,int, cchar_t *,int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwin_wchstr (WINDOW *, int, int, cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwinnwstr (WINDOW *, int, int, wchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwins_nwstr (WINDOW *, int,int, const wchar_t *,int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwins_wch (WINDOW *, int, int, const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwins_wstr (WINDOW *, int, int, const wchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwinwstr (WINDOW *, int, int, wchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwvline_set (WINDOW *, int,int, const cchar_t *,int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) pecho_wchar (WINDOW *, const cchar_t *); /* implemented */ -extern NCURSES_EXPORT(int) setcchar (cchar_t *, const wchar_t *, const attr_t, NCURSES_PAIRS_T, const void *); /* implemented */ -extern NCURSES_EXPORT(int) slk_wset (int, const wchar_t *, int); /* implemented */ -extern NCURSES_EXPORT(attr_t) term_attrs (void); /* implemented */ -extern NCURSES_EXPORT(int) unget_wch (const wchar_t); /* implemented */ -extern NCURSES_EXPORT(int) vid_attr (attr_t, NCURSES_PAIRS_T, void *); /* implemented */ -extern NCURSES_EXPORT(int) vid_puts (attr_t, NCURSES_PAIRS_T, void *, NCURSES_OUTC); /* implemented */ -extern NCURSES_EXPORT(int) vline_set (const cchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) wadd_wch (WINDOW *,const cchar_t *); /* implemented */ -extern NCURSES_EXPORT(int) wadd_wchnstr (WINDOW *,const cchar_t *,int); /* implemented */ -extern NCURSES_EXPORT(int) wadd_wchstr (WINDOW *,const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) waddnwstr (WINDOW *,const wchar_t *,int); /* implemented */ -extern NCURSES_EXPORT(int) waddwstr (WINDOW *,const wchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) wbkgrnd (WINDOW *,const cchar_t *); /* implemented */ -extern NCURSES_EXPORT(void) wbkgrndset (WINDOW *,const cchar_t *); /* implemented */ -extern NCURSES_EXPORT(int) wborder_set (WINDOW *,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*); /* implemented */ -extern NCURSES_EXPORT(int) wecho_wchar (WINDOW *, const cchar_t *); /* implemented */ -extern NCURSES_EXPORT(int) wget_wch (WINDOW *, wint_t *); /* implemented */ -extern NCURSES_EXPORT(int) wget_wstr (WINDOW *, wint_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) wgetbkgrnd (WINDOW *, cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) wgetn_wstr (WINDOW *, wint_t *, int); /* implemented */ -extern NCURSES_EXPORT(int) whline_set (WINDOW *, const cchar_t *, int); /* implemented */ -extern NCURSES_EXPORT(int) win_wch (WINDOW *, cchar_t *); /* implemented */ -extern NCURSES_EXPORT(int) win_wchnstr (WINDOW *, cchar_t *, int); /* implemented */ -extern NCURSES_EXPORT(int) win_wchstr (WINDOW *, cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) winnwstr (WINDOW *, wchar_t *, int); /* implemented */ -extern NCURSES_EXPORT(int) wins_nwstr (WINDOW *, const wchar_t *, int); /* implemented */ -extern NCURSES_EXPORT(int) wins_wch (WINDOW *, const cchar_t *); /* implemented */ -extern NCURSES_EXPORT(int) wins_wstr (WINDOW *, const wchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) winwstr (WINDOW *, wchar_t *); /* implemented */ -extern NCURSES_EXPORT(wchar_t*) wunctrl (cchar_t *); /* implemented */ -extern NCURSES_EXPORT(int) wvline_set (WINDOW *, const cchar_t *, int); /* implemented */ - -#if NCURSES_SP_FUNCS -extern NCURSES_EXPORT(attr_t) NCURSES_SP_NAME(term_attrs) (SCREEN*); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(erasewchar) (SCREEN*, wchar_t *); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(killwchar) (SCREEN*, wchar_t *); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(unget_wch) (SCREEN*, const wchar_t); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vid_attr) (SCREEN*, attr_t, NCURSES_PAIRS_T, void *); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vid_puts) (SCREEN*, attr_t, NCURSES_PAIRS_T, void *, NCURSES_SP_OUTC); /* implemented:SP_FUNC */ -extern NCURSES_EXPORT(wchar_t*) NCURSES_SP_NAME(wunctrl) (SCREEN*, cchar_t *); /* implemented:SP_FUNC */ -#endif - -#ifndef NCURSES_NOMACROS - -/* - * XSI curses macros for XPG4 conformance. - */ -#define add_wch(c) wadd_wch(stdscr,(c)) -#define add_wchnstr(str,n) wadd_wchnstr(stdscr,(str),(n)) -#define add_wchstr(str) wadd_wchstr(stdscr,(str)) -#define addnwstr(wstr,n) waddnwstr(stdscr,(wstr),(n)) -#define addwstr(wstr) waddwstr(stdscr,(wstr)) -#define bkgrnd(c) wbkgrnd(stdscr,(c)) -#define bkgrndset(c) wbkgrndset(stdscr,(c)) -#define border_set(l,r,t,b,tl,tr,bl,br) wborder_set(stdscr,(l),(r),(t),(b),tl,tr,bl,br) -#define box_set(w,v,h) wborder_set((w),(v),(v),(h),(h),0,0,0,0) -#define echo_wchar(c) wecho_wchar(stdscr,(c)) -#define get_wch(c) wget_wch(stdscr,(c)) -#define get_wstr(t) wget_wstr(stdscr,(t)) -#define getbkgrnd(wch) wgetbkgrnd(stdscr,(wch)) -#define getn_wstr(t,n) wgetn_wstr(stdscr,(t),(n)) -#define hline_set(c,n) whline_set(stdscr,(c),(n)) -#define in_wch(c) win_wch(stdscr,(c)) -#define in_wchnstr(c,n) win_wchnstr(stdscr,(c),(n)) -#define in_wchstr(c) win_wchstr(stdscr,(c)) -#define innwstr(c,n) winnwstr(stdscr,(c),(n)) -#define ins_nwstr(t,n) wins_nwstr(stdscr,(t),(n)) -#define ins_wch(c) wins_wch(stdscr,(c)) -#define ins_wstr(t) wins_wstr(stdscr,(t)) -#define inwstr(c) winwstr(stdscr,(c)) -#define vline_set(c,n) wvline_set(stdscr,(c),(n)) -#define wadd_wchstr(win,str) wadd_wchnstr((win),(str),-1) -#define waddwstr(win,wstr) waddnwstr((win),(wstr),-1) -#define wget_wstr(w,t) wgetn_wstr((w),(t),-1) -#define win_wchstr(w,c) win_wchnstr((w),(c),-1) -#define wins_wstr(w,t) wins_nwstr((w),(t),-1) - -#if !NCURSES_OPAQUE -#define wgetbkgrnd(win,wch) (NCURSES_OK_ADDR(wch) ? ((win) ? (*(wch) = (win)->_bkgrnd) : *(wch), OK) : ERR) -#endif - -#define mvadd_wch(y,x,c) mvwadd_wch(stdscr,(y),(x),(c)) -#define mvadd_wchnstr(y,x,s,n) mvwadd_wchnstr(stdscr,(y),(x),(s),(n)) -#define mvadd_wchstr(y,x,s) mvwadd_wchstr(stdscr,(y),(x),(s)) -#define mvaddnwstr(y,x,wstr,n) mvwaddnwstr(stdscr,(y),(x),(wstr),(n)) -#define mvaddwstr(y,x,wstr) mvwaddwstr(stdscr,(y),(x),(wstr)) -#define mvget_wch(y,x,c) mvwget_wch(stdscr,(y),(x),(c)) -#define mvget_wstr(y,x,t) mvwget_wstr(stdscr,(y),(x),(t)) -#define mvgetn_wstr(y,x,t,n) mvwgetn_wstr(stdscr,(y),(x),(t),(n)) -#define mvhline_set(y,x,c,n) mvwhline_set(stdscr,(y),(x),(c),(n)) -#define mvin_wch(y,x,c) mvwin_wch(stdscr,(y),(x),(c)) -#define mvin_wchnstr(y,x,c,n) mvwin_wchnstr(stdscr,(y),(x),(c),(n)) -#define mvin_wchstr(y,x,c) mvwin_wchstr(stdscr,(y),(x),(c)) -#define mvinnwstr(y,x,c,n) mvwinnwstr(stdscr,(y),(x),(c),(n)) -#define mvins_nwstr(y,x,t,n) mvwins_nwstr(stdscr,(y),(x),(t),(n)) -#define mvins_wch(y,x,c) mvwins_wch(stdscr,(y),(x),(c)) -#define mvins_wstr(y,x,t) mvwins_wstr(stdscr,(y),(x),(t)) -#define mvinwstr(y,x,c) mvwinwstr(stdscr,(y),(x),(c)) -#define mvvline_set(y,x,c,n) mvwvline_set(stdscr,(y),(x),(c),(n)) - -#define mvwadd_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : wadd_wch((win),(c))) -#define mvwadd_wchnstr(win,y,x,s,n) (wmove(win,(y),(x)) == ERR ? ERR : wadd_wchnstr((win),(s),(n))) -#define mvwadd_wchstr(win,y,x,s) (wmove(win,(y),(x)) == ERR ? ERR : wadd_wchstr((win),(s))) -#define mvwaddnwstr(win,y,x,wstr,n) (wmove(win,(y),(x)) == ERR ? ERR : waddnwstr((win),(wstr),(n))) -#define mvwaddwstr(win,y,x,wstr) (wmove(win,(y),(x)) == ERR ? ERR : waddwstr((win),(wstr))) -#define mvwget_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : wget_wch((win),(c))) -#define mvwget_wstr(win,y,x,t) (wmove(win,(y),(x)) == ERR ? ERR : wget_wstr((win),(t))) -#define mvwgetn_wstr(win,y,x,t,n) (wmove(win,(y),(x)) == ERR ? ERR : wgetn_wstr((win),(t),(n))) -#define mvwhline_set(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : whline_set((win),(c),(n))) -#define mvwin_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : win_wch((win),(c))) -#define mvwin_wchnstr(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : win_wchnstr((win),(c),(n))) -#define mvwin_wchstr(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : win_wchstr((win),(c))) -#define mvwinnwstr(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : winnwstr((win),(c),(n))) -#define mvwins_nwstr(win,y,x,t,n) (wmove(win,(y),(x)) == ERR ? ERR : wins_nwstr((win),(t),(n))) -#define mvwins_wch(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : wins_wch((win),(c))) -#define mvwins_wstr(win,y,x,t) (wmove(win,(y),(x)) == ERR ? ERR : wins_wstr((win),(t))) -#define mvwinwstr(win,y,x,c) (wmove(win,(y),(x)) == ERR ? ERR : winwstr((win),(c))) -#define mvwvline_set(win,y,x,c,n) (wmove(win,(y),(x)) == ERR ? ERR : wvline_set((win),(c),(n))) - -#endif /* NCURSES_NOMACROS */ - -#if defined(TRACE) || defined(NCURSES_TEST) -extern NCURSES_EXPORT(const char *) _nc_viswbuf(const wchar_t *); -extern NCURSES_EXPORT(const char *) _nc_viswibuf(const wint_t *); -#endif - -#endif /* NCURSES_WIDECHAR */ diff --git a/include/edit_cfg.sh b/include/edit_cfg.sh deleted file mode 100755 index f7f1795..0000000 --- a/include/edit_cfg.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/sh -# $Id: edit_cfg.sh,v 1.14 2020/02/02 23:34:34 tom Exp $ -############################################################################## -# Copyright 2020 Thomas E. Dickey # -# Copyright 1998-2001,2017 Free Software Foundation, Inc. # -# # -# Permission is hereby granted, free of charge, to any person obtaining a # -# copy of this software and associated documentation files (the "Software"), # -# to deal in the Software without restriction, including without limitation # -# the rights to use, copy, modify, merge, publish, distribute, distribute # -# with modifications, sublicense, and/or sell copies of the Software, and to # -# permit persons to whom the Software is furnished to do so, subject to the # -# following conditions: # -# # -# The above copyright notice and this permission notice shall be included in # -# all copies or substantial portions of the Software. # -# # -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # -# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # -# DEALINGS IN THE SOFTWARE. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas E. Dickey 1996,1997,2000 -# -# Edit the default value of the term.h file based on the autoconf-generated -# values: -# -# $1 = ncurses_cfg.h -# $2 = term.h -# -BAK=save$$ -TMP=edit$$ -trap "rm -f $BAK $TMP" 0 1 2 3 15 -for name in \ - HAVE_TCGETATTR \ - HAVE_TERMIOS_H \ - HAVE_TERMIO_H \ - BROKEN_LINKER -do - mv $2 $BAK - if ( grep "[ ]$name[ ]" $1 2>&1 >$TMP ) - then - value=1 - else - value=0 - fi - echo '** edit: '$name $value - sed \ - -e "s@#define ${name}.*\$@#define $name $value@" \ - -e "s@#if $name\$@#if $value /* $name */@" \ - -e "s@#if !$name\$@#if $value /* !$name */@" \ - $BAK >$2 - if (cmp -s $2 $BAK) - then - mv $BAK $2 - else - rm -f $BAK - fi -done diff --git a/include/eti.h b/include/eti.h deleted file mode 100644 index 3c3302d..0000000 --- a/include/eti.h +++ /dev/null @@ -1,55 +0,0 @@ -/**************************************************************************** - * Copyright 2020 Thomas E. Dickey * - * Copyright 1998-2002,2003 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Juergen Pfeifer, 1995,1997 * - ****************************************************************************/ - -/* $Id: eti.h,v 1.9 2020/02/02 23:34:34 tom Exp $ */ - -#ifndef NCURSES_ETI_H_incl -#define NCURSES_ETI_H_incl 1 - -#define E_OK (0) -#define E_SYSTEM_ERROR (-1) -#define E_BAD_ARGUMENT (-2) -#define E_POSTED (-3) -#define E_CONNECTED (-4) -#define E_BAD_STATE (-5) -#define E_NO_ROOM (-6) -#define E_NOT_POSTED (-7) -#define E_UNKNOWN_COMMAND (-8) -#define E_NO_MATCH (-9) -#define E_NOT_SELECTABLE (-10) -#define E_NOT_CONNECTED (-11) -#define E_REQUEST_DENIED (-12) -#define E_INVALID_FIELD (-13) -#define E_CURRENT (-14) - -#endif diff --git a/include/form.h b/include/form.h deleted file mode 100644 index 3b62e39..0000000 --- a/include/form.h +++ /dev/null @@ -1,460 +0,0 @@ -/**************************************************************************** - * Copyright 2018-2019-2020,2021 Thomas E. Dickey * - * Copyright 1998-2016,2017 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Juergen Pfeifer, 1995,1997 * - ****************************************************************************/ - -/* $Id: form.h,v 0.32 2021/06/17 21:26:02 tom Exp $ */ - -#ifndef FORM_H -#define FORM_H -/* *INDENT-OFF*/ - -#include -#include - -#ifdef __cplusplus - extern "C" { -#endif - -#if defined(BUILDING_FORM) -# define FORM_IMPEXP NCURSES_EXPORT_GENERAL_EXPORT -#else -# define FORM_IMPEXP NCURSES_EXPORT_GENERAL_IMPORT -#endif - -#define FORM_WRAPPED_VAR(type,name) extern FORM_IMPEXP type NCURSES_PUBLIC_VAR(name)(void) - -#define FORM_EXPORT(type) FORM_IMPEXP type NCURSES_API -#define FORM_EXPORT_VAR(type) FORM_IMPEXP type - -#ifndef FORM_PRIV_H -typedef void *FIELD_CELL; -#endif - -#ifndef NCURSES_FIELD_INTERNALS -#define NCURSES_FIELD_INTERNALS /* nothing */ -#endif - -typedef int Form_Options; -typedef int Field_Options; - - /********** - * _PAGE * - **********/ - -typedef struct pagenode -#if !NCURSES_OPAQUE_FORM -{ - short pmin; /* index of first field on page */ - short pmax; /* index of last field on page */ - short smin; /* index of top leftmost field on page */ - short smax; /* index of bottom rightmost field on page */ -} -#endif /* !NCURSES_OPAQUE_FORM */ -_PAGE; - - /********** - * FIELD * - **********/ - -typedef struct fieldnode -#if 1 /* not yet: !NCURSES_OPAQUE_FORM */ -{ - unsigned short status; /* flags */ - short rows; /* size in rows */ - short cols; /* size in cols */ - short frow; /* first row */ - short fcol; /* first col */ - int drows; /* dynamic rows */ - int dcols; /* dynamic cols */ - int maxgrow; /* maximum field growth */ - int nrow; /* off-screen rows */ - short nbuf; /* additional buffers */ - short just; /* justification */ - short page; /* page on form */ - short index; /* into form -> field */ - int pad; /* pad character */ - chtype fore; /* foreground attribute */ - chtype back; /* background attribute */ - Field_Options opts; /* options */ - struct fieldnode * snext; /* sorted order pointer */ - struct fieldnode * sprev; /* sorted order pointer */ - struct fieldnode * link; /* linked field chain */ - struct formnode * form; /* containing form */ - struct typenode * type; /* field type */ - void * arg; /* argument for type */ - FIELD_CELL * buf; /* field buffers */ - void * usrptr; /* user pointer */ - /* - * The wide-character configuration requires extra information. Because - * there are existing applications that manipulate the members of FIELD - * directly, we cannot make the struct opaque, except by changing the ABI. - * Offsets of members up to this point are the same in the narrow- and - * wide-character configuration. But note that the type of buf depends on - * the configuration, and is made opaque for that reason. - */ - NCURSES_FIELD_INTERNALS -} -#endif /* NCURSES_OPAQUE_FORM */ -FIELD; - - - /********* - * FORM * - *********/ - -typedef struct formnode -#if 1 /* not yet: !NCURSES_OPAQUE_FORM */ -{ - unsigned short status; /* flags */ - short rows; /* size in rows */ - short cols; /* size in cols */ - int currow; /* current row in field window */ - int curcol; /* current col in field window */ - int toprow; /* in scrollable field window */ - int begincol; /* in horiz. scrollable field */ - short maxfield; /* number of fields */ - short maxpage; /* number of pages */ - short curpage; /* index into page */ - Form_Options opts; /* options */ - WINDOW * win; /* window */ - WINDOW * sub; /* subwindow */ - WINDOW * w; /* window for current field */ - FIELD ** field; /* field [maxfield] */ - FIELD * current; /* current field */ - _PAGE * page; /* page [maxpage] */ - void * usrptr; /* user pointer */ - - void (*forminit)(struct formnode *); - void (*formterm)(struct formnode *); - void (*fieldinit)(struct formnode *); - void (*fieldterm)(struct formnode *); - -} -#endif /* !NCURSES_OPAQUE_FORM */ -FORM; - - - /************** - * FIELDTYPE * - **************/ - -typedef struct typenode -#if !NCURSES_OPAQUE_FORM -{ - unsigned short status; /* flags */ - long ref; /* reference count */ - struct typenode * left; /* ptr to operand for | */ - struct typenode * right; /* ptr to operand for | */ - - void* (*makearg)(va_list *); /* make fieldtype arg */ - void* (*copyarg)(const void *); /* copy fieldtype arg */ - void (*freearg)(void *); /* free fieldtype arg */ - -#if NCURSES_INTEROP_FUNCS - union { - bool (*ofcheck)(FIELD *,const void *); /* field validation */ - bool (*gfcheck)(FORM*,FIELD *,const void*); /* generic field validation */ - } fieldcheck; - union { - bool (*occheck)(int,const void *); /* character validation */ - bool (*gccheck)(int,FORM*, - FIELD*,const void*); /* generic char validation */ - } charcheck; - union { - bool (*onext)(FIELD *,const void *); /* enumerate next value */ - bool (*gnext)(FORM*,FIELD*,const void*); /* generic enumerate next */ - } enum_next; - union { - bool (*oprev)(FIELD *,const void *); /* enumerate prev value */ - bool (*gprev)(FORM*,FIELD*,const void*); /* generic enumerate prev */ - } enum_prev; - void* (*genericarg)(void*); /* Alternate Arg method */ -#else - bool (*fcheck)(FIELD *,const void *); /* field validation */ - bool (*ccheck)(int,const void *); /* character validation */ - - bool (*next)(FIELD *,const void *); /* enumerate next value */ - bool (*prev)(FIELD *,const void *); /* enumerate prev value */ -#endif -} -#endif /* !NCURSES_OPAQUE_FORM */ -FIELDTYPE; - -typedef void (*Form_Hook)(FORM *); - - /*************************** - * miscellaneous #defines * - ***************************/ - -/* field justification */ -#define NO_JUSTIFICATION (0) -#define JUSTIFY_LEFT (1) -#define JUSTIFY_CENTER (2) -#define JUSTIFY_RIGHT (3) - -/* field options */ -#define O_VISIBLE (0x0001U) -#define O_ACTIVE (0x0002U) -#define O_PUBLIC (0x0004U) -#define O_EDIT (0x0008U) -#define O_WRAP (0x0010U) -#define O_BLANK (0x0020U) -#define O_AUTOSKIP (0x0040U) -#define O_NULLOK (0x0080U) -#define O_PASSOK (0x0100U) -#define O_STATIC (0x0200U) -#define O_DYNAMIC_JUSTIFY (0x0400U) /* ncurses extension */ -#define O_NO_LEFT_STRIP (0x0800U) /* ncurses extension */ -#define O_EDGE_INSERT_STAY (0x1000U) /* ncurses extension */ -#define O_INPUT_LIMIT (0x2000U) /* ncurses extension */ - -/* form options */ -#define O_NL_OVERLOAD (0x0001U) -#define O_BS_OVERLOAD (0x0002U) - -/* form driver commands */ -#define REQ_NEXT_PAGE (KEY_MAX + 1) /* move to next page */ -#define REQ_PREV_PAGE (KEY_MAX + 2) /* move to previous page */ -#define REQ_FIRST_PAGE (KEY_MAX + 3) /* move to first page */ -#define REQ_LAST_PAGE (KEY_MAX + 4) /* move to last page */ - -#define REQ_NEXT_FIELD (KEY_MAX + 5) /* move to next field */ -#define REQ_PREV_FIELD (KEY_MAX + 6) /* move to previous field */ -#define REQ_FIRST_FIELD (KEY_MAX + 7) /* move to first field */ -#define REQ_LAST_FIELD (KEY_MAX + 8) /* move to last field */ -#define REQ_SNEXT_FIELD (KEY_MAX + 9) /* move to sorted next field */ -#define REQ_SPREV_FIELD (KEY_MAX + 10) /* move to sorted prev field */ -#define REQ_SFIRST_FIELD (KEY_MAX + 11) /* move to sorted first field */ -#define REQ_SLAST_FIELD (KEY_MAX + 12) /* move to sorted last field */ -#define REQ_LEFT_FIELD (KEY_MAX + 13) /* move to left to field */ -#define REQ_RIGHT_FIELD (KEY_MAX + 14) /* move to right to field */ -#define REQ_UP_FIELD (KEY_MAX + 15) /* move to up to field */ -#define REQ_DOWN_FIELD (KEY_MAX + 16) /* move to down to field */ - -#define REQ_NEXT_CHAR (KEY_MAX + 17) /* move to next char in field */ -#define REQ_PREV_CHAR (KEY_MAX + 18) /* move to prev char in field */ -#define REQ_NEXT_LINE (KEY_MAX + 19) /* move to next line in field */ -#define REQ_PREV_LINE (KEY_MAX + 20) /* move to prev line in field */ -#define REQ_NEXT_WORD (KEY_MAX + 21) /* move to next word in field */ -#define REQ_PREV_WORD (KEY_MAX + 22) /* move to prev word in field */ -#define REQ_BEG_FIELD (KEY_MAX + 23) /* move to first char in field */ -#define REQ_END_FIELD (KEY_MAX + 24) /* move after last char in fld */ -#define REQ_BEG_LINE (KEY_MAX + 25) /* move to beginning of line */ -#define REQ_END_LINE (KEY_MAX + 26) /* move after last char in line */ -#define REQ_LEFT_CHAR (KEY_MAX + 27) /* move left in field */ -#define REQ_RIGHT_CHAR (KEY_MAX + 28) /* move right in field */ -#define REQ_UP_CHAR (KEY_MAX + 29) /* move up in field */ -#define REQ_DOWN_CHAR (KEY_MAX + 30) /* move down in field */ - -#define REQ_NEW_LINE (KEY_MAX + 31) /* insert/overlay new line */ -#define REQ_INS_CHAR (KEY_MAX + 32) /* insert blank char at cursor */ -#define REQ_INS_LINE (KEY_MAX + 33) /* insert blank line at cursor */ -#define REQ_DEL_CHAR (KEY_MAX + 34) /* delete char at cursor */ -#define REQ_DEL_PREV (KEY_MAX + 35) /* delete char before cursor */ -#define REQ_DEL_LINE (KEY_MAX + 36) /* delete line at cursor */ -#define REQ_DEL_WORD (KEY_MAX + 37) /* delete word at cursor */ -#define REQ_CLR_EOL (KEY_MAX + 38) /* clear to end of line */ -#define REQ_CLR_EOF (KEY_MAX + 39) /* clear to end of field */ -#define REQ_CLR_FIELD (KEY_MAX + 40) /* clear entire field */ -#define REQ_OVL_MODE (KEY_MAX + 41) /* begin overlay mode */ -#define REQ_INS_MODE (KEY_MAX + 42) /* begin insert mode */ -#define REQ_SCR_FLINE (KEY_MAX + 43) /* scroll field forward a line */ -#define REQ_SCR_BLINE (KEY_MAX + 44) /* scroll field backward a line */ -#define REQ_SCR_FPAGE (KEY_MAX + 45) /* scroll field forward a page */ -#define REQ_SCR_BPAGE (KEY_MAX + 46) /* scroll field backward a page */ -#define REQ_SCR_FHPAGE (KEY_MAX + 47) /* scroll field forward half page */ -#define REQ_SCR_BHPAGE (KEY_MAX + 48) /* scroll field backward half page */ -#define REQ_SCR_FCHAR (KEY_MAX + 49) /* horizontal scroll char */ -#define REQ_SCR_BCHAR (KEY_MAX + 50) /* horizontal scroll char */ -#define REQ_SCR_HFLINE (KEY_MAX + 51) /* horizontal scroll line */ -#define REQ_SCR_HBLINE (KEY_MAX + 52) /* horizontal scroll line */ -#define REQ_SCR_HFHALF (KEY_MAX + 53) /* horizontal scroll half line */ -#define REQ_SCR_HBHALF (KEY_MAX + 54) /* horizontal scroll half line */ - -#define REQ_VALIDATION (KEY_MAX + 55) /* validate field */ -#define REQ_NEXT_CHOICE (KEY_MAX + 56) /* display next field choice */ -#define REQ_PREV_CHOICE (KEY_MAX + 57) /* display prev field choice */ - -#define MIN_FORM_COMMAND (KEY_MAX + 1) /* used by form_driver */ -#define MAX_FORM_COMMAND (KEY_MAX + 57) /* used by form_driver */ - -#if defined(MAX_COMMAND) -# if (MAX_FORM_COMMAND > MAX_COMMAND) -# error Something is wrong -- MAX_FORM_COMMAND is greater than MAX_COMMAND -# elif (MAX_COMMAND != (KEY_MAX + 128)) -# error Something is wrong -- MAX_COMMAND is already inconsistently defined. -# endif -#else -# define MAX_COMMAND (KEY_MAX + 128) -#endif - - /************************* - * standard field types * - *************************/ -extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_ALPHA; -extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_ALNUM; -extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_ENUM; -extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_INTEGER; -extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_NUMERIC; -extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_REGEXP; - - /************************************ - * built-in additional field types * - * They are not defined in SVr4 * - ************************************/ -extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_IPV4; /* Internet IP Version 4 address */ - - /*********************** - * FIELDTYPE routines * - ***********************/ -extern FORM_EXPORT(FIELDTYPE *) new_fieldtype ( - bool (* const field_check)(FIELD *,const void *), - bool (* const char_check)(int,const void *)); -extern FORM_EXPORT(FIELDTYPE *) link_fieldtype( - FIELDTYPE *, FIELDTYPE *); - -extern FORM_EXPORT(int) free_fieldtype (FIELDTYPE *); -extern FORM_EXPORT(int) set_fieldtype_arg (FIELDTYPE *, - void * (* const make_arg)(va_list *), - void * (* const copy_arg)(const void *), - void (* const free_arg)(void *)); -extern FORM_EXPORT(int) set_fieldtype_choice (FIELDTYPE *, - bool (* const next_choice)(FIELD *,const void *), - bool (* const prev_choice)(FIELD *,const void *)); - - /******************* - * FIELD routines * - *******************/ -extern FORM_EXPORT(FIELD *) new_field (int,int,int,int,int,int); -extern FORM_EXPORT(FIELD *) dup_field (FIELD *,int,int); -extern FORM_EXPORT(FIELD *) link_field (FIELD *,int,int); - -extern FORM_EXPORT(int) free_field (FIELD *); -extern FORM_EXPORT(int) field_info (const FIELD *,int *,int *,int *,int *,int *,int *); -extern FORM_EXPORT(int) dynamic_field_info (const FIELD *,int *,int *,int *); -extern FORM_EXPORT(int) set_max_field ( FIELD *,int); -extern FORM_EXPORT(int) move_field (FIELD *,int,int); -extern FORM_EXPORT(int) set_field_type (FIELD *,FIELDTYPE *,...); -extern FORM_EXPORT(int) set_new_page (FIELD *,bool); -extern FORM_EXPORT(int) set_field_just (FIELD *,int); -extern FORM_EXPORT(int) field_just (const FIELD *); -extern FORM_EXPORT(int) set_field_fore (FIELD *,chtype); -extern FORM_EXPORT(int) set_field_back (FIELD *,chtype); -extern FORM_EXPORT(int) set_field_pad (FIELD *,int); -extern FORM_EXPORT(int) field_pad (const FIELD *); -extern FORM_EXPORT(int) set_field_buffer (FIELD *,int,const char *); -extern FORM_EXPORT(int) set_field_status (FIELD *,bool); -extern FORM_EXPORT(int) set_field_userptr (FIELD *, void *); -extern FORM_EXPORT(int) set_field_opts (FIELD *,Field_Options); -extern FORM_EXPORT(int) field_opts_on (FIELD *,Field_Options); -extern FORM_EXPORT(int) field_opts_off (FIELD *,Field_Options); - -extern FORM_EXPORT(chtype) field_fore (const FIELD *); -extern FORM_EXPORT(chtype) field_back (const FIELD *); - -extern FORM_EXPORT(bool) new_page (const FIELD *); -extern FORM_EXPORT(bool) field_status (const FIELD *); - -extern FORM_EXPORT(void *) field_arg (const FIELD *); - -extern FORM_EXPORT(void *) field_userptr (const FIELD *); - -extern FORM_EXPORT(FIELDTYPE *) field_type (const FIELD *); - -extern FORM_EXPORT(char *) field_buffer (const FIELD *,int); - -extern FORM_EXPORT(Field_Options) field_opts (const FIELD *); - - /****************** - * FORM routines * - ******************/ - -extern FORM_EXPORT(FORM *) new_form (FIELD **); - -extern FORM_EXPORT(FIELD **) form_fields (const FORM *); -extern FORM_EXPORT(FIELD *) current_field (const FORM *); - -extern FORM_EXPORT(WINDOW *) form_win (const FORM *); -extern FORM_EXPORT(WINDOW *) form_sub (const FORM *); - -extern FORM_EXPORT(Form_Hook) form_init (const FORM *); -extern FORM_EXPORT(Form_Hook) form_term (const FORM *); -extern FORM_EXPORT(Form_Hook) field_init (const FORM *); -extern FORM_EXPORT(Form_Hook) field_term (const FORM *); - -extern FORM_EXPORT(int) free_form (FORM *); -extern FORM_EXPORT(int) set_form_fields (FORM *,FIELD **); -extern FORM_EXPORT(int) field_count (const FORM *); -extern FORM_EXPORT(int) set_form_win (FORM *,WINDOW *); -extern FORM_EXPORT(int) set_form_sub (FORM *,WINDOW *); -extern FORM_EXPORT(int) set_current_field (FORM *,FIELD *); -extern FORM_EXPORT(int) unfocus_current_field (FORM *); -extern FORM_EXPORT(int) field_index (const FIELD *); -extern FORM_EXPORT(int) set_form_page (FORM *,int); -extern FORM_EXPORT(int) form_page (const FORM *); -extern FORM_EXPORT(int) scale_form (const FORM *,int *,int *); -extern FORM_EXPORT(int) set_form_init (FORM *,Form_Hook); -extern FORM_EXPORT(int) set_form_term (FORM *,Form_Hook); -extern FORM_EXPORT(int) set_field_init (FORM *,Form_Hook); -extern FORM_EXPORT(int) set_field_term (FORM *,Form_Hook); -extern FORM_EXPORT(int) post_form (FORM *); -extern FORM_EXPORT(int) unpost_form (FORM *); -extern FORM_EXPORT(int) pos_form_cursor (FORM *); -extern FORM_EXPORT(int) form_driver (FORM *,int); -# if NCURSES_WIDECHAR -extern FORM_EXPORT(int) form_driver_w (FORM *,int,wchar_t); -# endif -extern FORM_EXPORT(int) set_form_userptr (FORM *,void *); -extern FORM_EXPORT(int) set_form_opts (FORM *,Form_Options); -extern FORM_EXPORT(int) form_opts_on (FORM *,Form_Options); -extern FORM_EXPORT(int) form_opts_off (FORM *,Form_Options); -extern FORM_EXPORT(int) form_request_by_name (const char *); - -extern FORM_EXPORT(const char *) form_request_name (int); - -extern FORM_EXPORT(void *) form_userptr (const FORM *); - -extern FORM_EXPORT(Form_Options) form_opts (const FORM *); - -extern FORM_EXPORT(bool) data_ahead (const FORM *); -extern FORM_EXPORT(bool) data_behind (const FORM *); - -#if NCURSES_SP_FUNCS -extern FORM_EXPORT(FORM *) NCURSES_SP_NAME(new_form) (SCREEN*, FIELD **); -#endif - -#ifdef __cplusplus - } -#endif -/* *INDENT-ON*/ - -#endif /* FORM_H */ diff --git a/include/hashed_db.h b/include/hashed_db.h deleted file mode 100644 index 584fd96..0000000 --- a/include/hashed_db.h +++ /dev/null @@ -1,72 +0,0 @@ -/**************************************************************************** - * Copyright 2020 Thomas E. Dickey * - * Copyright 2006-2014,2017 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 2006 * - ****************************************************************************/ - -/* - * $Id: hashed_db.h,v 1.9 2020/02/02 23:34:34 tom Exp $ - */ - -#ifndef HASHED_DB_H -#define HASHED_DB_H 1 - -#include - -#include - -#if USE_HASHED_DB - -#define DB_DBM_HSEARCH 0 /* quiet gcc -Wundef with db6 */ - -#include - -#ifndef DBM_SUFFIX -#define DBM_SUFFIX ".db" -#endif - -#ifdef DB_VERSION_MAJOR -#define HASHED_DB_API DB_VERSION_MAJOR -#else -#define HASHED_DB_API 1 /* e.g., db 1.8.5 */ -#endif - -extern NCURSES_EXPORT(DB *) _nc_db_open(const char * /* path */, bool /* modify */); -extern NCURSES_EXPORT(bool) _nc_db_have_data(DBT * /* key */, DBT * /* data */, char ** /* buffer */, int * /* size */); -extern NCURSES_EXPORT(bool) _nc_db_have_index(DBT * /* key */, DBT * /* data */, char ** /* buffer */, int * /* size */); -extern NCURSES_EXPORT(int) _nc_db_close(DB * /* db */); -extern NCURSES_EXPORT(int) _nc_db_first(DB * /* db */, DBT * /* key */, DBT * /* data */); -extern NCURSES_EXPORT(int) _nc_db_next(DB * /* db */, DBT * /* key */, DBT * /* data */); -extern NCURSES_EXPORT(int) _nc_db_get(DB * /* db */, DBT * /* key */, DBT * /* data */); -extern NCURSES_EXPORT(int) _nc_db_put(DB * /* db */, DBT * /* key */, DBT * /* data */); - -#endif - -#endif /* HASHED_DB_H */ diff --git a/include/hashsize.h b/include/hashsize.h deleted file mode 100644 index 478fd59..0000000 --- a/include/hashsize.h +++ /dev/null @@ -1,6 +0,0 @@ -/* - * hashsize.h -- hash and token table constants - */ - -#define CAPTABSIZE 497 -#define HASHTABSIZE (497 * 2) diff --git a/include/headers b/include/headers deleted file mode 100644 index 32e33fd..0000000 --- a/include/headers +++ /dev/null @@ -1,55 +0,0 @@ -# $Id: headers,v 1.15 2020/08/29 18:51:13 tom Exp $ -############################################################################## -# Copyright 2020 Thomas E. Dickey # -# Copyright 1998-2012,2013 Free Software Foundation, Inc. # -# # -# Permission is hereby granted, free of charge, to any person obtaining a # -# copy of this software and associated documentation files (the "Software"), # -# to deal in the Software without restriction, including without limitation # -# the rights to use, copy, modify, merge, publish, distribute, distribute # -# with modifications, sublicense, and/or sell copies of the Software, and to # -# permit persons to whom the Software is furnished to do so, subject to the # -# following conditions: # -# # -# The above copyright notice and this permission notice shall be included in # -# all copies or substantial portions of the Software. # -# # -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # -# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # -# DEALINGS IN THE SOFTWARE. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas E. Dickey 1996-on -# -curses.h -unctrl.h -ncurses_dll.h - -# Support for termcap (and tic, etc.), which can be a separate library -@ termlib -term.h -termcap.h - -# Headers used only for tic, other programs using internal interfaces -@ ticlib -$(srcdir)/tic.h -$(srcdir)/term_entry.h -$(srcdir)/nc_tparm.h - -# Porting -@ port_win32con -$(srcdir)/ncurses_mingw.h -$(srcdir)/nc_mingw.h -@ port_win32 -$(srcdir)/win32_curses.h - -# vile:makemode diff --git a/include/menu.h b/include/menu.h deleted file mode 100644 index e5a5372..0000000 --- a/include/menu.h +++ /dev/null @@ -1,281 +0,0 @@ -/**************************************************************************** - * Copyright 2020 Thomas E. Dickey * - * Copyright 1998-2016,2017 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Juergen Pfeifer, 1995,1997 * - ****************************************************************************/ - -/* $Id: menu.h,v 1.26 2020/12/12 00:38:02 tom Exp $ */ - -#ifndef ETI_MENU -#define ETI_MENU - -#ifdef AMIGA -#define TEXT TEXT_ncurses -#endif - -#include -#include - -#ifdef __cplusplus -extern "C" -{ -#endif - -#if defined(BUILDING_MENU) -# define MENU_IMPEXP NCURSES_EXPORT_GENERAL_EXPORT -#else -# define MENU_IMPEXP NCURSES_EXPORT_GENERAL_IMPORT -#endif - -#define MENU_WRAPPED_VAR(type,name) extern MENU_IMPEXP type NCURSES_PUBLIC_VAR(name)(void) - -#define MENU_EXPORT(type) MENU_IMPEXP type NCURSES_API -#define MENU_EXPORT_VAR(type) MENU_IMPEXP type - - typedef int Menu_Options; - typedef int Item_Options; - -/* Menu options: */ -#define O_ONEVALUE (0x01) -#define O_SHOWDESC (0x02) -#define O_ROWMAJOR (0x04) -#define O_IGNORECASE (0x08) -#define O_SHOWMATCH (0x10) -#define O_NONCYCLIC (0x20) -#define O_MOUSE_MENU (0x40) - -/* Item options: */ -#define O_SELECTABLE (0x01) - -#if !NCURSES_OPAQUE_MENU - typedef struct - { - const char *str; - unsigned short length; - } - TEXT; -#endif /* !NCURSES_OPAQUE_MENU */ - - struct tagMENU; - - typedef struct tagITEM -#if !NCURSES_OPAQUE_MENU - { - TEXT name; /* name of menu item */ - TEXT description; /* description of item, optional in display */ - struct tagMENU *imenu; /* Pointer to parent menu */ - void *userptr; /* Pointer to user defined per item data */ - Item_Options opt; /* Item options */ - short index; /* Item number if connected to a menu */ - short y; /* y and x location of item in menu */ - short x; - bool value; /* Selection value */ - - struct tagITEM *left; /* neighbor items */ - struct tagITEM *right; - struct tagITEM *up; - struct tagITEM *down; - - } -#endif /* !NCURSES_OPAQUE_MENU */ - ITEM; - - typedef void (*Menu_Hook) (struct tagMENU *); - - typedef struct tagMENU -#if 1 /* not yet: !NCURSES_OPAQUE_MENU */ - { - short height; /* Nr. of chars high */ - short width; /* Nr. of chars wide */ - short rows; /* Nr. of items high */ - short cols; /* Nr. of items wide */ - short frows; /* Nr. of formatted items high */ - short fcols; /* Nr. of formatted items wide */ - short arows; /* Nr. of items high (actual) */ - short namelen; /* Max. name length */ - short desclen; /* Max. description length */ - short marklen; /* Length of mark, if any */ - short itemlen; /* Length of one item */ - short spc_desc; /* Spacing for descriptor */ - short spc_cols; /* Spacing for columns */ - short spc_rows; /* Spacing for rows */ - char *pattern; /* Buffer to store match chars */ - short pindex; /* Index into pattern buffer */ - WINDOW *win; /* Window containing menu */ - WINDOW *sub; /* Subwindow for menu display */ - WINDOW *userwin; /* User's window */ - WINDOW *usersub; /* User's subwindow */ - ITEM **items; /* array of items */ - short nitems; /* Nr. of items in menu */ - ITEM *curitem; /* Current item */ - short toprow; /* Top row of menu */ - chtype fore; /* Selection attribute */ - chtype back; /* Nonselection attribute */ - chtype grey; /* Inactive attribute */ - unsigned char pad; /* Pad character */ - - Menu_Hook menuinit; /* User hooks */ - Menu_Hook menuterm; - Menu_Hook iteminit; - Menu_Hook itemterm; - - void *userptr; /* Pointer to menus user data */ - char *mark; /* Pointer to marker string */ - - Menu_Options opt; /* Menu options */ - unsigned short status; /* Internal state of menu */ - } -#endif /* !NCURSES_OPAQUE_MENU */ - MENU; - -/* Define keys */ - -#define REQ_LEFT_ITEM (KEY_MAX + 1) -#define REQ_RIGHT_ITEM (KEY_MAX + 2) -#define REQ_UP_ITEM (KEY_MAX + 3) -#define REQ_DOWN_ITEM (KEY_MAX + 4) -#define REQ_SCR_ULINE (KEY_MAX + 5) -#define REQ_SCR_DLINE (KEY_MAX + 6) -#define REQ_SCR_DPAGE (KEY_MAX + 7) -#define REQ_SCR_UPAGE (KEY_MAX + 8) -#define REQ_FIRST_ITEM (KEY_MAX + 9) -#define REQ_LAST_ITEM (KEY_MAX + 10) -#define REQ_NEXT_ITEM (KEY_MAX + 11) -#define REQ_PREV_ITEM (KEY_MAX + 12) -#define REQ_TOGGLE_ITEM (KEY_MAX + 13) -#define REQ_CLEAR_PATTERN (KEY_MAX + 14) -#define REQ_BACK_PATTERN (KEY_MAX + 15) -#define REQ_NEXT_MATCH (KEY_MAX + 16) -#define REQ_PREV_MATCH (KEY_MAX + 17) - -#define MIN_MENU_COMMAND (KEY_MAX + 1) -#define MAX_MENU_COMMAND (KEY_MAX + 17) - -/* - * Some AT&T code expects MAX_COMMAND to be out-of-band not - * just for menu commands but for forms ones as well. - */ -#if defined(MAX_COMMAND) -# if (MAX_MENU_COMMAND > MAX_COMMAND) -# error Something is wrong -- MAX_MENU_COMMAND is greater than MAX_COMMAND -# elif (MAX_COMMAND != (KEY_MAX + 128)) -# error Something is wrong -- MAX_COMMAND is already inconsistently defined. -# endif -#else -# define MAX_COMMAND (KEY_MAX + 128) -#endif - -/* --------- prototypes for libmenu functions ----------------------------- */ - - extern MENU_EXPORT(ITEM **) menu_items(const MENU *); - extern MENU_EXPORT(ITEM *) current_item(const MENU *); - extern MENU_EXPORT(ITEM *) new_item(const char *, const char *); - - extern MENU_EXPORT(MENU *) new_menu(ITEM **); - - extern MENU_EXPORT(Item_Options) item_opts(const ITEM *); - extern MENU_EXPORT(Menu_Options) menu_opts(const MENU *); - - extern MENU_EXPORT(Menu_Hook) item_init(const MENU *); - extern MENU_EXPORT(Menu_Hook) item_term(const MENU *); - extern MENU_EXPORT(Menu_Hook) menu_init(const MENU *); - extern MENU_EXPORT(Menu_Hook) menu_term(const MENU *); - - extern MENU_EXPORT(WINDOW *) menu_sub(const MENU *); - extern MENU_EXPORT(WINDOW *) menu_win(const MENU *); - - extern MENU_EXPORT(const char *) item_description(const ITEM *); - extern MENU_EXPORT(const char *) item_name(const ITEM *); - extern MENU_EXPORT(const char *) menu_mark(const MENU *); - extern MENU_EXPORT(const char *) menu_request_name(int); - - extern MENU_EXPORT(char *) menu_pattern(const MENU *); - - extern MENU_EXPORT(void *) menu_userptr(const MENU *); - extern MENU_EXPORT(void *) item_userptr(const ITEM *); - - extern MENU_EXPORT(chtype) menu_back(const MENU *); - extern MENU_EXPORT(chtype) menu_fore(const MENU *); - extern MENU_EXPORT(chtype) menu_grey(const MENU *); - - extern MENU_EXPORT(int) free_item(ITEM *); - extern MENU_EXPORT(int) free_menu(MENU *); - extern MENU_EXPORT(int) item_count(const MENU *); - extern MENU_EXPORT(int) item_index(const ITEM *); - extern MENU_EXPORT(int) item_opts_off(ITEM *, Item_Options); - extern MENU_EXPORT(int) item_opts_on(ITEM *, Item_Options); - extern MENU_EXPORT(int) menu_driver(MENU *, int); - extern MENU_EXPORT(int) menu_opts_off(MENU *, Menu_Options); - extern MENU_EXPORT(int) menu_opts_on(MENU *, Menu_Options); - extern MENU_EXPORT(int) menu_pad(const MENU *); - extern MENU_EXPORT(int) pos_menu_cursor(const MENU *); - extern MENU_EXPORT(int) post_menu(MENU *); - extern MENU_EXPORT(int) scale_menu(const MENU *, int *, int *); - extern MENU_EXPORT(int) set_current_item(MENU *menu, ITEM *item); - extern MENU_EXPORT(int) set_item_init(MENU *, Menu_Hook); - extern MENU_EXPORT(int) set_item_opts(ITEM *, Item_Options); - extern MENU_EXPORT(int) set_item_term(MENU *, Menu_Hook); - extern MENU_EXPORT(int) set_item_userptr(ITEM *, void *); - extern MENU_EXPORT(int) set_item_value(ITEM *, bool); - extern MENU_EXPORT(int) set_menu_back(MENU *, chtype); - extern MENU_EXPORT(int) set_menu_fore(MENU *, chtype); - extern MENU_EXPORT(int) set_menu_format(MENU *, int, int); - extern MENU_EXPORT(int) set_menu_grey(MENU *, chtype); - extern MENU_EXPORT(int) set_menu_init(MENU *, Menu_Hook); - extern MENU_EXPORT(int) set_menu_items(MENU *, ITEM **); - extern MENU_EXPORT(int) set_menu_mark(MENU *, const char *); - extern MENU_EXPORT(int) set_menu_opts(MENU *, Menu_Options); - extern MENU_EXPORT(int) set_menu_pad(MENU *, int); - extern MENU_EXPORT(int) set_menu_pattern(MENU *, const char *); - extern MENU_EXPORT(int) set_menu_sub(MENU *, WINDOW *); - extern MENU_EXPORT(int) set_menu_term(MENU *, Menu_Hook); - extern MENU_EXPORT(int) set_menu_userptr(MENU *, void *); - extern MENU_EXPORT(int) set_menu_win(MENU *, WINDOW *); - extern MENU_EXPORT(int) set_top_row(MENU *, int); - extern MENU_EXPORT(int) top_row(const MENU *); - extern MENU_EXPORT(int) unpost_menu(MENU *); - extern MENU_EXPORT(int) menu_request_by_name(const char *); - extern MENU_EXPORT(int) set_menu_spacing(MENU *, int, int, int); - extern MENU_EXPORT(int) menu_spacing(const MENU *, int *, int *, int *); - - extern MENU_EXPORT(bool) item_value(const ITEM *); - extern MENU_EXPORT(bool) item_visible(const ITEM *); - - extern MENU_EXPORT(void) menu_format(const MENU *, int *, int *); - -#if NCURSES_SP_FUNCS - extern MENU_EXPORT(MENU *) NCURSES_SP_NAME(new_menu) (SCREEN *, ITEM **); -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* ETI_MENU */ diff --git a/include/mf_common.h b/include/mf_common.h deleted file mode 100644 index fcbd565..0000000 --- a/include/mf_common.h +++ /dev/null @@ -1,98 +0,0 @@ -/**************************************************************************** - * Copyright 2020 Thomas E. Dickey * - * Copyright 1998-2005,2012 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Juergen Pfeifer, 1995,1997 * - ****************************************************************************/ - -/* $Id: mf_common.h,v 0.25 2020/02/02 23:34:34 tom Exp $ */ - -/* Common internal header for menu and form library */ - -#ifndef MF_COMMON_H_incl -#define MF_COMMON_H_incl 1 - -#include -#include - -#include -#include -#include -#include -#include -#include - -#if DECL_ERRNO -extern int errno; -#endif - -/* in case of debug version we ignore the suppression of assertions */ -#ifdef TRACE -# ifdef NDEBUG -# undef NDEBUG -# endif -#endif - -#include - -#if USE_RCS_IDS -#define MODULE_ID(id) static const char Ident[] = id; -#else -#define MODULE_ID(id) /*nothing */ -#endif - -/* Maximum regular 8-bit character code */ -#define MAX_REGULAR_CHARACTER (0xff) - -#define SET_ERROR(code) (errno=(code)) -#define GET_ERROR() (errno) - -#ifdef TRACE -#define RETURN(code) returnCode( SET_ERROR(code) ) -#else -#define RETURN(code) return( SET_ERROR(code) ) -#endif - -/* The few common values in the status fields for menus and forms */ -#define _POSTED (0x01U) /* menu or form is posted */ -#define _IN_DRIVER (0x02U) /* menu or form is processing hook routine */ - -#define SetStatus(target,mask) (target)->status |= (unsigned short) (mask) -#define ClrStatus(target,mask) (target)->status = (unsigned short) (target->status & (~mask)) - -/* Call object hook */ -#define Call_Hook( object, handler ) \ - if ( (object) != 0 && ((object)->handler) != (void *) 0 )\ - {\ - SetStatus(object, _IN_DRIVER);\ - (object)->handler(object);\ - ClrStatus(object, _IN_DRIVER);\ - } - -#endif /* MF_COMMON_H_incl */ diff --git a/include/nc_access.h b/include/nc_access.h deleted file mode 100644 index 2e893aa..0000000 --- a/include/nc_access.h +++ /dev/null @@ -1,80 +0,0 @@ -/**************************************************************************** - * Copyright 2021 Thomas E. Dickey * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/* $Id: nc_access.h,v 1.2 2021/07/10 22:07:06 tom Exp $ */ - -#ifndef NC_ACCESS_included -#define NC_ACCESS_included 1 -/* *INDENT-OFF* */ - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Turn off this symbol to limit access to environment variables when root. - */ -#ifdef USE_ROOT_ENVIRON - -#define use_terminfo_vars() 1 - -#else - -#define use_terminfo_vars() _nc_env_access() -extern NCURSES_EXPORT(int) _nc_env_access (void); - -#endif - -/* - * Turn off this symbol to limit access to files when running setuid. - */ -#ifdef USE_ROOT_ACCESS - -#define safe_fopen(name,mode) fopen(name,mode) -#define safe_open3(name,flags,mode) open(name,flags,mode) - -#else - -#define safe_fopen(name,mode) fopen(name,mode) -#define safe_open3(name,flags,mode) open(name,flags,mode) -extern NCURSES_EXPORT(FILE *) _nc_safe_fopen (const char *, const char *); -extern NCURSES_EXPORT(int) _nc_safe_open3 (const char *, int, mode_t); - -#endif - -#ifdef __cplusplus -} -#endif - -/* *INDENT-ON* */ - -#endif /* NC_ACCESS_included */ diff --git a/include/nc_alloc.h b/include/nc_alloc.h deleted file mode 100644 index 3e5ca8d..0000000 --- a/include/nc_alloc.h +++ /dev/null @@ -1,128 +0,0 @@ -/**************************************************************************** - * Copyright 2019-2020,2021 Thomas E. Dickey * - * Copyright 1998-2013,2017 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1996-on * - ****************************************************************************/ -/* $Id: nc_alloc.h,v 1.28 2021/03/20 16:07:29 tom Exp $ */ - -#ifndef NC_ALLOC_included -#define NC_ALLOC_included 1 -/* *INDENT-OFF* */ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined(HAVE_LIBDMALLOC) && HAVE_LIBDMALLOC -#include -#undef strndup /* workaround for #define in GLIBC 2.7 */ -#include /* Gray Watson's library */ -#else -#undef HAVE_LIBDMALLOC -#define HAVE_LIBDMALLOC 0 -#endif - -#if defined(HAVE_LIBDBMALLOC) && HAVE_LIBDBMALLOC -#include /* Conor Cahill's library */ -#else -#undef HAVE_LIBDBMALLOC -#define HAVE_LIBDBMALLOC 0 -#endif - -#if defined(HAVE_LIBMPATROL) && HAVE_LIBMPATROL -#include /* Memory-Patrol library */ -#else -#undef HAVE_LIBMPATROL -#define HAVE_LIBMPATROL 0 -#endif - -#ifndef NO_LEAKS -#define NO_LEAKS 0 -#endif - -#if HAVE_LIBDBMALLOC || HAVE_LIBDMALLOC || NO_LEAKS -#define HAVE_NC_FREEALL 1 -struct termtype; -extern GCC_NORETURN NCURSES_EXPORT(void) _nc_free_tinfo(int) GCC_DEPRECATED("use exit_terminfo"); - -#ifdef NCURSES_INTERNALS -extern GCC_NORETURN NCURSES_EXPORT(void) _nc_free_tic(int); -extern NCURSES_EXPORT(void) _nc_free_tparm(void); -extern void _nc_leaks_dump_entry(void); -extern NCURSES_EXPORT(void) _nc_leaks_tic(void); - -#if NCURSES_SP_FUNCS -extern GCC_NORETURN NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_free_and_exit)(SCREEN*, int); -#endif -extern GCC_NORETURN NCURSES_EXPORT(void) _nc_free_and_exit(int); - -#else /* !NCURSES_INTERNALS */ -extern GCC_NORETURN NCURSES_EXPORT(void) _nc_free_and_exit(int) GCC_DEPRECATED("use exit_curses"); -#endif - -#define ExitProgram(code) exit_curses(code) - -#else -extern GCC_NORETURN NCURSES_EXPORT(void) _nc_free_and_exit(int) GCC_DEPRECATED("use exit_curses"); -#endif /* NO_LEAKS, etc */ - -#ifndef HAVE_NC_FREEALL -#define HAVE_NC_FREEALL 0 -#endif - -#ifndef ExitProgram -#define ExitProgram(code) exit(code) -#endif - -/* doalloc.c */ -extern NCURSES_EXPORT(void *) _nc_doalloc(void *, size_t); -#if !HAVE_STRDUP -#undef strdup -#define strdup _nc_strdup -extern NCURSES_EXPORT(char *) _nc_strdup(const char *); -#endif - -/* entries.c */ -extern NCURSES_EXPORT(void) _nc_leaks_tinfo(void); - -#define typeMalloc(type,elts) (type *)malloc((size_t)(elts)*sizeof(type)) -#define typeCalloc(type,elts) (type *)calloc((size_t)(elts),sizeof(type)) -#define typeRealloc(type,elts,ptr) (type *)_nc_doalloc(ptr, (size_t)(elts)*sizeof(type)) - -#ifdef __cplusplus -} -#endif - -/* *INDENT-ON* */ - -#endif /* NC_ALLOC_included */ diff --git a/include/nc_mingw.h b/include/nc_mingw.h deleted file mode 100644 index 6729b29..0000000 --- a/include/nc_mingw.h +++ /dev/null @@ -1,89 +0,0 @@ -/**************************************************************************** - * Copyright 2018-2019,2020 Thomas E. Dickey * - * Copyright 2008-2010,2017 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas Dickey, 2008-on * - ****************************************************************************/ - -/* $Id: nc_mingw.h,v 1.9 2020/07/11 22:13:19 tom Exp $ */ - -#ifndef NC_MINGW_H -#define NC_MINGW_H 1 - -#ifdef _WIN32 - -#ifdef WINVER -# if WINVER < 0x0501 -# error WINVER must at least be 0x0501 -# endif -#else -# define WINVER 0x0501 -#endif -#include - -#undef sleep -#define sleep(n) Sleep((n) * 1000) - -#undef gettimeofday -#define gettimeofday(tv,tz) _nc_gettimeofday(tv,tz) - -#if HAVE_SYS_TIME_H -#include /* for struct timeval */ -#endif - -#ifdef _MSC_VER -#include /* for struct timeval */ -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -NCURSES_EXPORT(int) _nc_gettimeofday(struct timeval *, void *); - -#undef HAVE_GETTIMEOFDAY -#define HAVE_GETTIMEOFDAY 1 - -#define SIGHUP 1 -#define SIGKILL 9 -#define getlogin() "username" - -#undef wcwidth -#define wcwidth(ucs) _nc_wcwidth((wchar_t)(ucs)) -NCURSES_EXPORT(int) _nc_wcwidth(wchar_t); - -#ifdef __cplusplus -} -#endif - -#endif /* _WIN32 */ - -#endif /* NC_MINGW_H */ diff --git a/include/nc_panel.h b/include/nc_panel.h deleted file mode 100644 index 60eb811..0000000 --- a/include/nc_panel.h +++ /dev/null @@ -1,80 +0,0 @@ -/**************************************************************************** - * Copyright 2020 Thomas E. Dickey * - * Copyright 1998-2009,2017 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Juergen Pfeifer 1997 * - * and: Thomas E. Dickey * - ****************************************************************************/ - -/* - * $Id: nc_panel.h,v 1.10 2020/02/02 23:34:34 tom Exp $ - * - * nc_panel.h - * - * Headerfile to provide an interface for the panel layer into - * the SCREEN structure of the ncurses core. - */ - -#ifndef NC_PANEL_H -#define NC_PANEL_H 1 - -#include -#include - -#ifdef __cplusplus -extern "C" -{ -#endif - - struct panel; /* Forward Declaration */ - - struct panelhook - { - struct panel *top_panel; - struct panel *bottom_panel; - struct panel *stdscr_pseudo_panel; -#if NO_LEAKS - int (*destroy) (struct panel *); -#endif - }; - - struct screen; /* Forward declaration */ -/* Retrieve the panelhook of the specified screen */ - extern NCURSES_EXPORT(struct panelhook *) - _nc_panelhook (void); -#if NCURSES_SP_FUNCS - extern NCURSES_EXPORT(struct panelhook *) - NCURSES_SP_NAME(_nc_panelhook) (SCREEN *); -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* NC_PANEL_H */ diff --git a/include/nc_string.h b/include/nc_string.h deleted file mode 100644 index 546aa06..0000000 --- a/include/nc_string.h +++ /dev/null @@ -1,90 +0,0 @@ -/**************************************************************************** - * Copyright 2020,2021 Thomas E. Dickey * - * Copyright 2012-2013,2016 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 2012 * - ****************************************************************************/ - -#ifndef STRING_HACKS_H -#define STRING_HACKS_H 1 - -#include - -#if HAVE_BSD_STRING_H -#include -#endif - -/* - * $Id: nc_string.h,v 1.9 2021/04/25 00:10:43 tom Exp $ - * - * String-hacks. Use these macros to stifle warnings on (presumably) correct - * uses of strcat, strcpy and sprintf. - * - * By the way - - * A fundamental limitation of the interfaces (and frequent issue in bug - * reports using these functions) is that sizes are passed as unsigned values - * (with associated sign-extension problems), limiting their effectiveness - * when checking for buffer overflow. - */ - -#ifdef __cplusplus -#define NCURSES_VOID /* nothing */ -#else -#define NCURSES_VOID (void) -#endif - -#if USE_STRING_HACKS && HAVE_STRLCAT -#define _nc_STRCAT(d,s,n) NCURSES_VOID strlcat((d),(s),NCURSES_CAST(size_t,n)) -#define _nc_STRNCAT(d,s,m,n) NCURSES_VOID strlcat((d),(s),NCURSES_CAST(size_t,m)) -#else -#define _nc_STRCAT(d,s,n) NCURSES_VOID strcat((d),(s)) -#define _nc_STRNCAT(d,s,m,n) NCURSES_VOID strncat((d),(s),(n)) -#endif - -#if USE_STRING_HACKS && HAVE_STRLCPY -#define _nc_STRCPY(d,s,n) NCURSES_VOID strlcpy((d),(s),NCURSES_CAST(size_t,n)) -#define _nc_STRNCPY(d,s,n) NCURSES_VOID strlcpy((d),(s),NCURSES_CAST(size_t,n)) -#else -#define _nc_STRCPY(d,s,n) NCURSES_VOID strcpy((d),(s)) -#define _nc_STRNCPY(d,s,n) NCURSES_VOID strncpy((d),(s),(n)) -#endif - -#if USE_STRING_HACKS && HAVE_SNPRINTF -#ifdef __cplusplus -#define _nc_SPRINTF NCURSES_VOID snprintf -#else -#define _nc_SPRINTF NCURSES_VOID (snprintf) -#endif -#define _nc_SLIMIT(n) NCURSES_CAST(size_t,n), -#else -#define _nc_SPRINTF NCURSES_VOID sprintf -#define _nc_SLIMIT(n) /* nothing */ -#endif - -#endif /* STRING_HACKS_H */ diff --git a/include/nc_termios.h b/include/nc_termios.h deleted file mode 100644 index 13cc0af..0000000 --- a/include/nc_termios.h +++ /dev/null @@ -1,168 +0,0 @@ -/**************************************************************************** - * Copyright 2018,2020 Thomas E. Dickey * - * Copyright 2011-2014,2017 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 2011 * - ****************************************************************************/ - -/* $Id: nc_termios.h,v 1.8 2020/08/29 20:53:19 tom Exp $ */ - -#ifndef NC_TERMIOS_included -#define NC_TERMIOS_included 1 - -#include - -#if HAVE_TERMIOS_H && HAVE_TCGETATTR - -#else /* !HAVE_TERMIOS_H */ - -#if HAVE_TERMIO_H - -/* Add definitions to make termio look like termios. - * But ifdef it, since there are some implementations - * that try to do this for us in a fake . - */ -#ifndef TCSADRAIN -#define TCSADRAIN TCSETAW -#endif -#ifndef TCSAFLUSH -#define TCSAFLUSH TCSETAF -#endif -#ifndef tcsetattr -#define tcsetattr(fd, cmd, arg) ioctl(fd, cmd, arg) -#endif -#ifndef tcgetattr -#define tcgetattr(fd, arg) ioctl(fd, TCGETA, arg) -#endif -#ifndef cfgetospeed -#define cfgetospeed(t) ((t)->c_cflag & CBAUD) -#endif -#ifndef TCIFLUSH -#define TCIFLUSH 0 -#endif -#ifndef tcflush -#define tcflush(fd, arg) ioctl(fd, TCFLSH, arg) -#endif - -#if defined(EXP_WIN32_DRIVER) -#undef TERMIOS -#endif - -#else /* !HAVE_TERMIO_H */ - -#if defined(_WIN32) && !defined(EXP_WIN32_DRIVER) - -/* lflag bits */ -#define ISIG 0x0001 -#define ICANON 0x0002 -#define ECHO 0x0004 -#define ECHOE 0x0008 -#define ECHOK 0x0010 -#define ECHONL 0x0020 -#define NOFLSH 0x0040 -#define IEXTEN 0x0100 - -#define VEOF 4 -#define VERASE 5 -#define VINTR 6 -#define VKILL 7 -#define VMIN 9 -#define VQUIT 10 -#define VTIME 16 - -/* iflag bits */ -#define IGNBRK 0x00001 -#define BRKINT 0x00002 -#define IGNPAR 0x00004 -#define INPCK 0x00010 -#define ISTRIP 0x00020 -#define INLCR 0x00040 -#define IGNCR 0x00080 -#define ICRNL 0x00100 -#define IXON 0x00400 -#define IXOFF 0x01000 -#define PARMRK 0x10000 - -/* oflag bits */ -#define OPOST 0x00001 - -/* cflag bits */ -#define CBAUD 0x0100f -#define B0 0x00000 -#define B50 0x00001 -#define B75 0x00002 -#define B110 0x00003 -#define B134 0x00004 -#define B150 0x00005 -#define B200 0x00006 -#define B300 0x00007 -#define B600 0x00008 -#define B1200 0x00009 -#define B1800 0x0000a -#define B2400 0x0000b -#define B4800 0x0000c -#define B9600 0x0000d - -#define CSIZE 0x00030 -#define CS8 0x00030 -#define CSTOPB 0x00040 -#define CREAD 0x00080 -#define PARENB 0x00100 -#define PARODD 0x00200 -#define HUPCL 0x00400 -#define CLOCAL 0x00800 - -#define TCIFLUSH 0 -#define TCSADRAIN 3 - -#ifndef cfgetospeed -#define cfgetospeed(t) ((t)->c_cflag & CBAUD) -#endif - -#ifndef tcsetattr -#define tcsetattr(fd, opt, arg) _nc_mingw_tcsetattr(fd, opt, arg) -#endif - -#ifndef tcgetattr -#define tcgetattr(fd, arg) _nc_mingw_tcgetattr(fd, arg) -#endif - -#ifndef tcflush -#define tcflush(fd, queue) _nc_mingw_tcflush(fd, queue) -#endif - -#undef ttyname -#define ttyname(fd) NULL - -#endif /* _WIN32 */ -#endif /* HAVE_TERMIO_H */ - -#endif /* HAVE_TERMIOS_H */ - -#endif /* NC_TERMIOS_included */ diff --git a/include/nc_tparm.h b/include/nc_tparm.h deleted file mode 100644 index 943d947..0000000 --- a/include/nc_tparm.h +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** - * Copyright 2018,2020 Thomas E. Dickey * - * Copyright 2006-2012,2017 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 2006 * - ****************************************************************************/ - -/* $Id: nc_tparm.h,v 1.11 2020/05/27 23:33:31 tom Exp $ */ - -#ifndef NC_TPARM_included -#define NC_TPARM_included 1 - -#include -#include - -/* - * Cast parameters past the formatting-string for tparm() to match the - * assumption of the varargs code. - */ -#ifndef TPARM_ARG -#ifdef NCURSES_TPARM_ARG -#define TPARM_ARG NCURSES_TPARM_ARG -#else -#define TPARM_ARG long -#endif -#endif /* TPARAM_ARG */ - -#define TPARM_N(n) (TPARM_ARG)(n) - -#define TPARM_9(a,b,c,d,e,f,g,h,i,j) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d),TPARM_N(e),TPARM_N(f),TPARM_N(g),TPARM_N(h),TPARM_N(i),TPARM_N(j)) - -#if NCURSES_TPARM_VARARGS -#define TPARM_8(a,b,c,d,e,f,g,h,i) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d),TPARM_N(e),TPARM_N(f),TPARM_N(g),TPARM_N(h),TPARM_N(i)) -#define TPARM_7(a,b,c,d,e,f,g,h) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d),TPARM_N(e),TPARM_N(f),TPARM_N(g),TPARM_N(h)) -#define TPARM_6(a,b,c,d,e,f,g) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d),TPARM_N(e),TPARM_N(f),TPARM_N(g)) -#define TPARM_5(a,b,c,d,e,f) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d),TPARM_N(e),TPARM_N(f)) -#define TPARM_4(a,b,c,d,e) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d),TPARM_N(e)) -#define TPARM_3(a,b,c,d) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d)) -#define TPARM_2(a,b,c) tparm(a,TPARM_N(b),TPARM_N(c)) -#define TPARM_1(a,b) tparm(a,TPARM_N(b)) -#define TPARM_0(a) tparm(a) -#else -#define TPARM_8(a,b,c,d,e,f,g,h,i) TPARM_9(a,b,c,d,e,f,g,h,i,0) -#define TPARM_7(a,b,c,d,e,f,g,h) TPARM_8(a,b,c,d,e,f,g,h,0) -#define TPARM_6(a,b,c,d,e,f,g) TPARM_7(a,b,c,d,e,f,g,0) -#define TPARM_5(a,b,c,d,e,f) TPARM_6(a,b,c,d,e,f,0) -#define TPARM_4(a,b,c,d,e) TPARM_5(a,b,c,d,e,0) -#define TPARM_3(a,b,c,d) TPARM_4(a,b,c,d,0) -#define TPARM_2(a,b,c) TPARM_3(a,b,c,0) -#define TPARM_1(a,b) TPARM_2(a,b,0) -#define TPARM_0(a) TPARM_1(a,0) -#endif - -#ifdef NCURSES_INTERNALS -#define TIPARM_1(s,a) _nc_tiparm(1,s,a) -#define TIPARM_2(s,a,b) _nc_tiparm(2,s,a,b) -#define TIPARM_3(s,a,b,c) _nc_tiparm(3,s,a,b,c) -#define TIPARM_4(s,a,b,c,d) _nc_tiparm(4,s,a,b,c,d) -#define TIPARM_5(s,a,b,c,d,e) _nc_tiparm(5,s,a,b,c,d,e) -#define TIPARM_6(s,a,b,c,d,e,f) _nc_tiparm(6,s,a,b,c,d,e,f) -#define TIPARM_7(s,a,b,c,d,e,f,g) _nc_tiparm(7,s,a,b,c,d,e,f,g) -#define TIPARM_8(s,a,b,c,d,e,f,g,h) _nc_tiparm(8,s,a,b,c,d,e,f,g,h) -#define TIPARM_9(s,a,b,c,d,e,f,g,h,i) _nc_tiparm(9,s,a,b,c,d,e,f,g,h,i) -#endif - -#endif /* NC_TPARM_included */ diff --git a/include/nc_win32.h b/include/nc_win32.h deleted file mode 100644 index 790e8df..0000000 --- a/include/nc_win32.h +++ /dev/null @@ -1,183 +0,0 @@ -/**************************************************************************** - * Copyright 2018-2019,2020 Thomas E. Dickey * - * Copyright 2008-2010,2017 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas Dickey, 2008-on * - ****************************************************************************/ - -/* $Id: nc_win32.h,v 1.9 2020/09/13 00:17:30 tom Exp $ */ - -#ifndef NC_WIN32_H -#define NC_WIN32_H 1 - -#if defined(_WIN32) || defined(_WIN64) - -#ifndef _NC_WINDOWS -#define _NC_WINDOWS -#endif - -#ifdef TERMIOS -#error TERMIOS must not be defined on Windows -#endif - -/* We no longer support WindowsXP. - Minimum requirement is Windows Vista or Server2008, - aka Windows NT 6.0 -*/ -#ifdef WINVER -# if WINVER < 0x0600 -# error WINVER must at least be 0x0600 -# endif -#else -# define WINVER 0x0600 -#endif - -#undef _NC_CHECK_MINTTY -#if WINVER >= 0x0600 -#define _NC_CHECK_MINTTY -#endif - -#include - -#if HAVE_SYS_TIME_H -#include /* for struct timeval */ -#endif - -#ifdef _NC_MSC -#include /* for struct timeval */ -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#undef HAVE_GETTIMEOFDAY -#define HAVE_GETTIMEOFDAY 1 -extern NCURSES_EXPORT(int) _nc_gettimeofday(struct timeval *, void *); - -#undef wcwidth -#define wcwidth(ucs) _nc_wcwidth((wchar_t)(ucs)) -extern NCURSES_EXPORT(int) _nc_wcwidth(wchar_t); - -#ifdef EVENTLIST_2nd /* test.priv.h just needs the preceding */ - -extern NCURSES_EXPORT(void) _nc_console_size(int* Lines, int* Cols); -extern NCURSES_EXPORT(HANDLE) _nc_console_handle(int fd); -extern NCURSES_EXPORT(int) _nc_console_isatty(int fd); -extern NCURSES_EXPORT(int) _nc_console_test(int fd); -extern NCURSES_EXPORT(int) _nc_console_read(SCREEN *sp,HANDLE hdl,int *buf); -extern NCURSES_EXPORT(int) _nc_console_twait(SCREEN *, HANDLE,int,int,int * EVENTLIST_2nd(_nc_eventlist * evl)); -extern NCURSES_EXPORT(WORD) _nc_console_MapColor(bool fore, int color); -extern NCURSES_EXPORT(void) _nc_console_selectActiveHandle(void); -extern NCURSES_EXPORT(bool) _nc_console_get_SBI(void); -extern NCURSES_EXPORT(void) _nc_console_set_scrollback(bool normal, CONSOLE_SCREEN_BUFFER_INFO * info); -extern NCURSES_EXPORT(int) _nc_console_testmouse(SCREEN *,HANDLE,int EVENTLIST_2nd(_nc_eventlist*)); -extern NCURSES_EXPORT(int) _nc_console_keyok(int keycode,int flag); -extern NCURSES_EXPORT(bool) _nc_console_keyExist(int keycode); -extern NCURSES_EXPORT(bool) _nc_console_checkinit(bool initFlag, bool assumeTermInfo); -extern NCURSES_EXPORT(int) _nc_console_vt_supported(void); - -#ifdef _NC_CHECK_MINTTY -extern NCURSES_EXPORT(int) _nc_console_checkmintty(int fd, LPHANDLE pMinTTY); -#endif - -#undef VALID_TERM_ENV -#define MS_TERMINAL "ms-terminal" -#define VALID_TERM_ENV(term_env, no_terminal) \ - (term_env = (NonEmpty(term_env) \ - ? term_env \ - : (_nc_console_vt_supported() \ - ? MS_TERMINAL \ - : no_terminal)), \ - NonEmpty(term_env)) - - /* - * Various Console mode definitions - */ - - /* Flags to enable virtual Terminal processing */ -#define VT_FLAG_OUT ENABLE_VIRTUAL_TERMINAL_PROCESSING -#define VT_FLAG_IN ENABLE_VIRTUAL_TERMINAL_INPUT - - /* Default flags for input/output modes */ -#define CONMODE_IN_DEFAULT (ENABLE_LINE_INPUT | ENABLE_PROCESSED_INPUT | ENABLE_WINDOW_INPUT | ENABLE_MOUSE_INPUT) -#define CONMODE_OUT_DEFAULT (ENABLE_PROCESSED_OUTPUT | DISABLE_NEWLINE_AUTO_RETURN | ENABLE_LVB_GRID_WORLDWIDE) - - /* Flags to reset from RAW/CBREAK */ -#define CONMODE_NORAW (ENABLE_PROCESSED_INPUT|ENABLE_LINE_INPUT) -#define CONMODE_NOCBREAK (ENABLE_LINE_INPUT) - - -#if defined(USE_TERM_DRIVER) && defined(USE_WIN32CON_DRIVER) -extern NCURSES_EXPORT_VAR(TERM_DRIVER) _nc_WIN_DRIVER; -#endif - -#define CON_NUMPAIRS 64 -typedef struct { - BOOL initialized; - BOOL buffered; - BOOL window_only; - BOOL progMode; - BOOL isMinTTY; - BOOL isTermInfoConsole; - HANDLE out; - HANDLE inp; - HANDLE hdl; - HANDLE lastOut; - int numButtons; - LPDWORD ansi_map; - LPDWORD map; - LPDWORD rmap; - WORD pairs[CON_NUMPAIRS]; - COORD origin; - CHAR_INFO *save_screen; - COORD save_size; - SMALL_RECT save_region; - CONSOLE_SCREEN_BUFFER_INFO SBI; - CONSOLE_SCREEN_BUFFER_INFO save_SBI; - CONSOLE_CURSOR_INFO save_CI; - TTY originalMode; -} ConsoleInfo; - -extern NCURSES_EXPORT_VAR(ConsoleInfo) _nc_CONSOLE; -#define WINCONSOLE _nc_CONSOLE - -#define TypeAlloca(type,count)(type*) _alloca(sizeof(type)*(size_t)(count)) - -#endif /* EVENTLIST_2nd */ - -#ifdef __cplusplus -} -#endif - -#endif /* _WIN32 || _WIN64 */ - -#endif /* NC_WIN32_H */ diff --git a/include/ncurses_cfg.h b/include/ncurses_cfg.h deleted file mode 100644 index 7dc4d9c..0000000 --- a/include/ncurses_cfg.h +++ /dev/null @@ -1,237 +0,0 @@ -/* include/ncurses_cfg.h. Generated automatically by configure. */ -/**************************************************************************** - * Copyright 2020 Thomas E. Dickey * - * Copyright 1998-2016,2017 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1997-on * - ****************************************************************************/ -/* - * $Id: ncurses_cfg.hin,v 1.13 2020/03/08 12:37:59 tom Exp $ - * - * Both ncurses_cfg.h and ncurses_def.h are internal header-files used when - * building ncurses. - * - * This is a template-file used to generate the "ncurses_cfg.h" file. - * - * Rather than list every definition, the configuration script substitutes the - * definitions that it finds using 'sed'. You need a patch (original date - * 971222) to autoconf 2.12 or 2.13 to do this. - * - * See: - * https://invisible-island.net/autoconf/ - * ftp://ftp.invisible-island.net/autoconf/ - */ -#ifndef NC_CONFIG_H -#define NC_CONFIG_H - -#define PACKAGE "ncurses" -#define NCURSES_VERSION "6.3" -#define NCURSES_PATCHDATE 20211021 -#define SYSTEM_NAME "linux-gnu" -#if 0 -#include -#endif -#define HAVE_LONG_FILE_NAMES 1 -#define MIXEDCASE_FILENAMES 1 -#define HAVE_GPM_H 1 -#define HAVE_LIBDL 1 -#define LIBGPM_SONAME "libgpm.so.2" -#define HAVE_LIBGPM 1 -#define TERMINFO_DIRS "/usr/share/terminfo" -#define TERMINFO "/usr/share/terminfo" -#define HAVE_BIG_CORE 1 -#define PURE_TERMINFO 1 -#define USE_HOME_TERMINFO 1 -#define USE_ROOT_ENVIRON 1 -#define USE_ROOT_ACCESS 1 -#define HAVE_UNISTD_H 1 -#define HAVE_REMOVE 1 -#define HAVE_UNLINK 1 -#define HAVE_LINK 1 -#define HAVE_SYMLINK 1 -#define USE_LINKS 1 -#define HAVE_LANGINFO_CODESET 1 -#define HAVE_FSEEKO 1 -#define RGB_PATH "/usr/lib64/X11/rgb.txt" -#define STDC_HEADERS 1 -#define HAVE_SYS_TYPES_H 1 -#define HAVE_SYS_STAT_H 1 -#define HAVE_STDLIB_H 1 -#define HAVE_STRING_H 1 -#define HAVE_MEMORY_H 1 -#define HAVE_STRINGS_H 1 -#define HAVE_INTTYPES_H 1 -#define HAVE_STDINT_H 1 -#define HAVE_UNISTD_H 1 -#define SIZEOF_SIGNED_CHAR 1 -#define NCURSES_EXT_FUNCS 1 -#define HAVE_ASSUME_DEFAULT_COLORS 1 -#define HAVE_CURSES_VERSION 1 -#define HAVE_HAS_KEY 1 -#define HAVE_RESIZETERM 1 -#define HAVE_RESIZE_TERM 1 -#define HAVE_TERM_ENTRY_H 1 -#define HAVE_USE_DEFAULT_COLORS 1 -#define HAVE_USE_EXTENDED_NAMES 1 -#define HAVE_USE_SCREEN 1 -#define HAVE_USE_WINDOW 1 -#define HAVE_WRESIZE 1 -#define NCURSES_SP_FUNCS 1 -#define HAVE_TPUTS_SP 1 -#define NCURSES_EXT_PUTWIN 1 -#define NCURSES_NO_PADDING 1 -#define USE_SIGWINCH 1 -#define HAVE_PTHREADS_H 1 -#define HAVE_LIBPTHREADS 1 -#define USE_PTHREADS 1 -#define USE_REENTRANT 1 -#define NCURSES_WRAP_PREFIX "_nc_" -#define USE_ASSUMED_COLOR 1 -#define USE_HASHMAP 1 -#define GCC_SCANF 1 -#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var))) -#define GCC_PRINTF 1 -#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var))) -#define GCC_UNUSED __attribute__((unused)) -#define GCC_NORETURN __attribute__((noreturn)) -#define HAVE_NC_ALLOC_H 1 -#define HAVE_GETTIMEOFDAY 1 -#define STDC_HEADERS 1 -#define HAVE_DIRENT_H 1 -#define TIME_WITH_SYS_TIME 1 -#define HAVE_REGEX_H_FUNCS 1 -#define HAVE_FCNTL_H 1 -#define HAVE_GETOPT_H 1 -#define HAVE_LIMITS_H 1 -#define HAVE_LOCALE_H 1 -#define HAVE_MATH_H 1 -#define HAVE_POLL_H 1 -#define HAVE_SYS_IOCTL_H 1 -#define HAVE_SYS_PARAM_H 1 -#define HAVE_SYS_POLL_H 1 -#define HAVE_SYS_SELECT_H 1 -#define HAVE_SYS_TIME_H 1 -#define HAVE_SYS_TIMES_H 1 -#define HAVE_TTYENT_H 1 -#define HAVE_UNISTD_H 1 -#define HAVE_WCTYPE_H 1 -#define HAVE_UNISTD_H 1 -#define HAVE_GETOPT_H 1 -#define HAVE_GETOPT_HEADER 1 -#define DECL_ENVIRON 1 -#define HAVE_ENVIRON 1 -#define HAVE_PUTENV 1 -#define HAVE_SETENV 1 -#define HAVE_STRDUP 1 -#define HAVE_SYS_TIME_SELECT 1 -#define SIG_ATOMIC_T volatile sig_atomic_t -#define HAVE_GETCWD 1 -#define HAVE_GETEGID 1 -#define HAVE_GETEUID 1 -#define HAVE_GETOPT 1 -#define HAVE_GETTTYNAM 1 -#define HAVE_LOCALECONV 1 -#define HAVE_POLL 1 -#define HAVE_PUTENV 1 -#define HAVE_REMOVE 1 -#define HAVE_SELECT 1 -#define HAVE_SETBUF 1 -#define HAVE_SETBUFFER 1 -#define HAVE_SETENV 1 -#define HAVE_SETFSUID 1 -#define HAVE_SETVBUF 1 -#define HAVE_SIGACTION 1 -#define HAVE_SNPRINTF 1 -#define HAVE_STRDUP 1 -#define HAVE_STRSTR 1 -#define HAVE_SYSCONF 1 -#define HAVE_TCGETPGRP 1 -#define HAVE_TIMES 1 -#define HAVE_TSEARCH 1 -#define HAVE_VSNPRINTF 1 -#define HAVE_ISASCII 1 -#define HAVE_NANOSLEEP 1 -#define HAVE_TERMIO_H 1 -#define HAVE_TERMIOS_H 1 -#define HAVE_UNISTD_H 1 -#define HAVE_SYS_IOCTL_H 1 -#define HAVE_TCGETATTR 1 -#define HAVE_VSSCANF 1 -#define HAVE_UNISTD_H 1 -#define HAVE_MKSTEMP 1 -#define HAVE_SIZECHANGE 1 -#define HAVE_WORKING_POLL 1 -#define HAVE_VA_COPY 1 -#define HAVE_UNISTD_H 1 -#define HAVE_FORK 1 -#define HAVE_VFORK 1 -#define HAVE_WORKING_VFORK 1 -#define HAVE_WORKING_FORK 1 -#define USE_FOPEN_BIN_R 1 -#define USE_OPENPTY_HEADER -#define USE_XTERM_PTY 1 -#define HAVE_TYPEINFO 1 -#define HAVE_IOSTREAM 1 -#define IOSTREAM_NAMESPACE 1 -#define SIZEOF_BOOL 1 -#define CPP_HAS_STATIC_CAST 1 -#define HAVE_SLK_COLOR 1 -#define HAVE_PANEL_H 1 -#define HAVE_LIBPANEL 1 -#define HAVE_MENU_H 1 -#define HAVE_LIBMENU 1 -#define HAVE_FORM_H 1 -#define HAVE_LIBFORM 1 -#define NCURSES_PATHSEP ':' -#define NCURSES_VERSION_STRING "6.3.20211021" -#define NCURSES_OSPEED_COMPAT 1 -#define HAVE_CURSES_DATA_BOOLNAMES 1 - -#include - - /* The C compiler may not treat these properly but C++ has to */ -#ifdef __cplusplus -#undef const -#undef inline -#endif - - /* On HP-UX, the C compiler doesn't grok mbstate_t without - -D_XOPEN_SOURCE=500. However, this causes problems on - IRIX. So, we #define mbstate_t to int in configure.in - only for the C compiler if needed. */ -#ifndef __cplusplus -#ifdef NEED_MBSTATE_T_DEF -#define mbstate_t int -#endif -#endif - -/* - * vile:cmode - */ -#endif /* NC_CONFIG_H */ diff --git a/include/ncurses_cfg.hin b/include/ncurses_cfg.hin deleted file mode 100644 index 8d9ed81..0000000 --- a/include/ncurses_cfg.hin +++ /dev/null @@ -1,74 +0,0 @@ -/**************************************************************************** - * Copyright 2020 Thomas E. Dickey * - * Copyright 1998-2016,2017 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1997-on * - ****************************************************************************/ -/* - * $Id: ncurses_cfg.hin,v 1.13 2020/03/08 12:37:59 tom Exp $ - * - * Both ncurses_cfg.h and ncurses_def.h are internal header-files used when - * building ncurses. - * - * This is a template-file used to generate the "ncurses_cfg.h" file. - * - * Rather than list every definition, the configuration script substitutes the - * definitions that it finds using 'sed'. You need a patch (original date - * 971222) to autoconf 2.12 or 2.13 to do this. - * - * See: - * https://invisible-island.net/autoconf/ - * ftp://ftp.invisible-island.net/autoconf/ - */ -#ifndef NC_CONFIG_H -#define NC_CONFIG_H -@DEFS@ - -#include - - /* The C compiler may not treat these properly but C++ has to */ -#ifdef __cplusplus -#undef const -#undef inline -#endif - - /* On HP-UX, the C compiler doesn't grok mbstate_t without - -D_XOPEN_SOURCE=500. However, this causes problems on - IRIX. So, we #define mbstate_t to int in configure.in - only for the C compiler if needed. */ -#ifndef __cplusplus -#ifdef NEED_MBSTATE_T_DEF -#define mbstate_t int -#endif -#endif - -/* - * vile:cmode - */ -#endif /* NC_CONFIG_H */ diff --git a/include/ncurses_def.h b/include/ncurses_def.h deleted file mode 100644 index 284795f..0000000 --- a/include/ncurses_def.h +++ /dev/null @@ -1,928 +0,0 @@ -/* - * This file is generated by ./MKncurses_def.sh - */ - -#ifndef NC_DEFINE_H -#define NC_DEFINE_H 1 - -#ifndef BROKEN_LINKER -#define BROKEN_LINKER 0 -#endif - -#ifndef BSD_TPUTS -#define BSD_TPUTS 0 -#endif - -#ifndef CGETENT_CONST -#define CGETENT_CONST /* nothing */ -#endif - -#ifndef CPP_HAS_PARAM_INIT -#define CPP_HAS_PARAM_INIT 0 -#endif - -#ifndef CURSES_ACS_ARRAY -#define CURSES_ACS_ARRAY acs_map -#endif - -#ifndef CURSES_WACS_ARRAY -#define CURSES_WACS_ARRAY _nc_wacs -#endif - -#ifndef DECL_ERRNO -#define DECL_ERRNO 0 -#endif - -#ifndef ETIP_NEEDS_MATH_H -#define ETIP_NEEDS_MATH_H 0 -#endif - -#ifndef GCC_NORETURN -#define GCC_NORETURN /* nothing */ -#endif - -#ifndef GCC_UNUSED -#define GCC_UNUSED /* nothing */ -#endif - -#ifndef HAVE_ALLOC_PAIR -#define HAVE_ALLOC_PAIR 0 -#endif - -#ifndef HAVE_ASSUME_DEFAULT_COLORS -#define HAVE_ASSUME_DEFAULT_COLORS 0 -#endif - -#ifndef HAVE_BIG_CORE -#define HAVE_BIG_CORE 0 -#endif - -#ifndef HAVE_BSD_CGETENT -#define HAVE_BSD_CGETENT 0 -#endif - -#ifndef HAVE_BSD_SIGNAL_H -#define HAVE_BSD_SIGNAL_H 0 -#endif - -#ifndef HAVE_BSD_STRING_H -#define HAVE_BSD_STRING_H 0 -#endif - -#ifndef HAVE_BTOWC -#define HAVE_BTOWC 0 -#endif - -#ifndef HAVE_BUILTIN_H -#define HAVE_BUILTIN_H 0 -#endif - -#ifndef HAVE_CHGAT -#define HAVE_CHGAT 1 -#endif - -#ifndef HAVE_COLOR_CONTENT -#define HAVE_COLOR_CONTENT 1 -#endif - -#ifndef HAVE_COLOR_SET -#define HAVE_COLOR_SET 1 -#endif - -#ifndef HAVE_CONSISTENT_GETENV -#define HAVE_CONSISTENT_GETENV 0 -#endif - -#ifndef HAVE_COPYWIN -#define HAVE_COPYWIN 1 -#endif - -#ifndef HAVE_CURSCR -#define HAVE_CURSCR 1 -#endif - -#ifndef HAVE_CURSES_DATA_TABSIZE -#define HAVE_CURSES_DATA_TABSIZE 1 -#endif - -#ifndef HAVE_CURSES_DATA_TTYTYPE -#define HAVE_CURSES_DATA_TTYTYPE 1 -#endif - -#ifndef HAVE_DELSCREEN -#define HAVE_DELSCREEN 1 -#endif - -#ifndef HAVE_DERWIN -#define HAVE_DERWIN 1 -#endif - -#ifndef HAVE_DIRENT_H -#define HAVE_DIRENT_H 0 -#endif - -#ifndef HAVE_DUPWIN -#define HAVE_DUPWIN 1 -#endif - -#ifndef HAVE_ERRNO -#define HAVE_ERRNO 0 -#endif - -#ifndef HAVE_EXIT_CURSES -#define HAVE_EXIT_CURSES 1 -#endif - -#ifndef HAVE_EXIT_TERMINFO -#define HAVE_EXIT_TERMINFO 1 -#endif - -#ifndef HAVE_FCNTL_H -#define HAVE_FCNTL_H 0 -#endif - -#ifndef HAVE_FILTER -#define HAVE_FILTER 1 -#endif - -#ifndef HAVE_FORM_H -#define HAVE_FORM_H 0 -#endif - -#ifndef HAVE_GETBEGX -#define HAVE_GETBEGX 1 -#endif - -#ifndef HAVE_GETCURX -#define HAVE_GETCURX 1 -#endif - -#ifndef HAVE_GETCWD -#define HAVE_GETCWD 0 -#endif - -#ifndef HAVE_GETEGID -#define HAVE_GETEGID 0 -#endif - -#ifndef HAVE_GETEUID -#define HAVE_GETEUID 0 -#endif - -#ifndef HAVE_GETMAXX -#define HAVE_GETMAXX 1 -#endif - -#ifndef HAVE_GETNSTR -#define HAVE_GETNSTR 0 -#endif - -#ifndef HAVE_GETOPT_H -#define HAVE_GETOPT_H 0 -#endif - -#ifndef HAVE_GETPARX -#define HAVE_GETPARX 1 -#endif - -#ifndef HAVE_GETTIMEOFDAY -#define HAVE_GETTIMEOFDAY 0 -#endif - -#ifndef HAVE_GETTTYNAM -#define HAVE_GETTTYNAM 0 -#endif - -#ifndef HAVE_GETWIN -#define HAVE_GETWIN 1 -#endif - -#ifndef HAVE_GPM_H -#define HAVE_GPM_H 0 -#endif - -#ifndef HAVE_GPP_BUILTIN_H -#define HAVE_GPP_BUILTIN_H 0 -#endif - -#ifndef HAVE_GXX_BUILTIN_H -#define HAVE_GXX_BUILTIN_H 0 -#endif - -#ifndef HAVE_HALFDELAY -#define HAVE_HALFDELAY 1 -#endif - -#ifndef HAVE_HAS_KEY -#define HAVE_HAS_KEY 0 -#endif - -#ifndef HAVE_INIT_EXTENDED_COLOR -#define HAVE_INIT_EXTENDED_COLOR 0 -#endif - -#ifndef HAVE_INTTYPES_H -#define HAVE_INTTYPES_H 0 -#endif - -#ifndef HAVE_IOSTREAM -#define HAVE_IOSTREAM 0 -#endif - -#ifndef HAVE_ISASCII -#define HAVE_ISASCII 0 -#endif - -#ifndef HAVE_ISSETUGID -#define HAVE_ISSETUGID 0 -#endif - -#ifndef HAVE_LANGINFO_CODESET -#define HAVE_LANGINFO_CODESET 0 -#endif - -#ifndef HAVE_LIBC_H -#define HAVE_LIBC_H 0 -#endif - -#ifndef HAVE_LIBDBMALLOC -#define HAVE_LIBDBMALLOC 0 -#endif - -#ifndef HAVE_LIBDMALLOC -#define HAVE_LIBDMALLOC 0 -#endif - -#ifndef HAVE_LIBFORM -#define HAVE_LIBFORM 0 -#endif - -#ifndef HAVE_LIBGPM -#define HAVE_LIBGPM 0 -#endif - -#ifndef HAVE_LIBMENU -#define HAVE_LIBMENU 0 -#endif - -#ifndef HAVE_LIBMPATROL -#define HAVE_LIBMPATROL 0 -#endif - -#ifndef HAVE_LIBPANEL -#define HAVE_LIBPANEL 0 -#endif - -#ifndef HAVE_LIB_PCRE2 -#define HAVE_LIB_PCRE2 0 -#endif - -#ifndef HAVE_LIMITS_H -#define HAVE_LIMITS_H 0 -#endif - -#ifndef HAVE_LINK -#define HAVE_LINK 0 -#endif - -#ifndef HAVE_LOCALECONV -#define HAVE_LOCALECONV 0 -#endif - -#ifndef HAVE_LOCALE_H -#define HAVE_LOCALE_H 0 -#endif - -#ifndef HAVE_LONG_FILE_NAMES -#define HAVE_LONG_FILE_NAMES 0 -#endif - -#ifndef HAVE_MATH_H -#define HAVE_MATH_H 0 -#endif - -#ifndef HAVE_MBLEN -#define HAVE_MBLEN 0 -#endif - -#ifndef HAVE_MBRLEN -#define HAVE_MBRLEN 0 -#endif - -#ifndef HAVE_MBRTOWC -#define HAVE_MBRTOWC 0 -#endif - -#ifndef HAVE_MBSRTOWCS -#define HAVE_MBSRTOWCS 0 -#endif - -#ifndef HAVE_MBSTOWCS -#define HAVE_MBSTOWCS 0 -#endif - -#ifndef HAVE_MBTOWC -#define HAVE_MBTOWC 0 -#endif - -#ifndef HAVE_MENU_H -#define HAVE_MENU_H 0 -#endif - -#ifndef HAVE_MKSTEMP -#define HAVE_MKSTEMP 0 -#endif - -#ifndef HAVE_MVDERWIN -#define HAVE_MVDERWIN 1 -#endif - -#ifndef HAVE_MVVLINE -#define HAVE_MVVLINE 1 -#endif - -#ifndef HAVE_MVWIN -#define HAVE_MVWIN 1 -#endif - -#ifndef HAVE_MVWVLINE -#define HAVE_MVWVLINE 1 -#endif - -#ifndef HAVE_NANOSLEEP -#define HAVE_NANOSLEEP 0 -#endif - -#ifndef HAVE_NC_ALLOC_H -#define HAVE_NC_ALLOC_H 0 -#endif - -#ifndef HAVE_NEWPAD -#define HAVE_NEWPAD 1 -#endif - -#ifndef HAVE_PANEL_H -#define HAVE_PANEL_H 0 -#endif - -#ifndef HAVE_PCRE2POSIX_H -#define HAVE_PCRE2POSIX_H 0 -#endif - -#ifndef HAVE_PCREPOSIX_H -#define HAVE_PCREPOSIX_H 0 -#endif - -#ifndef HAVE_POLL -#define HAVE_POLL 0 -#endif - -#ifndef HAVE_POLL_H -#define HAVE_POLL_H 0 -#endif - -#ifndef HAVE_PURIFY -#define HAVE_PURIFY 0 -#endif - -#ifndef HAVE_PUTENV -#define HAVE_PUTENV 0 -#endif - -#ifndef HAVE_PUTWC -#define HAVE_PUTWC 0 -#endif - -#ifndef HAVE_PUTWIN -#define HAVE_PUTWIN 1 -#endif - -#ifndef HAVE_REGEXPR_H_FUNCS -#define HAVE_REGEXPR_H_FUNCS 0 -#endif - -#ifndef HAVE_REGEXP_H_FUNCS -#define HAVE_REGEXP_H_FUNCS 0 -#endif - -#ifndef HAVE_REGEX_H_FUNCS -#define HAVE_REGEX_H_FUNCS 0 -#endif - -#ifndef HAVE_REMOVE -#define HAVE_REMOVE 0 -#endif - -#ifndef HAVE_RESET_COLOR_PAIRS -#define HAVE_RESET_COLOR_PAIRS 0 -#endif - -#ifndef HAVE_RESIZETERM -#define HAVE_RESIZETERM 0 -#endif - -#ifndef HAVE_RESIZE_TERM -#define HAVE_RESIZE_TERM 0 -#endif - -#ifndef HAVE_RESTARTTERM -#define HAVE_RESTARTTERM 1 -#endif - -#ifndef HAVE_RIPOFFLINE -#define HAVE_RIPOFFLINE 1 -#endif - -#ifndef HAVE_SCR_DUMP -#define HAVE_SCR_DUMP 1 -#endif - -#ifndef HAVE_SELECT -#define HAVE_SELECT 0 -#endif - -#ifndef HAVE_SETBUF -#define HAVE_SETBUF 0 -#endif - -#ifndef HAVE_SETBUFFER -#define HAVE_SETBUFFER 0 -#endif - -#ifndef HAVE_SETFSUID -#define HAVE_SETFSUID 0 -#endif - -#ifndef HAVE_SETENV -#define HAVE_SETENV 0 -#endif - -#ifndef HAVE_SETUPTERM -#define HAVE_SETUPTERM 1 -#endif - -#ifndef HAVE_SETVBUF -#define HAVE_SETVBUF 0 -#endif - -#ifndef HAVE_SGTTY_H -#define HAVE_SGTTY_H 0 -#endif - -#ifndef HAVE_SIGACTION -#define HAVE_SIGACTION 0 -#endif - -#ifndef HAVE_SIGVEC -#define HAVE_SIGVEC 0 -#endif - -#ifndef HAVE_SIZECHANGE -#define HAVE_SIZECHANGE 0 -#endif - -#ifndef HAVE_SLK_COLOR -#define HAVE_SLK_COLOR 0 -#endif - -#ifndef HAVE_SLK_INIT -#define HAVE_SLK_INIT 1 -#endif - -#ifndef HAVE_SNPRINTF -#define HAVE_SNPRINTF 0 -#endif - -#ifndef HAVE_STDINT_H -#define HAVE_STDINT_H 0 -#endif - -#ifndef HAVE_STRDUP -#define HAVE_STRDUP 0 -#endif - -#ifndef HAVE_STRLCAT -#define HAVE_STRLCAT 0 -#endif - -#ifndef HAVE_STRLCPY -#define HAVE_STRLCPY 0 -#endif - -#ifndef HAVE_STRSTR -#define HAVE_STRSTR 0 -#endif - -#ifndef HAVE_SYMLINK -#define HAVE_SYMLINK 0 -#endif - -#ifndef HAVE_SYSCONF -#define HAVE_SYSCONF 0 -#endif - -#ifndef HAVE_SYS_BSDTYPES_H -#define HAVE_SYS_BSDTYPES_H 0 -#endif - -#ifndef HAVE_SYS_IOCTL_H -#define HAVE_SYS_IOCTL_H 0 -#endif - -#ifndef HAVE_SYS_PARAM_H -#define HAVE_SYS_PARAM_H 0 -#endif - -#ifndef HAVE_SYS_POLL_H -#define HAVE_SYS_POLL_H 0 -#endif - -#ifndef HAVE_SYS_SELECT_H -#define HAVE_SYS_SELECT_H 0 -#endif - -#ifndef HAVE_SYS_TERMIO_H -#define HAVE_SYS_TERMIO_H 0 -#endif - -#ifndef HAVE_SYS_TIMES_H -#define HAVE_SYS_TIMES_H 0 -#endif - -#ifndef HAVE_SYS_TIME_H -#define HAVE_SYS_TIME_H 0 -#endif - -#ifndef HAVE_SYS_TIME_SELECT -#define HAVE_SYS_TIME_SELECT 0 -#endif - -#ifndef HAVE_TCGETATTR -#define HAVE_TCGETATTR 0 -#endif - -#ifndef HAVE_TCGETPGRP -#define HAVE_TCGETPGRP 0 -#endif - -#ifndef HAVE_TELL -#define HAVE_TELL 0 -#endif - -#ifndef HAVE_TERMATTRS -#define HAVE_TERMATTRS 1 -#endif - -#ifndef HAVE_TERMCAP_H -#define HAVE_TERMCAP_H 1 -#endif - -#ifndef HAVE_TERMIOS_H -#define HAVE_TERMIOS_H 0 -#endif - -#ifndef HAVE_TERMIO_H -#define HAVE_TERMIO_H 0 -#endif - -#ifndef HAVE_TERMNAME -#define HAVE_TERMNAME 1 -#endif - -#ifndef HAVE_TERM_ENTRY_H -#define HAVE_TERM_ENTRY_H 1 -#endif - -#ifndef HAVE_TERM_H -#define HAVE_TERM_H 1 -#endif - -#ifndef HAVE_TGETENT -#define HAVE_TGETENT 1 -#endif - -#ifndef HAVE_TIGETNUM -#define HAVE_TIGETNUM 1 -#endif - -#ifndef HAVE_TIGETSTR -#define HAVE_TIGETSTR 1 -#endif - -#ifndef HAVE_TIMES -#define HAVE_TIMES 0 -#endif - -#ifndef HAVE_TPUTS_SP -#define HAVE_TPUTS_SP 0 -#endif - -#ifndef HAVE_TSEARCH -#define HAVE_TSEARCH 0 -#endif - -#ifndef HAVE_TTYENT_H -#define HAVE_TTYENT_H 0 -#endif - -#ifndef HAVE_TYPEAHEAD -#define HAVE_TYPEAHEAD 1 -#endif - -#ifndef HAVE_TYPEINFO -#define HAVE_TYPEINFO 0 -#endif - -#ifndef HAVE_TYPE_ATTR_T -#define HAVE_TYPE_ATTR_T 0 -#endif - -#ifndef HAVE_TYPE_SIGACTION -#define HAVE_TYPE_SIGACTION 0 -#endif - -#ifndef HAVE_UNCTRL_H -#define HAVE_UNCTRL_H 1 -#endif - -#ifndef HAVE_UNISTD_H -#define HAVE_UNISTD_H 0 -#endif - -#ifndef HAVE_UNLINK -#define HAVE_UNLINK 0 -#endif - -#ifndef HAVE_USE_DEFAULT_COLORS -#define HAVE_USE_DEFAULT_COLORS 0 -#endif - -#ifndef HAVE_USE_ENV -#define HAVE_USE_ENV 1 -#endif - -#ifndef HAVE_USE_EXTENDED_NAMES -#define HAVE_USE_EXTENDED_NAMES 0 -#endif - -#ifndef HAVE_USE_SCREEN -#define HAVE_USE_SCREEN 0 -#endif - -#ifndef HAVE_USE_WINDOW -#define HAVE_USE_WINDOW 0 -#endif - -#ifndef HAVE_VFSCANF -#define HAVE_VFSCANF 0 -#endif - -#ifndef HAVE_VIDPUTS -#define HAVE_VIDPUTS 1 -#endif - -#ifndef HAVE_VID_PUTS -#define HAVE_VID_PUTS 1 -#endif - -#ifndef HAVE_VSNPRINTF -#define HAVE_VSNPRINTF 0 -#endif - -#ifndef HAVE_VSSCANF -#define HAVE_VSSCANF 0 -#endif - -#ifndef HAVE_VW_PRINTW -#define HAVE_VW_PRINTW 1 -#endif - -#ifndef HAVE_WCHGAT -#define HAVE_WCHGAT 1 -#endif - -#ifndef HAVE_WCSRTOMBS -#define HAVE_WCSRTOMBS 0 -#endif - -#ifndef HAVE_WCSTOMBS -#define HAVE_WCSTOMBS 0 -#endif - -#ifndef HAVE_WCTOB -#define HAVE_WCTOB 0 -#endif - -#ifndef HAVE_WCTOMB -#define HAVE_WCTOMB 0 -#endif - -#ifndef HAVE_WCTYPE_H -#define HAVE_WCTYPE_H 0 -#endif - -#ifndef HAVE_WINSDELLN -#define HAVE_WINSDELLN 1 -#endif - -#ifndef HAVE_WINSSTR -#define HAVE_WINSSTR 1 -#endif - -#ifndef HAVE_WORKING_POLL -#define HAVE_WORKING_POLL 0 -#endif - -#ifndef HAVE_WRESIZE -#define HAVE_WRESIZE 0 -#endif - -#ifndef HAVE_WSYNCDOWN -#define HAVE_WSYNCDOWN 1 -#endif - -#ifndef HAVE__DOSCAN -#define HAVE__DOSCAN 0 -#endif - -#ifndef HAVE__TRACEF -#define HAVE__TRACEF 0 -#endif - -#ifndef MIXEDCASE_FILENAMES -#define MIXEDCASE_FILENAMES 0 -#endif - -#ifndef NCURSES_CHAR_EQ -#define NCURSES_CHAR_EQ 0 -#endif - -#ifndef NCURSES_EXPANDED -#define NCURSES_EXPANDED 0 -#endif - -#ifndef NCURSES_EXT_COLORS -#define NCURSES_EXT_COLORS 0 -#endif - -#ifndef NCURSES_EXT_FUNCS -#define NCURSES_EXT_FUNCS 0 -#endif - -#ifndef NCURSES_EXT_PUTWIN -#define NCURSES_EXT_PUTWIN 0 -#endif - -#ifndef NCURSES_NO_PADDING -#define NCURSES_NO_PADDING 0 -#endif - -#ifndef NCURSES_OSPEED_COMPAT -#define NCURSES_OSPEED_COMPAT 0 -#endif - -#ifndef NCURSES_PATHSEP -#define NCURSES_PATHSEP ':' -#endif - -#ifndef NCURSES_WIDECHAR -#define NCURSES_WIDECHAR 0 -#endif - -#ifndef NEED_PTEM_H -#define NEED_PTEM_H 0 -#endif - -#ifndef NO_LEAKS -#define NO_LEAKS 0 -#endif - -#ifndef PURE_TERMINFO -#define PURE_TERMINFO 0 -#endif - -#ifndef STDC_HEADERS -#define STDC_HEADERS 0 -#endif - -#ifndef SVR4_ACTION -#define SVR4_ACTION 0 -#endif - -#ifndef SVR4_TERMIO -#define SVR4_TERMIO 0 -#endif - -#ifndef SYSTEM_NAME -#define SYSTEM_NAME "unknown" -#endif - -#ifndef TERMINFO -#define TERMINFO "none" -#endif - -#ifndef TERMPATH -#define TERMPATH "none" -#endif - -#ifndef TIME_WITH_SYS_TIME -#define TIME_WITH_SYS_TIME 0 -#endif - -#ifndef TYPEOF_CHTYPE -#define TYPEOF_CHTYPE 0 -#endif - -#ifndef USE_COLORFGBG -#define USE_COLORFGBG 0 -#endif - -#ifndef USE_FOPEN_BIN_R -#define USE_FOPEN_BIN_R 0 -#endif - -#ifndef USE_GETCAP -#define USE_GETCAP 0 -#endif - -#ifndef USE_GETCAP_CACHE -#define USE_GETCAP_CACHE 0 -#endif - -#ifndef USE_HARD_TABS -#define USE_HARD_TABS 0 -#endif - -#ifndef USE_HASHED_DB -#define USE_HASHED_DB 0 -#endif - -#ifndef USE_HASHMAP -#define USE_HASHMAP 0 -#endif - -#ifndef USE_HOME_TERMINFO -#define USE_HOME_TERMINFO 0 -#endif - -#ifndef USE_LINKS -#define USE_LINKS 0 -#endif - -#ifndef USE_MY_MEMMOVE -#define USE_MY_MEMMOVE 0 -#endif - -#ifndef USE_OK_BCOPY -#define USE_OK_BCOPY 0 -#endif - -#ifndef USE_PTHREADS_EINTR -#define USE_PTHREADS_EINTR 0 -#endif - -#ifndef USE_RCS_IDS -#define USE_RCS_IDS 0 -#endif - -#ifndef USE_REENTRANT -#define USE_REENTRANT 0 -#endif - -#ifndef USE_SAFE_SPRINTF -#define USE_SAFE_SPRINTF 0 -#endif - -#ifndef USE_SCROLL_HINTS -#define USE_SCROLL_HINTS 0 -#endif - -#ifndef USE_SIGWINCH -#define USE_SIGWINCH 0 -#endif - -#ifndef USE_STRING_HACKS -#define USE_STRING_HACKS 0 -#endif - -#ifndef USE_SYMLINKS -#define USE_SYMLINKS 0 -#endif - -#ifndef USE_SYSMOUSE -#define USE_SYSMOUSE 0 -#endif - -#ifndef USE_WEAK_SYMBOLS -#define USE_WEAK_SYMBOLS 0 -#endif - -#ifndef USE_WIDEC_SUPPORT -#define USE_WIDEC_SUPPORT 0 -#endif - -#ifndef USE_XMC_SUPPORT -#define USE_XMC_SUPPORT 0 -#endif - -#endif /* NC_DEFINE_H */ diff --git a/include/ncurses_defs b/include/ncurses_defs deleted file mode 100644 index 115f982..0000000 --- a/include/ncurses_defs +++ /dev/null @@ -1,264 +0,0 @@ -# $Id: ncurses_defs,v 1.97 2021/06/26 18:56:32 tom Exp $ -############################################################################## -# Copyright 2018-2020,2021 Thomas E. Dickey # -# Copyright 2000-2016,2017 Free Software Foundation, Inc. # -# # -# Permission is hereby granted, free of charge, to any person obtaining a # -# copy of this software and associated documentation files (the "Software"), # -# to deal in the Software without restriction, including without limitation # -# the rights to use, copy, modify, merge, publish, distribute, distribute # -# with modifications, sublicense, and/or sell copies of the Software, and to # -# permit persons to whom the Software is furnished to do so, subject to the # -# following conditions: # -# # -# The above copyright notice and this permission notice shall be included in # -# all copies or substantial portions of the Software. # -# # -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # -# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # -# DEALINGS IN THE SOFTWARE. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# See "MKncurses_def.sh" for an explanation. -# -# (hint: don't try to define NDEBUG ;-) - -BROKEN_LINKER -BSD_TPUTS -CGETENT_CONST /* nothing */ -CPP_HAS_PARAM_INIT -CURSES_ACS_ARRAY acs_map -CURSES_WACS_ARRAY _nc_wacs -DECL_ERRNO -ETIP_NEEDS_MATH_H -GCC_NORETURN /* nothing */ -GCC_UNUSED /* nothing */ -HAVE_ALLOC_PAIR -HAVE_ASSUME_DEFAULT_COLORS -HAVE_BIG_CORE -HAVE_BSD_CGETENT -HAVE_BSD_SIGNAL_H -HAVE_BSD_STRING_H -HAVE_BTOWC -HAVE_BUILTIN_H -HAVE_CHGAT 1 -HAVE_COLOR_CONTENT 1 -HAVE_COLOR_SET 1 -HAVE_CONSISTENT_GETENV -HAVE_COPYWIN 1 -HAVE_CURSCR 1 -HAVE_CURSES_DATA_TABSIZE 1 -HAVE_CURSES_DATA_TTYTYPE 1 -HAVE_DELSCREEN 1 -HAVE_DERWIN 1 -HAVE_DIRENT_H -HAVE_DUPWIN 1 -HAVE_ERRNO -HAVE_EXIT_CURSES 1 -HAVE_EXIT_TERMINFO 1 -HAVE_FCNTL_H -HAVE_FILTER 1 -HAVE_FORM_H -HAVE_GETBEGX 1 -HAVE_GETCURX 1 -HAVE_GETCWD -HAVE_GETEGID -HAVE_GETEUID -HAVE_GETMAXX 1 -HAVE_GETNSTR -HAVE_GETOPT_H -HAVE_GETPARX 1 -HAVE_GETTIMEOFDAY -HAVE_GETTTYNAM -HAVE_GETWIN 1 -HAVE_GPM_H -HAVE_GPP_BUILTIN_H -HAVE_GXX_BUILTIN_H -HAVE_HALFDELAY 1 -HAVE_HAS_KEY -HAVE_INIT_EXTENDED_COLOR -HAVE_INTTYPES_H -HAVE_IOSTREAM -HAVE_ISASCII -HAVE_ISSETUGID -HAVE_LANGINFO_CODESET -HAVE_LIBC_H -HAVE_LIBDBMALLOC -HAVE_LIBDMALLOC -HAVE_LIBFORM -HAVE_LIBGPM -HAVE_LIBMENU -HAVE_LIBMPATROL -HAVE_LIBPANEL -HAVE_LIB_PCRE2 -HAVE_LIMITS_H -HAVE_LINK -HAVE_LOCALECONV -HAVE_LOCALE_H -HAVE_LONG_FILE_NAMES -HAVE_MATH_H -HAVE_MBLEN -HAVE_MBRLEN -HAVE_MBRTOWC -HAVE_MBSRTOWCS -HAVE_MBSTOWCS -HAVE_MBTOWC -HAVE_MENU_H -HAVE_MKSTEMP -HAVE_MVDERWIN 1 -HAVE_MVVLINE 1 -HAVE_MVWIN 1 -HAVE_MVWVLINE 1 -HAVE_NANOSLEEP -HAVE_NC_ALLOC_H -HAVE_NEWPAD 1 -HAVE_PANEL_H -HAVE_PCRE2POSIX_H -HAVE_PCREPOSIX_H -HAVE_POLL -HAVE_POLL_H -HAVE_PURIFY -HAVE_PUTENV -HAVE_PUTWC -HAVE_PUTWIN 1 -HAVE_REGEXPR_H_FUNCS -HAVE_REGEXP_H_FUNCS -HAVE_REGEX_H_FUNCS -HAVE_REMOVE -HAVE_RESET_COLOR_PAIRS -HAVE_RESIZETERM -HAVE_RESIZE_TERM -HAVE_RESTARTTERM 1 -HAVE_RIPOFFLINE 1 -HAVE_SCR_DUMP 1 -HAVE_SELECT -HAVE_SETBUF -HAVE_SETBUFFER -HAVE_SETFSUID -HAVE_SETENV -HAVE_SETUPTERM 1 -HAVE_SETVBUF -HAVE_SGTTY_H -HAVE_SIGACTION -HAVE_SIGVEC -HAVE_SIZECHANGE -HAVE_SLK_COLOR -HAVE_SLK_INIT 1 -HAVE_SNPRINTF -HAVE_STDINT_H -HAVE_STRDUP -HAVE_STRLCAT -HAVE_STRLCPY -HAVE_STRSTR -HAVE_SYMLINK -HAVE_SYSCONF -HAVE_SYS_BSDTYPES_H -HAVE_SYS_IOCTL_H -HAVE_SYS_PARAM_H -HAVE_SYS_POLL_H -HAVE_SYS_SELECT_H -HAVE_SYS_TERMIO_H -HAVE_SYS_TIMES_H -HAVE_SYS_TIME_H -HAVE_SYS_TIME_SELECT -HAVE_TCGETATTR -HAVE_TCGETPGRP -HAVE_TELL -HAVE_TERMATTRS 1 -HAVE_TERMCAP_H 1 -HAVE_TERMIOS_H -HAVE_TERMIO_H -HAVE_TERMNAME 1 -HAVE_TERM_ENTRY_H 1 -HAVE_TERM_H 1 -HAVE_TGETENT 1 -HAVE_TIGETNUM 1 -HAVE_TIGETSTR 1 -HAVE_TIMES -HAVE_TPUTS_SP -HAVE_TSEARCH -HAVE_TTYENT_H -HAVE_TYPEAHEAD 1 -HAVE_TYPEINFO -HAVE_TYPE_ATTR_T -HAVE_TYPE_SIGACTION -HAVE_UNCTRL_H 1 -HAVE_UNISTD_H -HAVE_UNLINK -HAVE_USE_DEFAULT_COLORS -HAVE_USE_ENV 1 -HAVE_USE_EXTENDED_NAMES -HAVE_USE_SCREEN -HAVE_USE_WINDOW -HAVE_VFSCANF -HAVE_VIDPUTS 1 -HAVE_VID_PUTS 1 -HAVE_VSNPRINTF -HAVE_VSSCANF -HAVE_VW_PRINTW 1 -HAVE_WCHGAT 1 -HAVE_WCSRTOMBS -HAVE_WCSTOMBS -HAVE_WCTOB -HAVE_WCTOMB -HAVE_WCTYPE_H -HAVE_WINSDELLN 1 -HAVE_WINSSTR 1 -HAVE_WORKING_POLL -HAVE_WRESIZE -HAVE_WSYNCDOWN 1 -HAVE__DOSCAN -HAVE__TRACEF -MIXEDCASE_FILENAMES -NCURSES_CHAR_EQ -NCURSES_EXPANDED -NCURSES_EXT_COLORS -NCURSES_EXT_FUNCS -NCURSES_EXT_PUTWIN -NCURSES_NO_PADDING -NCURSES_OSPEED_COMPAT -NCURSES_PATHSEP ':' -NCURSES_WIDECHAR -NEED_PTEM_H -NO_LEAKS -PURE_TERMINFO -STDC_HEADERS -SVR4_ACTION -SVR4_TERMIO -SYSTEM_NAME "unknown" -TERMINFO "none" -TERMPATH "none" -TIME_WITH_SYS_TIME -TYPEOF_CHTYPE -USE_COLORFGBG -USE_FOPEN_BIN_R -USE_GETCAP -USE_GETCAP_CACHE -USE_HARD_TABS -USE_HASHED_DB -USE_HASHMAP -USE_HOME_TERMINFO -USE_LINKS -USE_MY_MEMMOVE -USE_OK_BCOPY -USE_PTHREADS_EINTR -USE_RCS_IDS -USE_REENTRANT -USE_SAFE_SPRINTF -USE_SCROLL_HINTS -USE_SIGWINCH -USE_STRING_HACKS -USE_SYMLINKS -USE_SYSMOUSE -USE_WEAK_SYMBOLS -USE_WIDEC_SUPPORT -USE_XMC_SUPPORT diff --git a/include/ncurses_dll.h b/include/ncurses_dll.h deleted file mode 100644 index 0ffd866..0000000 --- a/include/ncurses_dll.h +++ /dev/null @@ -1,99 +0,0 @@ -/**************************************************************************** - * Copyright 2018,2020 Thomas E. Dickey * - * Copyright 2009,2014 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ -/* $Id: ncurses_dll.h.in,v 1.17 2020/09/05 17:58:47 juergen Exp $ */ - -#ifndef NCURSES_DLL_H_incl -#define NCURSES_DLL_H_incl 1 - -/* - * MinGW gcc (unlike MSYS2 and Cygwin) should define _WIN32 and possibly _WIN64. - */ -#if defined(__MINGW64__) - -#ifndef _WIN64 -#define _WIN64 1 -#endif - -#elif defined(__MINGW32__) - -#ifndef _WIN32 -#define _WIN32 1 -#endif - -/* 2014-08-02 workaround for broken MinGW compiler. - * Oddly, only TRACE is mapped to trace - the other -D's are okay. - * suggest TDM as an alternative. - */ -#if (__GNUC__ == 4) && (__GNUC_MINOR__ == 8) - -#ifdef trace -#undef trace -#define TRACE -#endif - -#endif /* broken compiler */ - -#endif /* MingW */ - -/* - * For reentrant code, we map the various global variables into SCREEN by - * using functions to access them. - */ -#define NCURSES_PUBLIC_VAR(name) _nc_##name - -#if defined(BUILDING_NCURSES) -# define NCURSES_IMPEXP NCURSES_EXPORT_GENERAL_EXPORT -#else -# define NCURSES_IMPEXP NCURSES_EXPORT_GENERAL_IMPORT -#endif - -#define NCURSES_WRAPPED_VAR(type,name) extern NCURSES_IMPEXP type NCURSES_PUBLIC_VAR(name)(void) - -#define NCURSES_EXPORT(type) NCURSES_IMPEXP type NCURSES_API -#define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type - -/* - * These symbols hide dllimport/dllexport, for compilers which care about it. - */ -#if defined(__CYGWIN__) || (defined(_WIN32) || defined(_WIN64)) -# if defined(NCURSES_STATIC) /* "static" here only implies "not-a-DLL" */ -# define NCURSES_EXPORT_GENERAL_IMPORT -# define NCURSES_EXPORT_GENERAL_EXPORT -# else -# define NCURSES_EXPORT_GENERAL_IMPORT __declspec(dllimport) -# define NCURSES_EXPORT_GENERAL_EXPORT __declspec(dllexport) -# endif -# define NCURSES_API __cdecl -#else -# define NCURSES_EXPORT_GENERAL_IMPORT -# define NCURSES_EXPORT_GENERAL_EXPORT -# define NCURSES_API /* FIXME: __attribute__ ((cdecl)) is only available on x86 */ -#endif - -#endif /* NCURSES_DLL_H_incl */ diff --git a/include/ncurses_dll.h.in b/include/ncurses_dll.h.in deleted file mode 100644 index 437c54d..0000000 --- a/include/ncurses_dll.h.in +++ /dev/null @@ -1,99 +0,0 @@ -/**************************************************************************** - * Copyright 2018,2020 Thomas E. Dickey * - * Copyright 2009,2014 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ -/* $Id: ncurses_dll.h.in,v 1.17 2020/09/05 17:58:47 juergen Exp $ */ - -#ifndef NCURSES_DLL_H_incl -#define NCURSES_DLL_H_incl 1 - -/* - * MinGW gcc (unlike MSYS2 and Cygwin) should define _WIN32 and possibly _WIN64. - */ -#if defined(__MINGW64__) - -#ifndef _WIN64 -#define _WIN64 1 -#endif - -#elif defined(__MINGW32__) - -#ifndef _WIN32 -#define _WIN32 1 -#endif - -/* 2014-08-02 workaround for broken MinGW compiler. - * Oddly, only TRACE is mapped to trace - the other -D's are okay. - * suggest TDM as an alternative. - */ -#if (__GNUC__ == 4) && (__GNUC_MINOR__ == 8) - -#ifdef trace -#undef trace -#define TRACE -#endif - -#endif /* broken compiler */ - -#endif /* MingW */ - -/* - * For reentrant code, we map the various global variables into SCREEN by - * using functions to access them. - */ -#define NCURSES_PUBLIC_VAR(name) @NCURSES_WRAP_PREFIX@##name - -#if defined(BUILDING_NCURSES) -# define NCURSES_IMPEXP NCURSES_EXPORT_GENERAL_EXPORT -#else -# define NCURSES_IMPEXP NCURSES_EXPORT_GENERAL_IMPORT -#endif - -#define NCURSES_WRAPPED_VAR(type,name) extern NCURSES_IMPEXP type NCURSES_PUBLIC_VAR(name)(void) - -#define NCURSES_EXPORT(type) NCURSES_IMPEXP type NCURSES_API -#define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type - -/* - * These symbols hide dllimport/dllexport, for compilers which care about it. - */ -#if defined(__CYGWIN__) || (defined(_WIN32) || defined(_WIN64)) -# if defined(NCURSES_STATIC) /* "static" here only implies "not-a-DLL" */ -# define NCURSES_EXPORT_GENERAL_IMPORT -# define NCURSES_EXPORT_GENERAL_EXPORT -# else -# define NCURSES_EXPORT_GENERAL_IMPORT __declspec(dllimport) -# define NCURSES_EXPORT_GENERAL_EXPORT __declspec(dllexport) -# endif -# define NCURSES_API __cdecl -#else -# define NCURSES_EXPORT_GENERAL_IMPORT -# define NCURSES_EXPORT_GENERAL_EXPORT -# define NCURSES_API /* FIXME: __attribute__ ((cdecl)) is only available on x86 */ -#endif - -#endif /* NCURSES_DLL_H_incl */ diff --git a/include/ncurses_mingw.h b/include/ncurses_mingw.h deleted file mode 100644 index 8b11272..0000000 --- a/include/ncurses_mingw.h +++ /dev/null @@ -1,82 +0,0 @@ -/**************************************************************************** - * Copyright 2018-2020,2021 Thomas E. Dickey * - * Copyright 2008-2014,2017 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Juergen Pfeifer, 2008-on * - ****************************************************************************/ - -/* $Id: ncurses_mingw.h,v 1.7 2021/06/17 21:26:02 tom Exp $ */ - -/* - * This is a placeholder up to now and describes what needs to be implemented - * to support I/O to external terminals with ncurses on the Windows OS. - */ - -#ifdef _WIN32 -#ifndef _NC_MINGWH -#define _NC_MINGWH - -#define USE_CONSOLE_DRIVER 1 - -#undef TERMIOS -#define TERMIOS 1 - -typedef unsigned char cc_t; -typedef unsigned int tcflag_t; -typedef unsigned int speed_t; -typedef unsigned short otcflag_t; -typedef unsigned char ospeed_t; - -#define NCCS 18 -struct termios -{ - tcflag_t c_iflag; - tcflag_t c_oflag; - tcflag_t c_cflag; - tcflag_t c_lflag; - char c_line; - cc_t c_cc[NCCS]; - speed_t c_ispeed; - speed_t c_ospeed; -}; - -extern NCURSES_EXPORT(int) _nc_mingw_tcsetattr( - int fd, - int optional_actions, - const struct termios* arg); -extern NCURSES_EXPORT(int) _nc_mingw_tcgetattr( - int fd, - struct termios* arg); -extern NCURSES_EXPORT(int) _nc_mingw_tcflush( - int fd, - int queue); -extern NCURSES_EXPORT(void) _nc_set_term_driver(void* term); - -#endif /* _NC_MINGWH */ -#endif /* _WIN32 */ diff --git a/include/panel.h b/include/panel.h deleted file mode 100644 index 62acc8f..0000000 --- a/include/panel.h +++ /dev/null @@ -1,100 +0,0 @@ -/**************************************************************************** - * Copyright 2020 Thomas E. Dickey * - * Copyright 1998-2009,2017 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1995 * - * and: Eric S. Raymond * - * and: Juergen Pfeifer 1996-1999,2008 * - ****************************************************************************/ - -/* $Id: panel.h,v 1.14 2020/07/04 20:38:43 tom Exp $ */ - -/* panel.h -- interface file for panels library */ - -#ifndef NCURSES_PANEL_H_incl -#define NCURSES_PANEL_H_incl 1 - -#include - -typedef struct panel -#if !NCURSES_OPAQUE_PANEL -{ - WINDOW *win; - struct panel *below; - struct panel *above; - NCURSES_CONST void *user; -} -#endif /* !NCURSES_OPAQUE_PANEL */ -PANEL; - -#if defined(__cplusplus) -extern "C" { -#endif - -#if defined(BUILDING_PANEL) -# define PANEL_IMPEXP NCURSES_EXPORT_GENERAL_EXPORT -#else -# define PANEL_IMPEXP NCURSES_EXPORT_GENERAL_IMPORT -#endif - -#define PANEL_WRAPPED_VAR(type,name) extern PANEL_IMPEXP type NCURSES_PUBLIC_VAR(name)(void) - -#define PANEL_EXPORT(type) PANEL_IMPEXP type NCURSES_API -#define PANEL_EXPORT_VAR(type) PANEL_IMPEXP type - -extern PANEL_EXPORT(WINDOW*) panel_window (const PANEL *); -extern PANEL_EXPORT(void) update_panels (void); -extern PANEL_EXPORT(int) hide_panel (PANEL *); -extern PANEL_EXPORT(int) show_panel (PANEL *); -extern PANEL_EXPORT(int) del_panel (PANEL *); -extern PANEL_EXPORT(int) top_panel (PANEL *); -extern PANEL_EXPORT(int) bottom_panel (PANEL *); -extern PANEL_EXPORT(PANEL*) new_panel (WINDOW *); -extern PANEL_EXPORT(PANEL*) panel_above (const PANEL *); -extern PANEL_EXPORT(PANEL*) panel_below (const PANEL *); -extern PANEL_EXPORT(int) set_panel_userptr (PANEL *, NCURSES_CONST void *); -extern PANEL_EXPORT(NCURSES_CONST void*) panel_userptr (const PANEL *); -extern PANEL_EXPORT(int) move_panel (PANEL *, int, int); -extern PANEL_EXPORT(int) replace_panel (PANEL *,WINDOW *); -extern PANEL_EXPORT(int) panel_hidden (const PANEL *); - -#if NCURSES_SP_FUNCS -extern PANEL_EXPORT(PANEL *) ground_panel(SCREEN *); -extern PANEL_EXPORT(PANEL *) ceiling_panel(SCREEN *); - -extern PANEL_EXPORT(void) NCURSES_SP_NAME(update_panels) (SCREEN*); -#endif - -#if defined(__cplusplus) -} -#endif - -#endif /* NCURSES_PANEL_H_incl */ - -/* end of panel.h */ diff --git a/include/parametrized.h b/include/parametrized.h deleted file mode 100644 index 687cda6..0000000 --- a/include/parametrized.h +++ /dev/null @@ -1,429 +0,0 @@ -#ifndef PARAMETRIZED_H -#define PARAMETRIZED_H 1 -/* - * parametrized.h --- is a termcap capability parametrized? - * - * Note: this file is generated using MKparametrized.sh, do not edit by hand. - * A value of -1 in the table means suppress both pad and % translations. - * A value of 0 in the table means do pad but not % translations. - * A value of 1 in the table means do both pad and % translations. - */ - -static short const parametrized[] = { -0, /* cbt */ -0, /* bel */ -0, /* cr */ -1, /* csr */ -0, /* tbc */ -0, /* clear */ -0, /* el */ -0, /* ed */ -1, /* hpa */ -0, /* cmdch */ -1, /* cup */ -0, /* cud1 */ -0, /* home */ -0, /* civis */ -0, /* cub1 */ -1, /* mrcup */ -0, /* cnorm */ -0, /* cuf1 */ -0, /* ll */ -0, /* cuu1 */ -0, /* cvvis */ -0, /* dch1 */ -0, /* dl1 */ -0, /* dsl */ -0, /* hd */ -0, /* smacs */ -0, /* blink */ -0, /* bold */ -0, /* smcup */ -0, /* smdc */ -0, /* dim */ -0, /* smir */ -0, /* invis */ -0, /* prot */ -0, /* rev */ -0, /* smso */ -0, /* smul */ -1, /* ech */ -0, /* rmacs */ -0, /* sgr0 */ -0, /* rmcup */ -0, /* rmdc */ -0, /* rmir */ -0, /* rmso */ -0, /* rmul */ -0, /* flash */ -0, /* ff */ -0, /* fsl */ -0, /* is1 */ -0, /* is2 */ -0, /* is3 */ -0, /* if */ -0, /* ich1 */ -0, /* il1 */ -0, /* ip */ -0, /* kbs */ -0, /* ktbc */ -0, /* kclr */ -0, /* kctab */ -0, /* kdch1 */ -0, /* kdl1 */ -0, /* kcud1 */ -0, /* krmir */ -0, /* kel */ -0, /* ked */ -0, /* kf0 */ -0, /* kf1 */ -0, /* kf10 */ -0, /* kf2 */ -0, /* kf3 */ -0, /* kf4 */ -0, /* kf5 */ -0, /* kf6 */ -0, /* kf7 */ -0, /* kf8 */ -0, /* kf9 */ -0, /* khome */ -0, /* kich1 */ -0, /* kil1 */ -0, /* kcub1 */ -0, /* kll */ -0, /* knp */ -0, /* kpp */ -0, /* kcuf1 */ -0, /* kind */ -0, /* kri */ -0, /* khts */ -0, /* kcuu1 */ -0, /* rmkx */ -0, /* smkx */ -0, /* lf0 */ -0, /* lf1 */ -0, /* lf10 */ -0, /* lf2 */ -0, /* lf3 */ -0, /* lf4 */ -0, /* lf5 */ -0, /* lf6 */ -0, /* lf7 */ -0, /* lf8 */ -0, /* lf9 */ -0, /* rmm */ -0, /* smm */ -0, /* nel */ -0, /* pad */ -1, /* dch */ -1, /* dl */ -1, /* cud */ -1, /* ich */ -1, /* indn */ -1, /* il */ -1, /* cub */ -1, /* cuf */ -1, /* rin */ -1, /* cuu */ -1, /* pfkey */ -1, /* pfloc */ -1, /* pfx */ -0, /* mc0 */ -0, /* mc4 */ -0, /* mc5 */ -1, /* rep */ -0, /* rs1 */ -0, /* rs2 */ -0, /* rs3 */ -0, /* rf */ -0, /* rc */ -1, /* vpa */ -0, /* sc */ -0, /* ind */ -0, /* ri */ -1, /* sgr */ -0, /* hts */ -1, /* wind */ -0, /* ht */ -1, /* tsl */ -0, /* uc */ -0, /* hu */ -0, /* iprog */ -0, /* ka1 */ -0, /* ka3 */ -0, /* kb2 */ -0, /* kc1 */ -0, /* kc3 */ -1, /* mc5p */ -0, /* rmp */ --1, /* acsc */ -1, /* pln */ -0, /* kcbt */ -0, /* smxon */ -0, /* rmxon */ -0, /* smam */ -0, /* rmam */ -0, /* xonc */ -0, /* xoffc */ -0, /* enacs */ -0, /* smln */ -0, /* rmln */ -0, /* kbeg */ -0, /* kcan */ -0, /* kclo */ -0, /* kcmd */ -0, /* kcpy */ -0, /* kcrt */ -0, /* kend */ -0, /* kent */ -0, /* kext */ -0, /* kfnd */ -0, /* khlp */ -0, /* kmrk */ -0, /* kmsg */ -0, /* kmov */ -0, /* knxt */ -0, /* kopn */ -0, /* kopt */ -0, /* kprv */ -0, /* kprt */ -0, /* krdo */ -0, /* kref */ -0, /* krfr */ -0, /* krpl */ -0, /* krst */ -0, /* kres */ -0, /* ksav */ -0, /* kspd */ -0, /* kund */ -0, /* kBEG */ -0, /* kCAN */ -0, /* kCMD */ -0, /* kCPY */ -0, /* kCRT */ -0, /* kDC */ -0, /* kDL */ -0, /* kslt */ -0, /* kEND */ -0, /* kEOL */ -0, /* kEXT */ -0, /* kFND */ -1, /* kHLP */ -1, /* kHOM */ -1, /* kIC */ -1, /* kLFT */ -0, /* kMSG */ -0, /* kMOV */ -0, /* kNXT */ -0, /* kOPT */ -0, /* kPRV */ -0, /* kPRT */ -0, /* kRDO */ -0, /* kRPL */ -0, /* kRIT */ -0, /* kRES */ -0, /* kSAV */ -0, /* kSPD */ -0, /* kUND */ -0, /* rfi */ -0, /* kf11 */ -0, /* kf12 */ -0, /* kf13 */ -0, /* kf14 */ -0, /* kf15 */ -0, /* kf16 */ -0, /* kf17 */ -0, /* kf18 */ -0, /* kf19 */ -0, /* kf20 */ -0, /* kf21 */ -0, /* kf22 */ -0, /* kf23 */ -0, /* kf24 */ -0, /* kf25 */ -0, /* kf26 */ -0, /* kf27 */ -0, /* kf28 */ -0, /* kf29 */ -0, /* kf30 */ -0, /* kf31 */ -0, /* kf32 */ -0, /* kf33 */ -0, /* kf34 */ -0, /* kf35 */ -0, /* kf36 */ -0, /* kf37 */ -0, /* kf38 */ -0, /* kf39 */ -0, /* kf40 */ -0, /* kf41 */ -0, /* kf42 */ -0, /* kf43 */ -0, /* kf44 */ -0, /* kf45 */ -0, /* kf46 */ -0, /* kf47 */ -0, /* kf48 */ -0, /* kf49 */ -0, /* kf50 */ -0, /* kf51 */ -0, /* kf52 */ -0, /* kf53 */ -0, /* kf54 */ -0, /* kf55 */ -0, /* kf56 */ -0, /* kf57 */ -0, /* kf58 */ -0, /* kf59 */ -0, /* kf60 */ -0, /* kf61 */ -0, /* kf62 */ -0, /* kf63 */ -0, /* el1 */ -0, /* mgc */ -0, /* smgl */ -0, /* smgr */ --1, /* fln */ -1, /* sclk */ -0, /* dclk */ -0, /* rmclk */ -1, /* cwin */ -1, /* wingo */ -0, /* hup */ -1, /* dial */ -1, /* qdial */ -0, /* tone */ -0, /* pulse */ -0, /* hook */ -0, /* pause */ -0, /* wait */ -1, /* u0 */ -1, /* u1 */ -1, /* u2 */ -1, /* u3 */ -1, /* u4 */ -1, /* u5 */ -1, /* u6 */ -1, /* u7 */ -1, /* u8 */ -1, /* u9 */ -0, /* op */ -0, /* oc */ -1, /* initc */ -1, /* initp */ -1, /* scp */ -1, /* setf */ -1, /* setb */ -1, /* cpi */ -1, /* lpi */ -1, /* chr */ -1, /* cvr */ -1, /* defc */ -0, /* swidm */ -0, /* sdrfq */ -0, /* sitm */ -0, /* slm */ -0, /* smicm */ -0, /* snlq */ -0, /* snrmq */ -0, /* sshm */ -0, /* ssubm */ -0, /* ssupm */ -0, /* sum */ -0, /* rwidm */ -0, /* ritm */ -0, /* rlm */ -0, /* rmicm */ -0, /* rshm */ -0, /* rsubm */ -0, /* rsupm */ -0, /* rum */ -0, /* mhpa */ -0, /* mcud1 */ -0, /* mcub1 */ -0, /* mcuf1 */ -1, /* mvpa */ -0, /* mcuu1 */ -0, /* porder */ -0, /* mcud */ -0, /* mcub */ -0, /* mcuf */ -0, /* mcuu */ -1, /* scs */ -0, /* smgb */ -1, /* smgbp */ -1, /* smglp */ -1, /* smgrp */ -0, /* smgt */ -1, /* smgtp */ -0, /* sbim */ -1, /* scsd */ -0, /* rbim */ -1, /* rcsd */ -0, /* subcs */ -0, /* supcs */ -0, /* docr */ -0, /* zerom */ -1, /* csnm */ -0, /* kmous */ -0, /* minfo */ -0, /* reqmp */ -1, /* getm */ -1, /* setaf */ -1, /* setab */ -1, /* pfxl */ -0, /* devt */ -0, /* csin */ -0, /* s0ds */ -0, /* s1ds */ -0, /* s2ds */ -0, /* s3ds */ -1, /* smglr */ -1, /* smgtb */ -1, /* birep */ -0, /* binel */ -0, /* bicr */ -1, /* colornm */ -0, /* defbi */ -0, /* endbi */ -1, /* setcolor */ -1, /* slines */ -1, /* dispc */ -0, /* smpch */ -0, /* rmpch */ -0, /* smsc */ -0, /* rmsc */ -0, /* pctrm */ -0, /* scesc */ -0, /* scesa */ -0, /* ehhlm */ -0, /* elhlm */ -0, /* elohlm */ -0, /* erhlm */ -0, /* ethlm */ -0, /* evhlm */ -1, /* sgr1 */ -1, /* slength */ -0, /* OTi2 */ -0, /* OTrs */ -0, /* OTnl */ -0, /* OTbc */ -0, /* OTko */ -0, /* OTma */ --1, /* OTG2 */ --1, /* OTG3 */ --1, /* OTG1 */ --1, /* OTG4 */ --1, /* OTGR */ --1, /* OTGL */ --1, /* OTGU */ --1, /* OTGD */ --1, /* OTGH */ --1, /* OTGV */ --1, /* OTGC */ -0, /* meml */ -0, /* memu */ -0, /* box1 */ -} /* 414 entries */; - -#endif /* PARAMETRIZED_H */ diff --git a/include/term.h b/include/term.h deleted file mode 100644 index b9ffd7c..0000000 --- a/include/term.h +++ /dev/null @@ -1,874 +0,0 @@ -/**************************************************************************** - * Copyright 2018-2020,2021 Thomas E. Dickey * - * Copyright 1998-2013,2017 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/****************************************************************************/ -/* Author: Zeyd M. Ben-Halim 1992,1995 */ -/* and: Eric S. Raymond */ -/* and: Thomas E. Dickey 1995-on */ -/****************************************************************************/ - -/* $Id: MKterm.h.awk.in,v 1.82 2021/09/24 17:02:46 tom Exp $ */ - -/* -** term.h -- Definition of struct term -*/ - -#ifndef NCURSES_TERM_H_incl -#define NCURSES_TERM_H_incl 1 - -#undef NCURSES_VERSION -#define NCURSES_VERSION "6.3" - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Make this file self-contained by providing defaults for the HAVE_TERMIO[S]_H - * definition (based on the system for which this was configured). - */ - -#ifndef __NCURSES_H - -typedef struct screen SCREEN; - -#if 1 -#undef NCURSES_SP_FUNCS -#define NCURSES_SP_FUNCS 20211021 -#undef NCURSES_SP_NAME -#define NCURSES_SP_NAME(name) name##_sp - -/* Define the sp-funcs helper function */ -#undef NCURSES_SP_OUTC -#define NCURSES_SP_OUTC NCURSES_SP_NAME(NCURSES_OUTC) -typedef int (*NCURSES_SP_OUTC)(SCREEN*, int); -#endif - -#endif /* __NCURSES_H */ - -#undef NCURSES_CONST -#define NCURSES_CONST const - -#undef NCURSES_SBOOL -#define NCURSES_SBOOL char - -#undef NCURSES_USE_DATABASE -#define NCURSES_USE_DATABASE 1 - -#undef NCURSES_USE_TERMCAP -#define NCURSES_USE_TERMCAP 0 - -#undef NCURSES_XNAMES -#define NCURSES_XNAMES 1 - -/* We will use these symbols to hide differences between - * termios/termio/sgttyb interfaces. - */ -#undef TTY -#undef SET_TTY -#undef GET_TTY - -/* Assume POSIX termio if we have the header and function */ -/* #if HAVE_TERMIOS_H && HAVE_TCGETATTR */ -#if 1 && 1 - -#undef TERMIOS -#define TERMIOS 1 - -#include -#define TTY struct termios - -#else /* !HAVE_TERMIOS_H */ - -/* #if HAVE_TERMIO_H */ -#if 1 - -#undef TERMIOS -#define TERMIOS 1 - -#include -#define TTY struct termio - -#else /* !HAVE_TERMIO_H */ - -#if (defined(_WIN32) || defined(_WIN64)) -#if 0 -#include -#define TTY struct winconmode -#else -#include -#define TTY struct termios -#endif -#else -#undef TERMIOS -#include -#include -#define TTY struct sgttyb -#endif /* MINGW32 */ -#endif /* HAVE_TERMIO_H */ - -#endif /* HAVE_TERMIOS_H */ - -#ifdef TERMIOS -#define GET_TTY(fd, buf) tcgetattr(fd, buf) -#define SET_TTY(fd, buf) tcsetattr(fd, TCSADRAIN, buf) -#elif 0 && (defined(_WIN32) || defined(_WIN64)) -#define GET_TTY(fd, buf) _nc_console_getmode(_nc_console_fd2handle(fd),buf) -#define SET_TTY(fd, buf) _nc_console_setmode(_nc_console_fd2handle(fd),buf) -#else -#define GET_TTY(fd, buf) gtty(fd, buf) -#define SET_TTY(fd, buf) stty(fd, buf) -#endif - -#ifndef GCC_NORETURN -#define GCC_NORETURN /* nothing */ -#endif - -#define NAMESIZE 256 - -/* The cast works because TERMTYPE is the first data in TERMINAL */ -#define CUR ((TERMTYPE *)(cur_term))-> - -#define auto_left_margin CUR Booleans[0] -#define auto_right_margin CUR Booleans[1] -#define no_esc_ctlc CUR Booleans[2] -#define ceol_standout_glitch CUR Booleans[3] -#define eat_newline_glitch CUR Booleans[4] -#define erase_overstrike CUR Booleans[5] -#define generic_type CUR Booleans[6] -#define hard_copy CUR Booleans[7] -#define has_meta_key CUR Booleans[8] -#define has_status_line CUR Booleans[9] -#define insert_null_glitch CUR Booleans[10] -#define memory_above CUR Booleans[11] -#define memory_below CUR Booleans[12] -#define move_insert_mode CUR Booleans[13] -#define move_standout_mode CUR Booleans[14] -#define over_strike CUR Booleans[15] -#define status_line_esc_ok CUR Booleans[16] -#define dest_tabs_magic_smso CUR Booleans[17] -#define tilde_glitch CUR Booleans[18] -#define transparent_underline CUR Booleans[19] -#define xon_xoff CUR Booleans[20] -#define needs_xon_xoff CUR Booleans[21] -#define prtr_silent CUR Booleans[22] -#define hard_cursor CUR Booleans[23] -#define non_rev_rmcup CUR Booleans[24] -#define no_pad_char CUR Booleans[25] -#define non_dest_scroll_region CUR Booleans[26] -#define can_change CUR Booleans[27] -#define back_color_erase CUR Booleans[28] -#define hue_lightness_saturation CUR Booleans[29] -#define col_addr_glitch CUR Booleans[30] -#define cr_cancels_micro_mode CUR Booleans[31] -#define has_print_wheel CUR Booleans[32] -#define row_addr_glitch CUR Booleans[33] -#define semi_auto_right_margin CUR Booleans[34] -#define cpi_changes_res CUR Booleans[35] -#define lpi_changes_res CUR Booleans[36] -#define columns CUR Numbers[0] -#define init_tabs CUR Numbers[1] -#define lines CUR Numbers[2] -#define lines_of_memory CUR Numbers[3] -#define magic_cookie_glitch CUR Numbers[4] -#define padding_baud_rate CUR Numbers[5] -#define virtual_terminal CUR Numbers[6] -#define width_status_line CUR Numbers[7] -#define num_labels CUR Numbers[8] -#define label_height CUR Numbers[9] -#define label_width CUR Numbers[10] -#define max_attributes CUR Numbers[11] -#define maximum_windows CUR Numbers[12] -#define max_colors CUR Numbers[13] -#define max_pairs CUR Numbers[14] -#define no_color_video CUR Numbers[15] -#define buffer_capacity CUR Numbers[16] -#define dot_vert_spacing CUR Numbers[17] -#define dot_horz_spacing CUR Numbers[18] -#define max_micro_address CUR Numbers[19] -#define max_micro_jump CUR Numbers[20] -#define micro_col_size CUR Numbers[21] -#define micro_line_size CUR Numbers[22] -#define number_of_pins CUR Numbers[23] -#define output_res_char CUR Numbers[24] -#define output_res_line CUR Numbers[25] -#define output_res_horz_inch CUR Numbers[26] -#define output_res_vert_inch CUR Numbers[27] -#define print_rate CUR Numbers[28] -#define wide_char_size CUR Numbers[29] -#define buttons CUR Numbers[30] -#define bit_image_entwining CUR Numbers[31] -#define bit_image_type CUR Numbers[32] -#define back_tab CUR Strings[0] -#define bell CUR Strings[1] -#define carriage_return CUR Strings[2] -#define change_scroll_region CUR Strings[3] -#define clear_all_tabs CUR Strings[4] -#define clear_screen CUR Strings[5] -#define clr_eol CUR Strings[6] -#define clr_eos CUR Strings[7] -#define column_address CUR Strings[8] -#define command_character CUR Strings[9] -#define cursor_address CUR Strings[10] -#define cursor_down CUR Strings[11] -#define cursor_home CUR Strings[12] -#define cursor_invisible CUR Strings[13] -#define cursor_left CUR Strings[14] -#define cursor_mem_address CUR Strings[15] -#define cursor_normal CUR Strings[16] -#define cursor_right CUR Strings[17] -#define cursor_to_ll CUR Strings[18] -#define cursor_up CUR Strings[19] -#define cursor_visible CUR Strings[20] -#define delete_character CUR Strings[21] -#define delete_line CUR Strings[22] -#define dis_status_line CUR Strings[23] -#define down_half_line CUR Strings[24] -#define enter_alt_charset_mode CUR Strings[25] -#define enter_blink_mode CUR Strings[26] -#define enter_bold_mode CUR Strings[27] -#define enter_ca_mode CUR Strings[28] -#define enter_delete_mode CUR Strings[29] -#define enter_dim_mode CUR Strings[30] -#define enter_insert_mode CUR Strings[31] -#define enter_secure_mode CUR Strings[32] -#define enter_protected_mode CUR Strings[33] -#define enter_reverse_mode CUR Strings[34] -#define enter_standout_mode CUR Strings[35] -#define enter_underline_mode CUR Strings[36] -#define erase_chars CUR Strings[37] -#define exit_alt_charset_mode CUR Strings[38] -#define exit_attribute_mode CUR Strings[39] -#define exit_ca_mode CUR Strings[40] -#define exit_delete_mode CUR Strings[41] -#define exit_insert_mode CUR Strings[42] -#define exit_standout_mode CUR Strings[43] -#define exit_underline_mode CUR Strings[44] -#define flash_screen CUR Strings[45] -#define form_feed CUR Strings[46] -#define from_status_line CUR Strings[47] -#define init_1string CUR Strings[48] -#define init_2string CUR Strings[49] -#define init_3string CUR Strings[50] -#define init_file CUR Strings[51] -#define insert_character CUR Strings[52] -#define insert_line CUR Strings[53] -#define insert_padding CUR Strings[54] -#define key_backspace CUR Strings[55] -#define key_catab CUR Strings[56] -#define key_clear CUR Strings[57] -#define key_ctab CUR Strings[58] -#define key_dc CUR Strings[59] -#define key_dl CUR Strings[60] -#define key_down CUR Strings[61] -#define key_eic CUR Strings[62] -#define key_eol CUR Strings[63] -#define key_eos CUR Strings[64] -#define key_f0 CUR Strings[65] -#define key_f1 CUR Strings[66] -#define key_f10 CUR Strings[67] -#define key_f2 CUR Strings[68] -#define key_f3 CUR Strings[69] -#define key_f4 CUR Strings[70] -#define key_f5 CUR Strings[71] -#define key_f6 CUR Strings[72] -#define key_f7 CUR Strings[73] -#define key_f8 CUR Strings[74] -#define key_f9 CUR Strings[75] -#define key_home CUR Strings[76] -#define key_ic CUR Strings[77] -#define key_il CUR Strings[78] -#define key_left CUR Strings[79] -#define key_ll CUR Strings[80] -#define key_npage CUR Strings[81] -#define key_ppage CUR Strings[82] -#define key_right CUR Strings[83] -#define key_sf CUR Strings[84] -#define key_sr CUR Strings[85] -#define key_stab CUR Strings[86] -#define key_up CUR Strings[87] -#define keypad_local CUR Strings[88] -#define keypad_xmit CUR Strings[89] -#define lab_f0 CUR Strings[90] -#define lab_f1 CUR Strings[91] -#define lab_f10 CUR Strings[92] -#define lab_f2 CUR Strings[93] -#define lab_f3 CUR Strings[94] -#define lab_f4 CUR Strings[95] -#define lab_f5 CUR Strings[96] -#define lab_f6 CUR Strings[97] -#define lab_f7 CUR Strings[98] -#define lab_f8 CUR Strings[99] -#define lab_f9 CUR Strings[100] -#define meta_off CUR Strings[101] -#define meta_on CUR Strings[102] -#define newline CUR Strings[103] -#define pad_char CUR Strings[104] -#define parm_dch CUR Strings[105] -#define parm_delete_line CUR Strings[106] -#define parm_down_cursor CUR Strings[107] -#define parm_ich CUR Strings[108] -#define parm_index CUR Strings[109] -#define parm_insert_line CUR Strings[110] -#define parm_left_cursor CUR Strings[111] -#define parm_right_cursor CUR Strings[112] -#define parm_rindex CUR Strings[113] -#define parm_up_cursor CUR Strings[114] -#define pkey_key CUR Strings[115] -#define pkey_local CUR Strings[116] -#define pkey_xmit CUR Strings[117] -#define print_screen CUR Strings[118] -#define prtr_off CUR Strings[119] -#define prtr_on CUR Strings[120] -#define repeat_char CUR Strings[121] -#define reset_1string CUR Strings[122] -#define reset_2string CUR Strings[123] -#define reset_3string CUR Strings[124] -#define reset_file CUR Strings[125] -#define restore_cursor CUR Strings[126] -#define row_address CUR Strings[127] -#define save_cursor CUR Strings[128] -#define scroll_forward CUR Strings[129] -#define scroll_reverse CUR Strings[130] -#define set_attributes CUR Strings[131] -#define set_tab CUR Strings[132] -#define set_window CUR Strings[133] -#define tab CUR Strings[134] -#define to_status_line CUR Strings[135] -#define underline_char CUR Strings[136] -#define up_half_line CUR Strings[137] -#define init_prog CUR Strings[138] -#define key_a1 CUR Strings[139] -#define key_a3 CUR Strings[140] -#define key_b2 CUR Strings[141] -#define key_c1 CUR Strings[142] -#define key_c3 CUR Strings[143] -#define prtr_non CUR Strings[144] -#define char_padding CUR Strings[145] -#define acs_chars CUR Strings[146] -#define plab_norm CUR Strings[147] -#define key_btab CUR Strings[148] -#define enter_xon_mode CUR Strings[149] -#define exit_xon_mode CUR Strings[150] -#define enter_am_mode CUR Strings[151] -#define exit_am_mode CUR Strings[152] -#define xon_character CUR Strings[153] -#define xoff_character CUR Strings[154] -#define ena_acs CUR Strings[155] -#define label_on CUR Strings[156] -#define label_off CUR Strings[157] -#define key_beg CUR Strings[158] -#define key_cancel CUR Strings[159] -#define key_close CUR Strings[160] -#define key_command CUR Strings[161] -#define key_copy CUR Strings[162] -#define key_create CUR Strings[163] -#define key_end CUR Strings[164] -#define key_enter CUR Strings[165] -#define key_exit CUR Strings[166] -#define key_find CUR Strings[167] -#define key_help CUR Strings[168] -#define key_mark CUR Strings[169] -#define key_message CUR Strings[170] -#define key_move CUR Strings[171] -#define key_next CUR Strings[172] -#define key_open CUR Strings[173] -#define key_options CUR Strings[174] -#define key_previous CUR Strings[175] -#define key_print CUR Strings[176] -#define key_redo CUR Strings[177] -#define key_reference CUR Strings[178] -#define key_refresh CUR Strings[179] -#define key_replace CUR Strings[180] -#define key_restart CUR Strings[181] -#define key_resume CUR Strings[182] -#define key_save CUR Strings[183] -#define key_suspend CUR Strings[184] -#define key_undo CUR Strings[185] -#define key_sbeg CUR Strings[186] -#define key_scancel CUR Strings[187] -#define key_scommand CUR Strings[188] -#define key_scopy CUR Strings[189] -#define key_screate CUR Strings[190] -#define key_sdc CUR Strings[191] -#define key_sdl CUR Strings[192] -#define key_select CUR Strings[193] -#define key_send CUR Strings[194] -#define key_seol CUR Strings[195] -#define key_sexit CUR Strings[196] -#define key_sfind CUR Strings[197] -#define key_shelp CUR Strings[198] -#define key_shome CUR Strings[199] -#define key_sic CUR Strings[200] -#define key_sleft CUR Strings[201] -#define key_smessage CUR Strings[202] -#define key_smove CUR Strings[203] -#define key_snext CUR Strings[204] -#define key_soptions CUR Strings[205] -#define key_sprevious CUR Strings[206] -#define key_sprint CUR Strings[207] -#define key_sredo CUR Strings[208] -#define key_sreplace CUR Strings[209] -#define key_sright CUR Strings[210] -#define key_srsume CUR Strings[211] -#define key_ssave CUR Strings[212] -#define key_ssuspend CUR Strings[213] -#define key_sundo CUR Strings[214] -#define req_for_input CUR Strings[215] -#define key_f11 CUR Strings[216] -#define key_f12 CUR Strings[217] -#define key_f13 CUR Strings[218] -#define key_f14 CUR Strings[219] -#define key_f15 CUR Strings[220] -#define key_f16 CUR Strings[221] -#define key_f17 CUR Strings[222] -#define key_f18 CUR Strings[223] -#define key_f19 CUR Strings[224] -#define key_f20 CUR Strings[225] -#define key_f21 CUR Strings[226] -#define key_f22 CUR Strings[227] -#define key_f23 CUR Strings[228] -#define key_f24 CUR Strings[229] -#define key_f25 CUR Strings[230] -#define key_f26 CUR Strings[231] -#define key_f27 CUR Strings[232] -#define key_f28 CUR Strings[233] -#define key_f29 CUR Strings[234] -#define key_f30 CUR Strings[235] -#define key_f31 CUR Strings[236] -#define key_f32 CUR Strings[237] -#define key_f33 CUR Strings[238] -#define key_f34 CUR Strings[239] -#define key_f35 CUR Strings[240] -#define key_f36 CUR Strings[241] -#define key_f37 CUR Strings[242] -#define key_f38 CUR Strings[243] -#define key_f39 CUR Strings[244] -#define key_f40 CUR Strings[245] -#define key_f41 CUR Strings[246] -#define key_f42 CUR Strings[247] -#define key_f43 CUR Strings[248] -#define key_f44 CUR Strings[249] -#define key_f45 CUR Strings[250] -#define key_f46 CUR Strings[251] -#define key_f47 CUR Strings[252] -#define key_f48 CUR Strings[253] -#define key_f49 CUR Strings[254] -#define key_f50 CUR Strings[255] -#define key_f51 CUR Strings[256] -#define key_f52 CUR Strings[257] -#define key_f53 CUR Strings[258] -#define key_f54 CUR Strings[259] -#define key_f55 CUR Strings[260] -#define key_f56 CUR Strings[261] -#define key_f57 CUR Strings[262] -#define key_f58 CUR Strings[263] -#define key_f59 CUR Strings[264] -#define key_f60 CUR Strings[265] -#define key_f61 CUR Strings[266] -#define key_f62 CUR Strings[267] -#define key_f63 CUR Strings[268] -#define clr_bol CUR Strings[269] -#define clear_margins CUR Strings[270] -#define set_left_margin CUR Strings[271] -#define set_right_margin CUR Strings[272] -#define label_format CUR Strings[273] -#define set_clock CUR Strings[274] -#define display_clock CUR Strings[275] -#define remove_clock CUR Strings[276] -#define create_window CUR Strings[277] -#define goto_window CUR Strings[278] -#define hangup CUR Strings[279] -#define dial_phone CUR Strings[280] -#define quick_dial CUR Strings[281] -#define tone CUR Strings[282] -#define pulse CUR Strings[283] -#define flash_hook CUR Strings[284] -#define fixed_pause CUR Strings[285] -#define wait_tone CUR Strings[286] -#define user0 CUR Strings[287] -#define user1 CUR Strings[288] -#define user2 CUR Strings[289] -#define user3 CUR Strings[290] -#define user4 CUR Strings[291] -#define user5 CUR Strings[292] -#define user6 CUR Strings[293] -#define user7 CUR Strings[294] -#define user8 CUR Strings[295] -#define user9 CUR Strings[296] -#define orig_pair CUR Strings[297] -#define orig_colors CUR Strings[298] -#define initialize_color CUR Strings[299] -#define initialize_pair CUR Strings[300] -#define set_color_pair CUR Strings[301] -#define set_foreground CUR Strings[302] -#define set_background CUR Strings[303] -#define change_char_pitch CUR Strings[304] -#define change_line_pitch CUR Strings[305] -#define change_res_horz CUR Strings[306] -#define change_res_vert CUR Strings[307] -#define define_char CUR Strings[308] -#define enter_doublewide_mode CUR Strings[309] -#define enter_draft_quality CUR Strings[310] -#define enter_italics_mode CUR Strings[311] -#define enter_leftward_mode CUR Strings[312] -#define enter_micro_mode CUR Strings[313] -#define enter_near_letter_quality CUR Strings[314] -#define enter_normal_quality CUR Strings[315] -#define enter_shadow_mode CUR Strings[316] -#define enter_subscript_mode CUR Strings[317] -#define enter_superscript_mode CUR Strings[318] -#define enter_upward_mode CUR Strings[319] -#define exit_doublewide_mode CUR Strings[320] -#define exit_italics_mode CUR Strings[321] -#define exit_leftward_mode CUR Strings[322] -#define exit_micro_mode CUR Strings[323] -#define exit_shadow_mode CUR Strings[324] -#define exit_subscript_mode CUR Strings[325] -#define exit_superscript_mode CUR Strings[326] -#define exit_upward_mode CUR Strings[327] -#define micro_column_address CUR Strings[328] -#define micro_down CUR Strings[329] -#define micro_left CUR Strings[330] -#define micro_right CUR Strings[331] -#define micro_row_address CUR Strings[332] -#define micro_up CUR Strings[333] -#define order_of_pins CUR Strings[334] -#define parm_down_micro CUR Strings[335] -#define parm_left_micro CUR Strings[336] -#define parm_right_micro CUR Strings[337] -#define parm_up_micro CUR Strings[338] -#define select_char_set CUR Strings[339] -#define set_bottom_margin CUR Strings[340] -#define set_bottom_margin_parm CUR Strings[341] -#define set_left_margin_parm CUR Strings[342] -#define set_right_margin_parm CUR Strings[343] -#define set_top_margin CUR Strings[344] -#define set_top_margin_parm CUR Strings[345] -#define start_bit_image CUR Strings[346] -#define start_char_set_def CUR Strings[347] -#define stop_bit_image CUR Strings[348] -#define stop_char_set_def CUR Strings[349] -#define subscript_characters CUR Strings[350] -#define superscript_characters CUR Strings[351] -#define these_cause_cr CUR Strings[352] -#define zero_motion CUR Strings[353] -#define char_set_names CUR Strings[354] -#define key_mouse CUR Strings[355] -#define mouse_info CUR Strings[356] -#define req_mouse_pos CUR Strings[357] -#define get_mouse CUR Strings[358] -#define set_a_foreground CUR Strings[359] -#define set_a_background CUR Strings[360] -#define pkey_plab CUR Strings[361] -#define device_type CUR Strings[362] -#define code_set_init CUR Strings[363] -#define set0_des_seq CUR Strings[364] -#define set1_des_seq CUR Strings[365] -#define set2_des_seq CUR Strings[366] -#define set3_des_seq CUR Strings[367] -#define set_lr_margin CUR Strings[368] -#define set_tb_margin CUR Strings[369] -#define bit_image_repeat CUR Strings[370] -#define bit_image_newline CUR Strings[371] -#define bit_image_carriage_return CUR Strings[372] -#define color_names CUR Strings[373] -#define define_bit_image_region CUR Strings[374] -#define end_bit_image_region CUR Strings[375] -#define set_color_band CUR Strings[376] -#define set_page_length CUR Strings[377] -#define display_pc_char CUR Strings[378] -#define enter_pc_charset_mode CUR Strings[379] -#define exit_pc_charset_mode CUR Strings[380] -#define enter_scancode_mode CUR Strings[381] -#define exit_scancode_mode CUR Strings[382] -#define pc_term_options CUR Strings[383] -#define scancode_escape CUR Strings[384] -#define alt_scancode_esc CUR Strings[385] -#define enter_horizontal_hl_mode CUR Strings[386] -#define enter_left_hl_mode CUR Strings[387] -#define enter_low_hl_mode CUR Strings[388] -#define enter_right_hl_mode CUR Strings[389] -#define enter_top_hl_mode CUR Strings[390] -#define enter_vertical_hl_mode CUR Strings[391] -#define set_a_attributes CUR Strings[392] -#define set_pglen_inch CUR Strings[393] - -#define BOOLWRITE 37 -#define NUMWRITE 33 -#define STRWRITE 394 - -/* older synonyms for some capabilities */ -#define beehive_glitch no_esc_ctlc -#define teleray_glitch dest_tabs_magic_smso - -/* HPUX-11 uses this name rather than the standard one */ -#ifndef micro_char_size -#define micro_char_size micro_col_size -#endif - -#ifdef __INTERNAL_CAPS_VISIBLE -#define termcap_init2 CUR Strings[394] -#define termcap_reset CUR Strings[395] -#define magic_cookie_glitch_ul CUR Numbers[33] -#define backspaces_with_bs CUR Booleans[37] -#define crt_no_scrolling CUR Booleans[38] -#define no_correctly_working_cr CUR Booleans[39] -#define carriage_return_delay CUR Numbers[34] -#define new_line_delay CUR Numbers[35] -#define linefeed_if_not_lf CUR Strings[396] -#define backspace_if_not_bs CUR Strings[397] -#define gnu_has_meta_key CUR Booleans[40] -#define linefeed_is_newline CUR Booleans[41] -#define backspace_delay CUR Numbers[36] -#define horizontal_tab_delay CUR Numbers[37] -#define number_of_function_keys CUR Numbers[38] -#define other_non_function_keys CUR Strings[398] -#define arrow_key_map CUR Strings[399] -#define has_hardware_tabs CUR Booleans[42] -#define return_does_clr_eol CUR Booleans[43] -#define acs_ulcorner CUR Strings[400] -#define acs_llcorner CUR Strings[401] -#define acs_urcorner CUR Strings[402] -#define acs_lrcorner CUR Strings[403] -#define acs_ltee CUR Strings[404] -#define acs_rtee CUR Strings[405] -#define acs_btee CUR Strings[406] -#define acs_ttee CUR Strings[407] -#define acs_hline CUR Strings[408] -#define acs_vline CUR Strings[409] -#define acs_plus CUR Strings[410] -#define memory_lock CUR Strings[411] -#define memory_unlock CUR Strings[412] -#define box_chars_1 CUR Strings[413] -#endif /* __INTERNAL_CAPS_VISIBLE */ - - -/* - * Predefined terminfo array sizes - */ -#define BOOLCOUNT 44 -#define NUMCOUNT 39 -#define STRCOUNT 414 - -/* used by code for comparing entries */ -#define acs_chars_index 146 - -typedef struct termtype { /* in-core form of terminfo data */ - char *term_names; /* str_table offset of term names */ - char *str_table; /* pointer to string table */ - NCURSES_SBOOL *Booleans; /* array of boolean values */ - short *Numbers; /* array of integer values */ - char **Strings; /* array of string offsets */ - -#if NCURSES_XNAMES - char *ext_str_table; /* pointer to extended string table */ - char **ext_Names; /* corresponding names */ - - unsigned short num_Booleans;/* count total Booleans */ - unsigned short num_Numbers; /* count total Numbers */ - unsigned short num_Strings; /* count total Strings */ - - unsigned short ext_Booleans;/* count extensions to Booleans */ - unsigned short ext_Numbers; /* count extensions to Numbers */ - unsigned short ext_Strings; /* count extensions to Strings */ -#endif /* NCURSES_XNAMES */ - -} TERMTYPE; - -/* - * The only reason these structures are visible is for read-only use. - * Programs which modify the data are not, never were, portable across - * curses implementations. - * - * The first field in TERMINAL is used in macros. - * The remaining fields are private. - */ -#ifdef NCURSES_INTERNALS - -#undef TERMINAL -#define TERMINAL struct term -TERMINAL; - -#undef TERMTYPE2 -#define TERMTYPE2 TERMTYPE -#else - -typedef struct term { /* describe an actual terminal */ - TERMTYPE type; /* terminal type description */ -} TERMINAL; - -#endif /* NCURSES_INTERNALS */ - - -#if 0 && !1 -extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term; -#elif 1 -NCURSES_WRAPPED_VAR(TERMINAL *, cur_term); -#define cur_term NCURSES_PUBLIC_VAR(cur_term()) -#else -extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term; -#endif - -#if 0 || 1 -NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolnames); -NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolcodes); -NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolfnames); -NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numnames); -NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numcodes); -NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numfnames); -NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strnames); -NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strcodes); -NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strfnames); - -#define boolnames NCURSES_PUBLIC_VAR(boolnames()) -#define boolcodes NCURSES_PUBLIC_VAR(boolcodes()) -#define boolfnames NCURSES_PUBLIC_VAR(boolfnames()) -#define numnames NCURSES_PUBLIC_VAR(numnames()) -#define numcodes NCURSES_PUBLIC_VAR(numcodes()) -#define numfnames NCURSES_PUBLIC_VAR(numfnames()) -#define strnames NCURSES_PUBLIC_VAR(strnames()) -#define strcodes NCURSES_PUBLIC_VAR(strcodes()) -#define strfnames NCURSES_PUBLIC_VAR(strfnames()) - -#else - -extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolnames[]; -extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolcodes[]; -extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolfnames[]; -extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numnames[]; -extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numcodes[]; -extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numfnames[]; -extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strnames[]; -extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strcodes[]; -extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strfnames[]; - -#endif - -/* - * These entrypoints are used only by the ncurses utilities such as tic. - */ -#ifdef NCURSES_INTERNALS - -extern NCURSES_EXPORT(int) _nc_set_tty_mode (TTY *buf); -extern NCURSES_EXPORT(int) _nc_read_entry2 (const char * const, char * const, TERMTYPE2 *const); -extern NCURSES_EXPORT(int) _nc_read_file_entry (const char *const, TERMTYPE2 *); -extern NCURSES_EXPORT(int) _nc_read_termtype (TERMTYPE2 *, char *, int); -extern NCURSES_EXPORT(char *) _nc_first_name (const char *const); -extern NCURSES_EXPORT(int) _nc_name_match (const char *const, const char *const, const char *const); -extern NCURSES_EXPORT(char *) _nc_tiparm(int, const char *, ...); - -#endif /* NCURSES_INTERNALS */ - - -/* - * These entrypoints are used by tack 1.07. - */ -extern NCURSES_EXPORT(const TERMTYPE *) _nc_fallback (const char *); -extern NCURSES_EXPORT(int) _nc_read_entry (const char * const, char * const, TERMTYPE *const); - -/* - * Normal entry points - */ -extern NCURSES_EXPORT(TERMINAL *) set_curterm (TERMINAL *); -extern NCURSES_EXPORT(int) del_curterm (TERMINAL *); - -/* miscellaneous entry points */ -extern NCURSES_EXPORT(int) restartterm (NCURSES_CONST char *, int, int *); -extern NCURSES_EXPORT(int) setupterm (const char *,int,int *); - -/* terminfo entry points, also declared in curses.h */ -#if !defined(__NCURSES_H) -extern NCURSES_EXPORT(char *) tigetstr (const char *); -extern NCURSES_EXPORT_VAR(char) ttytype[]; -extern NCURSES_EXPORT(int) putp (const char *); -extern NCURSES_EXPORT(int) tigetflag (const char *); -extern NCURSES_EXPORT(int) tigetnum (const char *); - -#if 1 /* NCURSES_TPARM_VARARGS */ -extern NCURSES_EXPORT(char *) tparm (const char *, ...); /* special */ -#else -extern NCURSES_EXPORT(char *) tparm (const char *, long,long,long,long,long,long,long,long,long); /* special */ -#endif - -extern NCURSES_EXPORT(char *) tiparm (const char *, ...); /* special */ - -#endif /* __NCURSES_H */ - -/* termcap database emulation (XPG4 uses const only for 2nd param of tgetent) */ -#if !defined(NCURSES_TERMCAP_H_incl) -extern NCURSES_EXPORT(char *) tgetstr (const char *, char **); -extern NCURSES_EXPORT(char *) tgoto (const char *, int, int); -extern NCURSES_EXPORT(int) tgetent (char *, const char *); -extern NCURSES_EXPORT(int) tgetflag (const char *); -extern NCURSES_EXPORT(int) tgetnum (const char *); -extern NCURSES_EXPORT(int) tputs (const char *, int, int (*)(int)); -#endif /* NCURSES_TERMCAP_H_incl */ - -/* - * Include curses.h before term.h to enable these extensions. - */ -#if defined(NCURSES_SP_FUNCS) && (NCURSES_SP_FUNCS != 0) - -extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tigetstr) (SCREEN*, const char *); -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(putp) (SCREEN*, const char *); -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tigetflag) (SCREEN*, const char *); -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tigetnum) (SCREEN*, const char *); - -#if 1 /* NCURSES_TPARM_VARARGS */ -extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tparm) (SCREEN*, const char *, ...); /* special */ -#else -extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tparm) (SCREEN*, const char *, long,long,long,long,long,long,long,long,long); /* special */ -#endif - -/* termcap database emulation (XPG4 uses const only for 2nd param of tgetent) */ -extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tgetstr) (SCREEN*, const char *, char **); -extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tgoto) (SCREEN*, const char *, int, int); -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tgetent) (SCREEN*, char *, const char *); -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tgetflag) (SCREEN*, const char *); -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tgetnum) (SCREEN*, const char *); -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tputs) (SCREEN*, const char *, int, NCURSES_SP_OUTC); - -extern NCURSES_EXPORT(TERMINAL *) NCURSES_SP_NAME(set_curterm) (SCREEN*, TERMINAL *); -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(del_curterm) (SCREEN*, TERMINAL *); - -extern NCURSES_EXPORT(int) NCURSES_SP_NAME(restartterm) (SCREEN*, NCURSES_CONST char *, int, int *); -#endif /* NCURSES_SP_FUNCS */ - -/* - * Debugging features. - */ -extern GCC_NORETURN NCURSES_EXPORT(void) exit_terminfo(int); - -#ifdef __cplusplus -} -#endif - -#endif /* NCURSES_TERM_H_incl */ diff --git a/include/term_entry.h b/include/term_entry.h deleted file mode 100644 index e2cf838..0000000 --- a/include/term_entry.h +++ /dev/null @@ -1,237 +0,0 @@ -/**************************************************************************** - * Copyright 2018-2020,2021 Thomas E. Dickey * - * Copyright 1998-2015,2017 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1998-on * - ****************************************************************************/ - -/* $Id: term_entry.h,v 1.61 2021/09/04 10:52:55 tom Exp $ */ - -/* - * term_entry.h -- interface to entry-manipulation code - */ - -#ifndef NCURSES_TERM_ENTRY_H_incl -#define NCURSES_TERM_ENTRY_H_incl 1 -/* *INDENT-OFF* */ - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -/* - * These macros may be used by programs that know about TERMTYPE: - */ -#if NCURSES_XNAMES -#define NUM_BOOLEANS(tp) (tp)->num_Booleans -#define NUM_NUMBERS(tp) (tp)->num_Numbers -#define NUM_STRINGS(tp) (tp)->num_Strings -#define EXT_NAMES(tp,i,limit,index,table) (i >= limit) ? tp->ext_Names[index] : table[i] -#else -#define NUM_BOOLEANS(tp) BOOLCOUNT -#define NUM_NUMBERS(tp) NUMCOUNT -#define NUM_STRINGS(tp) STRCOUNT -#define EXT_NAMES(tp,i,limit,index,table) table[i] -#endif - -#define NUM_EXT_NAMES(tp) (unsigned) ((tp)->ext_Booleans + (tp)->ext_Numbers + (tp)->ext_Strings) - -#define for_each_boolean(n,tp) for(n = 0; n < NUM_BOOLEANS(tp); n++) -#define for_each_number(n,tp) for(n = 0; n < NUM_NUMBERS(tp); n++) -#define for_each_string(n,tp) for(n = 0; n < NUM_STRINGS(tp); n++) - -#if NCURSES_XNAMES -#define for_each_ext_boolean(n,tp) for(n = BOOLCOUNT; (int) n < (int) NUM_BOOLEANS(tp); n++) -#define for_each_ext_number(n,tp) for(n = NUMCOUNT; (int) n < (int) NUM_NUMBERS(tp); n++) -#define for_each_ext_string(n,tp) for(n = STRCOUNT; (int) n < (int) NUM_STRINGS(tp); n++) -#endif - -#define ExtBoolname(tp,i,names) EXT_NAMES(tp, i, BOOLCOUNT, (i - (tp->num_Booleans - tp->ext_Booleans)), names) -#define ExtNumname(tp,i,names) EXT_NAMES(tp, i, NUMCOUNT, (i - (tp->num_Numbers - tp->ext_Numbers)) + tp->ext_Booleans, names) -#define ExtStrname(tp,i,names) EXT_NAMES(tp, i, STRCOUNT, (i - (tp->num_Strings - tp->ext_Strings)) + (tp->ext_Numbers + tp->ext_Booleans), names) - -/* - * The remaining type-definitions and macros are used only internally by the - * ncurses utilities. - */ -#ifdef NCURSES_INTERNALS - -/* - * see db_iterator.c - this enumeration lists the places searched for a - * terminal description and defines the order in which they are searched. - */ -typedef enum { - dbdTIC = 0, /* special, used by tic when writing entry */ -#if NCURSES_USE_DATABASE - dbdEnvOnce, /* the $TERMINFO environment variable */ - dbdHome, /* $HOME/.terminfo */ - dbdEnvList, /* the $TERMINFO_DIRS environment variable */ - dbdCfgList, /* the compiled-in TERMINFO_DIRS value */ - dbdCfgOnce, /* the compiled-in TERMINFO value */ -#endif -#if NCURSES_USE_TERMCAP - dbdEnvOnce2, /* the $TERMCAP environment variable */ - dbdEnvList2, /* the $TERMPATH environment variable */ - dbdCfgList2, /* the compiled-in TERMPATH */ -#endif - dbdLAST -} DBDIRS; - -#define MAX_USES 32 -#define MAX_CROSSLINKS 16 - -typedef struct entry ENTRY; - -typedef struct { - char *name; - ENTRY *link; - long line; -} ENTRY_USES; - -struct entry { - TERMTYPE2 tterm; - unsigned nuses; - ENTRY_USES uses[MAX_USES]; - int ncrosslinks; - ENTRY *crosslinks[MAX_CROSSLINKS]; - long cstart; - long cend; - long startline; - ENTRY *next; - ENTRY *last; -}; - -extern NCURSES_EXPORT_VAR(ENTRY *) _nc_head; -extern NCURSES_EXPORT_VAR(ENTRY *) _nc_tail; -#define for_entry_list(qp) for (qp = _nc_head; qp; qp = qp->next) - -#define MAX_LINE 132 - -#define NULLHOOK (bool(*)(ENTRY *))0 - -/* - * Note that WANTED and PRESENT are not simple inverses! If a capability - * has been explicitly cancelled, it is not considered WANTED. - */ -#define WANTED(s) ((s) == ABSENT_STRING) -#define PRESENT(s) (((s) != ABSENT_STRING) && ((s) != CANCELLED_STRING)) - -#define ANDMISSING(p,q) \ - { \ - if (PRESENT(p) && !PRESENT(q)) \ - _nc_warning(#p " but no " #q); \ - } - -#define PAIRED(p,q) \ - { \ - if (PRESENT(q) && !PRESENT(p)) \ - _nc_warning(#q " but no " #p); \ - if (PRESENT(p) && !PRESENT(q)) \ - _nc_warning(#p " but no " #q); \ - } - -/* - * These entrypoints are used only by the ncurses utilities such as tic. - */ - -/* alloc_entry.c: elementary allocation code */ -extern NCURSES_EXPORT(ENTRY *) _nc_copy_entry (ENTRY *oldp); -extern NCURSES_EXPORT(char *) _nc_save_str (const char *const); -extern NCURSES_EXPORT(void) _nc_init_entry (ENTRY *const); -extern NCURSES_EXPORT(void) _nc_merge_entry (ENTRY *const, ENTRY *const); -extern NCURSES_EXPORT(void) _nc_wrap_entry (ENTRY *const, bool); - -/* alloc_ttype.c: elementary allocation code */ -extern NCURSES_EXPORT(void) _nc_align_termtype (TERMTYPE2 *, TERMTYPE2 *); - -/* free_ttype.c: elementary allocation code */ -extern NCURSES_EXPORT(void) _nc_free_termtype2 (TERMTYPE2 *); - -/* lib_termcap.c: trim sgr0 string for termcap users */ -extern NCURSES_EXPORT(char *) _nc_trim_sgr0 (TERMTYPE2 *); - -/* parse_entry.c: entry-parsing code */ -#if NCURSES_XNAMES -extern NCURSES_EXPORT_VAR(bool) _nc_user_definable; -extern NCURSES_EXPORT_VAR(bool) _nc_disable_period; -#endif -extern NCURSES_EXPORT(int) _nc_parse_entry (ENTRY *, int, bool); -extern NCURSES_EXPORT(int) _nc_capcmp (const char *, const char *); - -/* write_entry.c: writing an entry to the file system */ -extern NCURSES_EXPORT(void) _nc_set_writedir (const char *); -extern NCURSES_EXPORT(void) _nc_write_entry (TERMTYPE2 *const); -extern NCURSES_EXPORT(int) _nc_write_object (TERMTYPE2 *, char *, unsigned *, unsigned); - -/* comp_parse.c: entry list handling */ -extern NCURSES_EXPORT(void) _nc_read_entry_source (FILE*, char*, int, bool, bool (*)(ENTRY*)); -extern NCURSES_EXPORT(bool) _nc_entry_match (char *, char *); -extern NCURSES_EXPORT(int) _nc_resolve_uses (bool); /* obs 20040705 */ -extern NCURSES_EXPORT(int) _nc_resolve_uses2 (bool, bool); -extern NCURSES_EXPORT(void) _nc_free_entries (ENTRY *); -extern NCURSES_IMPEXP void (NCURSES_API *_nc_check_termtype)(TERMTYPE *); /* obs 20040705 */ -extern NCURSES_IMPEXP void (NCURSES_API *_nc_check_termtype2)(TERMTYPE2 *, bool); - -/* trace_xnames.c */ -extern NCURSES_EXPORT(void) _nc_trace_xnames (TERMTYPE *); - -#endif /* NCURSES_INTERNALS */ - -/* - * These entrypoints were used by tack before 1.08. - */ - -#undef NCURSES_TACK_1_08 -#ifdef NCURSES_INTERNALS -#define NCURSES_TACK_1_08 /* nothing */ -#else -#define NCURSES_TACK_1_08 GCC_DEPRECATED("upgrade to tack 1.08") -#endif - -/* alloc_ttype.c: elementary allocation code */ -extern NCURSES_EXPORT(void) _nc_copy_termtype (TERMTYPE *, const TERMTYPE *) NCURSES_TACK_1_08; - -/* lib_acs.c */ -extern NCURSES_EXPORT(void) _nc_init_acs (void) NCURSES_TACK_1_08; /* corresponds to traditional 'init_acs()' */ - -/* free_ttype.c: elementary allocation code */ -extern NCURSES_EXPORT(void) _nc_free_termtype (TERMTYPE *) NCURSES_TACK_1_08; - -#ifdef __cplusplus -} -#endif - -/* *INDENT-ON* */ - -#endif /* NCURSES_TERM_ENTRY_H_incl */ diff --git a/include/termcap.h b/include/termcap.h deleted file mode 100644 index ea8e5ee..0000000 --- a/include/termcap.h +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************** - * Copyright 2018-2020,2021 Thomas E. Dickey * - * Copyright 1998-2000,2001 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* $Id: termcap.h.in,v 1.20 2021/06/17 21:26:02 tom Exp $ */ - -#ifndef NCURSES_TERMCAP_H_incl -#define NCURSES_TERMCAP_H_incl 1 - -#undef NCURSES_VERSION -#define NCURSES_VERSION "6.3" - -#include - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include - -#undef NCURSES_OSPEED -#define NCURSES_OSPEED short - -extern NCURSES_EXPORT_VAR(char) PC; -extern NCURSES_EXPORT_VAR(char *) UP; -extern NCURSES_EXPORT_VAR(char *) BC; -extern NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed; - -#if !defined(NCURSES_TERM_H_incl) -extern NCURSES_EXPORT(char *) tgetstr (const char *, char **); -extern NCURSES_EXPORT(char *) tgoto (const char *, int, int); -extern NCURSES_EXPORT(int) tgetent (char *, const char *); -extern NCURSES_EXPORT(int) tgetflag (const char *); -extern NCURSES_EXPORT(int) tgetnum (const char *); -extern NCURSES_EXPORT(int) tputs (const char *, int, int (*)(int)); -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* NCURSES_TERMCAP_H_incl */ diff --git a/include/termcap.h.in b/include/termcap.h.in deleted file mode 100644 index 7b7c703..0000000 --- a/include/termcap.h.in +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************** - * Copyright 2018-2020,2021 Thomas E. Dickey * - * Copyright 1998-2000,2001 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* $Id: termcap.h.in,v 1.20 2021/06/17 21:26:02 tom Exp $ */ - -#ifndef NCURSES_TERMCAP_H_incl -#define NCURSES_TERMCAP_H_incl 1 - -#undef NCURSES_VERSION -#define NCURSES_VERSION "@NCURSES_MAJOR@.@NCURSES_MINOR@" - -#include - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include - -#undef NCURSES_OSPEED -#define NCURSES_OSPEED @NCURSES_OSPEED@ - -extern NCURSES_EXPORT_VAR(char) PC; -extern NCURSES_EXPORT_VAR(char *) UP; -extern NCURSES_EXPORT_VAR(char *) BC; -extern NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed; - -#if !defined(NCURSES_TERM_H_incl) -extern NCURSES_EXPORT(char *) tgetstr (const char *, char **); -extern NCURSES_EXPORT(char *) tgoto (const char *, int, int); -extern NCURSES_EXPORT(int) tgetent (char *, const char *); -extern NCURSES_EXPORT(int) tgetflag (const char *); -extern NCURSES_EXPORT(int) tgetnum (const char *); -extern NCURSES_EXPORT(int) tputs (const char *, int, int (*)(int)); -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* NCURSES_TERMCAP_H_incl */ diff --git a/include/tic.h b/include/tic.h deleted file mode 100644 index 36169f0..0000000 --- a/include/tic.h +++ /dev/null @@ -1,397 +0,0 @@ -/**************************************************************************** - * Copyright 2018-2020,2021 Thomas E. Dickey * - * Copyright 1998-2012,2017 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996 on * - ****************************************************************************/ - -/* - * $Id: tic.h,v 1.84 2021/08/21 00:24:45 tom Exp $ - * tic.h - Global variables and structures for the terminfo compiler. - */ - -#ifndef __TIC_H -#define __TIC_H -/* *INDENT-OFF* */ -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#include /* for the _tracef() prototype, ERR/OK, bool defs */ - -/* -** The format of SVr2 compiled terminfo files is as follows: -** -** Header (12 bytes), containing information given below -** Names Section, containing the names of the terminal -** Boolean Section, containing the values of all of the -** boolean capabilities -** A null byte may be inserted here to make -** sure that the Number Section begins on an -** even word boundary. -** Number Section, containing the values of all of the numeric -** capabilities, each as a short integer -** String Section, containing short integer offsets into the -** String Table, one per string capability -** String Table, containing the actual characters of the string -** capabilities. -** -** In the SVr2 format, "short" means signed 16-bit numbers, which is sometimes -** inconvenient. The numbers are signed, to provide for absent and canceled -** values. ncurses6.1 introduced an extension to this compiled format, by -** making the Number Section a list of signed 32-bit integers. -** -** NOTE that all short integers in the file are stored using VAX/PDP-style -** byte-order, i.e., least-significant byte first. -** -** There is no structure definition here because it would only confuse -** matters. Terminfo format is a raw byte layout, not a structure -** dump. If you happen to be on a little-endian machine with 16-bit -** shorts that requires no padding between short members in a struct, -** then there is a natural C structure that captures the header, but -** not very helpfully. -*/ - -#define MAGIC 0432 /* first two bytes of a compiled entry */ -#define MAGIC2 01036 /* first two bytes of a compiled 32-bit entry */ - -#undef BYTE -#define BYTE(p,n) (unsigned char)((p)[n]) - -#define IS_NEG1(p) ((BYTE(p,0) == 0377) && (BYTE(p,1) == 0377)) -#define IS_NEG2(p) ((BYTE(p,0) == 0376) && (BYTE(p,1) == 0377)) -#define LOW_MSB(p) (BYTE(p,0) + 256*BYTE(p,1)) - -#define IS_TIC_MAGIC(p) (LOW_MSB(p) == MAGIC || LOW_MSB(p) == MAGIC2) - -#define quick_prefix(s) (!strncmp((s), "b64:", (size_t)4) || !strncmp((s), "hex:", (size_t)4)) - -/* - * The "maximum" here is misleading; XSI guarantees minimum values, which a - * given implementation may exceed. - */ -#define MAX_NAME_SIZE 512 /* maximum legal name field size (XSI:127) */ -#define MAX_ENTRY_SIZE1 4096 /* maximum legal entry size (SVr2) */ -#define MAX_ENTRY_SIZE2 32768 /* maximum legal entry size (ncurses6.1) */ - -#if NCURSES_EXT_COLORS && HAVE_INIT_EXTENDED_COLOR -#define MAX_ENTRY_SIZE MAX_ENTRY_SIZE2 -#else -#define MAX_ENTRY_SIZE MAX_ENTRY_SIZE1 -#endif - -/* - * The maximum size of individual name or alias is guaranteed in XSI to be at - * least 14, since that corresponds to the older filename lengths. Newer - * systems allow longer aliases, though not many terminal descriptions are - * written to use them. The MAX_ALIAS symbol is used for warnings. - */ -#if HAVE_LONG_FILE_NAMES -#define MAX_ALIAS 32 /* smaller than POSIX minimum for PATH_MAX */ -#else -#define MAX_ALIAS 14 /* SVr3 filename length */ -#endif - -/* location of user's personal info directory */ -#define PRIVATE_INFO "%s/.terminfo" /* plug getenv("HOME") into %s */ - -/* - * Some traces are designed to be used via tic's verbose option (and similar in - * infocmp and toe) rather than the 'trace()' function. So we use the bits - * above the normal trace() parameter as a debug-level. - */ - -#define MAX_DEBUG_LEVEL 15 -#define DEBUG_LEVEL(n) ((n) << TRACE_SHIFT) - -#define set_trace_level(n) \ - _nc_tracing &= DEBUG_LEVEL(MAX_DEBUG_LEVEL) \ - + DEBUG_LEVEL(MAX_DEBUG_LEVEL) - 1, \ - _nc_tracing |= DEBUG_LEVEL(n) - -#ifdef TRACE -#define DEBUG(n, a) if (_nc_tracing >= DEBUG_LEVEL(n)) _tracef a -#else -#define DEBUG(n, a) /*nothing*/ -#endif - -/* - * These are the types of tokens returned by the scanner. The first - * three are also used in the hash table of capability names. The scanner - * returns one of these values after loading the specifics into the global - * structure curr_token. - */ - -#define BOOLEAN 0 /* Boolean capability */ -#define NUMBER 1 /* Numeric capability */ -#define STRING 2 /* String-valued capability */ -#define CANCEL 3 /* Capability to be cancelled in following tc's */ -#define NAMES 4 /* The names for a terminal type */ -#define UNDEF 5 /* Undefined */ - -#define NO_PUSHBACK -1 /* used in pushtype to indicate no pushback */ - -/* - * The global structure in which the specific parts of a - * scanned token are returned. - */ - -struct token -{ - char *tk_name; /* name of capability */ - int tk_valnumber; /* value of capability (if a number) */ - char *tk_valstring; /* value of capability (if a string) */ -}; - -/* - * Offsets to string capabilities, with the corresponding functionkey codes. - */ -struct tinfo_fkeys { - unsigned offset; - chtype code; - }; - -typedef short HashValue; - -/* - * The file comp_captab.c contains an array of these structures, one per - * possible capability. These are indexed by a hash table array of pointers to - * the same structures for use by the parser. - */ -struct name_table_entry -{ - const char *nte_name; /* name to hash on */ - int nte_type; /* BOOLEAN, NUMBER or STRING */ - HashValue nte_index; /* index of associated variable in its array */ - HashValue nte_link; /* index in table of next hash, or -1 */ -}; - -/* - * Use this structure to hide differences between terminfo and termcap tables. - */ -typedef struct { - unsigned table_size; - const HashValue *table_data; - HashValue (*hash_of)(const char *); - int (*compare_names)(const char *, const char *); -} HashData; - -struct alias -{ - const char *from; - const char *to; - const char *source; -}; - -#define NOTFOUND ((struct name_table_entry *) 0) - -/* - * The file comp_userdefs.c contains an array of these structures, one per - * possible capability. These are indexed by a hash table array of pointers to - * the same structures for use by the parser. - */ -struct user_table_entry -{ - const char *ute_name; /* name to hash on */ - int ute_type; /* mask (BOOLEAN, NUMBER, STRING) */ - unsigned ute_argc; /* number of parameters */ - unsigned ute_args; /* bit-mask for string parameters */ - HashValue ute_index; /* index of associated variable in its array */ - HashValue ute_link; /* index in table of next hash, or -1 */ -}; - -/* - * The casts are required for correct sign-propagation with systems such as - * AIX, IRIX64, Solaris which default to unsigned characters. The C standard - * leaves this detail unspecified. - */ - -/* out-of-band values for representing absent capabilities */ -#define ABSENT_BOOLEAN ((signed char)-1) /* 255 */ -#define ABSENT_NUMERIC (-1) -#define ABSENT_STRING (char *)0 - -/* out-of-band values for representing cancels */ -#define CANCELLED_BOOLEAN ((signed char)-2) /* 254 */ -#define CANCELLED_NUMERIC (-2) -#define CANCELLED_STRING (char *)(-1) - -#define VALID_BOOLEAN(s) ((unsigned char)(s) <= 1) /* reject "-1" */ -#define VALID_NUMERIC(s) ((s) >= 0) -#define VALID_STRING(s) ((s) != CANCELLED_STRING && (s) != ABSENT_STRING) - -/* termcap entries longer than this may break old binaries */ -#define MAX_TERMCAP_LENGTH 1023 - -/* this is a documented limitation of terminfo */ -#define MAX_TERMINFO_LENGTH 4096 - -#ifndef TERMINFO -#define TERMINFO "/usr/share/terminfo" -#endif - -#ifdef NCURSES_TERM_ENTRY_H_incl - -/* - * These entrypoints are used only by the ncurses utilities such as tic. - */ -#ifdef NCURSES_INTERNALS -/* access.c */ -extern NCURSES_EXPORT(unsigned) _nc_pathlast (const char *); -extern NCURSES_EXPORT(bool) _nc_is_abs_path (const char *); -extern NCURSES_EXPORT(bool) _nc_is_dir_path (const char *); -extern NCURSES_EXPORT(bool) _nc_is_file_path (const char *); -extern NCURSES_EXPORT(char *) _nc_basename (char *); -extern NCURSES_EXPORT(char *) _nc_rootname (char *); - -/* comp_captab.c */ -extern NCURSES_EXPORT(const struct name_table_entry *) _nc_get_table (bool); -extern NCURSES_EXPORT(const HashData *) _nc_get_hash_info (bool); -extern NCURSES_EXPORT(const struct alias *) _nc_get_alias_table (bool); - -/* comp_hash.c: name lookup */ -extern NCURSES_EXPORT(struct name_table_entry const *) _nc_find_type_entry - (const char *, int, bool); -extern NCURSES_EXPORT(struct user_table_entry const *) _nc_find_user_entry - (const char *); - -/* comp_scan.c: lexical analysis */ -extern NCURSES_EXPORT(int) _nc_get_token (bool); -extern NCURSES_EXPORT(void) _nc_panic_mode (char); -extern NCURSES_EXPORT(void) _nc_push_token (int); -extern NCURSES_EXPORT_VAR(int) _nc_curr_col; -extern NCURSES_EXPORT_VAR(int) _nc_curr_line; -extern NCURSES_EXPORT_VAR(int) _nc_syntax; -extern NCURSES_EXPORT_VAR(int) _nc_strict_bsd; -extern NCURSES_EXPORT_VAR(long) _nc_comment_end; -extern NCURSES_EXPORT_VAR(long) _nc_comment_start; -extern NCURSES_EXPORT_VAR(long) _nc_curr_file_pos; -extern NCURSES_EXPORT_VAR(long) _nc_start_line; -#define SYN_TERMINFO 0 -#define SYN_TERMCAP 1 - -/* comp_error.c: warning & abort messages */ -extern NCURSES_EXPORT(const char *) _nc_get_source (void); -extern GCC_NORETURN NCURSES_EXPORT(void) _nc_err_abort (const char *const,...) GCC_PRINTFLIKE(1,2); -extern NCURSES_EXPORT(void) _nc_get_type (char *name); -extern NCURSES_EXPORT(void) _nc_set_source (const char *const); -extern NCURSES_EXPORT(void) _nc_set_type (const char *const); -extern GCC_NORETURN NCURSES_EXPORT(void) _nc_syserr_abort (const char *const,...) GCC_PRINTFLIKE(1,2); -extern NCURSES_EXPORT(void) _nc_warning (const char *const,...) GCC_PRINTFLIKE(1,2); -extern NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings; - -/* comp_scan.c */ -extern NCURSES_EXPORT_VAR(struct token) _nc_curr_token; - -/* comp_userdefs.c */ -NCURSES_EXPORT(const struct user_table_entry *) _nc_get_userdefs_table (void); -NCURSES_EXPORT(const HashData *) _nc_get_hash_user (void); - -/* captoinfo.c: capability conversion */ -extern NCURSES_EXPORT(char *) _nc_captoinfo (const char *, const char *, int const); -extern NCURSES_EXPORT(char *) _nc_infotocap (const char *, const char *, int const); - -/* home_terminfo.c */ -extern NCURSES_EXPORT(char *) _nc_home_terminfo (void); - -/* init_keytry.c */ -#if BROKEN_LINKER -#define _nc_tinfo_fkeys _nc_tinfo_fkeysf() -extern NCURSES_EXPORT(const struct tinfo_fkeys *) _nc_tinfo_fkeysf (void); -#else -extern NCURSES_EXPORT_VAR(const struct tinfo_fkeys) _nc_tinfo_fkeys[]; -#endif - -/* lib_tparm.c */ -#define NUM_PARM 9 - -extern NCURSES_EXPORT_VAR(int) _nc_tparm_err; - -extern NCURSES_EXPORT(int) _nc_tparm_analyze(TERMINAL *, const char *, char **, int *); -extern NCURSES_EXPORT(void) _nc_reset_tparm(TERMINAL *); - -/* lib_trace.c */ -extern NCURSES_EXPORT_VAR(unsigned) _nc_tracing; -extern NCURSES_EXPORT(const char *) _nc_visbuf (const char *); -extern NCURSES_EXPORT(const char *) _nc_visbuf2 (int, const char *); - -/* lib_tputs.c */ -extern NCURSES_EXPORT_VAR(int) _nc_nulls_sent; /* Add one for every null sent */ - -/* comp_main.c: compiler main */ -extern const char * _nc_progname; - -/* db_iterator.c */ -extern NCURSES_EXPORT(const char *) _nc_next_db(DBDIRS *, int *); -extern NCURSES_EXPORT(const char *) _nc_tic_dir (const char *); -extern NCURSES_EXPORT(void) _nc_first_db(DBDIRS *, int *); -extern NCURSES_EXPORT(void) _nc_last_db(void); - -/* write_entry.c */ -extern NCURSES_EXPORT(int) _nc_tic_written (void); - -#endif /* NCURSES_INTERNALS */ - -/* - * These entrypoints were used by tack before 1.08. - */ - -#undef NCURSES_TACK_1_08 -#ifdef NCURSES_INTERNALS -#define NCURSES_TACK_1_08 /* nothing */ -#else -#define NCURSES_TACK_1_08 GCC_DEPRECATED("upgrade to tack 1.08") -#endif - -/* comp_hash.c: name lookup */ -extern NCURSES_EXPORT(struct name_table_entry const *) _nc_find_entry - (const char *, const HashValue *) NCURSES_TACK_1_08; -extern NCURSES_EXPORT(const HashValue *) _nc_get_hash_table (bool) NCURSES_TACK_1_08; - -/* comp_scan.c: lexical analysis */ -extern NCURSES_EXPORT(void) _nc_reset_input (FILE *, char *) NCURSES_TACK_1_08; - -/* comp_expand.c: expand string into readable form */ -extern NCURSES_EXPORT(char *) _nc_tic_expand (const char *, bool, int) NCURSES_TACK_1_08; - -/* comp_scan.c: decode string from readable form */ -extern NCURSES_EXPORT(int) _nc_trans_string (char *, char *) NCURSES_TACK_1_08; - -#endif /* NCURSES_TERM_ENTRY_H_incl */ - -#ifdef __cplusplus -} -#endif - -/* *INDENT-ON* */ -#endif /* __TIC_H */ diff --git a/include/unctrl.h b/include/unctrl.h deleted file mode 100644 index 0dd2308..0000000 --- a/include/unctrl.h +++ /dev/null @@ -1,68 +0,0 @@ -/**************************************************************************** - * Copyright 2020 Thomas E. Dickey * - * Copyright 1998-2001,2009 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * unctrl.h - * - * Display a printable version of a control character. - * Control characters are displayed in caret notation (^x), DELETE is displayed - * as ^?. Printable characters are displayed as is. - */ - -/* $Id: unctrl.h.in,v 1.12 2020/02/02 23:34:34 tom Exp $ */ - -#ifndef NCURSES_UNCTRL_H_incl -#define NCURSES_UNCTRL_H_incl 1 - -#undef NCURSES_VERSION -#define NCURSES_VERSION "6.3" - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#undef unctrl -NCURSES_EXPORT(NCURSES_CONST char *) unctrl (chtype); - -#if 1 -NCURSES_EXPORT(NCURSES_CONST char *) NCURSES_SP_NAME(unctrl) (SCREEN*, chtype); -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* NCURSES_UNCTRL_H_incl */ diff --git a/include/unctrl.h.in b/include/unctrl.h.in deleted file mode 100644 index f76f443..0000000 --- a/include/unctrl.h.in +++ /dev/null @@ -1,68 +0,0 @@ -/**************************************************************************** - * Copyright 2020 Thomas E. Dickey * - * Copyright 1998-2001,2009 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * unctrl.h - * - * Display a printable version of a control character. - * Control characters are displayed in caret notation (^x), DELETE is displayed - * as ^?. Printable characters are displayed as is. - */ - -/* $Id: unctrl.h.in,v 1.12 2020/02/02 23:34:34 tom Exp $ */ - -#ifndef NCURSES_UNCTRL_H_incl -#define NCURSES_UNCTRL_H_incl 1 - -#undef NCURSES_VERSION -#define NCURSES_VERSION "@NCURSES_MAJOR@.@NCURSES_MINOR@" - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#undef unctrl -NCURSES_EXPORT(NCURSES_CONST char *) unctrl (chtype); - -#if @NCURSES_SP_FUNCS@ -NCURSES_EXPORT(NCURSES_CONST char *) NCURSES_SP_NAME(unctrl) (SCREEN*, chtype); -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* NCURSES_UNCTRL_H_incl */ diff --git a/include/win32_curses.h b/include/win32_curses.h deleted file mode 100644 index 0c807a0..0000000 --- a/include/win32_curses.h +++ /dev/null @@ -1,75 +0,0 @@ -/**************************************************************************** - * Copyright 2018-2020,2021 Thomas E. Dickey * - * Copyright 2008-2014,2017 Free Software Foundation, Inc. * - * * - * Permission is hereby granted, free of charge, to any person obtaining a * - * copy of this software and associated documentation files (the * - * "Software"), to deal in the Software without restriction, including * - * without limitation the rights to use, copy, modify, merge, publish, * - * distribute, distribute with modifications, sublicense, and/or sell * - * copies of the Software, and to permit persons to whom the Software is * - * furnished to do so, subject to the following conditions: * - * * - * The above copyright notice and this permission notice shall be included * - * in all copies or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * - * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * - * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Juergen Pfeifer, 2008-on * - ****************************************************************************/ - -/* $Id: win32_curses.h,v 1.3 2021/06/17 21:26:02 tom Exp $ */ - -/* - * This is the interface we use on Windows to mimic the control of the settings - * of what acts like the classic TTY - the Windows Console. - */ - -#if (defined(_WIN32) || defined(_WIN64)) -#ifndef _NC_WIN32_CURSES_H -#define _NC_WIN32_CURSES_H 1 - -struct winconmode -{ - unsigned long dwFlagIn; - unsigned long dwFlagOut; -}; - -extern NCURSES_EXPORT(void*) _nc_console_fd2handle(int fd); -extern NCURSES_EXPORT(int) _nc_console_setmode(void* handle, const struct winconmode* arg); -extern NCURSES_EXPORT(int) _nc_console_getmode(void* handle, struct winconmode* arg); -extern NCURSES_EXPORT(int) _nc_console_flush(void* handle); - -/* - A few definitions of Unix functions we need to emulate -*/ -#define SIGHUP 1 -#define SIGKILL 9 - -#undef getlogin -#define getlogin() getenv("USERNAME") - -#undef ttyname -#define ttyname(fd) NULL - -#undef sleep -#define sleep(n) Sleep((n) * 1000) - -#undef gettimeofday -#define gettimeofday(tv,tz) _nc_gettimeofday(tv,tz) - -#endif /* _NC_WIN32_CURSES_H */ -#endif /* _WIN32||_WIN64 */ diff --git a/lib/libformt.a b/lib/libformt.a deleted file mode 100644 index 44eca9628be9ff8729d9631bbd4ddf69f33bd764..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135828 zcmd?S4SZD9oi~1G5^*4D?x3jAQXOklQYlRkHL13pAv5Gg5{UxB7L`EA5XxIjW(12u z+(}sPGX&Xg+qLb!_-yxueYP!jx2tYzC4ll)wMf;{+E%nyGfq)_i};%V_j_I@H#c)3 z!9M#uf1mUD%-nN+=k0fX=bYc~cYf#GbI-qOQG0Xi7sq`rG}Ki%g3|B&4~3>yTs}=E zX&Pr3#wx=I%#pv6V}{}Uoi*7ooWJuQFpT5xf10FNX_cDTZcksw729-GY9PuIYhh&#hFr6VXSIdqkOC;+7e%s zT#;Bfg9I>^B->P6u6cqe&8@4KHMbZmmaSSoNGjFlWoVqSaCJN` zP>{rLTeL()(#PURtF}c;TLjUBXRwlv#G*t}SEB-hu@Y?(b)oPM#w0sh+S?NCswN$3 zTiwASwvuC{V|BZ+WKm+#!o@AE7!cCGsI`UYiGD;n*^SK5(I)yj*OAUh**K;WEd;hs zzre0}byAJ5rFtGLPR8Rc?V{Ai)g8+c%T}*iID;8$ByJ@CbuB=pqm>{r(B=4H%sBRN+E*=FvGDpuE0%#y zC`OL1X$9JB<+r#S1p#qKm`VSY}u-1di)CSUg{Oe~j0_y}LxvZ|$B^OzhTVBPs+1R`oW<;tzQW=^a&cAczK z2L@vsub-x(=*z)@OzgV48X2Vnx!CJa;`~M#sr+%wdq|QgtCdnwdHLm+T{g91>ZMnN zLX{O2P$Y8ymrsKhQF-|^rEWBh+Yqat;rICr?R>@;jlqzH8pfo8L4R0y!^S6!V#Del zh+JQ1KOLD{XFnF16EVN>u+`l^*ZfAWWxq8$a{j}X{azo_$GTofd^(;g@>d?T?B$_) zyJJ$ly}ZH>+6NZg7`Y*GW8|h?=6S}CKO7hs$Y$c^d0nCwly8~QFVJtLYnyf%wKX-L z4^67QW^Q??a_W?+Qz}FUD;1ZP540;!^`# zkQfSz0Yyi+dHj!+1ULI*C8a$Dv69fHLaSub##3rbDpF&Xjw_iIDG5z4DV<&toL&-$ z7D1sg=8K$$LI3d_@hUW48_1WYAcyr}Y!SStIp6{}z&?dvzPhHU^i6ou=`?Jg_KOJp zrw38uvAS7uK*_tPy>MLSq=69YvcL;fx$Fb}-bc66Emd$o zo?{&FkOR&*?QT#W!uV@aVPi_itt%6Y7UP*{m(N!1Yj0VxXiB1GZNivB$!1Jh+|gl7 zX`&oBD1?2^ zHalHd1=^fI_}zWfBEWWRZXg)TN!{OpI{%k^N&?mSh=uxN*Oh~yFYPC zxT`-o71AVee&sXOYbGVe*=r{CF_FDXK1%IF3m}1_6f{!abPptd@e?7BejATZ(Gn@X z#UYc@wUa7(cR6Cs^TI}+`X;l!$$yIaCZj$NA;{*3@cXDTkYi5Ez#90CNJ%i|UpB5J zFhj_=D#GA6Cg_;HUie@|;M0}9RmJJ_Dmd)HF*6#OSd8>enJDT8jJz_4pW9syKt6b_ z2b^hHexoW#k6fn`?cjOwZLpRCSM=0;SN>jr!243ktsH(qS3(=A4TNjVOkZobOD)(M2) zo!?7m=u-r3Qu*0`%&YU0AJgTloA3jw{-X@QjaFyqRSjyD*>nG@*j$+W&)xTow8%W* z^gNZJ{5k`c)HL}Bwc&(1!%3`bgH#HY3yY`J86tD$&W4;fyDmkmu$0B3*6g}i_}{at z*EgEoFC%q&Mn&pyLF!n6+5HTH=KZH`^(D*9`)7nKdyN&hYbVAkUl2M)AIpx~p{RYB z%iUd(2j9bLXsbW@B9^t5Redz^l-1pvFh#n^gKr?Rt2eRFO4qC<{1aR`TlTX92jZy< zJ}|c@L-8v+CYoK{C>3d1nP&X3G?x7`^2j3Xhmo#ncv*n9<$ed^_A8F6vj3{mQ+wKD@IT`pnm+Z%0JX6SE49Hg5@(6@;!jG4%3dq=a6qbN zvcd;gYc`|Ou*e65ZuU#5vkkEmSi4yE=_tF=NEDmfYd;Omu9IEx0P+oZDNu;#&Q$HbOPc z%W6D(h%W{=Llv%^xnY}z@?42`YQXd^d$jBC+eI*xazE_bVdN|;lZd(;7U z>WT%5UMz#GRO^;nM!UvX~O`1-i%qQ6sgRLvbWC%tsh5C<7tNabfA)620z zr*#=G`_;M5&XHNfzY85>GN3Het&fZ}zn3nm^Pj9PS~)`e$wxWA+{vpHpaOADr|G9* zi{T+n-1%D-V2e(up6>i!x@efp0Io^=8wUH2d3Ao>fBEWWmSd{^M%7^uccPEn`MvB{ zT9^DK3v)Pk|9k18_bB}J{MALc^HU5gX^Cs|74}e$zsEAIdTNzEuQAd+mQD&?<-+0_ zHcX?$h|Cq*sM44&hn9&=m9757+G8DfV zIsC4I-YoHJfRZ~2*a}6HxE`p3J_=MPu&jEi6Gv{`g>9cG%tsnuD9;NJDG?sjH3#ul zr95t>lLipg8YqG&l)*Z?uuL?i&W@G|#D`SYC8$hYaRJnQ`#lRZrV{T@TnXH_`V#ff z`xBqD(wAH54Z$2uSiTGhLchA;#taM67DBdZfoO~@U+bPALIoTBtR&#u3vL`ZEbN7{ z=Ae~cKi^8<(zL`%7hX6?bPJG%CfqZptZ+}XjB*ZLwQjzsI}M;^*EDq>OiqCkKc6L^ zVx__X-vb=H7UBa-tVV{M-r1rb&eR351vvFy13~9Yy}-&l5_z11`az+ zs9U)3O57%tcTgtTWTj_Wmc7@iekTzny)1jDl@4RkbSU|zWnXQfYG68$D6vwjiDpNW z#7M1SL_n`97VLukHoXB0rh&vB5tHpz38-2;z`q50*^yghAlKmV+Y*@EyI-BD_dJrIxD z>n1X6*$b@tv3>N`k3Eb$et~;eui5o&R2xmND~_7m)&n6r}mip`uQhR(2%`aHZ z19j%M_eEmlYPIYg9HYzP-AC457pv^AJkrqoYIY3!V`gi;@3mO>!1^;S`{z;n-G@Rb zSY_N%@5}7=8RqtyiK$0?4Zatv`)+?MJ09ay*ycqlyR`Bd45m^GHhi_299g(avxC&n z2C|1x;74&GN9F;y65)tDDep(z)23{s^V-v%k2t*+{W~VaTC~THjq6QZi*788luSyU z5-q7%jvei2NeGKnxuZS3s1A^tl2BAbqD8k2O(OQYIh^V4=buN}x46o#6=kEgT-h^= zZg-V!p|~emCY)I7&L|0Pt{Ssw_FvIA2_$T%#P>g@kIFWBgk#QBkQI#g4(y01?s6WgKMcPrHib(@xqb>4;;E)I;~7L8&E05 ziAb?F7l$c^9>rX_Xax>kh=>!N$mD6g!Gv?fvCM_yh{M9>R-B|w$emO0XMoubSCpANV){SQ3gm#XpOF8@jg zoIG8ZA9lb?9PlqY;Lh}m9B^m)4iEU#4!E-)Ur}&2gINPWMR{oP3$?0vEhqf{iII_zeo);DYNl-q#eI52sCOy94f|!!ZY(d_mLUT%kH4WE%Q`@>UT=U1#+qlHJE1ucn39KnRZnon8^uaCAFoYjTqD%$w zNf%bnnCfp8940%wY+r{s_~4q(&DrSf51geT!DnSvU|J*r+Uk99;yd(@Nj zieSHdfjmMpI@xn#~$EPJ(7-= zO|)w!*5O$OKp8!g;h9WN8$4|Sacnjx(#wm@ZOgHa7c1>lug|*MYCd9_+xo1Y+rDpD zJ6@72e`La9eh(M(;ktC941t$r>tXoHEy3kkI_Dal<{qrm^%@-sXv>lN(?8+9Z1!o7 zlWlVRhd^MC&*Po%=2)ehARoidch>{1^^eu)B)MM2>e00pF1QdYt|6=88AXkN%y6ua zV^jh?9E%>!+KWXw*HQvEz-aWzw-#X=^1-Kgz_0Rv*Lc9^c)-P3HoUnt1#6ew`&*7x z%FrbO_a?=<>HH_sEj|zA+&B^6o%w)y(q0W% zKHXxk%6}r=VzDZ7$QT4n>lCfGqYS{2 zzp;qxQ;XS@n458}-!tKM#I zw1bqX`VA_*&m`ZW`u(V7sXz^XBYjtjGDXW$(NDtmi+80q6~JDq?8cC(|a zjnS`v|L=ZBNz+v{7JqKqddY&LYSL+*F<5HWWh-Dd&vTw|72yszq|0( zK{x(hvfu%gp+aX=Pt8j;criRIbI2G(Sa1(K=i}#e?)+Y|K))m8>_6t!`87OW-K;OH z8oE|hK3Z8I_Op?fb_l0))6Yv5gcLzWCJT6BfLv;xP!?Qq`KV>VR)?Y!7LAdzK<&A6 zS-AsXed3r~2-pMP-h`*m-`myng$JJN^T3kk6hh=0Vmyut_GIBnb zk&Cg6Y~nKVD~;y;LHh}A2dDP=;x-OD6!q`Go_=b7LF&1}xE)Mh-XAjxlQ@=JgRS&b z41e}~Yyr2HQqtg5gE~ixRQ}{X;JuvN!v3 zUin1c8p7|RuJfj$3@w}9fS-GDj=j8la{G5y(akykakkSq)pL$Q*{g`sq%w|HM)Ea&RJo;hJ&GE(nZoUDvos}O8-RtCS8aT@F;BSVU>Ygx$tV_uzK!&%Lc@vjQj z>%FZiJX#s4_h@FS{Q9BkuESn3vP$7U5*f)GceF9~#4_@V%SUUA)wToT92SVH_0qgL z`)%Gf@i=drcq%fd!G3sdz5SRzx!1?EJhIl(fYV*4n%igkBevOqqiO;83nO-e(SYN8 zh?qSlVxQU2{Q@Iq2O{=_G9G9flb&5_&o!*nZDnC2QG}?87R;Mr`^?INLswdnn{d2H zF0)=7lzGHTt>>&fSWP1)r>18YM^FhXhd=13dji1jic}?|la+#G_#5du&O%x(E5FIi z;yeo0ahrMPMNeUj=TUI@WaF49&!g0qg#CCmrK%?1ag-`#Z)F*93;5?+6GnN~D9@Vk zIHFhZfYHcauKS#_SF{PRV*K*SQp#kezXwk`fj2!|CyK$26BzEdar0b4bw2aJxn-z6 z=i-KkL~6+ooIF9#LBjaEN2U9?tta2p?NU#7-+0N&!-`m%*N;|KUg>6vs(v@vOID6F zzn84k`A=3>UgJj81Ai}B*{Jes`sr>6Xped>#*;}ExpT3dD*rt>i1fJgd&$b6k~O;i z(aOq@LTHPsf3&jlUf1~1&2W>|OIC(QAuD+Y-H2u7<%4%Tj`W=YjSJfl77dZIa(3#& zf;GJFLf@WL`3zozJQweo7RBu~=k_tF>*kA2!sLAyFFEhHU_Q?`Cdt!6_??2^@%H63 zZN2v8s2^z=^d&4zEIjr5iXSq<*yl8!^2eWdrZLJ}-s>@y9&*a3I0=V}$) zs~p1l)9xze(eSX2_?WHp8g;wWGuN*w>?OOxidao5-DqXk7M0Ka(DO^fy=2!&^LxoI zo&RKI*LO97uBRJ+FWI$K<*RVzcgvo|h-aD3vB@ll_y@=N>U8e>Ub5>RRiLha)Ur!8 zv{zL=TG@42<>wtVPUohdm+U&A@Ygz~F2kLl>}k*v$~yy(|Gryg_0&@Zr7)G^ zAWpQb)g0eIt0@oP%%#@U%7Y(2P}QuPC$dMx15dze}FI zNjBjH8FT#Y#WEOc9exxirjFvo^iiCcK8h2Q_d<2`CNH$?S4E@bX_#VVYaKj8gSTev zQoIs(RK4VqUo4MQCZFi640*Yh$(L||;5CQMew>x*;d=_3_}<7yzNe5HQ!v3N4$I_T zOh969$D%%pj25_{jI;0y=Begf4>;#+zVu)8fY*7z#kz2q<<;=Ay1EYKJ5IX{TU4S# zxN`XrGTJG-d5)2eQ`jlHIVHTX}#?i{||KlqCLJ;c5!UBa=j)8>>CW#ZyB|>f$F&CCXl1wF2h}>nsAacm(3fTPxqmlVJ!SVO z)}6TLTrWFMEW0niY}7VdZ7*gc!lEV0Mmq;sQ_JA_oTEV2#_SCj-cloQ-!uX*iYVVC1<|WY|+97MsW?voQUk)cydT*#r7rZIq1{ zsPB>G52m{p2;BZ}*(bIPg8r6O^#O(3evU~i z#^TI;g!68D3LXst3|mJ7B-}`Cx#S&MW`CLk3-;Gd{u#V?=xTBA&`P=6iF=3e#-q1m z*3rmlmgQVWi@E{hJA(OSu8^S|q;mN?crCw&Ok_E9lx6(=zb3OZJxK#PH%+}{*4>Kd zIC&oXR`W~^zX&kG6^nsSy2S+Mac;1e%o=HaFPWwDpRCMEx)D`vaf7{NmfjaUS(&v} zRb;tnsOhi4UNTGDDs?}NR%Yq5S8G*8qm^0uewfc_MAg$xKQEcJSB<}stT*{Z4lT4! zxZa#L`gc6;RJgDSVbKmHv&1_dSaI5K&ZW$HN^dAaltGR?5*hnQACt#$0P|8SwXV@f zPQ>j9&0{JL#_i>Sp<9EvU*gAPPT9VkjF20Jhw?LiluLdV!q06(1xUD&@_y%fZ7Fk# zy*Kf0172I$SU5xNy{&Ma$E-P?AV4wf>(R)9Vx)J<0)Y!)Uh6d}3)uP1hU2R&!z4i& z%AosyRR(A}N-B(82K1@P>f|8=X&$8EUNYccbcL>`DmDl8k^v*l?{WMw`pwGsvRTYg^2J|XIP11;}r<;CW zGN5!6G644u#BmH;h=CKyfT`0)e@FaYGFj!q;u#iqY|XXoWAfUgu}2f_mi@u@Cd69y z8-nxmRkxdQxsJ$;r`TP=Qyjs>^HVGd&kNO)yF><#W$OEPaDK81=O|%N)c5kVHV!>c zDXKaCc}d3=M7T3Y-3In&xF#uJB*VP5Dv+$k-Ap*MQX3?~xD2Y5*CExG4u(WEsxIOv z&t^hqDHtV}xC1Hsk^>`o(dtvoa6|-efLP8BKk5{|-9PlO;eLkK}St;5C*yr$b z>-fyVGtl|qwScpndzlDMv=Pti@ynNf0pOl@ljuq4x}SuvM+|<^O@y?~(|tN-(8wv0 zF*y7NkvS|+xpUN$vfXLJyja1>Lbx{3>ps$lPQ$5l&|M)PIk;X6>wR6Fp0bLLbfeR7 z>QHn}TPy3W7f{2vLp_P-srYGpzTp8Evj}laPkXygf5aobPcc<@`KNopRWU+GBc9rY zl!xu&PdhDxG+d9D(c5_c|9Mw~zVkxU!#y{=*3rF+xK*kjINshz_QLo%oxTG_x0CIsG}QSu zd4)()cqC-5UIu)Sdr; z%HPIB4(HC_j<|gE3kua?kS?U3*5g>5reD6g86Q>%1r#3CK=RR_JjUJk%x@{+%?vo4 zDlP}{(&54i|2uLirN^D0`^NmL;7Hf;Q!B2RI@xvs7g$ zOP-}#%&X^wE>J}n+ywa$V^7OBA#cUqcr7A5$7QQZC-x;p+)@#zz{4IK6Qj|YI2W8c zkiZ!*@?tlC2FRdxoev)KfHN)2ufUT|x0|{V;f(@n7^3a)FH!JL1sCn6KR39YXST#Q zG*5hHYnJ{5=`dAEe87jL2&>i9_Tn-zkYrm5!$cQ@cF(o;PAWCdfA0^p>Di1{dAFw;bEB^pH5eyD(Z9s z;dkfvvJ2^Z^_ot%5hV9_42Yr ziMd1rQqcwlfI)g)5N!OO;KhMSLNU9KiA5}NtT-0mg`S8pA zVc1VL7T}^^e3yo|+(O2S585J{va+7(;7s{A?mzo}G_s##&MEr^PJnss8()IBAbxIF z4M0Bl91l3#!g`zVq|3EU4>qTW=NH=ZNce@#G;S*$!)DJyw)jgD}qJz}YV4wva62i(bz8eQ-v75=!%%GJ7E>Z$udgS}*>-bY`n z5{_0@ZqpUGo^D?0B`Zgo-%D2N{3k0bce?P_K{x(hvU0D=P@yxbrn0D=RBhgIWer7d|)rykuoqDNiGll}ksykAC@7 zd=Z{*-yP$%&YU4 zs{Cw^b6zO0q4)K-D!^!El0F-z?JBxlH~qY1(pH7kNMsT|L@@IAU@xm0wM;tdAW&E| zM9L(!Pp;pBg&eVWrVf9Y+V8^$;mz32xP59LlkX9E^mh2*oeqxm8S;9|AM(Etejio# zaJ{8v&t>p)pSlg!R>G$-40oD*9QU7n_)%nys2gQ)!RzKntoU;taHgfK3FAqZ!mRMG38{wac8pfm>{a>00_(v)H~qY1O{cbuYS3DmqJAmhq4+Bnu zuWhI^OtJfL6wL#w}i%$(~0c|D$re*6z z9C(9g$F45v^!s1Ox~@ii$txo6oUm939I19Z$D%%ptQEMRjM46QUWq*UaBJ{@bDu9? z`Zf_hT^yFfF{jJX-?k>J zVw{GD;HM*;Kke$3N5eIpKW;ilm=na|a^pzBymStI58PIjZnQc_r>kC#f*b6mbBr{< zm(HQ{pRCUDS8haA1KeOQo#SqmutGOnJvo-0ZZQH(>KvPl*D`xP0}kiT@1=9-JLGl! zqt-bTLi)_pXmyTB%4T|p19y7e^z+g=?&Ktf8;Q=5>}Y8psm@V(+35Et`y8DU7Fgw7 z-&*#XwmwFWU_A?&+xC%VuBN4z%q3jQ+zW{q*0W8n^{ks8Fqzx2o{u79McpXlT>SFY z$1$1@PMDB^c+%z4PzH)lcgjEl+7j*g#Gw1wk1S4n7lB@OuTy4ddJ^W8VP0o=LP$r) zavVct*t(YO6z*eoA5&O0OFwe`qySzrMia|Y=|(MMbcL>`o);SIDPwd3*VCQfQ^u%# zCoN-K_3EIzeoq;rGUUdU3cF>*V!&CZb8Ir{UjD&p`peMB*R_@^P}e_N852|u-Kr`c zt&Dj<<&S8@)l-3UP%jyyZNMj#G3_fCHYeLVRx2rUqIGTMw9%id?R0cbSYR$?jQAe= z`TeK*5@+-gJmf$vzr+0w-*?T*s{>!~INXYSo@kjeg*nBU z)CG8%C(7>gbnKJS$Po7(?xHS~;Uz=Jo85dzAQK<#yk?_qb;rW^>KsJKipJF)%M#00 zuUa^R5jCQphwr%+i^3!wow7pDeYdO#sr2ktN7sJrzDuI}MKyO=A9(S8t=~F%2ggW2 z6;!I87vV{`QYRJEFjnP!Lp@CEbY8rFr1`ygzs|4wU)QPY*H5qWk9X({uBXnY!Ct)o zPL)8@Pp8-P)8WPNu*@N25a9<@f-3dY4|jgA^~EuTsP3oH^8TZ$!Y%4KTHfEO>bErF z>glGR7w-=$f{cXsi;v>s`&4u%;{8+c0Zfr_6lXe`$dr`}i>KuMG%^k(D#`pOTj_Zg zzD$+4z}!CFUogEibDmeS{w0Fy?z+gl$o29jKYaNy^+&vl ziZ7h>p@KSl0EL=ezk%OM&%%9r#khohpV{>@0L<+XfBM=|-_F##NU|T0g4!UAnZ;YI zbYWS#zO1;~DmFLY1xlxHC@Zc@Z>YjClHajh!#-4(UR{N+S28`5N7HR(=KbM9T=8yp zO+%JwdZm%Ru`p_GKOFJ>Cf?n<;oK~YlAX-0Z{Uko9Zg=6+U1K@|2}b={p+axijGMg z8%X}@C+y?QYREm6k97)QBt5SgR5M+CmXq(lo@{uSUwBj8s1yHD?{J>=&(KLs&;N-O9V_&8`#>h^CWlNUZyX z^_Qb1*-zrVU{!6js?Y3R3jEN9NcC@I8~SxD+wc^Nv(nSb%2q^|6oO!yQF}ud%$->&65f^$Haa1xSMb@?=9>poX-2~ac|+qF%jNpKcl44|CZN%_AD=- zBc7wtB`CYOj?_-$O5R0ySVahY;lBVsw$1Iz0muh8sAC8wftPmi0qup0TUwW`S|a_6 zT3c{}bq(*a zup1S-6p(2ycvyu$Zno1JXQR+E+kA6`_!n-cu{420p}@_^Op2gBw6_dxqIng#L_G4#X;tSUuMVtkl{@ z!|Xl)YD7|x;5%tMA@5roV?Aqd-^TP~yl(>+bBHwGLz;%>5BrV6#G&j#@vSr~9l?Da z*M1sG$*1w@?y(1I?C5U_>x8!PTl21`fMOrfblPwis2hLr-I;i-yWhO?t0=dw`2&2E zyFetavmX|St^pi(6F1@m-IWKkjnEr@!Me?!s|VutJYc>D7a-1h*W7OT&FyVte2>G2 zui%6WeS6LA4gTuaZpUZfl89?4tlmL?tkCM2?yIZ*W#Tl;-U6tNrtFV%#vC3!gTzO8!+_^f*Sw1x zb(XpPSj_&lm7efk+%i|;K-Tn6qogl~;^qo$8&Ai*DNg`tC^7Gtn|4B-U`os08@Im- z0=ADq+Ut<^yeMAJtZo}~TS>Ai3U~lDv;}U5&Kj<=s`n;;9|O`Tzt=o7jB8j}Y-89; zw}&nJ`l|Zs-sE?(->kFuW}i`%=iVJ}Xc3p8IEY`_o4E!^s8sL`h|5tj^9O-|4W#xC zWMTk0UN?qrmYx@;{=8gX|^JFPZ)*{`UgV^!{;2UdVXW_hzRZpH*z>I z6LP$m7OFb7*&Fvr>0s@t2{VCRL-jgwia-uPk!t}J^DagYdAXV2UKe(qdLRNtJUO-R zMm8CxI?7P5GO5IY`meeEZZ zecM2Bi>s1n`=%+Z6X#0e^j!deDBhmLBN>q!f?QW#yA3*#FirR?<)ITQ;w+}<*x%qNjZ)RyPoB8spO zer|guIIM7bjdG%MCrgl8uTh$*7kI8m#P_wL_`cS6upYq*1vji?#ge;KJyKM#(ubHC zd16p31(%$e>YkdbOM)rCe?>{)>Rn}sy9Yly;v;RQx4>pv$BU8zk)mtGJN;FN+RJ#j zGuTjZe=I)Tys;o6-Vb~@_wqxm=(?PLCiROTeuauSCj4~N4@(v7djz=4tI3ri?xSTH zmP$`Q9rwa+aKS``#~+i9W^Kk|3Wizt_(%bMb@-1F7XkMh0UvzIIUzDe}f+#n;*bWp99)QAROV& zb3al?VJ<5BPs6I3Lb)OuurZ=Q={;^C>khSg#X)p$Ggk4!E;j5fAum5BT3X z;7&UHP{E1rCmeXrAcAmi`Ydt4$$xaaHaOr^{WbiX3eNI5#x(qQj`YrUou|erqn+iH zJK)arS9-wbDY&~`OFiJIPB`*0MG_GXiGR7)R9z|{ce>!3Fa4tnt_yqA1=svRpR-}v z{OS2VQSn|4*YmpG1=sVs$pzQ*di1uLymySXuaI%$%KyomIYOWjn@T&D(}h)_ zP4%yi%keb@@Uq?9&B+KCR-MebzlXQL!p8*)_KMg;pvlRYn zTIZs4SU+bYhWRUUDWs=fEa?yP{Gi_^LD3-v+>cWHjg?W%F>Irs>V5-lD z1c;2At9IbG|A9BLREe955qP>bFl23=o)-}1G5@$dwW0@+6BZwlX;-?o7%#rP>{~mg zve%whyvyDx;Mq6S{#Cj*;D`_8i4S)7t{)GSQmX?%D~Q6m=98tzx6}h=%YFyupSAv; zTA#gh$IIvWc0Td0ec1 z=74XfeQnUU8~EKE*j2sLyk;jN&O$^vBg$2T!dKNh_%1>E8r1);Wxvh6!-5DmCzIm_ zp4YYtcY3i;soGPF_Dt|@PhsBnOo(?6tS?7%f_a)#nZCK0&6yyZQ@m@7qdmoJ&ji_? zVi2*D!@`YUJY^P&o>#V(cjkW#3j7 z=u2bhS!ww2owA3m^vZyhUQn8~HGM~dPvd_xK97PvyvsjFpX>T#6`hF-t#qu_yf2t~ zH<8R*A2s3W455UA5u+d#iQu>k>$XJDK>BL#U{Sp#M5abn2OGBLhB3zKtVfztD zVXAsnCap_jdmHpbS4es;aL{vmLwZS>AZTVTz`~Zo`?!cqHm%l@6-C0-DD{>NngW$H5lZ-oMWBo_IIAN%WWaSiP98ztGe55;?|})Te904Y2us z5@YO3a*RD^u_r!UV82Sz4;kX`)nP`h@wx-v>E+B82o{_HTgS4;+NO7Ff-;;;C_dVeXC& z=ckUn9=xL`4x;oYHl)Wy)3*fdXjvdVqY#hc^bAO+un#*dYug)|`*27FH+!-F>h1R$ ze6QBq$Lg!!YcI;079^oneJJr+IiAt~$XwY)OZMORY90xJXMj&0{$O9APfHc&h}_6SBXZ&mau@6+(2mX*hH$vXeoI)^v7tbw zk*;m5Pd8QIz7@0UaSr^l-GU1+lbNki)^mWDM z`~QooRrP_}izx$Y1HQ_A&~fa&NJ=f6yAMo10qG0V*9G0_i$(egL(;FosV0{YD?|6&}M#Aqqsi3x>4*QgLzv32IFSi-ao*D{pa<2qvp25NYx5| zJzl{EIM9Hv8-5~U-XAlz`poWgu}%kvFU1+V(C%p2#ReKX(HBj3Ofb7Xhd3~1e?d)Y z)b2O8JyQNSmPXec42fONmPesl9Ci|jyP98%g z+N$1@eC6t%!ppDenS5rn`myyP%brjs(y88KsyiD8>Z%{X9(Q^|+4S9oUnBu0Mi5c& z`&G2M_ck2f>}btyl;zjso%Bhaw}EP+sID~H19dvRu2?o2WuVm%X=c~8AW>cVcBt)o zFTBoPStSI~s}4cLBqDFl1BIrwE}g9E`}x~Ez<7Jrk0BEVSj-qKk9!(@mHn0b$?}B#ukGFKDiEPjjhm6aIUivZ3-iLSMnvjaHw(&+`8)9EwlR& z_E@(I>w7H^E1RiNWPtU7amZn5M!nMX^fU3V z8H%2mk0a%7_gLwE66Nuoek@OFFwPQXrDpfvqI#Tm_%o0|$VcR?ZS%<|!x>Ly!xZUCk(+6`~@Zzld*<)40z5ATo!aapS_z{u%jJJp^N2^NgUq zyUyN&vHPag++SC4ORMEOYE|!U4`wHbaVhn=-H9<;pF7$!+ZQR{6RG~C+4FOdA_CPA zI$yNS^_!_A|1jY8<3?a{VKZH+OzM zlz0WJF|+HZD8MRzo%wxOMLq4n=VhdS8u)y5Ae4N~vJZe}R{7BgE@|+Ag<|m*Eq|x) z6wm>Dfb;#|Srj;3)IR1IQhNSI`o{#4Uyf|2nv*>g-@=hAG*xix+$_K`9H?R_N6a6d zdVVn%`Y~peVf9?bSOLs_jrtwhnYj{WKE&vH`)%BLQQY_U@8TeEZ(>6PqM39kfzh)B#YFy)2oXytzf5P=~vbU zZ#!qOsN~tQsJlc_i6X7c;(JTr=fdQZJtFJRi{EK`YLp?5hi*Da`oY3Ao>L{B&kV!U zAw17BfG-vY5MnrGPUZ`QuZ#r~Fymp&1aNJKDj#Yl8b%V;2Cj@1CrpJx_GwM0n7<$< zj{Z*;jiaKz?U*3dlje3Axjf(_Axl!ri+!?{--bq;OWrAycV(X)L{YybK=h*Nr2(AL zFNU=ym?+kT!k%{;`b(??A~)smje%#eXEBOiL_dk)l3SUA>83ldBwB|vVfP(XaWxi> zhLt7$Ba-?sl=yxmbp$K2KbT$Ig^s411CZlQD3d2^tn}R0hUORQ3z}MG-sZW8d7|F; zd|maE?Pq5{HHg0j+bV!&7x|@_vq$Rery9!tAkM)>0Yv{q%dz@?wx`Y4*MJi`Shn7% zv9n)xAx<{jXKpG&#%Ot8ss=XKn&Qm+@3!xcSh*nW$ zoZT;4^*MIpLqtiIVL!`}ka>iHkZ1oyBM4ISS+4e80kP!zEjM3riyOz-)?gBLkA@~I zot!Uha?ket>&pWJSNYBs6C!o^O))17A+!X!D6rIJaf59V$Yk$}Zy7=PzxtDuPvqGK z`xP|dX2?x*8wO>%p;gGBy_RpkRsBT!`0NBZPNX`vGx4R)Dq*MFnYhflWJc?^AgkV9 z&*fX8x$Qvt6O{+AoKbAf+G)=$25%%w;8YuOmThl#H{`gYhm#l`0nj5i2NI`oP9-P@(Yz#&qz;Ux9a~0* z_e#tfS#N%PZ%(fdre_A~(=&kX+@QJb=fJuiScB^JUJ^c-JzeP&RD*XWuE^2-v-Rb@ zg6z=Tj!$(dSNCQg|C7^O;9sNgZvg&#th?)dy`!OfWMEY77#ZDZpBXw{g#Gse!F|#< z20(1++t5JkumjO*ZaZW(KV$iRVctI%hsECO-wAE`KfoFyc5j{i4j2@a4Xjh4j@gH- z@?-Y?@}2Zi$@;Zb{fqX~Gdx;7q@Px!pOVnPb|zXZoN~sw)AD!ApWvA6nGnDLY(G7F zrsx;3yn!Ca1qk~VdK^NxBUE3$m;D=g``GXfZYZ{6VoK?=n7}97%l>^HM#UFX`@vh# z7TPqWc?^pS3#t+3x8j*eYmfl->1$e}=^4Sy1klaw{wn@aUS=Ibir)!~AXo)hH^r&d z4BKr|%rnTh7a`Q@d{3J9p9QV8&iAk&;Ja*s{hU?4L(N1?!!xtzD80Z+WiXz1$g{hh zw_+|H;Zy}-N!6XC&@g!@G~5*FL>=}>UG<~MT8-b3oWh>UdA>7IuI9P3;Nol$-@BCY zV?|kl50oDh)9FKV`&`Myz`UTctoOryRx?O!$^TjTW9ZrJKPkRq?+3{2N`PkBAI7(! zAEZbWU2!^63c72-Hd}WC_*8nig|2A@IWv#uy9YQ<@L?0i^;E>ZvyqN zZ*8z&MF+f5XaA-Fny~NbdfyujzPGsC`wTSbNayVaRyPrNt>#!U3?g+{qsaF6LBCMz z6RZc)w_DaFwUUo-2-^GY-Ovm{hTYg)oLhY5nqu>=9iY4|hf%EjeKm~qnz#AMdb_XQ z_i|nJQ{-8oui#f^*LT=omLVi3Kv5H6REI5-^W%Du0p5Uu`DREJ!Z{r0bOvnMLH(pBFMGc1M;uzA)*>*c;^^|9o`k@WS!p0)u@ zL~t-n&0I;sll`%7msr7k=!*RtbfV;6=*N1ypBG66yvIE$UQg3Z=3n##$jnERIq$e% zBBYmSA&y0K^g}wiC1Ka7*n_X9;0jR@1nLGEhzM0%>E$zS)tFMY1nd%RL?03nwu|X ziH@f6gKNMUO`60SyBJSqg!2szf+l0qGlR4f*e}QMnifoTsQfDic8|DBOOzExeSPJ7 zBjtN5_rVTTIRH+1Jw|1t9JQ&3LofiT5xj1=@pPYll^sSZ@FKmE$L{7rv5M;ib_VRs z>Dd#YQuX`;LUzprY)Ka5UA&(VEs0cm=7h?F@J7qVdbVct17av;5}2rhWP1#xmK@l{ zR#Y?+%6HAO&+7S1={&cxSDT_B+VJw$k;KK2RKCRd_@*V!2PDom?{An0Gkx`}Q1TNN zEX;}1(Gd?m2aP*b#Nz|B{%qkTtz=y0_?Wa~%N^g-<&H0mFnY%~aXyyJxHn*3Yv0zx zq71**S+hTovlUyyWENrrHgO8~g&!4p@TyYmw-8M~1O7rkg=PHTr?4DM*=oPQBJdE8;-*^`GJ&7Z5pC5ORN< zFOn!lxRE@MERHWNs2v%h!}r%#;EIVm1hiqIpwb#arP~)&_S3}hHMFum-6A*C-$y!* zMC_u^9c7L^3qsTcQy!O;6TN13)q@_xdv0;A=U(|8=q1<0I3$GE&ZIqFo8w)DW;#%u z>{<|l?Aq*p8L|8DqRf{%xp zxEJ#bnkdezVY4n4g*i{|4Wzy2xb<-BfmT+64>)9A`iX}ScX@1h{H`pZejJ@pkxvExvY{DJ!+_TRFT8H{3{HvSY;t25~t$z(MBWjDUl+xMzo@n)u;CQ ziB@I_K$xEm&{OaNbGoAff!G)^H~DIJ6(@1!zRH7NF>*2^y{-aChbWM@qLNAU{Jk3E zR{8;oitJq|3K9Lu?N(ZBLtE*87ZKYW%t!DqYA6>{FOUb>kO$)v1DJfMdVQnW{cACr z&+6X^1>$#%NNorkX4h}&jKsM9Fql=hm@T(+Jumb!VIi+R zX7&&fK@hwPE|egCG@InYE#J`Z^lm7&1z$}k%fOE6?dGbY$k=cDKKpaYlPmG12F}rx>%}{hPbbkJ{1DK&P z9_xJ&avl?tvS#-`fO!e6Ij4^|He%j};?>h9;(QZgDUpDtk+}nbEvSP7#O#iV3dOdV zm41j_AZ+h~U1liLr9Suo4E_U|qsaQeTlBq1A3Ot@-_VEOz>xFYf{)-R<3t#=aPV!; z0Y4yND_wlRO5fZFNaWKnCxqcykFyE4G+I4{JFT8+9|G`2{BH5r_Y}Ts^<4FOcAS{s zR`qL%iB?Y|Y+2Z+JWyvwd#!Xu`ud90^98AQ3zE;)+dt3LLJ`Wff1ZW+=&v4wzv%(q zEA(_WK)nNNeG?T{rDs69D8R|eB>hB5w-3iZJWBkXbj$n_gW@>&ll+>09*_R<>TAX% zN=Woy<>W(V9m;mlgy+|eSDup|dCR-RT^{5d$0z>g8~}&q;GA%PXsZ5wU5pcFxtW)+ zFPs}+&irFM^ADldzc};HgBj=PY_Tq{I!}FTPMm&7`L)jU3O_mj(6W=9e!1~0=ijlq z>RxVQn9)7M=ii=p9Q2t5wfLRUPIjyv<$6QU_v6+#?@wRfarw(j$8zn9%*FO7UmAEH znn&~RD2}m-TR|z6ka7Sku12hpZot_q46#FnbpT+DO~x3@X2)VVfO|cDi?t3;t|nfi z*7t1ROHYag1J8pAu_M$tNe>>yx{`2t5=|~XGuHzl$zQm!ASC{u50&`pjyFhWW)&|- zL~hL7gn{CiTtbgq!;SxmsaJfk(vGh@m^lY5eQ^EAcQ*z@;D@OV6OF`J9=;b+!5wdI zUo$ZdMa4vcDC{u^2*JkzKL?;>c4!93*I5%8*Awx5>+KKir>mbx6eHg^biSd<^X^yH zZw)2KK*RDSFLmvVZhM?&&Sa6KD;6kW14_iR(8}Ve2E*6)Ip~s%6K9%6zHbVfXg00q zF9v|<_rV?5H=Gp1i5{F%dmBsLH#k;AQfzj&a@~mQRBF~zP5L|r0T#9XfdfDf$)6o~ z3TK?tHEoRi1Y-!3kw8~`u0+=_6H}}2q?BiKEW59AV8M+%L~s1`4Rj}N>(KKnKR#xc zFsA{h4H_p`wdoq5+?&91G%u!2c`zLn{y!NZ{z5Gkw;sV_xD=w{EbLX#Mn>~@|IWh1 z7jdSnD-Hz`i^1W`&QvVm<7!|}OdL>2?F~}v76yFzCJe;;9I>rb03EolndYc%*jD?6 zb$1=M`eEx9TSiX1uH5IHul9ei71SV(0wgC(L%!O#5iqms6F^MZeR3xU%&vFPZMkCu z6QT0)gu*^1#2t}AY%yacijA-a*shy`aU332kt< z>o1+{iasUV^%{U^PUa>t!Nb^`2w|PbYh$!EhOK`JsnBpv4zufr49F=fW=M-6PTTvz z%dqys9D(`kDilBqX)fKtcnaw_E-)h;?~BR$79n}w@j<>2%-oDQqsAll*T}%R4a&W z+#pFGV?N1m%&u?BLWc01z8^xUWUn8bhrtDz&CnvHoI#;}vnvVgMZsqGSLjt{Q!uof zHQ%_&%^~_SINt;OWk=CGAUjI(5%kjqqMI_)5JP?a*}h3c~zsz4> zy;tf_yRCE(UFl1_z#GCu?kKyaB>N*Fk83A_2L&>Jg+?OmmVZO`6RMV2=|b@-D<0dP zRN1>**oS>$ZMp_W!NuAfD|fT&e}J8lVT$$j?FiU!-SHuBbuzm$U^U$S!g{_65jgVQ zH3QF{jRt6&I##u20Z!ibNUOn)!-d%HOT(hFA4}V=&E!%KqPs8@JFb^8j)DFYEJb!?p_#EbIX?@QMOnv+XK$!p_6FBNbA(i{;ZM@8ggK~S+ z>`458(>I8+0da_xM6QgNg2k#sHuj3lm+Y0GP1<(}MI?daGDU ze-Tiux6uysFP;GzMMYd0HbbtT)*qej3!7cM6>ji+nw^n*oqhIR$troWtsXmEvb7Ny zH}IzO^W#$QjswF)$)ZeKlAmBsrDN$PFLD~!U82ry1 z8-#)r0?Pl)^Mg=Y6!sXxuJ9W&wASqe5Uubd6G8ArE4EjfrN|`?d^~iD3snn9>G`9L{1g>`OE~6`o+yYLHi?)n$wpzn z1YER+T=ams9Y(LPKMum(HD9!NCfV%knE&lieb!}$7Vs1clZ?+^)Y4metpxmhSi$_kA+mH7!u5tI;rdkmq2q%b;Fn9MY@ z6}eOx!GTP#XgS{3#_W&GHNV~~-jugr$NdO%0|#cC-DiWoVsi>2gla8Uk@j2YnN4JS zQJgP_nz}lO*OHQ7joN*94W+L6EtpofJ;kF}1+!am!g#}kY(&cSJB$7DD9`T1=OX5P z#f4q_lG#Z0BkRw%nz3{H2u>>2`JTdgl=~!~1s(64j`wh$N*=)qd0C~r|I&6`SuXdZ z^ti6Wdk1!346h>f@R$jA`LGq{kJ?8;x`LUdIIL`L+yAY%-{C3ezuwP&NX){fZp?m* z?+<0Zz)Wg?uj=<==-7|+y#k-T3!j?|aQxhgG_UE#A_;Zj%lY*+XkSNM~z@I+VmQ?Bs2elfptJ#?Nc9CC%vcZEOg z3SZy~m$||hy22N^!WX;3ll_NQD}1RdJk1rp%oV=ef2yN&!??m97!s~>h4X%-06Bk1>^UK=$NjP9=KcNL%?X0qPs{w1Z=DFJM%uM zV9vY;6iic-b-dt$)gydN!S3W!-0>OZouN_Q8CqLXal^QhP;E&mKGZawH;&Fg5O<2o z;EbZEGj@6r%hPv&{wd09M0t0s4ijx0j-TIhq7W;pb0Rp?jUdXKfZrcgnG@mXcMa#^ z2Gy(JrHVuMEB>Lb&3@eA+QV;8Y%0W!t{YE@mQA65n5te#L->LHQIJ~1DYE(bmh<05qzH*Fyh!!!J>xWv= z%o(~{W)_vAhy$v;5X(b)M~^ttCZO0y2!7IL0dg@<$O(6qca@5}oO!Ng zUGqxWZ$Gt!C>`2g`NQfltE2`Q0RfcuHBD5Cg#oys*Fj*1&(v#SRPn$p@`0XCyMDp zd0^A>z^pv58x+hrKigce8&F4=f<43P2Wb_{^X-!;zI}2}-n)ilMUDBcAYOtZUr^;g z&NhRF`TIhATcx(7t)R`Hw}MEK{~1Zt$A4Z^(v~`PgN zmnx_&3AM{Ph5^7i#<~82N_$sYlQ>SPDZ)+szsQG4}OP8-}_xq&Fj5~U;G^{V%;~WvbbVrSws5!=3Lbr zrlRgmD*a=}ty|1f@PUF)=C3J5 zV;ZX6qHy>r5y5@v8~rtEUayr%W1LSf!o&f4pMg#+*ytDIZLi8Vhxr7pg$x$$U7u@i zq-Z{(-&ARN+{#UxHRE<+#O=l)dbA`E!zJsJt}CgSRZ?|zNw}^gv=}8}N{9jG|4TtR zB2l=pU=w&A>E1XFe{gBlhdq>gN?w84`R{@Rho%J#Q3#j{`9hb6H5mj>{<-fKhlo%)4i>ZKlL5VlBh%|gyr4>8_VZsh6n5Mr4 z*dG;aCFSFZ_*A3@LdRMra46* z_sxX0D*vUj7|(we|EKsi0;_X=8zHJ{yima#RXC)cS15R!3ZJc>S1b4y7kq(&->cwy zotjYa0}8Hn;jbxpBO3^Jk$f2cf+z9pRB&BRuY%vB;JTdW6gTpTT<}g^jthR5f(I30bUEKu@CpULT$O*Hg10I7 zE(L#F!NUOw5bH5`|DfQVN~TUy=|52LdtLA|KzFuR-xzj+g1hS_j_4 z3f`s|4(AEo8w&pawf8OXbyZc~CuxB|OKwnv%0n+&u?U0&3Zzo?rg`*+hBo#YD43*a z(!{1oOm1j-h+)!V?_A2E4vQ@Vy?sS@5!1A-~hx@%jdAjS6y9zQ$8o&Jv31IjNSkkiwF|4i_`=Z5@FAIEC}zAKiW-dBgX z)2;DZBKY=rh&vq`udfAe?|9Mty}01aH11cTI$#;aKH_@$wMPLUHAe4B@t3LZ#<_JHs&6nwAXuN8c`^3M$c`8GqtjjRdcWWelE6+M0sc+k z1xUQ+kUiLj@=Dq-cxVdyb^1PyiS5xdfJ!`!#-B#u&qv_A)FPjp;s|_J1pb-`{Gtf_ zvIzW*5qMPu&O03Pg@1VjzB&Sb8*q1*k<{~UObzMT7r}pX1b%x2zBK}WZv_6K2>h=i z@V||~KMS1k>U~XESX{pzuMbD?Q$HYonS3a&PY?cQBKUt5ffqmz$d@lK15WwPQct?R zG~{0_cpw#z>jwj`5q#SlU;w$kE}l0Ce&9j}2d*EB*M7kV<$F(u)v0bDq^))3gNFdv&$k)O1bH+O`1Zy6*nAzEo(e>S$|S z-{h_x3u3k+Y5nBi+fVAYi;ZAZ|QRhowZrAp4lhf=Ui4TRarfqt!)8}<_mKWy<5<>uCu$F z9%PFQ;c;bX0-q~EhAnG$fnU{wZ;iHD{~VGlVrrBiJJ&f|brtYh`KFe3R0K_(?#l_5 z-Gn>l`+B-NZ`KlK5y)BJwl*w!{Q>;1?dE-(qD6==mV1#vtc`Sh(cL3LYy!{RVt z{9I@V1Ei*`Oa+`sXQ*A-w6dkE6E~i*eyQtbD!Y(1EpEB7bDdN>kZR4yq{X<_Fw8LC zP}o$nwll@zz6R9+p8dhXw(hpR&eo=D+EN`oYx@zzjcu$Ef{o11U}MYLwcY)xKHQ?% zn!2gCt!YhDS5IrOv9+r&)w8B2C2ws#UBO0V`r5XxuI^wX9<3e0+O|Gm5Rppt;iAM~ zMjJaN}I z(oe^P7x+jc9+cM5(~p?;bcb0`HPF}J(}%#~8Tw70rEL(>-_ZoyzP4^Hd7b@DU1)}! zKW%G+)}G#*Aa~+5k}i);0k1?fJJ$@P+WK7pY)N0z%bg(XylWXs&RTPu;e8_-xIN87qvyL#|K{{Gb3{#K-mvuaB9wY2xR zEN3FZ5)E-vYsdPg_Lk1B@UBZ&h$MqhEV|lse54%xKoTD-@WT>GNAENEN`r4V_$q_n zCS4g?TmEwBktE_AcUSrM8Qk*kG5EEH|0#o8{!xQpXZTNmUPYq6tMOBRUu|$JXO6+I zH~il>xaI$u!EHLc3wjud{@#F}`ulN%bL>U&PZ`{%|IZBGWcYt;a4YAWlfeX{zs>lm z{MiO?F?dpN3`YfP3_dFTB+9YzJ!J5;hW|}69!5Fr@?w3iqm{)lfGDR8KMl{X1^4+E z#mF7zQ{O-1_^Z!L6Jh8r;U~d4pU2t7Lqa`MBPs!}~)4Q|`V zcgCH!6Y8Zq4Q}OZI4{R<@mmaT<=<^^%YUE2ZMPk(I~uR=W582+CM&V27Nc%^2Hgeu$a9d9Px8Qy_ zABw=Qy$C`<3{N|Ln$8;yZo@xpaGNh5Hn`1~FBsg$>q&##^8bp98JaLWR-bP%xRrCG z!JFYu!@twuDTD77+)tl#F9Q>Z>0sr5OmLt7r!p??=VNfW6XWFA^79IV-v|~BXCeaM z8-ah}iv04wY;fCteeuft{Qqol%fH{?HvIo#aNE8-Z}3$nUT>?&`D^35&)`=669%{8 zIYH+A{B%Cu;8xD(4Q~BC?Tz`vv;C?NXa2ID#O^~!FBp6|aJFHjbLNLnhR1&I=Na7A zt2Z0`X1LLO|ER%lG5CE3zt!O1H26CWe)5}O05Lo_;ivM?7Thnl6^6gj@ZV{08~*zZ zzR~c1!{C{6BY3DY1xULV`>fvtTDzLjeT-TrM z@NiwnvdhDD-OC;yFAahH9=^Ri1V%l)SMb9guIqD(m|!4HH(k#&%fog3&m0fe^+LLy zO6A1MLbfySc?Jf^*5C=OvT-Sr`^6=(! zLI-<1T-T@V_i$aGHtONJKJBoF>-w}J7H$x&`AS`uG|R(v{oWi8-xjh5JVAz(l_TR; zNe|ccMU5V=>-Rc5T-Uj6@^D?xxz)qB$6YXjyFC2hi6Oqj!*zY#E*}^EJsz&>QTKaz zTEXIARQD&U{JkQ- z!{gWWtD8K0kPbmxJzUqX-sR!CPIZTeZx=bcJY3hQ?(y&vsfYJ_c<-5Ect$;3*LlW6 zYgfi4D;y%#YZh-1zNE+BE9UDxe4Cinp0fG7Tky^DRD7?PwSHDy+l9}1{F=@q9-W{{;rhL&JY2u8tscI8W*ELv57%|z4U#_^ zeq9ItQ4iO3;9v1@ZAV5uT-(he$xoH9?eAOaVs_%^t4p<2Dc99uNI{ z(!+KAWXZ{)y~@{hk{|GJT_65+57+hKhdo@^LoPpMynI~`xz)pUJ>)|kuInLxiB%repaK0tKRrg57&Ov9uL>`u}^xqu8%$F;e#^XG{1O!cyvALtsbuHPJ`0^n>M6c z*5H}y3!feO*4Nh6Qkudlyr2~8p<05{HU0fTsY7YzTWMcUDHbZVbOoiYJsUP)bx%;* z-IHo7#n~+vyM--cUe`TP+S}LDi?x$CiHx?6ruM#;4Q*k7f6xDMxM!0t)nis#Lf+nA zm4)0($#`RMHq2}?5*}W(J_P2R9zIz-=#NxO?u-rEoG-XEn}i&FTl{6Yu_Wq87P<&; zlDwWvw*)`dkVdea|xC<@@5^Vtn^`*8pQv6Rhy3hU;ODz%Gv;M65a`iN z7|>bjAT&-$zte!{bKf`|I@m1k^x>yJm#ug7^sF!Kxg<_1zv7C^FTb?x(#x*Ids$hT z`G3XSx$*d=b1%EpF~*xuc~?z+ZDB!9VnOic3E`u^3G;C$TtE`RsliN~&x*tBx8O*} zYBzYCOmFNRrS)#d;||F#vS*uH-ps<@2PeAUGzIsY^0;rFg8Sw??mMR7zT?5)_be?< zd8y)pf}58H1)E9=&YpQv(Kc8Tm*Je?bxc$2O>f5Dbk?ELY-aa3kT*#lkk8xf(A<6q z@}>mydGE}_yFG$;m&Yr{2@l3|Dtoc{t#VI?k_#gYY%BcsgFF{S;N+zot%KApODpjN zo+OoDiFe|?4$b*hFZiI~%HJUP-GZxp&Vy0Th~UcqHo*@HuKaHAiTj9K%_`K+?#`53 z#9H0f-ZIb?F1DVyOqZ)|-Lm2)EScUAy638F=iFJ+NZ21>CbRxc7a9_^G2>wh2{(%TN{}jRhwFvyt2szJ3@W%~q+oK8(FB3D%1&O@; zCGaDy4If#&SInC{d{E5WJp67kf6~K8#QYTxKPcv@>y&@mx+6ZJaa1zS6xIhUYY7im zohvTx+3xeTNcgnvkJ23zp1&&Ihgt7Xrr&-~);)DU$}GdrlDa>Z?#8KcKTMRfEFYMM z_iAAIbhk!v?}tm%kA9HW;73-LeM>sGvB!dV_ubzBEMNYWuo41|xc@o5P2Fq$<@1|P z8YDm!5)amU%p>1@lq zynHSqlq^OojvtH4(atN?G}kunXgb#GA&WZJ8c)ZPCErdTOOgj-W)#od1w<7Jh!cNPjPkz{zWMB8}U8!5i=-seJY?$v;RCk69AYd!u!F~8W_@=t5L!UEUF!vfqT2Gw zx{qqh)&23dfW!N*1&=?ZCNI7nRv8`21CC4sJ47i+R|om z%lxBTbilEz1W^Q*|z-BvUyW( z%MY^B5=yvd*p|Dizj?jv7{K%|aRcwx|A#kRuy7VGT;Sao`)I_KJ-Djpb9fDJUD;8X zdc`PAL3KJV*X)FMAn;}e-ir2K*g1yEukZ>8+;D)~A;TN!^56D09xdO;J9C~2C8QsM z)5+iZCeEI|9{z4?Pj5WON#P|lxQpiLTA57yL0v_0_aL0C;7iu`?a1s5jBn5wQ&1vmM^$8penIQLuR!--Lc zD3Om&dG3hdce;i9n2c^g^Tg2)Zt{)VL%a+lBe~7O8Td_Nzpea#=3zZ6SLlLgeyYs6+ zcA??MB}@Id8f+QvyMC%YT@^O@>4$M|<#o8H4R_i7OF?`3LM2m-u~uZaKYy9lDn%aAT-plcJmDvOY+iCUJ{4&IWq9IY})Liw_|!AuM-j8+_#I@ z_pRpDQ<~1DBsGN7lAL1z*{5m#|(Zl{LpxP*Wgy?`-#DA zcxE!-pb6m@d_wpm@I?`L+({4R3yVWoUP#3F8%L7Fa8 z)irr8b3W2!Ry)>Tte8YKQ8<{a`zT#g-5;;6`MF7kKT6lUTilmrV-&vlmGBzCOcUR` z0|E?&&a(e~_mR3LKQfT|KUH0`Su*5!bKvj6@3kJL3K{91pi0N*`_`TN@5 z(bSCvgVZ;VwZ7=G^71LKFWO-eJ>de9z&yaI!ReR{C@iPURDiJ7AM z^Z^N9=JXHquF|ayM`Al?ZGK|lC&}T9;V3A7V(biehv(3P1-RGt)a1~w=fyUE3O4R$ z=kS7RsJ~AQ4>2Kd`WX$Jbq*s|2=&j{y7jbL5ph|mp3(3F07%U zVQJ0Etf97U>9VXYbQ(vua)DXH6lXIgs%bZ7ITIM`bgLSmbI;yX!UEZVu zmewsyW=$&^vN(oDm#o4eh7ug-O;xgTX*ND;a5nXIi*qqmgR@z+WGSN)rhyt3)GW+O z4r&%x=M1z__s%A3aG_RD!%&L}p;lZ%t;WSQt8&un7B9>3(U28gT~nX4p@HehKnFC8 zW78M}RrO1oYL-xC1cip$oI#T6#_gE^z{Snl&uLDWJ6~n}!9}P^)Ff*;qqu zQcTXq8frD#&c+&&>Je>{>X9?lCM)Y1@X$sKD=X{ks&R?&5~|{o^-Joi5DQnrs*<50 z&-^q$sW^To;P;1`n|?E71zp7@>}Iep!yoBpR@mNnb9Hf|@F{yW4DO{l8d1bl`XAGr#RVAKPRjDB5&-!VV&US5cNWKd{A{E1;qQpRH$~vC&ysEI zS_8Zew4vj{wy!^&sJ76=(P%f9tt@M9at;GIMp6$L#krfkSdH(F8HH8rhTe%sQ6hXK zw%sHqFUyqn0bJuD*og*j!#jz*MffSduA3un`x4r>^X2Q3VDj5O#$U6bfQVavdG`s4 zI7^!P8^=3|^7&J$kQc=hYBBXa5k27si9hXiZ1+g|Xf*w@8r4Tgu)_%&asR`#r6}et zX;%1%+yn7~=dZ9keOTZ5jOrsy*1h%-Y#uxL0@(V2c-&d${>{THgIbn@+}jUXpg_m! zV=MqqzNj7+_fClU=ku~XXHxs&SNDFnH2qcN+wnq~zWX^+MRq8oJbm~4ZW+{s*k>QY zsQ&ZY;`giWHUIPZO&Qz7|F}eWCNM(2d&>0thk$~+`H_Rt;UoLsPrs->Mwxh&%DN0+ zeD~~Q^kXlRPM#mDk5N8%?v%%~J51&zTrhO*ye|EV70L8t%W|E8CsG$Chi*v(sSB^! z@`IEcs;*3*K0CSPxztG*x1OF}5nyh+B)!*Z-uH0ua_rze9I+jHI*&Twd}IE`@nia1 zod8BhlO4z8x2ofq4Rq<+{@fkZsq9oU1}~37%!8@4`P~0v+i>SMFqXj*{3cK?Q!$Cl z%niryn*8xSambDriRr}OvD%Oq+c=V@C)0rBr)g9hu}3~8tqa&*6Y{_D^9A?6^KHQM zk%-M&MYR!=b+2tiSyp2BqVA7X$49Mo{)8t_jehvAhDE+Qeup^l!=>q`^48#mGEFt& zto92-Ql9$o-A9ch9gu+9{G(fSuXsMc=~rCbZxWCB(KC;I_fd8HUE=-%ajy@7)#!9l zzwFTRurPLIIl~v36GOqEY%M%=9GIRG`;2nDy>x(ky($&~M%J_~5;^f{g{)4QX zFwU9f)+2FZlrwSD!?`p!*EsO=>|C0gXUsbfMh~Of5KZgJwjpdkv<>N_U^l0=7SmXZ zX7B>|(*eyV4)VW?5FP)Y{!gVXVHve;i3(bTLkyzzdM5elLoi`#tm-kwStwL}*dyJp12Izo>qd?oXObn~N(^ z`n1tKX20t4E2iA9I$$y<;bIcDxfAzxH;&R;+gmQUvCZW8HnQ=L-UhOb(>CyR44CY# zCO(&DP)YbW>VM|hRNB6o;J0m`^BWj7ihTZ+M&RV794*6Hw^X!Trklo$=3ZWMgq5!2 zmb6anjj=3~n5}GIw9R3_2oTk_ zs6L$(zNxk?gX*F8^y`+Wwq>&JquLgAf4ptW`@L|h(GP!A+j5sU$d)THYu&E$*5HLQ zZP}#V9{vMq`iG`m+o0yCwk06~)&HrsExIOqhj=vAwq=(j)LS&5^7PX$s%`0&@K2^~ z!L?!9v`nTyhqFjXlRtMv_i-}{2^Wu}_2=e{l11B>|GfSjmy2qDjx{6Z>5txxb9HDO zjO4asftp8ujDFnf;n%T<{!gVXW7)KA*?(0(E*m$teJqrw>C1by-G9@5+(#q>`H9*# zIBszHd>xYT@If)Z*xK5^(|E~qvTf}SNi3~vr`p#3$n#f?`W>q|s;!-@`>3{7-5+mT z`+^40d-~yzYHM8s3b)$UshA>tk>?sbDbtosTIt@>1{w_c?xWh;hTpRvHz*N3-hN!8 zMCf??af1^6W45)ao0?j>x(7B$YkRDI++~;`n`&FT)g*et7}?}*AYug96w*jahCWuSsjNm#`V){x&LC7+j3Eb zeHToaS@ABbI%JdgHZeoaLerCH@K+12b+k(#U>sK|esEdGIOVr}bPP!p>|iJkNpQ4aT*YHZYE^X<2WLyncFlvTj)*7eecT zvG7Lf@Q63Lnb_S8&B2`I*EZBNRn{+FaSfv3h;tkyet#^dI)1}B5t5Iu3So!O#Jlp} zY;cw>#lK{5%fDLE)t5gcIGal5qslqo@E03g#G{OaYhB_3B;-k)vb4M(I0LY)yc-gZ!`s1b3n}pC+<#4eMJ~b%WlmE-o|AQd1^6k`cYi=U8Wef@i0g|y*@xh_nGmx+bdA>z0T_QK zi68%3VDw7MGhQ7vOW{9OA7lx*{WPI~e*5t_iQzw=m-`G)!p~>lB!C|-4Zn)qh!@KA z-D@B4urkWich7b!U-~sNP#~LrI_5`Q%TGSPX}?`E^e%}o>sr>^>c6^=TE9^t<@fUx zX2?%Jw%2~yaqQyJ?Zz!%efME=*xS+aV(o*R@}JxXslKjY`oMFh6LLm&kGJ+!Uh0E* zg)++cQXk}{J_u^8gj8BDvOWka-9P<4NJFwxKhKx?AYn?Vj?ZFAy(2E=vr!UCan<>o zJzU*y@^CQ*ae1L^tJl2L2MI4r`Ga0`f;47&GtXY?gCG$M9blq>2HpSMzj*G|y}i^2 zd8rTb`}RTFa?>EkTyt>wWtUEQJzEJoNKaQc)Cg8!p*_3W9We}yen<4-pjSc!nm8Mh{XA?8JT5&ruz zje}{OjX0X1_aLW9GIc=b&Q90Q21gR_R~L=~*VW|_^|Ivib!8Lu0E9_yJFJ1xjm6>S-LR|!sckaHI{!$A-XZz@P;F0}bmheQbT zC$$e-#|F+AJ6F#vWiDY73n8mIoXotFlWYV3A(@mDJV?1X?sWAHz%adK0^Gh0Th@My zxwfBkon>t2iI^fg&&^B4c2=RtJm}`fVmq%127eVFDB&Ii%$bQ9^IABSjq%*PZ=feE zOPP|f)0}&{r8Q#}+c_h)bHF*x%>VObde6N1Ur2oyUKO`*v;LIt!%Q4lYmOY+|H^$s z4-~Rcad(`}KPNX;7KUS5Ma_}avtwV(&AUOyS7RS|fG!L6t-c|>*ObqDsN8t+Dpysm ztV{o{az$PGm)S3~btMYLiPf>4?K8^{CDY%oAHH?(VHd%nu>yRd6Z+PBqZ z-cp_ZUNZgTx}l#Gjs86f;PA2|Lx&4fwdrpU{rbqjQ+2H?is~{ofs+xkCWqgIfCQt1 z;7&hKJ~H$|Vd`v#IQ*h2-&Wa_oyXhq#BHbLOh*^fNp^gf+o;upMQ1 zg^Sml(~k}PmhpmwkU?Ve1@LHW&h=uG%bzXJ-8MU!d3k;M$T8xRc~$EFj(u!fHh&~@ zX2o{ao|+5&*6P_Y7X$ZoJuz_B*z3dj(=crCX7ntC3w7K1$@IV1XRcy&n0ZgR(_Lnn zL=4?A>lO{(Iy)Ams*@Sy%EKi{lvIV*XA)-|2lxP{An-k-J}OLITvLvU=LQyW)ay?S z{2RPTeT?(A_30PN4XRRUf-e_K?26D#6X|mKX2Z*H@k=9 zbY!n(crn*6X^I@bwRl$bgGjqa+}u6OQN8dMk@pzHAWmgIo#Ljs5&!XmXTr#Na3xn( zVR)6|V&%#lu!{xPK9VbMz~&3SP2%9n5HR-LDSw;O*n+^74PZ<0D=^{FICCt4{Jqoh z0&@9`=NkNom&yEq%IO!pL^`o9oq>_^&DZ}K@O<<2R3E7P`t&{k`S1@%;Gc=WABe#3 zjljPdfjy^8rtEV@w+g@-H}tmjwFM1*Z8vuI z4D>hADp)(PVZ%+qVqE7MnycKh0O!gq3&=^~I)EC^=*v0)91^p3AkQH&x;|jsfil_4 z;PS2%aAFa0kk+*g{|)V=zr4t#UedW;eAe^4FDGwzwA#zGH@B0nPhj6bUo^{V2ch zz7H0xI}^$v&%0&vX}_46ep6YGF)AIEg!s?mNRjHlra#&IvIi)bLk~gU3m@74e)_Sk z%;$b)N{8`Z`h}$mXrvK@gbRl3?M)xHgHhYE zBNRBDG&9|uPMXBH9)>pA3$B%e>I+lzlj&db^o_Z7>Bn{y3^d}xfW{zo9!3F=dL?j z#_sOLi5?iSdj`Wjqf2l=2aIq?BM0e5=L4!^fX6;I%4jCjhbvbmPd*sNE42wjZTB@h z{O1UHUHa?Sq#p?x5$bm&Gi<+uvD15htII@wsC?k%fNcO>i6%?&!Nfl+|!Aow!mh3BcJacXVWZs=<` zXUYr)>N&S1e(LY8p3P5$!;7)a!+c?aV{jAsP?vsG4>n1!Z{*QdZ{=ZEZ%+;{pFLfU zpPdc=apvrF3{y65**EY;T(JPok<9TyvP(!48;)V&2CEO=k6R349~{|yKgtEl#LF?Xl0GrB zaAvv?XQ))biv*&RJ@*$0b;OMf6-DkG59^CK!o&LXX#4JtHCDk-)auVLx_!-B=j|nc z-g%z!i$r0cH-3Tfh8{it_A=%!4 z?TjTJf@8lJj;~M-=mGxo#y2<=ve}*wnw;UrOAeA3{~amp{+ZmJ;A1?{!|OrnYVVVZ)$Jp z>~j10r4b140B7HE{4W2_wyw2q#rlM;{#-xK`@!=I2-m8sIA_WRhc4Ywr>z5h{XKob zrx+&?^ON6}_GO+V2qI3kNbwUSU48!31ZQ%w=~4b}!_RM1@qaNm$NUt3qogR_|rcB^y4=15NAy< ziGC2(7ieH6fmD~H9>*+a*&wMdc0S&T`})*(J%8zjB*i8);QvMVQReZwXFWxkW%yZA z|Bt1Mb8m(pCd&EgB*T9-c&Rq~?1u&L!=>p*KS*ovqyN79Ig%hnUf_K9H^42wwFG{a z=7=u8NkG-Z)xG9lKELUtj6y*T;y=G})-S$$ezShw0SX4m4B8t$vj4s4xN)m|?zc<$ zwQW`bzI#^Zo!!~%xQ@9l;j$|$ro2CM4--!);hqV6M=|PlsX1=bB~x>hHdN70gSt5l zS7l+Mya9S>klm_@{g;j@w)5LbxBs%C{r=GzSo=Km>x)-o0`_D~yyi6Nb~lelJ-9CY z8(jT$`?Fi&L4D@NqWa8jb*~L{wnOVA{G?}?n!LiS9tLfMe z5s0F(XL9RKrdXbIp7M32Z|GXfP)(7vSo`196vafd|B>e{3EiJO2k;|B#erkj(=fZ{WfK>|DXs z?9va|rGhu(Npfk2XO%Na#qZw3e@th}SKUj~XO-Z0OWa%<0c#gr$8ptvz-VhkF`+?- zeTf3#aWOZ`^ENz7N`11z0@oJKMr+kYK3C;({zf}H*j2!B{isRK0 zty$;Cohhd?5~nQv4*9*36xZ*tA%wHIe$R~_-YjN)svP}}H+lSG%!Z3$ktjN=YGF`Z z+FZldoD|QK=%Gj~{WrAF#*sm%Jnq7aH*Y zBK#=xc-@!7EoHJ@v!wp}>7xGYvj&d%?)!g0!arz*;yvz}6EO1|=hM=tB-9Q8nSKn5 zpMEQV(SQ9e@am{p0(7iC@Y}$xaS^BP(eFn{EPdW?;LK`2yEch?KU^Aq5f|Kn7s~YA z>z&}UJP&>Mx5I6|^xMYHDafWDbscrDkwpb`lf+Yr{nzWb;?@Lnl6k5h;t zFFKKZ;0jUDw;8v5_1(KZaPN(C^+3R5&PQEYHswC>HuDiATzC?$4}6q9ZE3zf?TYe4 zyv2IXxcL&yu#8eBCQV%0V(B(snbd?_b%Q6>;INk++xc>?`OgH0svFQLeQntDwDw(2xNUpnf=FnezW+^^#l?iglg~XDlvGHWW83ElySzvs_~B zrE``0R>e5s!SGF`uf#%W`${g%z|IrA3{R4-FAdw2iG3pS2eF`x*(!FfCVuz@z&btaMs~uxnA*uySsbe*%vK!=-kvYr)auYu zZM6EKapLTr2U>9Q5#UcV>hXI@!~(q%iu{h(#WyYK#XVENK-SDy5niY_}U z{x?X3Sq|v8`mefhlrCE#<^Rv&#*&|Y9PjYUuHzT|ahr9Fci%mAS+mXbnDaSvFP-{b zMRz&PG7Lz}YF`mDCiav6rzbyH#`+^i*h;`=P4hQtF=>nb_j=OX$}W>H-tn`L$%G z#Lajds=gYEZ_)6w$A-T5+X37%&5dxm`G=ZW_moQLXFyG6ET+ZoEt&T?CVsNK0r!cy zbym6kj2%CVl`Jm8zm?->m>N05gp)yk7CUX`Z2W^B?SfQ~)m(MyM=;@3pZ+-}oUq+7 zfxU~leUO+K+Bh_N;n0EK&WE1-?EpLIF09%7Tx|1u5xy{qvH$VqPDh7bIN=0_)Y~g# zJ0Ct&y#Uet(Jn@Y+rvt*t-K#4Ibtep37Z1Y2~4gHre zMD#nxO-LoM&+|EMZ~Mg9z4YTW_yGhy417H7JLEQ_Az{|eX7ZdfyFGTv_ivnu|NA$7 z2>&12xUGC&&6Xdyi7S^yn7w*5H+vOEl`~h^bLI?=>FI0H8PI)l^~38ipSGIkq~0k> z6O5gmn{Pvk+)#kc#$bqTUI&MVsvD6!qrkCOGClV6@33ghIg~yRVso_lFqE&uEV8rQ zoLKDL>@l~F?{vg}`WtWmowK-g=>B-J z;AiRN^!C`CJ+92R$Idt9CzSJ3R-V&$xm=D=hdD-VAmS55E;3Lj%*e zAUS+B-jhXRpH%xLV!x{B>9-;N2vpJ7zrk`d!icQZzEtTO+8r>(f70EaP$x}MOf>rx z`%+prYF~$v%_Ie-(i1F@|S_s(HQ-_SHnObwt*h09pb zrQ!{iZ0own1L8V^kk{?At1XU0u5`bWGuG&l88m*JqD3=Dt$q=zqT*v z(j3@Xf+z4Kxpc;px}BQ`BM5S7if1K$#19e#xpc#GsWVB#@7}|II&ZdD+H|(LBo=xn zM{t)u&L)3f^A9y|#x}h~{IQSEN8lfi!2dP^|34A3W}DA{lFvp zxKu{a#T|dd! z38Lypl}Y=yJp@6-ZQqvd2Z=cKOXa^rzCq$KgZCNS^1n*TFZo%nRL%;)`Jj%j_zi}i z--65Nt?olt7hqCLdei&@T>U_ zyfFRvommF4xFqBvDZg46)2ERzp0FA%wb}K=19O;m$QCW|F!%^jcGIp z;}0pskQbfE`MDx`2GV*hG=*uU?|gDhqpxjU+os8$-+SqmmrnH#ks|FJz`q1N#ea8) zNcu1bB(S0rcUue<;;N5ae{%eo#myK6xVHoj?_>N&DMF4=YQ8U#L#8FuyE&dvbq|X> zcXilAFrb;M#y`_ft$v#E z$@VF6mzf)z(6JQ^Dqt5~Il9enM&y5B(g1Ppwa?Vb(sWek;^xNdEjD3zYUrwV%TJhCkAK`Oo#?v=7P-t8_va%vi0jl(Uw+ zpt<2Ah~ufcN*yuR-|af(!Q!IDGdL~yV7N~~_0oCd!4WV+g&oC3$p@Woxr-QxW%p>r zcuu8n$dAMJ4K?l;2p-3iKK5_4c*(_jmSmhsTO&S1!WZojMX>=hjI^*oFPUiI(A9C_8yev9htTA!u#s zLKjcBnf0};!+xUP08h6Pa@=A`fNh)FTHPiyH~%RjkOYC|KigT>8QQm4L`x8Hwylb{ z5(E*qeVTVTbRs{`kRg$uWn1O^H9?S%pC$R^y<{?i3#p^Q|840sw5ghiiDg;^F$89Yptqtj058T zVAiMbCGMHaVdl4-@bG4KEI`}BhpS82AM@j13yfZs37u+_h<%ek}Nu?s)vsVh#9?3`6ZTZ}v4BRh!6rgvQJWGQi W5tl`%zvOd2C;`1a%Nf4-?*BhKYa;Cc diff --git a/lib/libformt.so b/lib/libformt.so deleted file mode 120000 index 1b103d1..0000000 --- a/lib/libformt.so +++ /dev/null @@ -1 +0,0 @@ -libformt.so.6 \ No newline at end of file diff --git a/lib/libformt.so.6 b/lib/libformt.so.6 deleted file mode 120000 index 213a0f3..0000000 --- a/lib/libformt.so.6 +++ /dev/null @@ -1 +0,0 @@ -libformt.so.6.3 \ No newline at end of file diff --git a/lib/libformt.so.6.3 b/lib/libformt.so.6.3 deleted file mode 100755 index 0759e1c2af453d396eb497e0f84c3ae06d64f0d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88208 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

dK?5U(v-!iu@&|N*O8Trn@(RD$V!6^* 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 diff --git a/lib/libmenut.so b/lib/libmenut.so deleted file mode 120000 index fd18934..0000000 --- a/lib/libmenut.so +++ /dev/null @@ -1 +0,0 @@ -libmenut.so.6 \ No newline at end of file diff --git a/lib/libmenut.so.6 b/lib/libmenut.so.6 deleted file mode 120000 index af7ea10..0000000 --- a/lib/libmenut.so.6 +++ /dev/null @@ -1 +0,0 @@ -libmenut.so.6.3 \ No newline at end of file diff --git a/lib/libmenut.so.6.3 b/lib/libmenut.so.6.3 deleted file mode 100755 index 6d1d12c5d0e9b468b34f96389ac267baca1f1da2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46744 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 diff --git a/lib/libmenut_g.a b/lib/libmenut_g.a deleted file mode 100644 index cee616e9e76339861cec84df6c0f9ec3e27432c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414364 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

Jz)Q`rq(?+;y^8Ksck>T=t%<-jNoN2`$R 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ⅆ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 fl*Ve!|ami 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 T?xtg<&?S!T!G%ZC6PSRxBgyv;3>4Rr5 zDR!I&tLvkyxK>5C`iHeDYE^__k>dKQEGh~MT}3Th(XJ1ysO10s&iTGO-<-L(O-UXe1 zJKQ?>*bdM8Uw#yv@U-`T=4gw01%FM)?w@-Ff63$Lk9h@uCC7www|aloM^|~`x}}RN zVoPfV`udaojV;~D&bp1Q$=*~)Pxt)R&X)fE?v}1(-FlDcLda?>j+`B{*^4X6S_6r>q%_rXiIk2wZitru}aon-P_yQ(b|Fn#$s!F z`jTt=dIq}N`q|20y45YM>yA!0ud`)!vh#?ND%(0*I(yb8@&v}D4NyC=imSR4I7!rZ zcciRkxdiitV0p5ytE1Z#Cx~t~=sJ>}ZC28<*gVw;CIhvTBfFy9=h4E)!x}4J-_e&E zXzA>@DOuOyCAwP^8#gA_koGmL?a9`48fnc#x?0vHTl&@tQFn46?$3n%>&8)RH8Q7-H~iV0nl-B8m5xSR&=lH?%B|t zsOjnIYUvK9n@4o@-Rr3)+HCz>X|W1D(&l!p-_X%r*I^Xp=$Y5n*Rej?XPGL>SM(?Q zYLja^x|40D&6ZOipWUBK)rB=mUMrgcRJ(FkUvkZ?L}D$qN^i2Szo(lFOl?Z6FQ=j| zzb2$}70D(CN|&ckUaRwKHU^~{kB%D(p1(U zM__Abz)-0urwXM?ZW-uIRi{#Y9jgaYNgm5NisyH=^qN-auWM|~uYx?gDlvx5oEJpC zdUYN{tb#0Q8d$xuqr0tV1GVvN?lcwveQ=kkk(oHK!^AFLo9s^Zb+jhdU_!t=Sx2&# zUlT0s2x_>ZXIBLE%f!l#RC}Vvj9WHn`87u;g}S3tRm{&T1I_ZJ&(0Gl&p4#iZ~-b; z)GjphVyxb9<}~wMGnv;lE^cj#B_KB^cmC?0&bBpuxHg7R%yn{?H)Z<@>K|j6#4fK7 zh7~nk2V|z!)EaKeG0uwB!vIKAXge>j56@~kdZQS1<0AWuFEy4Vy9bWG)X1UATWaLy za@Se>-@MeAPuKj`6kQ`^hMLQB1gx!3CA;P!yQiBkg))O6x2C1D6U&c0D!&hb%Dt4U z{%^9eLcvMU3dIm$g<=TwBEqaAbM-(FOpyhOTM+79*`eo4HXK^=vRDwKzd`_`-x1`Z zFzywCQG4_if*~8n3c=9DsN73?5=&ZAt?lko!`HX8CzWVQb|za>Evq}tl8P#09BT*& z7~dsdW(jcQRdwDa)yU-qR8BMIELifIB6|f7YNUK}xstooe#3?JXJ1i87zN50nknTC zCkQHg_{za9gt};y=!Fl`dg0TN%3T;CZS$R;pSNy7b5zoD1f#*MM%)U^Yf-Zp0UOpX zF15230ogd#B02pa7NfOGqPHbQ1?a}5G0%eV>nije`ML^IrF#Q-ZVJ!s=s0pd z2?k@mgmFW@24( z)9Rjr}M%boZzF256nu zy*7|U?&q8$$nA>@SJX9LOm{=wiGI4r&g=ceb)@XMHJv@wP3!_Kw}Q!x4hq3C!*VLn zX^?5J0FK1i5pxZ%y)O>p3(Qf453$rQJwMmU6-_tCsm7L$K3fCs1XoG9repA9oLt`6 zoTUR@tCM|KtlSI)Zr{{Dd4c1Qv!DoKVl)9||%%x`b$PjvOr z2r#8occglTR`-}WaFf&DNI#M0)&y+&Z@31^bHK)ywivCeucBvL_KB$N3jPBu+^@G0 z(R`{WdsWPPy2AZDk7YayA!SDHdRS%nE7X_*O;f70Kc(fFk!8=zGD7lDUz8G$hn-7X z)_1J6mDJbQ!%rHuO)X?erOtRjQpU^JV^+of!>8r;)ij`73gdIRVd6MyB>GFz% z9`_e|c@+M*t80^47XIZgb%F0ObKX0~ zDw}%Nq!JBy6`7!}LC=p;u{pVze-&9e9%{P+9*W<@Sr>?SU{fJ4lPY}jdpz;K&;0}Kz6LWd!Q@9Z=A!*;om_72$)AN zzq?xamMS3Mzs(5BtEgMrl!#T>Ue?gEi5@M4b`ugbe&UXe@-Q?&?KnERc`DwLO4^#K z>##Qq0kUFqb4mN_KzgiK({T@=<@MtyZ3-Hdc5VtN2-^OyWFnfM>PU4a`||(kcs}HH3D*7${YL2ruEhRC|&Ld0NZYIj47k z9;6;q=bPW(xsIOB(91VoJ_K~o*{Po1aHD4T9w~R6*TMXTlE zMR~=X7=2G%UQQnv`+w)np^uAa$0{o18{^yS8Wv6{DDWf{cvpDYl%Sq>IFUWCGN)Bu zySLWRo=NFaI>2`p9kc0}!|8Jg)0o) zM(+AJQBY#TjQGe2piciP-g?SA;syUa_M@zb-GdW6Z%;OT$IFwcS#B@8<7G7RZOs=J zQZ#gUV&tuFArbMBS3y#|b>ds%1^dSKuh};8p3l5IHa7IqX_2@72T`&rU(vSRGjrwd zJ}x)CCvwIhL`uB-^||@GCp+oaIqB1#bcvHb(Mfwwy1+@FG*OtDN)+PP#HTy(gzTR(bKvZ6)!{fXG-Gfz46SlDD}N;XQTd`nLKp(q7A2}zcMsh6fay^lAavTOi=wX zo>^HGA6ZZoPcJG$jxWDVnVn|>ahNvT-T6d(F|(E*_G%;hE;nTyCmX%a{oRR`jk zdkYVNX!8rHs|Rnb^ir>nJUCDjPe03qdrkZh^>JbSB}=XI9;BaMKuUT1(n)mYr5>|L z`j=z-A`c!q_yt3`EpkScXRKK}Ha516?T2+MbJOw6?UjaOr16BImrmF)^$TZ4Nq*!b z-{~t!?>+D}q9$fL1;mFQDWW;RpAzC3V?lgqlxm#n^7f+m=CRbNekE)k9XP@8$haec z8%dzZYl^4;V9S+$_QB~?mQ}V!CBJ(4iY6}iwbUSm@yyMY@yxo$hRlvZqGncGSu|VR z@Q1On`uR@`6s@|U`g$7UUVJ-M>8f}p^;NGSy`MmuM6%Ye+2$Kc%q7Ge&uk<$RFJCn z`22kXMQl6O<0D0we>DC6mo$BEAbq&~%^O|gcaS_7Kh+q|?Uir8o{_gzudKeNdIhvl zMZ&ne2C+>W-#nT+!Bj8}45N7P=D3%7E!AfgTI@IsqDC4@H&@19#=6Zf+}0XNEl*d7R z1~d(s-CIcKSYtUQ(vPP1RF8c>{pjVmMn;A|ML9%9Rd8*5{(*tBNKwu(J+40Tk?;1M zd>~DN{rVs|WBY~wyc5kii`!u3`TEftWG&`J2rk^r#fWy>xnT zx9x93hkrA0pJmu?8B*U)KVzgmA16ASwUe{%m#hnoG@5^XBWd8*>#9l3CRWI4jDn^< z^QJ~)h;&C9sF{g-FwC-TwTI{rTtda8_Nt+X+ROI#`t%=pTBy(5Qd$|$cEh{=0Ml9z z#GX1>W9C1aUoVVj>M&h4^K=>6yp&og^0|SchkrVSjIq--+7neCAKFt;KmT8){z<&C zbN-W&yP8eo)|S%jGv`U4acKXPp~F)K-i@jJ238gKRsEVo4&GW+aO#V9{L~ve!@J{A ztV4Zfs-`zEPovNCZQ`-!9j^&rjl_dknHh`FbXQTmQ{|jZGY8KXWJIeK_&Op)v1uZE zGO{`2%cLUTQd%_ht*DW*B-2(}g&`-k1oDAizjlap718qeF{20dDvc!Ts5q`Y=|`Wx zk4C$xcTS&dItE>bIDLVWM&DEP2k$!Y#lut<|N25RTRi=zrZ|m*^snPX8;fXQ?4Y9T zrb@(mG@dzSPdxoFU4IJVLpK$91HTyAR1j|+i$DCcLQ}r_^dsi7(MT7j$5YL*QCm;- z=~E^W6HS+=&^2WlG6xPe6zq>@Zmo>(CD~MU=^Gj`HQIWL)1{l{(33$RGbCTE>B3@W zY?On}4}OX4dZ>sbJbx3FPF-#Yr_%g{`f&PtG^3=yS-reI{hJ3-6rR3m0=~VdjYh&* zWyXTKCu5_g7&P-08A6k)-O^v*kp3x6Y_(g~T^Zk7Q%TgeSNP*8T|?71MmLFn2v=5- zlP%w)@$^QzY+ozu6gLC3_PDVJcU%cvBqZV%TKn&&$ks4+58FQjU@N4vh(>3e*dHTF-mC`PEA8? z+0=o8`E~nly(J6eXFqZ44G)!*SX)0d#aDj;EfP;Zb7Nm-$rIJ4t5LOPR_vqBWT>va zt|8r8Ri8r*u#YQF$S=_d?DmGeaL4u$l&cXHIANznQ;;(#@t*? zgNuqD-haFg+w_#sw4?5See%I5714AAThwfNA%21vZHe~w_0V_DUC|4pYkPXyR&Pq? z)QRbPncMvpOlo3mbQR60_BI5g;8%84xuGaF8qeG$*UEuOW@SwM9pc8u3gjr6{Q|9C z9xj~pr$X<$g=HphVhME`qM1@m7q86)i=Qym2E|e^JNW#&pJyMONMem_x^kGbVGnbWu(I*`EemrB%vqC_?nFk-B<%?=T z7?%x$x7T~ANhZ4yLp_^g&;GOd{w6>pr?TG7NrBDh%)JES-~hU2?d1bmM6AC#7 z?;xL_sIYhOxt6yx0DB+++sByJ`&4Mm$3kmQN`zs-B9n{n4REU%=y61hY&f8NJ0t9^{lUel{`}6_>0uQnG!d;HJg~ z(}O0z9~7raKZ4z*KqyqwF%c)Lic6Lh7u6S&5s*F1vR{KdW8>AN)xJ~M!FhNN?=2`U z*@`mXSy){h9hx{WrFc4#FDNdmow~4iI?1C`B7@E+nGf$2P#4W)Z|&4tKmYI%^5+oC zbnc`E#rgvXaejpRk~K`dx(!ilZYF7ZjImom5?1e&=!3#g#*o z7Zq0(o=n&A%G%=c>f$mYAyQ(Yg49h#-RxjH+`5TV-UFOB0-aesbpd*6NzZENA=Qqa z>Z!21$QbK+KV?~W!R8Uzymex2aoL@)dFZ&p8%ahPbvWP3`l;1~P;>Z5eCh=x?^>4k z6*`A)+-}4=G;zX*{0gj_O4+FIIJXBLuNzj=ziUo7ZoyrJbt4n&woa-i^%oaRq4_C3 zbwbB1>N`>5!=oJpECvkUwBt&Kj=OWh)=481@1puCBm6nGr5=PvZY{>mqT*<`HKZD~ zZO0H+RtRR5LowQ*lrg;9vi&n@`jHv`+y+lmmQj-}tLdW?-s_jO8f8V_oWnf6&8U<+ z3%8;u7?HxIM;c_H}uAvk(yekkgBO5#)?Ay}4#EMWKf`u({#4lmz`ghyHa`z#zOX1aD`2Kg-dU6`CtVu3n@H zy-V^y%z4n;%wyZkk4#nQU7AP#X+xjIG4>=BdY8+oA0IIESsddVVFC@(0vZ>X7Z8Zd z1iYr4Kzc>4#Khkb%Ob(>M4Obb6D?w#;5k6CmQ(PAj-fi%+ zY=ZuZ{r899|6=g$I2AcB89X~4MGmf;Gu1d1e4fFxhcChb(_T z%a@tr-x-&6pWrVsUPb*8LF}1A6@_x`U>xgwgfj@A;azVN^mmlcVuT0Tzcd8DA_TuO z1ivl>ZwbNIh2VD(9#pRPFutGq9fDkE{~zNX)f0lb2ch_zA@WB<@UMs9-w(lmL^$l+ zMlpi9U!izvNI#hyg4c%NSB2nj3c))=@IJy}=O9n0UoqBt-iJfzcQSn=7M2unAB6CO z5c>Tg_)kLcUxeVl3Bf0k-9i2KogsKC1b=4;{*e&; z(}bgan@_OqRBt2iMBM zKEqq&)1S;|pEkI(QdZa3Lgf6?&|jG+=eT0XU+m*z^Xm-0#K$RV!bJvO>f_V-teSA) z^)u<@#t{5gBd5_PmFvZJgJ13ABL6c6m#eGi-?9AA;LG#q3nHEu_0jCfDTD{vIX?tn z5rVG|!QT;rd$Ss9%JC;=J`9(i@!>6vyF=!z&YsqmPTH}d#r|?WhxX{3U^?v1rjJ28 zKjm`FT^?U{)yl?zpW)2v=F~+*7laZM5?c) zBh^nEJ=0DyDcX;xrJpu7?V-0c>-46c*}e4hRP#gIrk=TLI`O+L z^8+!xizDqHwZ!fiZMOC?1SEN0B9UtE>)AlRpKD9Bw)Cg$FUxX%xSstreOJ%=B<+4i zyJ(}9f+tmP4fU;r-QX8g!Cw`GZtqK5m)H$l6WGDksF7dN`B#ha{SGXT&7-}+l2&+# zT={`_9;^K^n6vROP2_#FSpZ8kyUtSGwk0>pCRBg!ErCtlpmym(;#qy>huof@VL&Vq z+FBadb9sru6gQ_$Wunb#L;vS+y7&9PgVUh-0bGAO^&8t82D*Exb0*OAUOR0|9@0s| zw-Th@6!4?9fL}9a`v*4pr zNZlD#?z3U40g^zCBzn3%`ZZ`*%f?L{Q_l?AI4irAmHqW5Z8y9wv8JViM)`_v64^#u zhxZS3+0m$L;^@24xSP}k@4OZ~N64@HgLD73-?P6BHBVbjsmhL?ewxYqlXL26Jt;dJ zxVRnWiMIY8-qX-aBw9DNBxqZKjkF3iJr>=}Ou&90L@HtSufJ|-&d$=g6tbheb9u<$ z7Bgo$%Fou_Y#bZK1e0hXN7?wr%~m@lm^+lC>}P!qZC-?0+}N_ZV|^@kF`dJ^gt>^( zMPW@3ei5x@(jYZ*0joW-HJsg%b0G$~A=D)TlB>6ZZ0PR@RGq)?%U{8c*{0j|4)i4x z>{x+{M7NN+TWSUEzUk~)bEI8{j=Cq3-ebs-o4*?no*G=tj}GvN3hx~0mqjMr;oxnY z{;-2@s_3{Z$HoUg3CZBlKtTdlksR(?-EBV;m8FCoOnV;j0wB zS>bp)CGEZ%}wn zyDPj|(ci7`0fm2D;q40F$2j`Q9EJZ>(c@bmsfS7Qo(2K-YdL2qd;{eP{iTdUeucuX zSM->}guX}7&sO+mMX&97ufjJe`UjMpxeEVRMSqjRzdVH!6i}{P=n#7*(fbJm;A`m+ ze7eFr6dqN$?r*~izfIAtnkk&d{E)vP&lp~V&~5k{uYJ*igC0{i^6}W z=!X475#~A1C;NvZp+<#{za&|GjyuTCt9>(RpmEc<#$9KI5g5S+})Sy{> zAE!$lT^X(yR9e`_uVwnn9K3Z*UsdTm+FbYEt&vr}1W%GsyWuk2N&Hu#J2< zn7a|S*vQ9QIK9=ulbqh>;LBO>yBxfo@$C+dH5tO)HuCji4TP}6{LPjZYXyXRY~<5R zKi}!#cX0Y%2gfxGLE2O52iF*c`)%aQAK~6sMnd@XvC3zk`2))6Y5hmpOgF!R0qhd|Al5 zj)dXIvz&<(UrmS1=dX3-%WqiZJ6OCaZU zrsvxT(;uMn6sDuk08D^<^aZgK_woq1?!S)?!CwcE0^0rkbO?SHKnjq9u_O2e04YGu zWpoIRH8}$COX(2&3V;+K2YpcRI)D^Fuh${V4Vq7ndq4!x>vctkK`lMTqR7Wu8Ugf| z(;@hs04czpf1pEfta%VX|3Nwg|1dxbuAEO=I8Tm@Q_#PG4w18m>4Bq81eb9Kdv+*X zkE1Bz(r@V0gaZ02eGfp1L9_Fi^h4<-y1nlzCyNj1fR(3csJv5tWDFTK;DgeN@r^XXIBZIoh785M0~y|Ck1mt{)luz^CI6 z1=Pd!=FI-la^zZs94$w#Il#4?E&v>&97BFLpCi)s+^BF}&!1Dcu7}Snyo%2uf49Qp z3YTjyAkhW-k1!3QYxx}bhxi;(GoJ&OYbl_1g)ifCM7;`6DSV^C=P7(p;TJ1>i^8Ss zfVL@oKA$7nuJB6~zC+lKgR*H^BL2$W0s&sJq-B5#rdxe(2*}>&^Ln(#J8Vnp; z6n?T5VgAZ}t=JP~`EuVZxcm-rpOS;TQKo-R;nS6TQ&38a9QnN=w$Vfod_T*%K;g31 z0$r2BR|4SBu5g@2xiiY|wt&4}h$-IU&^I%^+>as~#~|ZRJM{Y*|D%J;?@dnUa)=!H zy~%P1m*1P*pm5m9;=Owm4q5Vh4XJODFN0|sGYT%hr?}q1<@XC)9bA5=@NR{}o+3IB z9#MGIAokBU6%P8-Iq!hNVUv7Uf663FAa=_4^JNY$->c(yZU~^CY0m7QB?^b$QqJ3` z@F-!gV*Cz;gT8|C?Fv7eF+}$&{2YakD!feL-mLyjUF0#9;#8lF+vTh;+1WA+&P%*m zZ7uZq$*k4nYim|t4-&KRay7(Ti2ghiVq>#n#3sVV%jp@_pbk-EK0C@Wr(A7X<$tj{ z9&3)usEi4uwYH$HOz}co@c1Pf*O#S7qsBK&Yx}Sp6!!l=GIe&Z{3Fwa?3iy`&$hhN zlp){V;zP;YHVOKCe*U}wqw3OxG(p(8$U!=cbm181#mZA~OMwkCVw0+Tk<($)@i zcXq5xc5c!bZAIUg8t7#R-%!y9EPX9GH25G&e^inCB}%TnIfVINoE(8T_v@1E0MK8A z$T#k6t{Jg30*RRVr~XDn5z4sMa{Nz7tUcj!6rqx%DY{H{y;ofnK3_wNbN3kugjBI4Swkl& zeLfw0Irrl*{s!ik^)dL*JqCWcAJF<|9Rq)RfPOqf8n68unP1jDus?PT{DT4fSZj<| z|CRuLJS!Y8|F!^r+>?!$U+$xH`R5)3{|?r#+pqB$`0owiUw#byy94+?bPW8D1n__4 z82I-E@PG6e_@8EeUH^FQH{SMpE$E*KvfPOru8ZZAuzK_)9N1qrk zzwG&@`yZZfjhBCVfc{;_z#nCPtsl=N$E*K>0R5jn27Y;usrBQz<#_d11=#<0$G|Vo zE3|%m?=W8d*9Pdn_89ov0{Ah9k5_+h06(5LxcpJVK&qc{QPLY^{@>|`O@x;qQ-#y$ z95SmEhSMUve4((BABMqpeIGvEj zktg{334<-J{vE7e>?9HsT>Ybj29^Iq%rE`la%amea{s{muKr!)EdPtdA5{MB0p-W@ z3%C6Et^u~V`bWoEevI=V{(a2v_A9skx0&%1cEw!R7y22*25! zk2sFT59dnsKd=6xtmtU`=TpB0zteraGUoreu{!%l<{v@MCdQ!oV;8somPwWp{r@65 z#2)GYm8{=w|0q|ye&!BIZvD*`{Z0WY8$g|XUj+S_D_s38A^OY5ssH*A{fz- z-^u#j`RfwaFW)r~s|jc;1c~1lVt+I9W6svWtv~GB7Bqg_+5U27M*ZP^l578Hi2gy= zf3{Xm=dS)Qh3MZNpuaLe|6$foQBL?6>(}q7Kp^!d#1WbxfE_0Q$NQNd_iQ@2dZrM6 zQ2&37?Qdpg)Ze9axb=5ti2jn3ETgQ$SxjF2y*@;L*%HffmIk^k52KMO>^!(Ykzb^omn z(BB)PKRQnR>q7Lm2k5T}(EouD{Z-@Czdc0%_5l5L0s0?i{n&p}hi2B#k)P$(|4*2| z(Ba?6j4r*jzX;qPV*g_S_Q#1y_@)0GPlFHr$F+akIPJfX`Ca>Wj??}!;y2^pDgWUB z`xgh;e|3ocyIH?}CyY9i^5Yz#H^lzOm|yD2Qs?up3$eef(Q=^95iow2(jodq?%PA` z-_QDA17;Q6{_yz_`wx%P{!fS4-y2~6)ntcj|Fa?XM|t8oQ`wHwsFTKindpCR|A{ld z)RVA@en}S-KbhcFIsIpMfc<#>B>W;5`)mg3Z)W|KqKISR7kE*Ke)Dl95j8VmlHzOV z5Ps3WDMbHv)*okniG*L$sSy3mXe)oe=|B81*rzYXMq+$;yKK3(d^%+^XIX;WyvpGh;iSaqUm#gG+d<%zr3dqNL{xUwt+8WpubYPu}^D2(3 zDPF+mH5}JcT*v1NDPF|qaf<8t{7Q+4M*|;eaFlAbw+CA?Wf-H@-m#g>5iA1D2{B#(^2bz8NT$` zH}t-I-_Wo#&o{L1GjO--V;Bzsl#k!t$LFTShn&Q_vFOwEgHF1@Nn@mG`XVQNhm)S@ zq+OrK*oacgbA33wKA)#K^i!Sm6r}g~K2394mwXbs>E}_s%5CBQG@r(=+#fFd>qR!- zjow9$A8$K=iU3y64n}bfueXnw9QZ1HJ5d;~x0l8o)ihd1w?Du2IgBTAOuN@tVNRBi_fB$M%buRK>sr$$ELYr5y8Z!gu6(|ZHibx& zTgPV){EQrNvQNOH`M6~taMnNLNaM7jm!^>q=+~7{*{u&~Bk(;W(E83?mFt9?YRFv7 z;^X!Kec%&+(mp?5tN58hn)rY3THAm{Mo0_gbgwH`#__?q&lWyvXK8Ykk6JL|0V z!vqiB>^f_O%TI16a+Fw=_0u{;pVssPk7M#_O>TCx^nV7Q)+BEnKCRVkLq2|w&FA;!tl~&MzjOLa^~(D6nC~`w z=;zaY2k02lx6@=TD^VuWy|=OrC0SF}D5Xjz8c66B)jR)Eeo7yI|e?Lj$LqZu@+z=_s7H z)8?g~OaH=%HFJi!u3O$6od1aApJljdVPW&PbN)S&KPj8fuCaF(M25dlWGG&JCXw&x z`Sd+BliJ}3+6>XcNiQ6}mXJ~DuaYXN)~ewbBEuh}c?W__QP4ooSjoQ2%E<8d41&rx z-ldr~{cvn_=-&!br-hnf{7oCjjn+3fh9H-7q@|!Qsc>(ykMi8$8$N! z<#bVe{`I9r1CKmkM75cIlrj&T^?T}R6rVtGPX8ql;uaYWk;yS~WOy5yxtn^|EAWZj z_zHX?pJZAi=OQLvkk@R359F_l59EU*+y3%Cj}ufA|9w7>(e?9u9$z9pkEx>@x5q)= zjXw>}T<^xzAN{csE&|>^7EjJo4H9>^+R(nVd-?6LYObv%P6nZP|$BbiFYE-$=~J( ze3fp6PuM#rl5^9cNsEfhCp>5!m6C--LGDx=rkZEub7+D?Fz>sRuUXvYHgaAC2uvQl z-`cX@4U7W5tuT5WAGTXV z2z+7wdgH|R4d(j{%1-*;KA|qmXKrnAW8urezHApw#dG87rh#}Lf;z|d>^9#YYt2-m zh0PnezF(3)73h0*hVebSaO#9E@jWZQ#l^*D?o(rqC%=0}PrR;r7Yud#0 zzg5O-aSi)gM!)$D)8HFD+efc6eH8sn-eH`AJoXzazH2pB$%9%jkOzg2nED9w8EZyR z9$TU3ehFns3jJStW?Ag;=NBkh*qnv?q>Vb1G7p}ShXW||W`^KrhTx?kxOqg8msjX} z;LFVl@@)%>ARo5qhZB@9TzQpqk-=Z%`|!5)MUUecKg59G1e5&p5#@y--?rO{Y650L z?*B5^|1;xwY>r^&dy0QyQm`sF{F;)GvxDi){LdtXd2bwP?j?gkFXJbd-psx^3NB&# zLp(tkU1&z^ll5;yddAR zUp4}{a&XAGVlFS5QljtFKdpU`A`hEyL#<)9wC$Hi|Xe5M*-vR>LkxY)=hnP{7#=NG($2>mBn zK6PFbWZZo(M2__tn?FtqiP6-XBL{PS5Wbl3AUl_Z;O!xJUkLt*5d3o?_^WB+3$h1$ zB?sYQK4bqx^fT2wW7e8fv(sr}2$FLq;i#Wct~abD5h@9vF~MA^O=v zfTybpxP|3nD>S(bx-iXd{n%J_c9&6=L_{}3YQhavb+LhxUP;J**S zv3GV*{g;H`rxA|&+(9wICvD`_htR`kEa)3~g2(k6;r0;vJ45hH2>z}R{Cy$#{|mvt z5Q6Uw!M_`V|2PB>^D+B}5c)!@ub_6B8iJo2f?pDX*As5qWtwddnb|jm(EkI|?_hcv zN24M1-wDB=55Ws?z2j?+waET04!I7VM)*v%{xtV%#4NT=jt@IaLwr4OBKcK`D&OFPzjhHs+Oo_39(| z`Rtn2n(yZ`e19a@k*CpVw!G=+>HhC>hwPqin;ZJ>Cxsa&H{coZ?v7l)o!2hP99f$u-Ll>jUTH2FX(voUzuj_#2 zxs!oWy0j;iXi9b_Tg?_yMD~BdLno@o49O#H76f- zePi-6*r3qS@2d=@fWpvBQ5;SXR3m>TPnxDWeRr8AW!!4|?Y6crxk=oacA@o+pK9v} z6=~y%GGWslsV1ZS5ae+@$G4Zm^1b?iY)DE)DWz1=^V&) zQn`f4D!W>G>(Ob0uHDo$u8U8@gJls;f_PT1&hzkT%*lHAL^7d0d>X*ionN!229V+k zBF~F{%I3Agzo(JxGr_;-f1OLuC1m!W%cW<|_>IL-g5H)C6|B1sevADQF^D1J`l)<{ z{wv*SCU-|aO=vCn2gH+5s>K&2<17>Uc7A zb}^EVn47EN2reeG{wmRttjW3>ERs|C1pRgUdtAhKg1GgL&>?&Df84>_IQ<&FN5^A4 z{62vs6uw{4FH!if6ke%t?6H7=axJApsPHz0%Qpb9=R$>R-;CZD5d18D{tNk<{&Iz{Q}XK+-l_1-3fFRWC|t|gscwfYLh2yE3$hn-JOCv!3o9PgInZmXG*C|}v-=Xk6CFi{g?^pOv zg{Kt0N8#F@A1GYg^KS~*_MAn}brDc5J+7}-I6eTD@@gND8x(%l6iQHl96fJTC|r;0 zVTErZ9+Ce}h2Ny``xL%j;h$Cb%?kg9!f#Rd&lG;E!hgm1d4#nq{CA4}Hib`^N(l;} z@1R5MpUgPw;dX_er08!{_-hpXpu%S=`Ywf^qv-EYc%{PMqVOdOA5!?c6+W!+kA&d6 z6~0-~KN^BRsc>EYFDv{`B}aT-qTcj8ADc!11>kR`L+bekg}+VVA6NKRg@2gN5ik$n z8MDYK06+oq^>}}`x{lzTn9%=N;rhBc1OXHfY5ao#54t|td{Yk)DfVa_Q-$D|GZEZ!$@^H~Tj&sa&?3MN979M@;NtqYd{fHP zl8>WLAh7v9{&oxd?;=G0jslx;3g-)s?}QMh+sK!5fYYZt_y;*1b@2V1E_LvK>?t%L97blkze&gljR z|2C(w#zPQ$L_Yc$g5dYF{nuL9$DiW#^$z|lr<)zTm*uoM_!Eq`J2-s=W<2rtq!sYuTh{fC^a?Yf41js>K2o4MZ z-AQ3b^M$PbhA0Y#|g$lQ!2bd%VLG3{o;L|dag@)2m-9IyE&u%r z*YaBwuH~;*c$Ci}Kc;Xk{~r{t6<(q69SZMO_)djiqVQb`ze3@=6@IzGM-_gV!sQh8zd{leNBJDni_C$5 zr0l?Djs-652wdhO;Me011>iFGA}#d~d^{p!R7nVUI#DdPPa+nkS~34o5FG0%NcS#1cqZ9<6^JiyBL2O00qJKF&@RmUg6@i ztIEOUJIZDUkMiKa9-msyAmdUWqIW;zr?Y;+<$FVUt|+*CSGYpaqkf94I&WCv=(jRf zM-&eF)0uv!!l9#)2iX%2F5kf&R=8fDXy0rzST-WQNDf4dkg?MU=l*I+s2bv$G|V^Y+e8HW8lAs^=p3Ir;WG#y8`(C?ilzV2;j$k<#_c!#{9bd@cd%D{QCm* zqfW=m|8#(UJP#Q!|8oKQ-+v7JhXVBDIm&qT9}duu=Mv-PpUC$ay8o;?27b9O)BMfH zz<+vx{)S`Vm*>A)KklR4@<$1SDp{A)sR>oA|63w}@e+KTl^m%;`|Yw!X%dCC!`&nPL1~44=hK;~5q({R{-eqF>+30~daY zyBN#!J;U}(dBKa|)?Yherv7l_p+XTqOp$s*{ox)-6=&ho!V{6Xc929!Tav~Ky)&x6X}IL`8i`F?6eIO{LW_tTDX>i@meAJwf6pJslHZylU&>ivfJgT{X)w_iCkqyL^m zhuePG4jJv|%H7BMcQL<2(4_<38wTlbXZ=xTfPSpsT>Y-Z zxFy8?QRaWWCG-Ef^@sgdP5V)-!|nw(rTY)gUHd=4`W<%f8P;E_h0?j$E%5!!?_U4J zcN+Sv4zB&5B>tfOcVL0#+Q`gk|Jii7_U|Qrbai*0sbob$&tiOj!M_rszq!V8=>CWI z0>URa_H#m=xc$G1_3LNBkm#2GUqnB}I&5V92DsV{y&E3-x;8P zet>@L`w^snaGd(jCH|oP`(%LrO9S*TWBu5MUWXm5|0E64Im13W!2GW7nB7e1(o6k| zfZh=Mi)t-JITND&Fr^B=^dCG|M*X?=?_CAsL`-_O5{^$Ab84R!=kZV8og9*|v zz6Z<1P>zLP;0uVK{^#j`49X}po4^~c zIz+$t4t>@&Ahb0^t1w{m(1^7S>hKc1wrB;F~3E#e_P#&hqHuFD1Sx#c+cugUtT-& zyLO5F!as$c|3Rk9zn%Hxl&^!!KZ){9{b?dP-_P|oh)fEozpLpGeyP78-Jsu(n^g+p z19&-|<6hO}$L%dmA$j3iUO2QnH;``qVVDH*H>0sBoaU6@<+r|bHjLkQPDOdeoG8Nh zedj!efzP4J#8tG@!eyr2(7&)ofL*Vm1J#DQMf%ko<9#o#1Hf=Uf%{mTzm5*94{?s_ zLR>}%*6BDuk7KNxFW_^mVQ2CAMHHidfp#_>{K$dMY*=Bo1*aXPf1UM`kb#l3jrz4k z@u9Dj?5!%Hovdjq>yiTo&X`XX;v-loc@`4K5eMR#dkYVNm;81t8N9X9OPvvUaG(a; zU>jcc@9_|bPiXIYvsZrl z515?d88zi>ej)Pihc`bJdG}X_zmu9s`it3XjFhLt3do z*1Ic}10W!vy@<> zKhD4hBg6QnXh~*(&=(`aKc;cfFrU0p6dUw5LdPP*qXzv$WcVXSWcyJ$| z|1Xi@AK@f(C81wS-4>t!^~mr(Fl4HUdo>E_(8+Dk!Z$J@%Vg_buYNm&tOWN zj>(bSX^`iQc>1!^1E-Z<|>m|Pl*>Jn_p)VU6gnsviT+Q{jns|R!XVoBAdSp zPav5tlJG*RG(P`eWb@|;;r21!38*E?&~4b;2$JNhAPa0;v(5V2GVQW=QItyHL0l}J zK4?VKh2@82!Qjm$9`yjsa8x6cOyBh#s1U=zx4F@&f11UD>4w%n6B9R0r;?`5jb|26 zt&XOm@l3odK7Y@^)Pr5dr_lU8sY~POuh8X*3N$+KOQZ5kQ90E}F<2zd*UzEz3R2TI zz8)?Zs;EV4%Hrt-We4|K9}tFq6^)nlv-(oHYEL|UW%S^Oecxm-)LNK+_CZ{H9A8dN z@yzQ`E15zv>Lf1RV5K)uytj}lW{iAO86Pf2#_;GsWN#t$MGr;|g3sW4&7B!pvu2yf z8@$v@6%t}~+e&-1uwbZiEH%wwY{y;*u~H8HjQG_m!c=s8$SXkIlWb#$)c=~uFGs0p z@x6LjJpI*!&jidrFw{&yx3SACYP9sD*0@Yv*{>r#btJf^Eb_U! zlE{fQ)3?-=SRGHojaBwyN%I-oTYU}6QI~#{e6yv$iPBduuTDR)B5ez1YQYqm3RWP6 z@k>&h{*T)9zt^UJDvPId4R!p{)JdjPc0BR*)#+a@!M5s^Fofp7^tY;4)TO^!y}Zs` zzomj{dN37So4KX5(P^y$r?qI>v3;X@aI7U&M;^P1GO5yOb?F1O>3^$D|H@Vv+qy8G zsf$u;P{rLqF^!I)N3`o9na4>8SM;q#)#pB9&a2P;>cJ0jf3oXPDwoMQ_;G!;q57^i z9mZB}oNL!KrF0wAZV|edao5IuFQ?mx1+<8X4F3j{g4B+*zw9SW_D^*7NTbQEHgnw< zFzjm6zp#a|l@J*oG4xJF?5&9s?9~lFH(>gaoe^oo()G&r!&{5$VqdF^jo#?Rz7~5t z_Tr7+jdl#e8mh>s(SlW1i*Fz1E|XbgOo_c{#oB(7UC-s#=kp1gLok0;f0^d)vFD3T zlI-}RNn-YoJ$~?G*)IN{8J|2fF=l*w*mq&J$r>_c@sUOvzvlW52Z5Kx(|6qzL`S29fjrbe>)m}7Vu3*t2oA1G4x zt!OfLPPFt_cMviw4OLD^T@f4o;$%{^hOWoQt)U?@ar0BD8IjLZ3fJJG>^(yriKh`@ z+ZhBC5B@7%AO2)}%*b+L7)g~*j68H$T6f@n8bow^V%9~tS1LL9VUw4wKOVlYWSZ%R zd_6FQ#C&asH}WUKk16AR{k!>*haQbQ^t;GIFQva?NLQr4Yioc^V3~L6t zo~3ERF&UV7NZkBAx8Ha0OR7GoCq4A{G!_jJ){U|fDIyV7razd1nchLaXRaCO>reKt zq|I}BHlV+Zn2BQ#XOpj@+>kz$i#&)MeI?LePcvI+I@~qT@}8b(S4;P%C~ZVTM)gPA zXj{L&o=wR%ucoEDyC)TG?dc|Dpf$xL`8aI_Wx0`cPAW?K*$`J}PhYgRrK68Q+8;)P z>}Y7(MN|V-lX|@s6S5A5X#O>;6Wbw};^R#!`#Xbzo0fS68%qjKn>M*<8xfaKKAsUF6xqmNSRx{bJkZf} zZ9*Z(z^>(Ud3Oq|lQGc^Y%lQ*Rfi*_@YM5^zJiCM}gny)CB2MDPB|{S?tfP)n zH}x9&yI^V~yHYWAB|dV@V`x)XSNk?qa%W!xIVP`}SQi-q@u>}lE=pO=On13YN3M8C z(RK89;Z!^RhMC6vCWkuHa^gl?-K}|zttlfHeR?toNj}Q_ z9MdlFX-)s9vD0gM2ih`DdDBd#*x#gj^~EK3O{g!PK2lg;9Njvxwz%xhNz_6^$4#gr z&q?G<$#11aQ=4)D$hwwgeFr*Czo4eNtFR9Jq7MC{7X5-+eQ5Hc;>HPGQ;I98r#S5& zpK9h2@sYEJ``8GYeJjS_ov_RLbGpx3<@o1cWp3$LOiCdZN@PuC(JH_Ea(5deB{s z`eR>IBCwnR9ajtTf0hWn10*9p6Z@g3YoW-cb| zt#o+a8Ol430nDF5UwRhXYEIAa=4K&t_729)eCp&C(r(~xK>sgLzkWs^Lcs62Cn$R9 z=btyZXZXJXHc9&P0OPj`pyI;ZU!j?thw1MGg`2)g*i&?%KI4WeyFNm)P}#}Z-oKj@ zo>T;+7~ee4RQ*uOb&kQMG+Fu8A^0kTzuK3~mjG|Q!L$8P)@QQj^BMSLyP?naPg#R} zk#Ni%ZrE$+@rKa`p?@xf{slvy?axAgJXKAQ{0QMEnXk31e6t>;Q~2!*qQ4{rZzOz% z*&WTwk^a9nguXijhi|wby_nyF@CQQhY19xw^#2?}e=r0uq=rWQ?6Sr3KFje8!h__W z7lL2Pa(bzK5FWLWwNe)U&Ji6ly=yA9x;E$n`lV1Yb^g zP`k7;ee?t?K(6R_gwVf@>8qF?>m-DahtPkH>Gw0eT#26wq5mn-9M4=8Rm;DOD%UMWd<+vMM&MgAw*8n(4Ut_4c<<$!s>JlV?+%)7ra~FRc*EOZ)w30lcYf5$Y*EgkNvDWsMzC^08r6bi} z-&#jqDHWT&x~0FPHPJ(F9g;0w^{vYjbxm^<*khgyZ0ecaJCLg5^SNs}2TXmybhXDt zY<6NvVnat;vfFeURE3+7lcV~BqI~+TN0feP z0oKyIWM+WQj&5>))wr;O=9{{J$-zKb(jZBB^Hva1{$%B~B|B-P1Q459;HWNGa=So) zn7PI!3l%D_SBWzbr?Z*OPV%YelZ%QPym=G%N4c6~^UP~GxWedY=_GGrZ9yt&0Gd(b zleD+=lg}7P^~@e8HW6TKtQ;OOEFU#168)`xUUyHjwY|q{T}|V8T@YJ^|BkVvd#xF) z?%=Ayb~gFt6^9Z|?GSb2#WeoAY1Eot(VuFAA%OxEWnS&it?BHcPPg7`8|V%00Hmse zg4dng5JC{M1Od7$aODJdD|N6wu+y8<)ycJ+IL1{tuOeburhr@{a&?|ZkqxVR`bdSh zA=NX`+TIz|lc_4n8tc<1x7X;}G(MQz+Ky#woAOt5Q%Ty$LtOtrmze?GYs$q`%0_xI zOw~$f&T-M-Xl}5>rN%RsX_B9B{pa2K-cPI-&Jd}ou53|)LhkY z)v~4|%MR*Qv2uD@-Ale&$h%2he}BK}$mHyV-em{q&Ls|@s3d8&ApPD36gNT38GA-K zrhghs6OGmN!RF4#2<+;i!A*6BbDA(sY%r+&vw2z}S0(uuaO0~a5YBZa66&nP=`mz6 zIX}tmWmvREc;$-wf4sw!y-DRh2rJuJ3crxf5kP+t9YQa^O8|Yj!Y`$B1T4*Qt0weS zbdCTyF**eA07wCN1s#IF86XAVc-kWP%>XF?hYf-c1Ec_aE**kz2S@>S&ZI-|j{~Ft z`gwE+Uds>}r6zBh5@R481_S*>s_NBit}gOXp(&+Q;z%XwDe zTF%KJq<~1vd9A{=oCONka&A+2Eyy?~6A@n~B zp+BCUBOsuDn&}YxV+wCo_+<)jQFuS&s84O@rxd-m^I?T2m7Je4j{bvZ6k^XoMX&o$ z=@cTO;Of1aag^w!`Usv?n&X*WJk7#xMynZSH z6kI#C?~E?W7dzpL83FVf$G0B{z`N-XdiZEYaPdBc>w5UQ!h48MX*>Hv z=(jTtJ5QxU>S33XGpO(f6n=-ozpL=KDEuXb4=cP53Ms(ON;*XEO(FPMAf$juU*8iU zxa?Jn>^eF`{%6#6q*URTs`+!3!e3T+jlzGZ<|~cEH$4LMYJ7s~hrN_1_MD>n$*UCp zd(}^FQuv9gK6U$Ertn)8eL~^4DEw6sN>G5Eo9PgH3IS3;GtetGALr$Uq1W{W8U)BW zn+}nq@v;yceOlaM|ky za<(Y^Ogcw^o-`do4-5gz;@6t9+&{p#(jm{sx%(LUx8;(W)RE{%6up*{QMl-VoHG=T zIR^pw40C4xMEM-Jlo61Ye;3mr((*B%OVIMMu9Fbu6UbjCAjM@0KUd-93O`5Tm=h2n z=PYxU`v*AMJ(>#}`bLFGKH69M46^6o4+Y@Tw~>zH4+Y>nRhTr^7zn_nu8{7<9}2*w z4CpLlC|49fiEx5_|{CsRf|uX3di+J z!e)ho9&2cXyA=-I@}ByB2bcHJ`yE`~JO9SP<^6II4`wM>l&^oMJGi_@u61yEkKF6v z^8R<5!gJ>TS^b;3$a_5PJ)i2cal4%LVJqlVa%0Myg-x=(S*z)RV0JTXdTg2ZU`)R} zgv8jan6okYQJAuuyXOlxZybz4v+&SVz4WSV>#^^==DnLs9X6erJxR~?C z(UF+@@J_vNJR)88jic0{RL_w%R(JMEnlX6tH4@w}!9+g3b?P|3+HZJ3bpPzAjo z4c?yIX%APa*>F4%oOPu4QS=7As|!!jXVGuFlCu^qU2&m#v&reT-2=0F`+9nleW^_> zJlURD)7L_e@@K8>>lu(srkM|3>7TP{ew4MLmQlqCSqEN1X{?K6zLGeMzk&HnI0iq~ zh{7jv7{9C&czQSAFU~v${x;UD?LX@n_@#0+Kh{-Zx5Q!g;~oJ)^JBdxd=iK8Z!z52 zH4^F%>t5lLIE;TA^K1QB?+Ty9Vf=S9zpj6*qlHi6F#dZ2^kY3Nd=iK8?+W0bbqxFu z1n@6C2L8ta_^~b$yCseihNT%_&gjgB{T!dl_lKPH?*k-#8l6B^l>i(^WA>zq7q@7C zT!N)Nj?;X8@^D{XApKERBz9V9+50$2 ze=3B(ocY~)b?yIt2!9n5>U$pObon1AEU5e&1ImwYf!*@|k+7ihH?ksqFGi$!`hQ1Q zkp67}`te-M)qgH257OT}PW`3C9Hf6|fPRcMS3foZ3ew*@PW{+JJ4pX%fPOrGb@lhN zes}zAV*T$V9vxsSg2ZoOey96;Q%|&Xr`yQ?D|`arC-cDE`Rg3!*Y_gearxo%%#>dQ za{MHhzns$;e>3QC%YPs7L#C_0iuLPf84$(Qf>RT4A04E>=yIFCk?ElSOgdcsqr{In z${nZetY7F^jL$FlmqPRpvVNIopdafG;S>BD#83Y{cMsWK)-TW7M88{p{H_@M?jEdL znBS!r{UYxmF$eYE?QFkpzcOMHezE@)>Ucr+?+DTF+B28=UHf;1@QZ%2znu7k?0+o4 zemr**ezAX5i2hO5k232Z{DNH*qW>`KZ)QTY|All2zvv$h(SLyTS24dt!Y}FDL-b#J zg{9cZgwTHx9l|gAKOy>=PNK4t?3vID?xsH~`h`GZyj-9ldZ0f>hwuyjkm#pahw^di z|Dx!3_@@WxpBd8MYDewGk+GbXTm4=M4EW;eAF@D zlRa!*yQKbv|8(MqOqYL<_3v~hR+s-Z#2++&mUI2JBa;H!uaXYom-Y+N4f--%>?z0| zu=q9v_m3_=))(&FOOUq>3tI{!&H~7-KMa!~{_Qn}-Mi4qbouRf>h#Gg?;;zUH*fA- z>=PS{Mq}mW zW^o$#%fL}@h-c6-lh4njxRlRvT|sqWe51dB7T3)(I`DjcE*-#d|9KvtV=laa&oM45 z_#Dj++A2D#`FsJ#sM1RF zl-b6J_8`g>X18q{qg@(rE?9*#F;+Ye`7#}fft~K#U_doCDJ$i>8E(YbExOU8z0ew~m)q*0?aydmrzzOb zOWKd65p6kOv>)x`Xtn{PjvCJ-s7;=VY+j4)%tjA>Rqt4ZJ>*u_r^nPbp|mGn50!+r z{k()`4H&>Bd6Y}SKPQ*$yhbf5qr(q{kDFJW?S7&+^NKaGvql1Pq8 z)n_I*q{qe@qa#BeZN4^icw*$OlZiuiHf^1FN4(%MD$}-l+OMoSlV~t(&^Zl=O&utx zJ@*i4rd>q0-cRj7QmHDcc*o_)=0TDu>R?$zroG&x(|eZ8|4C#s_Qkmz!!a^^0{*`J z4FE78Bg6NQyvs2rBbzbysxvF&B%byUy$g3A)tTFC)8G3N2J5*m&wuHQMC?VDe6Kpa zGH%LM=2wg@Y5JM5M&hU8l9^1UetsP_j@|PwTblph-q*m_RaN=kBrOeXNdkjX1ob8@ zkSbs<{UAZm8=ADYG;Kpau!@kRN!kX|Bqld)Du`v0BKH@9alqen6n|4ko#8pm8yFo# zWol@FqN8sLg0Ct{^`W*Fw4-CKqUNpt-fNw^?!J4c$@A&pytmt%z0d!wul;e(*=L`# z)^Y1bDwDOt+Z(8k^A8sMtmb&>-H0_!IvT!+lLJXU_7~DVDS!J=Ow`%)pW-GulenEG z8u|{k{$8AjVD`bIU#CrL7in+c3V)s|M-@&|g>kZRD%@~%rmf5n8X91KUtED4{E+=W3?^+Y9 zsBB_SW;=T59K!aZGc3s&hQ!*V2gJ}%NyT2&!P5PJHpA_Ywxd?4qdrK@f68{jZ9V8> zGVhCMv!i83(N5Hx4kJ45C~oZM>1qGb;;4W3qN}XBZKTfhmmP!qa!2z><9OZtpAG)F z;OOf}Y82BivM-ZQPqA-j&))}@O_9F57{Jx`jPP=*wC)(f%}%GYL;tzdDLPthHm2P2 z%x|KxO9qw>;UQ{-)MlQj8yP5wwhhJ8(-Z{=dJ2|PgiU*pnvx+qhZ@4x{K;Kor90B)pNVXYN_!W>PQ9j*5Ta6$|)G> z{I85GEU2Y$$qoBx$JroFnGk%i(1^rYJe9e1-W($S*~siFbIz+dTDp2)UFO$x6)^Qo zQ6tPDYtyG^ew;YL&@CnaAWc8b_Ta7aW*3xx5P>Ez+)SXY+QG*QYMy$3A~k$-F-fDy zsB-y&tk><0W3+KpI>SWFv6`oD`!^Vc=z<~~0!-cOGAD!qBF>;HCL+Y;LU7cx$*!^j zYt2YE8Tc@%K%+pn1e7%ArxmN}B`PxJ}lyMXU{*;q+I-^(y)sDIIwN0-|}sE$V*TB3I39R*}` z-SGVn5}|I7Sro}swyCSnhV>&`3hPELE*|_COk{lh64a2Qc`ybgZM2nhEX~;10 zL_uB6%l*%BkE0jSTy?{H9>~>PI&_%qR2_WuplkOnWOsTV8UE|x`*DdggD%ob*ISH1 zJNd%dpmwBlUg6avv*Q#xn+_B*9^aKjEJ)Z*QZhe@tn}Gk(>ZT;|FcFu7%=FK>PJYm zVk{jRrE^(U*3sK(Q?46yT&ZK3M3mu>qNC)r+M2KNA%!tPg3V!5pLj7_E9%JE=twzs zN_UOX`P3bwNB@mLt515Ka`T$Nu}@kY9qI0?IbzQxvyaY?_%l@FqqFGr$=9XY%*#iY zP%k82t~J&jO}sKbUQb)*I}b+-X-m(jXg-(?b!^%VA&5;hV~#dTF_f!-QJyqmc{4?J zU~ufA8P3J#1}BcXW5f5pA=j zv$K0U1>cMkrk89B?iZ+I+-+;GjX!P<>4+BvZUq&ioT7x%gmXMiA!BJSL{msBfWlB4 z8AUc2w+L}1y4(3NNsTzAk6ZhNy^SO@SGci{zX`Csv$K73OJ{spZ%11n`6k91TiW8} z>_p8H-`3H-y{Ef3EfG|g;(;{nkA(x9E(t_0oqBsrY`?S<^5|xUPs|kLw0Jf($HK*Z zF)B}+Mdd$K4AVpv4@Wf11SxtK#I#}CDX1q9^#6C+7Wfm1&5DycQW^a^O^L2coCDkG z!R}=YK08RDyWf=Tb4?VnCif^~)yPfk%9~A`KhPiIedeq{WneFPFtboYxGcRvuDlO< z0qBj~4Uya`uF&b&M+tJpKMreBNLb_Az;sxH;y8m8iEt&wZ?!QN2YCN)c|XTAq_B<@ zLz3f-*3XIZy z*sQmbDd_3aS*xP*>RBmb#rIW_zC{yh8%wi39AmYysJ$={OtYET*Rd?bf3mVBiq}f@ z^@QbIF{|iZ(2>du*jaC4Tax5hC=M&e!#ogBx`lqzP%v#{V(KnIOx@d}`Y)Z;6qRk< z%x2J2Lf;x*Fx*je7pjH6U5GZKWS-YeGKS=Ph&~)c^0h{u`)4XK8|^T7oh!m@7n#-8 z{9Q%nEhQh0RoMLGi;-xT+~fJgg!p0`(vYSlqHKNT7>9r&?_1lzO-q9$Cl#4h-W{Yym(?(C&LxV)E|V|Fi%|)ZqUcR? z#bEHoxd3k!nWq)GyOx;E1=0Gm-dhw!$jhQQ2NWtf82gfnVtAsFn>NyBp~9tyZX>)v z#Tw<)Q*6Yr^NB%;`a4sep%7dAqREQ$@aG7rP%%q|;-taxRKX_EdlnTc)c6$(IC&y;yaE90Y#o9i}}Kfw4HjU(+25`ivtWf8xdTuB9zN4LU<|nl8YXLdW1@P|#@E-*5mkEbnJOe;7 z^BKwuXyEzkTO7d82;gTEZpM$j@Wsp=hve4;=-(c|mj>|F0sOiE-W95rBV*xq)4gJ*-y?G2uThAJNNrYqGj}(f@Swfdg z(Pb&^-wMLZjrXeE7CUPUzBD2g`8l!pR_VL>#cjPE+bH^4#{@C+C>q`(NLXy*�vU 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 KM3lDR^8asij#X>` diff --git a/lib/libncurses++t_g.a b/lib/libncurses++t_g.a deleted file mode 100644 index 5d39d45432c08d6baa4e08564d2370137616a302..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 634652 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 z z==G)ZU^sGAG~E1rV>cV0VB;IfCI2zQJyf|ey|D38cpqNZ(?f#QeJgUwA7yx6BYvih ze{SQ4$gvqZuG#oshU1~L^c;9ULD%1O4;!y&ICkC6JoOC6L#KDK@jf;_&~Q1H)QKh< z?mRSi{^xKkxA9%%@;=cSayegpV&l1RJyo}lF0vlVmEZkl?_v|*pIqLjm}KKi$>nIbpat-d;0Yu3>6=Xt=rmayGDfP1oPt@3?DFlfLuN4=_ocwd+mJ z8=epM+RgP++;AN)<5DGZ8Grn2Jb+xrnNY)ZJ4pTF4cFzK!}u_sJRPn-%q5racU?y= z*Ee>P%lB-X>qQqS$2r$1UamhpBbW1z^tvI{B<(EcHSdwjc~dF!6F7gVK`!TaP078n zadan_lg!evd`JtlLM=Ig_2a6Q5W z>tD*1>zTR9<$7i*a=C6b62r~y{ej`;IBZ@YmNw9NT(SM>^ua=aoD_`EMta_|GAI@_s|u@R1EjJ4N9w94LmPJ9)#y*$$R6u7x`E`_a$G5=T*s%;CW5*3wU0a z{4Sn1AeZ;C8j;t;cHWHKAKsq42fPb;A9zo48P`I|WnAk+J_&iE$mM;qIP%4aA4t9y zj<-)8vL5CAvkxhL58}s@AA(OJm*10`PJR*bv&rT6h3AvsMf?)-zu_y$<@Zh2kY~ZT zuz@@$d<%JD_zv>2aM}M#yVZn$OYu$M-;=k2OaGNTo#7`bUdHRQ<#%CnQv4g_ z$xH5raZR>+$s^-?QHu9Kyd399yo~SVD82^by~!KGtB|*Z%XlOCyTL!8_z-wQ^1g66 zzLGrg@KzKr-}4_pJ^}Ha$!Ec3oRj$6Xf;H;=orA*rs9dEDh^xOv<)*l-W4$|?TWc{&^7fya6^nf<)7;buQ?Vz}AQ zV+t2yN~Ihxn;8@V^0zcSohzj8f6 z=hipbUP|bORFk-zzsdK8YB&2s3nSj_4?%|Od7KH=T>`mmkDrhyIcIV>RvT{is{@AX zP}xr9xJg?pb(85Yir@iH~=9#l`3+UV&X(HTU&t<(C*2A0FQ(I66Gie^6+6 zY(hj#bdAu+;Q09H;HYr_0XnUZmyeoFlKtB`)t^qPqII-QF%5nF2c)cyH>%SzJUa0| z)#m@5(Wp$Su~uEA!p#E`s)QyCjty@b>R&x9CU9UxSa`I5=-VXCeX66X^q01ji*L#)2ZEBN76Gt)OQ6(}sM0M0Q%|iox0?lNqm!$}-5fT#_ z)+J?a5~Lf4_X%|NF10PFfkBQ6lSl9W{9ujR517YSlAs?wl=iDjh*YCOg+xg}E!EFEL z|6%?WDBqm_lm9UPrc~zt^gqnME0y{6GX2}-KZN(){l`O@4wdr+_0T!h!~F8Qx#I5f0QdSFKY{L31XbTNYo5F(t5sLysiVAlqI25KkHtuyg`ev&QJWsy%t^{OuTkjN zWq!Gjf~D6dM8-57^_S(9m$?1F2DZ#L2Aq2B$eg&P_exHx}WR1aQXZG zX4t#!7mRBvJbK?1bu$kW-^Z$S4>-W*r zzjwC(VwhiV-{wT!)bT{koZ9vug!Si*nS<1QX?2t3k^Y-aCDi3}-g+p1lX}gZbXn$< zQO%fI`O{Ip2WALTGwI_mF24ZE=l=5$<(tAoaMMx^ek_ zHswn}|6loaZOT8CO8NTumCM(E52)LpxBtvo&;sf;bJDSTlKWvc_4mg7g{|=9|GE7J z+SLCV>hFy?gVeo#%=KS{^3`36sTB&6`Q=5aw>;k}^%ubXD9o?>tT};`X`|FXS*!={ zc*A-SJV@Q^<6o}-_iBDURPZ>n8U;zb3UN;IT<*WMDSsl$H~U`|l|kkcKQGI#?#*cv z%9rbk@)|GyDJh@kPeS?Lm@!D*S5r4GKaE;&y-s-hJMk~ee`QntiB!t3kxKbqHswG3 zm*tmH^E<~MT7E~8Dojo0^4C(&dHLI+eEEEsb0+nlI|lBY0=P%Dk~I%Q-ALyE5fXQT}3j#^q;vl^{)cVirB&!6o{tXpz{e5i8 zPeS>gR+{AhWqyJ3HswD|vLb>IsP7x8o6Ilm7id$y{2j&rSAJKU^4l!63fAT7DM;O# zs2i6*+ot@7SpGw59&?iU#irYozX|2n!*&&9Q6cn@7+mn6%I$AToweWyVmL^^Gp5j*_2FT+Q%6pFCg(mlwS$+OL-LLcx6+56MV2`BHBMlB?wSAnP19( z&!+r+Sn!@Q11dmI9XZtesV)Bre1K*U-o)4CcSxoDVkqC65_@#E3cQ5%XFYpce`%Hq zHuF0otvNoIKqQc2gd1Rf9zQqf6Kgd|y!Gte=XGTHY5&&*9|)3m4pIra82QAbrT$U? z?suSkTKweWUa9{;%ulmBOfe4by* zF}4h_mY(!WI`mo#rPrg79w?jL5E(?`FJspov5p4yi*b;j!crH`?7 zL>_h1*T{6+{vUg99T#QOH2~8f2n*8P4FZB70@AQ_mq@pCNvG7ZbW2E!q|)8p4T5xc zsf2)hyMXuYb3gC%zRy43_t&?--(E9w=FFK>bLPy&b+OPk-hB!Edp$Idg2JHZap-*@ zXq^=Dg`TgVb?7+-S~5Vs&~q-d4%Iibgq}ND?(3|O^6`D04N^k=3yLEI`3gh6e}2@O zp`54yLEnIH_fWQ=UBGbk+X93F1Zkpl3t`?sKKDIO?+^r_#T^LL4g|vh!9rU=a1s0w z1Plz^cT)BBdIsY}2552?1%eju5xZ~8W+*53ki)wYEDqBIJp%*7q1u5GV+Zn%ICb6u zL5DXZfTp9}s(a*HV+*UQsQ|$Yz;HzflXs&6_W=Q2kl|9Gt7fRgx9FyT!xrCLZef5B zPQz~p13~b>Zc!BITwS7=FpxR}v<|=$C2+!*1sOp|E&@SY+B(9oZk7P#zR=EFYHx2T z-E`ejfpwz31>Ro%Im#439snH%)BTrk-r@zcIHTWzplaA{in@i~L7+=)x9EO8?HZ`o zAsn;=L7m%BN)VD_5asyoeStK9AXOT6AV`+xnJh?*Mo1P?0|vA>@c${A^^dvGz7*#W}I6x&L}{?4k(}Px1CX@ zkALe!4G0>9c-!T@9RDwI?{VkJZ_jU>oA0I{p$8(s`=@C?mK~24q1i+7J#PcD=J{)Zcdg|LqH4 z{BOMzV##}}-dpewlm6kPceV^{aiaW(ds6*v&-?ZEw|CqcY-6iVQ_aSa^`>w_99MBQBE$w?h`WqWS4s##8oRHh^{o{9({zojrzoYfG zHD|%Q}ZXcf6Na6zP*cj{|6uBw|v|)b2kDAVXFPV6S!+EM=H3NoYiuWPsKISds*gb$1`@wf_h-2anPLA+8}M_BjPxBd&c0d-?oHsakn4cPVl$www3PrtNR71Y|lWhcX+~$w}1l3m1At%8`Aj?Bmb2@L6WDt zB?9)o^RPc+{qImN1?sq8X159aZ9dNc)$45zukzcpa)E134$#zG7PR@Vk>k&nIKwx9 ztvF<@h%x}G#4({HLPRlvpf9&O`h7gSQ{=zeh58nFd--EV=ZISfgvH$e)2M&fF&Q3^WVi!+}n_O>tgMH$G87U4&p!LfQH%oG5^62{^Y;w-{N7#zwrDl zyFCuR-D3cPZ7HCn1E6=tpl4d%AAkTQNL?0eLILpxKmha|K3U#XKmZ@4A_umjfq)_S z(0_#>%exB*fW9jt2X=-)PXPg|5Ra1O{RRlYxP^K{ppcc+atpl#1e`-EQeX|pjAMX+ zG)M!;I}Qj~fmXoM5NNNHH;}g<5HJEA02YRfZgDb__T1C)N zpatlW4&sTbG?>tn5oE{Xr@1vwKnox+;+8N!jVu`21Bs}ZKrj>=?85+|<6I*L7Gi)* z;hY8pOFb1X+r}G6;}j4`dfTvuH1+|3KOw7A4s1*V zX{`YQCm}5$*cw7%--!kYQBGhL1afbm+qeg@1j8TO3be`5@&_QwGzxM|zl~H7yL3xZ zKqP>HlH&k^c5g}FX9>O@m@p6zfS%AG8bQ1j83=}loWpMvF(Ct-hwqIZb-(QIQ>J@F z6#|HqPP9O<2t=bTP9#7ukO9cs?u@*v0V$mLfY5j+1QDdg`S5lsir-VA-BP%PLH0Q4 zjT0DHCt_DRZO9(!3vB_xklhm`!m!)@N4(R99Ll9BcK?~{0LX=)cTz6zxB@LUK@ZFK zS^e+$4!+HaA&lVNZ~wpJD#Q*q?WR$G&HH<$Kq4>pT@ZozASCSH=F&oUQU33^ySs58 zKku}Cf9!-}o3?JD{IUMkRBrF|K#uBvocK{VTJF*SI441lmOALYN>hmYA(=uP5h3ua z6BVEu(t^4i%HKzPX$W;lQgMGCfMOu*&P4%1*U%%=oeIKLA)~^bXb=EZSGN$zKI;4l zlAJ(pDcom?hc}qJX}5iM`u)uZ@~wllN8N5of80O#tDmCLeem~$|1R%8@d3?U zfaWtm^G{IQEon8-&~+S_d>w0-C=;WYPYeZVJKt zlRjkkx`w(ufob5Wj|iZ7;h)k%H(rjhCYT$@@4&47ok9VszuoB!qSX62eIaIm0Xg00 zX<$eNLXNlHr+Byi?|2Tick?@lYut{8#?jv^6ME)?>gWDM2qpGEeD0s}*RZfLwsnE@ z->838?g5~qe}yzbZy(-j@($sz^YT6Ze{4%YUpb*LpnyDk4tdGKnu3+W%+}V} z(9Hx!)W8Pvq&kI>tqtUPcV{Cf3doxoQ0D#(?&xfI-=%76OJQwb<93hgNMURO8Efli zVhkNc??ho{0wri=>p)>=VBv5Nbo^H!B--4r*gHFb?ru)r+`!^6Ny5OmlAplBl=qU}6)M1RQfLiA?2Zoj)|()qUHks_<{!#};Bj!@Ti~yEhwkY7 zrz;2NKP~p3F#o@S|CV0P?QXu`ZP(OFFJwWcjY6pEMS=?yuRvsjH4lg5itMHfH9;Iq>2I-Y!o9WHQfw*7RXmG}d1xW|74Uu9l zluTYQxT?Mbe6Zun+1AhsBV1{I$0`|}OH0x}+Dl;C&w+zcTJ$ZwCDr4jT^TlJj2KQ3 z{5~VeV5e0si{UqAWD7h=XK6MZ`5MO!mH>h0;a{$}dr=<)TThUN)Ub5Mq}6IHceDFG zG8Bpg_Q$$2%15qYF};fBR|@p_z@oa`XT0C6(U;3K$9M4@_aL@RJ204T+bNiE+lJ@F z(FiYSI6PsWl=EF?Ij#0?QIBj|!$20z{?ItSHQSk{`qK}~m8i9juB+9;sa8Sh-kN-u z6ciJYw1Aewg2{f3fwGlvfvE}RTJLL|PhO&}2c8i0%Iux@uMx$htfSLZ_jpL@GN#kH z#e0I+)VF0s+|mZ<+};+^xMdg7*NSpS&oSE4*2=t)bEx)=TqCbRnJT2NXbZwnXbQUSg0S|+1 zDXH3@J_(2_Jt7V0(G35tmZ%L+)K z%uyav)~Ym#lxca3I3y032cOVs$vae&$e*a!CasaV(e{2_o2NO9VvB8%@fJSOeK$$A zeq9!{_JTKl?d^$Y44_ws#)ldZ%}=36eewA!ZcUhQ9Cn@Zoy-Z=g>6i*NugC-WZw`? zWDg|`d90(Y+NCrMTcCpCLU{k=4LF@@H(X>0u_8LW#G7ok^e35>N2dhsSzsW4A? z7{q6ZP&+^s);K636{0vjkAzudY(A%<7@BM%m5XCq^714x`>QZUvH4r+Qutdfh$D=q zb|s!aros+R0eze!ky!z2?wo_J;mBKHe8_^bvFZDHviC0~RwjgSF$64uyv(rTf&^`^ zmv^r*_|g24vG@frI<;U19rTIc3HLCCGzw8}Vn5;Zg-e@*0di)klXW;zI8lZt7z&2G z?TgCne0WXPL9S+cHCq8X_VGWLUTz`?{G`v1A)QRNzf@|jQ106SMo|a|Ie@p#LCjV~9VM zMMa1uE$gnKa_k2bX*-5wGlK%s6B2SMXDZ^u*RTlm!@92rvE-+Q!%N@ErZ<=eRtot| z*S3nCRECYWhPophH}G$6u0mAbLlbuKRE$%GjDa^M>-8%OSkre4Tf=no zUsJqz(Q9zBNE6)ONh8@aNh8@8P9xb{Ow-+CCH+ahD?@ghQgS1+C~EqR$c)OuV(<3P zz%29yCmuVWLtfT5s7T5(@b4=mF6{6|#!dT9U0vi-SoI{oRq&pO#yGA6Xf}J}h8Q;c zMPks5ePYno#bUr~uVcXL7%?*I?KFwKg0ZhCeJI=_tP&#~a`z-1;`w9OUPD$OqQleP zACNdhyv9ny(??Ci)4NK;7JnGqAkqgHr)~Vax6l}?CtP*xd^zieHfwo6xzItjk1q7& z@-y~_!w@nwqZ9qGWj*0$vY$WXa$S=a6_?g}V|O3ZuA(iM_Z4(3o#}fMYMA{bip23j z_980SJyJK&f!RSicMldeC8&w=wZ?QSgg>Hi{=Z%Kw#|tq^s{jlbLXJjVtB{|8!px(=fGHRm1x={@TbjPd6Nz z_#@YmCd3NwSalvBBz^u4IloUXGngSWEXhM!29-_ntt%ugkDcuNC@r}r-JS7t14+on z8t3fy^~6j{@&mD8R>;&oynQ`bSPctrZ5NlBDi>N^v_0{P&(mr6n*Pf*vh{Gcl@h5d z*=bIeg@Q8DNel+>`v3-(cX{y77{jWq5yG)lF%)7o?2+MK%npuHOT)~Ml+ioNa3`1} z1!=3%XFfwKs#46ZEU*qo7bRqq`fLl*LX1nOAvM2b_j5~X$@^le%BGa4M8>}2<{L@9 zK4u_qEfM~)g(M36G0$~Qw9jYxGFxc(7(eXKeFn6=PRXv2c{(KyXJ% zs%gO?hTAQj&f}3!D8EK58a8!;pW{1ko^^sx=`WWaJRFI1#*Jir0l+$%GFEEr8u-z% z9M}N2eQwk{dE`-<5nzPp_EC~z6{#~Muc7M0B<^D^Uidv5KTM$abDE!4!f1Kbs$3Ua zQ6jM_uNHR1E4B=I1#5m)RiVBDcMhB(*%OA#=u7)~TODe+`%emWnv}lV60zkknYW9# zDw-$oXp!l(agb#YCg$4V698|gSX2OdpI%D~hZe5^(aC_m=tY)dXHS$_OX8Mq+ms(aGZmQwYr zWbHcOjOLKKfz6G4S+w^Oja+J0AtU}`cOrbWiK|n0@LS9R_LckzYCk>Ar_Wa+E2xD? ztYTxIYsyvjzycPo9z_TOOtW!aHCRz2vRN#dkF49p`s|6O(X@k$&3gD@yqOqDA{IVorJ@(JIPjDy+IG#;% zaj86$NQK2Lh2e##%C%FrF9~Z|u6-S&m=lZxdeol$nN+8+V4uJtXy;|hyyc?~B=+R| zuOXp7r}Ga;4pr3>-kb6nC`_Ml{WLY{y%LZXY+oi0mnrYs=KJ5RX}K$}Il_7+jYbMQ;KKhM9%^|u8$CdX zBgq%TE4l*dGczaI7u%TV8kIL5I(jw>8X&}yuWRIgQ=g6xQ{KofPpfcdg{w% z1CgpV{NpFjmKQAEs(PxG%?1qZTLu({A4NT^giW`!(%+mST3(iL^*7*~2}w^Q$~$4F zXKjD5d9C+offi1@ct1q`LaP$9DFSKH9py(FqTqRMnstBO`>3#?DU6Wz-Z1fMLfjK2 zl*3n}OmX_?VMBnJ<$8VRw@2&r?&*@vPLy=nq=>Ob!|fg<`>N~R)mdP_c$}NG;$y48 zC-2gCIwvgIQx!2&qTXAKqpld2I4ELe4yC69$+-a_t`yoS9P5dNIP1?L=)Tg zgnFxz0yV%_)})XcCk*@;&Nr-&!r3u>=>jksGh|WC~Pt(vDV}FEs7-Zrst3FXmNAY zhReyCZi=rHPRf79pQJZ%c>sCa$QpU1M0mjf@WPi^jilu>eV(+K5~3nBce+_iF{lpe z3}Blf7=|}DG&Z#7cWmQ?d;gN~3(EWa)mm8b6hfkI&G5F78iB=9aJ9R6CMbZA5~1oB z-==vy{0UCQIcJ2ad~t@w0;%=jOtH{pOkEQy!XV(dh{~91K-F~pc#MWL@&nXre=RLW-IK6x zrU{+_RkQL-{IBmSSrjX2Fltjf9G`>OsMu#FpS%g&M5g35!K;5>qO;5!F;u+$nxj5> z_J#jj{K~iAzDj=H?;7+A7ItSEW)Z!x-x=9mnP(D2lD_;{_cB$7a{ZhbUfg6q*u0_kyb)89*fJ4q4 zgVUrH*Ae}wTiO?=$uSN=O3EPc(9V;XQHmlLof(vKB#=u(i*dN^slX@|-c6=sg(%@- z*LT4kj|dnW7#sc&+G_Mvhoj-Up(n@Wc9fL{5BpKRu^^AXfX1?z%?|5~yoyRs&B=(b zj)2s_Wf?VBhnv6p2R4R>q6u?5EEwSF2gyi2dvu={s~NzqaOTF*c2$iEBV~AzNKZ{8 z-U3cwXG2gBCg_d6(n+1JwP?ep!JdR+El|!2t+# zOUJa>Hb4h#x^E_7o5>|uyY5~O&PEAXL7}#tLD}m+jgeQDqn77gXXS}W3w3&DkCaRr z8?&|Sh`lAW$oI?>`hpJCrfkKeFKtY&#d9k3l%`xUi4#s``iO?j+Q)vWYbo?R9pCtA zJT%?cnLL-Ub44YLR&Lz~8YKjvy#$as7?_%QN{{#-i6OLwd%mPM*A`&(JC`EU?fMA> z@?T{eEj+xMq0Hi-dTTgtu-4PEZPMj>9{pW(XOcaxmcB`e0A)#(VJJ#N0LYrF`k%q=e`Y}vERmof+nCKP6(*7Yp=%1m22qG6$15- zd#)}K{UjltBPYzrgoP2Z)MKB#k7vwD?d?-lru#f5gsRXWV;1!U6#p(q*3^WXQAJZr ztWQ-PFZM}zaP-(W^LDJ^kFM^L^$12NFH_zSWNq_<rD#O(gQ{oea#XBLNImJ}6p8Jscb~KP^3Wr$KlG zWm^p44~$&(aECk2BZN$z^1F&*KILawefNHWiDh;*GZPPz5S$611331UkrR<)kKoK6 z4bMM|t%xoBRF*}aG@^~gZrm%P7P?ASXOa4jJjTU?>0?&@MPFU4txfhTHnLShZ6Wcm zy&DNpUr2F0XcpDb_Ew$_+sDInKg2yOEE=2ao*`^?A>ap05NJFLmyD~=qE^*T-Qjpm z!q3ii&E;6SWhKXx*kP0kBVoE^podgYvBr3qbB5!NWA+~YVXf{LsklYirlYv1KJ5;+bmZg3LY7rF5U|~Z@{M?4H`eM7lj;Px!#9!Xj~#2=(q!Cq(c`ugKHMF zGWa#nzfr5Q?U<#9T)2;x$JQX%f`hCUb!fIS2^T3*7m*VHt<&|D=_1Jw+%OCy8I8## zIDCh7nvh$}P!9Gsoy-mAG6<9u!)ioQT6sJcg@xJ2WMCfkj0;Z5rS^gYXXW3^V_DBw zQ6&v9S8&qM<%_QkT2)Ef&C_XW62F)6t(}xgC${FnX3keXDma-)vvmHRmA7?4khs}d zC;ibfxpZJhw%1tE^F<)v1Z(=DIj-U}!QfYu4nzDmfdNhSWv0#)d-g&8ItEv}J3?qE z?(rF(A*{Qv6S}MT`)CPKHM85c9qewtd~beo{VL-?)oI2*-2U12Weob6-)O9j=yStt z^&^ZQW0XV^=`dp+p{{%h!3C{+voiR8=XgRs(csTf%E^5{0?@}Xj^KjZyN}|c*eF&= zhX{QE&d;V;=d6flf@|U@AI-~j>`>)7>8TZlv3)NXZ?=S4)Lr{79+YVADky|3x|B=g zO_;%hGcZ5k5*f{}om$AsKc6A#?8x`3aM{ZDd2kE<>l&ntR>~uHbRHNkK7=N*c6^u$ zN`xla_Ij9EY&hGgBP?HUVmQ6rWkJ~Q)tKi*=ssvslk`{hH9iNv1fJxR<0^1g8Z2mEoV8K%3xOoc#k#Z-vH(pK)W7Nte(rC_X69#yu_f3#V`G2So16%@waaunXyktvX!|$jZ@sB30Cv9K1B8 z@8K1C4a*J1tCpjQbO9srkIlIAFrV{ZZ=E~z-%8h;&p3F&d#7S*$x{LRM_{foIPK`sMzUEOzN*r1p+Zg8$ z*;hFrWWVpyfrUxbv(M-*D|(+;pK#!no1t+|gmhUtHSxVQP*QN|ZWOvCd#I?RpfP$e z^#;qa;}uL|?SpDiSGh)OjF=aWKv@aT=-cim^l6M|JKq_cwn0sFy?f=6#% zW9i<&Da)ClIh!TT70A)SdU=DJ4o5n`eiNQVO^4%j$iBbKbL;W<$B)Qi+?f%)f$cYl zTaxh^rS8u@@@_ZkV{Wa#vHw!@3$_5&k9_>d)%Qa{i^6MHL?L4L!1yn8FS0@Pz7_Nx z!-rg+2pOBNysd`p2QQeHZnkhUKYy}_0N{ONY}D=>CVyIr0*r6e8LCOS={?xUhDn{^ z6M1cGN#76CT+=zRFxrtORF_*_|NYSNoLxvEsD<3(96=~Oh~CI_2iw$0w(te}(HVzX z9QWp8vI>eTsJ(QV&B?zKCj1aPb8pdn=ur#X*0}Oa^K^%`(ClQlPEBmr55Nc(q9d{E z)g00%k*gHSq{Xfmf#<`bpUsKE#breSOfE5FpJG^GJ~l9ke5Ic`t%QmA6sq`(Yv1_6 zQX#ed6Ru6778mgqV~e47UqM{ZxVqy4+|@NO)oSnp%T74L6xU0A!?vbWObDV;&$LK{cWQ(m9|{`WF6KRh{{^IxuiR)rtx>afpt30z zYoL-a=P7O#_jAA=Q}g}8tr*N2;dUN) zr+R;UrCGHG{tx)AWX`xa2d0|i?RLy^w$2!Q&EWj8h+H<&j@47}Rnx3@vnCTg;a2ux zH;mJknc&0K@}JpimeHvr!{5bA-!-I@JW8QeCenEYA`6bMDU)Da#WVMi(S=)i<6Y@# zBIp?k>wwjgB{j!_uD@@p&+yjaD;jxmYdy7f!B8IA8}D$Fc}mmKuA4Mf$pvxm=cPF0 z{y%({cEuxV5WM#at9ys*4Ms8JRaP;noUl`TN(Mh6%&K+@{y_wS(Vj&PY^ z0hPjr^|XYGFPsfxetq)E_haEDF<&Q`3gJkLi6&2?_dI>Y~oEg?P?l@KedhwW;OcSsj}ky}UlL ztEaxdhW#3!-$e2uMr4M0q2b)XXmo|V>B$twW+fge!7>LtuTU2wM%{YG6E4AgD8Qey z61ev+GN5Y09^PCW9Y+Yw{UM8OW*+)WWk+?43T)KplVs(DA@8q`91*T5T6+|9RV(Iq zfY`Qe!}Xybv>S^>!L+kd=Td~`V`1vek=;>KN^=Um8HJ*6N_4`|^~KK6zfTdW!ZVC7 z$>7g2@E7egjRYkKeP_b&Kx}3$fFEoF@;(x;94YGS9yN1i{D~>C`wgcHiQ|okLB;#* zTx$BGjP$L6g~7?W*HO4{3flLs=`I~j&lIgtmjPj;Z3fmWBombCl3xg|NnCitN*&Vj ziXZQ!?0M``l*^j7Zj^272J1@>uWiwbWU(2#*w$n>(hGb)6aU58Bef(L*ZK*Gx4Nkn ztH3Fno;ce9sXkV-j}bshl3+CMN>I+tIJNy)X~vT?Ws&PkzHG!o+bA-G%;wf&u$W%! z=wXo9r%eaMV6n$AiT)`&u!0<44i2rReR>$>65PW+{OVA(G4ud^8bmxAd=APhgY^to zT1g3o^=u4ZP<**N!`-p}Wm9vU}TlCXDI?E(l zQ7M`Z)I8zsctO#@?m1r-4!^4ZjS5D|u)(a>WM9Q5TdeWDeCo3CuO1@t!Zqnc7iZ_8ubvU`K8H`Kb)|07 z0@>;o;1kOb5p8HH&6jUqOMuvXkT3x&#Od{vOO0QpywK_xyQ--geF*Tj;1lrX+iMW2S^lM zRCXHMVexe7!AKnQ5F<>vbSS51><+dR}wnLsu)owZUvDT{d&`Db{(RNSf z?P%k=7s__gu^g{ls^BI8-9juF(o+ZCMCy$;)ZgnkgH%3!>snwadV%4~^NblW@@$BE zu0+*_jo6^RvDHpndj615iM_vup)cX_D5@SpGd4%Q{$c%ukmv5h+>8sWV#Uof?sFzD z1)|cX;D@x650=7l9~0OXIX{t}02#{q11YO)oYMqp;g3z5uT0mUC}aIZHF7`wh$dn73k{`kdG_E z@oe~D8b^1iXe`Uc!aRpCn6*zw%~SEDNh-&1nO}R?`YCvllP|ee108=gZVhjAV@4^@ zipAObgYW49!%lG2LnpJN622_k?+Q*G3x&({A(0OaUS{>1dn{$0gtrF^h+&eG=69vC zI4SPM?<^<^l8J^>J)r-E^S;-hpNXjo%`R6d%1JGSO{D14tgmVlIYIG({m|f8oi$3N zkVl6rin{3F<2ab#mQ7bi4gn|#0PC{X&gz+#rlZ4+ZEKJE&)FN!U z!;}bBok5POxl0`q=s1xBPG1g8KP&%&o9-1bateseFn|0J%#JX@twk-?r%t_LFzHeE zJT-TUAiC!1m{0_7WHC7PTW*Bm+Ywefz5@D@&W7jN%U{#@d>+`yImgR;Xn-|Sfs^Do zatWU#DmE&H-|N4!ja92%D0VDKdNexPVEC*|m1d+}ck&71cV&*W$=~S2h@P8j9aHI_Ud=vG_XmEEQ@vE-Hh2l7 z^m;(W>IJv3hu*>SRk3a_mC*2;yWtsU=}?%fM*LXd4&N2p?u^gI_QW@hRi9$_p;uh= zB0*)T6~AH#-cCBc7w+@)um>6(W81OV!~~bRH*o=*6dsD}(CQtb4?Dil70g2DJN_vA z?U`Q&t8K(_nR-IN2Q=uj%6~fmHa!Dd{Vl@_#!9r^7 z2u2Uvydop%k8sRcuOe`1l?*NbA}t_rN|zE8Ai7 z!wOfG&z%y{yOKlPM_u+!4K7MJR?t=k)NpVeimOxD#zWM+?Z5Tq3K4-HQsMr*tQs~V z+I(lR7F4|W_&eT(G<9yNgZn6MdRgWi=G3B1GRoNDimBd(P=GL91~n+xHuziZ|ZXlF47c+3$Ub!gs}z~;ft%Ej;>e~TcMWKN4V2`+ zh_!MfqShZD7~f6~=kzHqu|Tv9=wwKc(Vub-4F4LY5TCoG9b`*nGP}9fNOiKLowbN1T%_Z4hiumP=s9oxf zkiLf*&em`pJk!48(?qClXKd)_He6Kwzt~wiQhb{8zNwVAj`AU`Tn1;x4RYd~5dF{| z`UQ$%8YR)ywLp>}b?!e2xB{lg{S3!YV!;?P?|kS5+Q6`5xH9Q@aNM zm}k%PYv}iCGDk9xNp(pyJA-&lgXLSR76T3xDZJ=v=ym!#lAo(o{mV>o{<4Quu1 zLe#6&V%P9+G%d`!xCrTNk=0EgPU!8I9*`Xiy+R!@4(L$pg6y&QTcXs*t4zoJ8{#GH zPcxls=o&DlYj!>hqydZ3m&nn+*);xyD`;{45WT~#=~uwb(QdhM96(fWLrN4(QlGQ5 ztKhL|p@FOltGrpQ>LFLVJfm%DX3Jw{E8cP1Nm7|?Yp?qzcpXvCkvaX-zI$QA6{VrB zx_0>!Q6@+AH<~6xOc<8CT3&-yADC^2=$Lb;$x;^`BuVh|saJ@7Zl0EX;xnB0PbhFu zme<^%a|ZO!;b`3T76!~JyDqf#IBO8Ubg5i+*4QnmKb@$cmYu>vJo{|ILL(_) z=u|XrF!|AVb8ajApoDmg{3y5I56#)I&h{WulWxFXP2M%4aF9f0;kBx*np}k2*YeM~ zO}sGVaGoSf)A+MS=8Jv_lQtK;;R!r!Oo{K$iG3Adn&4eesNRZhA}v%Y&GgvEiTrr@ zkim<=L)ep@otQ;n{X^~Xxy%XG&OY8^eixuPE8K!T57}JBbf5p;Me91Z=qJq%lYZ!ld}Q0k8+?_P^cLVE(Mm#` z-v4l!e{1s_8)$e6DGIa0jNe13e^UOgjP?EsihyWZ@nLScvuAGx zZ`P0OyoxSli!eOd-Pb_9M&>D)}J1EUJNd^BTs6*WI2? zJ^c##I1+tHqNuu$G}31oraGhH$ARlrJ4(&)n$B88cXOVvN7Dj21jPBUhIq&NO{ZYj z@N!ee&Ceu!vpFXMl+xN7Fv5>2xOgfi+8bWLD1|wo*}=;VxRS*LLb-5~J^b@yTJP2RCD82~0o#U*_Dwl^g0_YUyV@yJTinG=pbBkG_xz3c+mZ?x;@}(W7VTqDX;NFH zM((-U06|qTf#6*5MPW75z##gSG4ttqzsTvcx(3oZO8Z!n$~}#lDNX;cM1qZJN?3J5 zE==lNkuS;0K5ovXc4Z0JUTm|>jwjxXiPsZFyN&9Wa?-@&=Rf(bX@8u zD$nS1-kJMwKKWxyxBbBI<4V{Wdt92SabK^eK{4E8ite&c;>xW77O~+yCnHWV`xq!kTwBmM@A=5~l?sOE9Q-1Wb=Xs&X58ey zk-4qqi{BXC;;eUEkL9FhFf%@N!arKIZ7Qyx7GHKScMBlV#Lc7zms>C;^AtT#^D|p7 zPyz7cW-5I8kdHvty_~a-EXX{N=X5+SthHj;`$Mth(q8AAu&y)TPhTe&A1ZM96uC?SaQAlgu=J)*tPMsaLI7LKk3kHbd#Q=dVePkT+( z-L~~A3j?0t1{)+{lPRN^^ogd>h~JNe2s+U2X~pz|e2Op7Jelynz9<~eDi9M=fQMs*H_i-#M%{g9oV zz*T2%fOapBDVsaT5VuT#cLAAQA4b8>L@7mlyF(Wc7@HK`(%U}fTDx}k`U?);y0Zxy zmUZz&TSW`jZl|Dj%}lak zB^f)8wY-=K1RkVf4QL{K~ME_rqT$Dgxc@2X>$>)Ja&3X>K zESu9pNnU+o?4k9TG%&N>fWRAe;> z-|bqbV#J@q7VH$gF(Dpmqn%%;ufQr*?cPrXA*_BNy0||1pLbjH#hk z#q;%Zn1dJ*dfEnS=l78cjcQYFitN&U*SU>p=FOswgVwLwkGY=uwU9o4r1d0!AmLrK z*OfE<@LRr7m*a+S-Se^}OJqKuxy%lKSd8Kq!<=zY(--#BHU%CWX36C$u3b)_u_e@h zRQbuTfAA6RD5HUh7C=T6r+s74OW}xZH!)v3pf4D+AC0&+Iz_C^d|L4epX$eKeR7Qb z%VXRJlBY^T4=;@3SV&{{y!&FJawB7t2mL*y;1w|0(6kAUXr4ZLLr!CHgo8G)qV5kr zLANURfYM&!*fn|Ld(R9Xke5EaZtR6<@!2xvqqdEBG-hnYVErA^lXA(C2sHM zu8o%9bSch6Ds!8G0%fCYxv;656aB{AA%5TEarmR(A2Iz%))=(3z>d4#Ri#UOY^(UG z++x9a*T2vQOxJ?om10Uc;n^&@I%IjQ^S~X>P2V=??8&-={GqlYoXe!A(2GdC03T9s z;0$8t^QG*E4ljQm7m%(xzOWE}>EXGPxmSJ6xl%j+%v;`T=TV_dT$5%X*Bjj?uID8= zbm@L?UNupE=Hww;xf+(F>`5|Kdwin@{c+51wm@1{D1MqDvj`UHTCNOOuj8YTXz) z3qciwNWmVjrR3s^yv+gXtHcLzSJon*zX`JHOf&vUiMHJKiQ^x=z`YjS(N5un#>3z5 z9rQ#0xy~PL*VIN$9a&XLoF=n39f-_Zs2>AsC{$av`XY~mf0`yPiL%ze>M=xkL<@^9 z_EAuY{AI3$*GHlUUFsI4sL4rm(kd!?M3qw3m-^Up*vG|0v8S1Usl2X^FSe!!2Sbf6 zB~#q_phSVQ)Ng5vyqu0cNw!*?MW5q;CC2`0Eq?WSwf5;1TxGa+f>Z_x+&bgy&3p{T zPQIT|5e9$Q!2EPb+HjI*#B4{4i&(v-rGu43WeZ283Qq^N2>CyZUb-b&p zx=LGz&3ZH{KT|>P=@a~xctn}7l7LoJ{Kg#bADABx)pK_b5Jx>impU1ri`uXzMhxz1 zFUiU%$3Jlk`l$9vv!wQFEF}abm!LUx)8qPNttnjcC&gT~Ty6C}d(lz5lbBmqjgd`)}x`A8-XlG&HZQTDgn>&<3%znNSe8=+Ol0>NIre{JmFP5TCjLlWD<}SCt&P z6j+I&j#a8p-P<{_xv@@B@1`ps79rJc)o0Y1CRea*iN@|%x&GoX*b4Tlgb0s za+htgQUQ}IvU&Qr_7aBGGmB(D&OtH`wLZx`;jMLZZreI~X-Y*^#)Isc*-q!l56yOkjJ!CBZN|~1ZhWS$EJ0f7s z6}1W_)%MGo?7>cJs%#0f(Chq9n2zt<=8J=0Uw>snGjj5~!iX1bTV6wO2*ceHW^x~j z8R$$Z+9Z(sunRF1yT-+IZ_`aW*j}p<_C@ue+p+MNHJw=yz5&7^&7mNLotS`@b;kX|T`I2!lpX~_)P&XT}p$n$vf;79vh#Z}zziLfl{ zB`zc}l4);3pu{*uda|RGw{F z)iN-WxLvyZdQM$exuj~z=LH4or0-F9`c+$tkt&Hz2O!jwG{=ibUW`p|h@0g=5jIiQu@GZAvl>mAcqW2H6EP7lmGhmE@^f9U zK5i{!OS7(j%#C}Q*i6FPBRV9KW3Z|bApXa8cD>L2e&11boYT4+wSTw^ z6*Wt5tAIE8GoxAEx%eH0CXPhDIEivB6%(@W=YP`2U)!rdD(+lu_`rQ#m_2^69%~XF zwc9qX{he?{_UpP})!Kt_X>D^?-jyBW`r-LX>BlnlGjq=TQ=d1e79H0KLJG3PIx~yw zT3y?jM1F#a!m1_R3eD}(OFgNi?2pYibCoJPvigNsVtI;?F6cBlJHdDcYHXneYIxy( zA(QPNCS+?x*qjX~VV-5J)xuUwqy#&La|HUaX>B-WH(cpqaqgqa@p4*+deix+M26Hp zg-aM62q93wn6|PIlg+{^rLHuROm?7)t5~;8LHfSeC*gxy)&6yVx+m%Fcw6(h(_r%l zX}wvVlNd6U=(;sYSnI6KC5TM{_R)CE$i{Hqm9I)@R(!(c z>1c>SznsqzhfOD97e!x&@|%&=ZKk7w7ifr90ct4CuL)cjUy#IzRDBPw4S3Ia+`7rz zzF24fivs~Y-L0cIP|&EI@+`kGjTxKzc> zqKDT3b1)e?-Ldp*u;*{*kQ4aGeEIx`oo3;WuzS(Of|~YVYgo=@^UyC?gwMQ!jB2mS z-eC!>`1K*CY+J1&*U;Q7QHOc!lrDl}C+vTQvokhTMk?36Yy-!PDLt~l8P3b#)}1GL z?sg!$a8**S->|PoGE#!p`iek&SfU?}CbX3$!tgNWQI)U=O%)9)1*2c(HO~y6XYn8V zbPIIThJ1eSP9`-EdvZE#nVYcg%5{yZHlZq#`I{IL4E>2 zs|XJAp7rl>AqfAZ9l;pNwK~ot)L0uGE;y*mk=7U|HFGgOTAMkCG_;K(#mZck+ z`5?2PIZuZ)0yVw3+!ht0Kb4y)kE*W$y6I^KS} zpt92S(7EvwRUH3cgmPy`XGo^)3r4Ak+QC080|F&Yl28qZcsjoLon{RsTPD`?!_`|fA zjDEYP&nj!_G*oiSp}voYohmw@aB|~-2^voK4SYjQ<`h32QLt=e?fkZ`&7=Ki&NTe} zdhPIj^Oa>sT*+JaYvI?vg$tqtna)~kTPN)%F?@9A zOFHqoA017WW~z?c-A~eJqS)b2HT7L)dq39No3P;I{tv0QHmEortlTtNyy(apuiM>a z3?6ru{3ze5yztwEIq`aB9c2%GSZ%D|T2=n6IrGBOC9f7=DVLe6cIij>>S+}-#w}Z- zra7!M|I+1yR^q1|Op4FlxzUti z9BKShXRVKpYR>kPF{(wTWgX9)-f(g4Btx;*2LivQW3__~de~|h$jknWJ)$CWaY^>_ zUQ5R499Yp_w(-~H?`0Ew)y?#u>eQFt^pX0csNd(p=WDn2bquIpcl_78y`zl%WgZ)! zX?VB#)m1V)8iG( z-7cR=dO3UX%3G74N_X4z_m3F&M0n>;}3@4-?(+Tp{CnA ztNdH{RUcSXy|b!*R5|j*#1q?k-kEbDOsg(!LRLX;!fT__@E+!xiw7t^I&A**EiDegbKE!=oz`?t?t9k~&9h8 zolkuid`aKBTItAmi&mei{dP8?XYW^*7N-~-8oBRV;@Qe|UgBnA&TY!_->Q<*4vBXu z_%ijqLjJXx{@aV1gFA|i*ZFAHdvDZ(4X+2K?=w?>bw1=#lZWh5sdT4I`7rYshwkboWyk|wkP}d0rikp_H zN9cF{rMT?vp?jmfSJmvZ$)9~<_2r?KiKibdt&toxW6R(%t}c%0P5cy{xa%ZF!ew|ZV(ctcs+tnJd9{BF}mw5jH`e|f&(`Kc_Im$yDGvc13L zhUdcg}M?mt37ii?d4S8$9wc)b{nLSg|76*L(8xOxJ@s zom!GiUhS;B_-OjBLEL%HUDL)}ZPh>FcVz13T`+s$Su&$EzbNHk_`P#OhF?6g zaHdjPz#QwIyHBhf9BEg*)<|2jr(gH2+PV=X)#ndfv#xG3crs}E`ux!5CqwL)lx=$O zXycX}rjhC{fm2MET4~7*SUGU{H!caZB@CMUM>FKXh-#eoLAeu4DNYbHBIO~-_K*_`oPS`>a!1|eJ-8+?NNTzrmD2imAf08 zPK{G3&k9`sY2o;N?mgztvYoEIU!!W8{^;OWODey_nj|aB^gPgb_|wwzWoIg1wR7eE z5PgqE$-svrPMmQ(=J%|$|H$0-_FH0FcdXRBb*O26^0Vvf`;4x4+kM>7{b~I1k!^>z z9?{r!*30X_NrMTQCeiPQg_murX}GlG>*YfY(f3Q^U$pGVU2;w7&b8a_^{r_E`Wjzz z^z-Ws@2!2@{m$$$GI3v*O0C=5Ze3Nt1_eo@FpD!IwzpRvFK3oh(BsB48HY=U=eNE( zqO0~h>GYj%i)C*-iAdJC-FjuomJ>Z{UWfLUD;<fB64>GO{Y27m5dYvsCTmt*qv z*1B#7tO6>H9w@quXxWfq>(tL<)W*BM3MXrByjhy>5WT`duVmLT=SS|Lu~I`18Yx~bJ5A+q)9!%(TulRo4s+m&l=hvi8c^!4BDxy>5 z{V|;_a=!&Nx882A(eq@@aijMMS(#4How|qbxE6cpNo|KiGO8V((qs3oBp>?F&TmPn^{xBqN*=vG;Mvhs`c5sjym7wu2HOu+~Lr1n*YIi zl@;G^)$JTm)nMh9nbdB@&o86gYr->JTwB_W?K6)16Hf2=iu@(@zQu1;r9WFe|LsJ>#fF?-yE=Y3v`ym|L??kC^)1zpc}-6V0=K;3t(w$}ySLLc`R2TNBpZ=CMY zLrGDpD6M%|k=ET)Zb@1@RPUa0>06NHHtYII!xOb-=Z@73>MQvzHT;+SsC3=S>+5t* zWVjc~ztgeabg@Gpw`Awx=Oh-M>atHo%Wv~3m#-H#E!Z-3&@ELNmy~03I-k0Ca-_D; z!2aJNy61Hnk=1y&WxV2feG{9u@*C|oE=^lt+-r*e0C%xt)#^o8Uq>9h=Ia}LH^L>P z(RJUoA0zWGKk4^MbK%|%D>_vVyYbL^vq65h>hd-{aFC1O+8*6;`H3ErcP%=tl>1bJ$^up zVrYrB`!4_7QOadk6#9o2mP;P4ZH`ws_U>|Cg=P56t{pt{SK1f9HCP(BMW=arNr7g7 zyWA{?(sTARw&XvsP8u=9@b`f3LD#1RoSGUpV20`%Pj|aDnE~m#No8HOOejo=&zQKh zdH6u(4Cx)i4fmYTF0{DPHs+ejmDiyPqXt@ruiL9*Be&x4f=T7AuP-Y|hi1QsX!K1h zZJ$)C{bAYmndPxFGW0e%^(c8|Dcj@7vSxFcwTY8GzMZW3uyo!Ucf~VltyT2~gYHdl z>Gt&9Mw{+s)6y%ZY##5^sBCe}_V5ka%I-b=iY^S4^cb}N@=vqqcS+&?b9=1N9Cpb1 zXzKp+>xav_e>0ty+C0q7O1vtjMYV8ymx>oPi!Lq`o31S={Zeyzv6Axu&n`Phjyg57 z!;6JxLC)eMm!-&#EEazp@u03a% zAroNqX6Auq-$!WmoHcl7Q^J$<1Fl&^_73RSqwn)i6P5bdoG4V;>)qSIJIb_O!y+@g zN2wJukCmmW-tMqo{Y|IBN&NAG%rkHLY`ri@ZG~S~fpd?w2is|N5%}y?F?@erA-G%D zS?b58cxdeNH(S5h!T-swImgVt|56`1)ot>+g?gP#uEoc`*fnhEf=L0-ho0yVxZJ<9 zjN0jA4I|}3!tb0qoox2}@WS!d#YKJMrp-HQJ>S77z{jPzN9WOzDiRv)sx7n@f4y0G zy5;g)qo8$PipP52`u<^8{N&0R!NZp=HBij^{nla9hqAUBk5Y?+#ZPR!4%UtQDWAD@SD%TEP>}2P%GJ7(Mf_ zv16~Cd3XK9t^69tfo*DAe}A-?H@AzFb@Q2pJBu}wcRs&q6PGyfbL!giEhW>Q-!9*& zpf=e(tJ!7SQ|E2@As#o22e!MJn*DX%OgroIQ*xJIn`))KXQ%OYh0-NS7t9@{b2j9L zDi~kv67TeB*E7S@!*os?bcrxJJu0krQSi;_1In}S>{D^6?;G(>Z`CdF9aA&&({?P4 zESEi768Xw2x!?Ki#rGdSdYdYlZ?tB^{>K9%1V?qEvIW<@*X--iBtQ0Co{moEr%k42 zmc#cabh^>|kobsz!TSp5q~xc+OVE`2m6emvUWE}UD>2uRltZHP^ zHJ4|B!!t+eMxPwG{bSwuoD;pm3<}hJ?`AF534U2Wxqs!apI>jR_jszV=&9iu?KJa^;yvaU$eB!K}U+-?@cY3HevqI1)RkdNg;@Ab7^sgvJjhSOM#6DL=Sf&;{FdE7m;$9TiUu8#y8t{c7_Bon^D;`*Shy!Q658uZ(`6lA7Mun+1m z&8gkQ9s}jYv)=F8(#}fNYK_Ab)7Nh%ZOL;|T{9@jP3>(@llhaq3X-0wx^7b(e`?B% zML(y%D-0WAJV3)Z#@4l4ue=q@!&3@U40?NgSmX53(IV+W=TFwJln*J4@7pExYM&+B z%iZ^@+{t}*c(7+v$Jb^nj=Z~irsApf+HOh`nsNnH!%A4f}GvJ1Or_uKM(?`cw_r>;{|TWdY5eA6ba#6pMX zw~ejDSI;-mR&Xz9+S1M>zSyuG!JSFcFTLjPPdo6?Xn@45x)o+wCw3NZGx~I=VQxYD zre#|fk4RrWyY=0+rQ?2&z4Pt$?^WZURsUMwd7b4b+Z)@f9=~a`*36uj^xCfJ-+Q>0`3*+*M!Hr!_pNPst7$9ViT=hNz>S3M?9 zk2!mAtCH7HlQ8L#Mk7j+ejCmG`K5lCL)9vqg>y@GwIp^88HTKGL7$aNuOy`b- z;+=D?vv_WK&A@0)RKT;SX4*(KZN1n+KrxB5-?LD@2?#=B0*h5JlaYfU<**kT3w#*5_=aiEiNJ@L%atvX;7ARj!;7+q^uZa-7D8bu*vzWs1%yP-qn zzDU27dpFIyv9M_7;R%+vae!%gQ@-R|hM*XH}``k1ifcjp&G%gg(X70d25;@XV5k}H{mk0o{Q|2)<1>h(?! zO7jP4_c?jybEj{8FGi{D9bwR{qvLS9SxW9y{o&*DZUwVOXD{o~ zxqZukmY2ab&efrfErI**46-XxIo-0Z*Up8H&cwSZ_J8g8w0ip7YbR`7QuFRV8+=Jn zbYl6;XUFV2UteW2sx>#_&gS1Ar%GPX7@oO%y>*{E9lTDiyRc^PZ&$6$J&t@GyKQ{_ zrH6YI)x~^|FH0$`9=pr(>pt=N?dmfx_&jMFe8)IFud|uXt8QhiD&{?csfU zR^;s(I@#-DZS%MrT{H%*zCL`FvE9R)3b7WUEvoar6rFQ1{+1e~UKO=r|H}ybxu%i#-Lyz8$_%?5je&OXKuV#0fykM|euFA+`gY%`fbvilk zzKzEb$xhRLdSt!%am;S{E5(J+>|IvAIy7wO7M+JD0}Q{N9A7+8G5YGR{yE}P%fd$L z-7;VBE_t7pt7)Gz+q)i4TyrC3=(Ij{V&CWAm_PIMGB?F|%?9cDk3ZFycg0{bh6id#(Ex9NsXxWYoIN@A5~Tey+J=L*H;!wLP1p)V(%LP`GHb zvq!*`zD)z=B=*ahI2;=obmIOw_cu32x!!J8>~~l{VA`E7{cANE-W(fvUC*cS_x;l* z$+1uC7U{oy)v(R(Q|jCHA<;$$WL|%d-6gm9_4HW7yJ@S#n=1QmAN4sjzguWah;Qbe zp_89(EjVLazwc3sjkDaH#!EHbo;+KpSoHnJvgP9}LYjV<&Y8Wmtyar+%6*>|y6=8O zJaS9BbnAvu=-rCoNXG$HKRRwot5;2Mo+uS%bGsp8=11i=BQr(W-9Ha*;(zj5xfxni&6)x91nJP8XN9(kfX?!s*MAd9}6 zFRmWBOzX>!tB012zW3XC$>*z=lOLbIE-jP4ep^n1LuV!F^}&a>HC;)n-Z;i#!#VR? zTGvm$ODYdpd}~dZ^ic0GxlTIcjS97A7Oe7pR@Bd;_rhO`H5zivoTgoHa9XUi$JF`J z?iN?W?1w|Hv^8y*nY6+CvfHWl*G?blW^C5ly>>~%RBwaPfr*)QBTgzO>0a@vC@gWW z>3Hqa$%NgDP2c^#HR?`--jt=PwGwLz#9wu6_Uf*l-(zBRzp&h&%~6}D=;c0&9##{) z-%aJ~^K18uTid?hf7K9f^gI6N+iwqtc(}iOb1dbm`$p@pSr2|5YijyD z4(=Hpas(|BRd&BtcIw$!63|ojacy_oZ@IHZDAgH#B5*?@19| zql}l@7mt_UIMI8nkHcZP!G)jlOrTB=ai&g!+XWXndkV;lT0ZG->=M!B-ZSdCrHSO2K_|Gch}&*@lOX-U@{3?* zrrWqB=YBTH4?VliRs3`Lt-EWscRJUEm?wKKGM(DB=x2}DH(S*m>TXZp zRIB8jy1w~ZV$KT7HwPSxM>c2AYrQriSiJ6r$8yDlhp}s`Y=%5}ZZ@qzwpzJ|FVH2#HXKvBzF5V9c2QbIwa=jm7j%Ca+|bV4 z+UI6TQ{6_b)uj`g(`I|$XpVTPv3q^_^zymI4TXv4GKb{dDIWge*P06T*6I<>4skVC zCXIVnDtAWZnqlv%(5pU23Jk*r8RW(nHs3XgYP_z{v|9Y*+TDq63SxQt3^w|8_b52k z;mh5yjJ#WM%bQ0`I^|Wq{OYp7ZOv(s=VPlzMhx6+Iz3RTbYY=Z&tFmNjyV1}rDAyc z#@EDmD?AhIK4od{U7hkM$hvRLDU;01u2H`4mY>Xy+nTpt|Kq*Sdtw%h9~SeZI6cJl zdiMt!ZL;$dBBX{6vATF`gtwNTpKjZXu-O}Q-=L6t?nV;)!0n_ z#7V>AY%#6wUfx<``}=#T&v#z5)mia&r-mBS7jHsl4;?sby<%I6okx|HR8Zfv{PIK1 z4HIjxhTZjCUe+lr`SAYX5__(d+iiWfS#eX$QlZ@7Qo1LQ-Xu9bBL+wjf z#rH}~FnI9Y%y<09_@V<>4sDjTYg~Hi*R8%CtJXV4c%L`FzNMr%>2;>W-l327oBVop zV|%#TCV`cPRJ}t%xzmqf{fa#d?ZPyVJidLPZ`VU>E}1;k-`%QyIOoyWRMX!5LTWx< zxcB_p+v-@qly-;RXJ=;CwVoR!^K*~Op*H_phub>Z2HPEYSa_s{4s^IpDx{`_xiWi?zy)7HsdOGV#6*Fcy2hB;Tr$LcEFjr@E$ z_ab*aK(RA~(a+t*;CTm*kwUI_M~YaIi$H9qyqHqQ_R_04u{_7fwe3ie=I?|Is`+D& z=&a#&NFkwaGB9$zI8ulXE<-7xbrUw9yOF}OwLJR6h#z}^6_R@kIr&uaF><{YN!ZG% z{LfFZBxeUV$CRJ9i`T5ZKAdr-@t0^-7hnkW*RIPTWsMt`}$5 zQcl`VcKV;k<78)XkH-kPg)H|r;!8AnKUc^{;X+%)K&nI<_oLIo>jk<&u#XUttz4a$ z_#PQKX$x6R?rAin~CnG=o{p$blsU2~gD;4BFVQl~B)7C#ejTQQ&2U^xAYhc1t z?#QPJ{QJ4ETFQ>4?s3%+pUCyj3f^ zxlTMO3&?+7a`Iu^Yj*J3O?YiPdCisB4CP*RkR8cAZG_i^$;;VXDQ+XzD_z1yP9?3K zwVYvX(Pl)ZSLkSv*Qc&eTFq&q7YqlBwBR zRxp{fwF_)L6yu(7w$jBN<$9%&K2IfnFOsyC(-S|$d(HJb@3p;bxSXkjocUO}v6gbq zj&gcjf@_YIQ~4tpCrhqF$tN&3{=qhk31L2or~c_YVGKzA=?N2FASfd573KP1m5TQ=Y8Wy?8eBcaN#BcPZ&C1`cN>H(`|wGWP@+3#JN6MDZxc3 zy`3eAAs4Y!DGL%qYq_Zsv10!WqJ=CMWv*vYY&rYt#24Xp9{B4a^X=gRw1~u(OfbA( zL>CCYY~daYAC4utB|eo)uCcNcx&OJ@f#jw$*b{!eS(wuk{^WExyyn5_1mSY>leo9p zaPc8?FugW0xz4D78^n&>yGYJ$gZGfDAu;}q;dMn7gz##!|KiGjLB6Gbb0U-wsQjhpuXC&ahm-l3772kWefZ~|SQcmO(A*m;R45Ct zmHS7`JrL%WKv`hGLhi8zcN63Kh2$nFFx&(axW|O65XcoWCP?uT{;w=>6yE>uKR@6h z|3kt@!NBJtPM%5#)c&Gj91&-@Fef=i_9n!ivG5KtxF>fKg8#*h!5oJVqgg1_8zaI$ zl@OSS;KEh^uh%3Xs`v#7?i$GdDiVUxf8m`%LKn#Yy+->X!}VXkW#|&{^I83p|H^Wxyx|{?jIfJTv&wVE71$c)v)=;WQEYED<~p>_l_* zlX8*26I>LbzYcnH?w%By|KET+1E({KCKo{B=W5{8Pg{=vtGyFI?+k$#9z$^T!~j=; zeFm*}8*n|~bY{E>JQ{d^p|=9TM~?ri-tQuK8`z=yrWs&|_(9sG0(*=Fz>~Opl0P&r z>Ae-`3qijf^qwO44B%7AMY%|UekRuu`56gCkFQYl3Sc?A#Nf{|ww20#A=g zyK?RMmp{Ela8(gpo8u&&*#21Hg)or|k6E}j_=~VJT?CI2!IMPrMI0B7FH~Hh3-_Xd=I9=}Yae+i-Nd7Y-QhmJ`;Y+@ufiuZ- z6Bl1QCp$Otx-t2W`=KxgtDyp4TZi$M77o6?-1X{w?RVYL4rgs_lR#b>_xDS~0>b@bVHUT1h(G$KYFx)vILa6xfwdwTrBctNuVuFHWf?`8BWg_$RAM&A$ z5+43TWgL;fUGvW-G*lpbKosLpIQ8{|Vq$zl{2~LxgJNu)#}V%%6N!gz6aS8hASg1B zv&g;b8fO&1y;JxoJl4)NPG3JD#4pA-F2*l3E|v?3jSI&N{rzG?1AL>n>k9_?Mc4(n z`P#S|`|`CoxkedA$H(#Ua*Z+$4v!bMoH)q@R^QOqk&mn}eS|^eESvcH#)ZU0CHngN z1^Nc~#l~?R{Z|?atS9Mm(b4twoyO&7bWlueRHR>cXxuE{1U=4koLZc_!a71ZO;S)G z$uTYn|LrFM$+p-4((u3DZX&#Bq8%srV<9psC?F(C5a7?XKTHtf7waq3#0p~L{9@wx zCjwvhNG_;>zAizr@ex7)uxuO~;1`)ldM8PckmxIXCg6rhoL@kgZ$L-A7!j55e_MCvg6*5&=Nldx8|TaYu>Svx$^Q>>6K;ZtjQgMK{L_Efr9$xa@90ti z*OdPs^$N}Xf6(h2aM!o=4GWs(ALSPl$R!!~FxoFr5D^sT_YZIN^++1655%_dYpE*#6vZjo_8k^I{HU;p%toZ=(=gJQ-9|F2#ycvj;b#=E%w z-?oJwqQRlB$Bo`-zwn^AxFDO@*jV8t?Mr<4SA72~{)fVpv&J_hR**=V>&xwH_($9; z!fqCN>g#M__iuNHk(oXsii;~3GxC_5PK5VDMyhm;GYyT3fKXGwdL_(*VMA%sZ7NhVoSea)tOqcHxv45XcpxCx7}xc`<=pA^JYt zjq(cwas~5h9t-V|bM{pK0yxo=v&=vEFt;@`oSbF;6K6OdLi{o3ZqyDr|4Rz7W5M01 z9TSGL_RSbOmYkm2v0}It!~GdM799Tyeugo6YepY0Lcf5~+c5eiBJ}h#anfEpM(;-& z$`!)xxf}KWA;TRQ-WATnVLJv4XYKeioVBA)3~+_qIdeB!uLZ+dJ5LzS+UY7uto&`K zH^W&wmJDa@%wxDaXOH@`12_o>+wVshy*Z;l$>=ROPV?s+!&y6589QwLJY)344$YId zjNY25mz-ZCh4{(p#kli9q>%90a5vhn_Q0{8oL?gaw^xVZ>f26qc zairil%QBpeb8q0ZAL+POWAtpC2aC{KF#7+*S%lt=;pEgLjgJ>&N1x&3yeBEdPqtrX zF`SJ<4#U}gIl|ay<6p&abFL2R&wa)Y8~<8{v-LJGcGx_B%WyXSEsP!3&tHswD&tQV z?z|x>xWANulYVFWYk&y7KBH&*Yp4jlJHy%d&t*6phdhR}?YaP*_!+?6XqRy}f}G`)vG`8P3LEo3X?CIf~H-a<-_Sb_@?VUo^*aNVL0oj8Dod-cPoao{cg|L zVf}Y!^ivss{24tv4}>v#wtwSA=oc`0wttt1(C=b68~+l9vvK&q*k|L}%IMkk?l;3( zJ5umDE$J6Fp0W&QGjp5{61kLAI#!d{wH#2$( zjzd}sc8TEo5GUsjNZAP|Tu6Lkxf`u_A$$->cpSsmF+85(#lT72*#0eJ^sF5*_?(&8 zXYI%VCwAC;)@StWc^-2{PtFlh|Hm?VeTKU;oSdtn`WVIz$t%j|Fr3Y+6o#|oD4Vg* z=E-gm`VvOZ=1G|d{X<4SoAFZyK0l{{qGJOx7Shx4`Dd@o;Pjpe8zqX!_yd^%J5uOM!Gif4?51a-N z#+mg8!XV^2jGpDXBDfyI;jrK@`w#{pw`KICzeyqaKzz0)Pq;$oZ}R#I?neEG<_f=Y zkeUG33b8}ZEmKYyDI^^gg^&LGAK@9?4W{cq-=`yd^?#+pXaAQz zlhH%^2O3GhPYTtmfFn*k{=-wD(PWQJ3e~rVuW)KW3F!2~8?x)P#8IE`lNSv{VPl3Vehm>|6nZwHG{2;$Muj|qr}!MI+5cp6lE4f>P%!$(ITc!4;byW0@I2<=sb zd6C+=3EU9zQ#8*JKMRY}G{ouJwgB;s+PtT4VSLbf={)-t@kucM)6X@i{(%8+hkmX> z`8ze9cWKYxQ+^%dri}Oj2#^lqRBwnl`5rwf;}Gu)@pVCb8}x4w;w>;v!x8TZ<02XH zfnYxs@k+?6Y{aSmyAadO$HPYyb{@&IwFe}edJUkzPIMrJsJ{-oQ58|z=y!{}=^C1575SNE`r69fq)))G@2KB#(3U5Cb z=`VsmrHFTc`RzR7o@A5GmG_7@z`XPYaY;>HPrm0(3ianGdBByfh;M`OM!x4w3e_)y zb#O4^S7Co*jQB>FSM3l#3G@F{#Iv;c`sn8rv|dB-GYjdXU}Kk!_%aRN&I!b)L4Tb? z{3VR{yNG+kI#`3a9JKd4;%YFC#KB+czXQaRey&0J3D^e?MEZeHuQlQ{&JKtV@6We4 z6mhyqr=MStmr06SKt3!+dVgroI>hUAdHXqtKOkS;;YtzW@-wpENE8=0=yj~XkqIM2K zUiC%%HrQ7~Je$0cEA%`$wbK>mH+r6&@>MYZ7$ZAh4S75CJUP`Lgmqyo(%Zv$aYcM9 z9O!r>9tq<;Tm+9nyawW*f;b&-D-i$DnfITb52yaqdJB-=4cc`HaXQaeBAyHV{vPpO zkk9mdHLbT4;%^51M)@@@-cK9EH-SHah-;7F^$QTE^IkgQ2{7(9B7Pp`|80nuLVuk? zoaX-p#3kXlsSG4%6;=AE_I^vUHUEYNF9O%b<#23IgEkgV^ zth1*Pr|rFjIBoAe#D~Maq89Oq@WItv#HsyHh*SF#kQcPy&kf=GMHcb>kcYhxr*?D@ z?+p7EL&T55eByxkZWyO-h>wAKeGuQS$NNb?hob&phIwN#(o?=3@o3QRNBkP>)6OG4 z8pdfg;&RX~RmcnK&vl5yFvKfhe7Ph371pO2h}*+_yAknmuG6>h;vEcmeHh~O_$UVPeK1~DAx`7G9`PX9{~Sh~9v_`V+#m9}0&^G_PY|caM-7PI zAIi7u8{+i%h<;E(s4U>pj;aE;aZ5(<0C!9qhOx2LY(HUBjR1*eAGn5$?u(z z5`(w{%!kVme*ymIBR&Vl*A>JYA-#;#-61~ph?m2>+KhM^>?eL9 zo(ugh)0;O)`*9kKyIzPdfc#fS{1|XO#J9pcFbeVMFuv>&|0>V>LHGOAA7hxu0+GH1 z@^S{^^I*Q3hxlky-u?>2S3(|cK>P>fNiO0=gLylL5Pt*Xx(xAFh|hJzr@(yv5OHtl zuLi{TL4SQj+zZAv{YgI>w?Pn}PLLOrr>XG%_eT6K*dK_vGwkb(5LbZlXo2`Sh`$r! z{krq@PC+~t@;n6bjwZZ59`R#voV5_~;c#AP72-M2-YtlqgFMVfd<2Y>V~C5xzUw^V zw;->sBOV6(lV-$=U|#)>_(2#i-JpH6zbZkef_MtpH$l7+;yf1dgOG=gh#SIw&lhoB z=*KX`4Pd>SgZLU)mopJpg!4QH5kCz4CgSg*-y0EM19>hDdj2;O@vksm5)hY$cCA939{=w{yaAq9AwCes^+Uvm!~FRL@ea_Bedzvz8~$X7 zZh(GQM?8qmKZr}fxbQ~28S*>`@#|3UT*PHz-N`{*6V~?<#9bhN?jU{$=GFIz|A73I zf%%E{FWrX?KwKHtWpBirVV^l2@fVP{iHJK2__7%BGmuwn5Z8urn1i?viF4fz&#fVRa zIOHP!1=gL5i1&xQdWm>Cj3a3n_tgJour8<|t^)m~iFh{XMjS%ky@fjh4 zPZq&_MesR@tAYO;5KjbNf_N~@pVf$;fOX{=;_cx1YsBf_Sv4cx9opN9xB<*dPB356 zcy@((W(wkp&>ta)OAY47Z#?4W!+5?B@h1{IUxm2C5T0*AyuLlp^AV@#{f{E<3;X_WQKGwvdOt5Ko7BMi=ol zun+M;{4@AJ9q|g--^@n*KzrVwb%=zfjbX@qvEA-x!kA8o|@!91pqxIc`SVTh+g9*#qNj~ws+ zWW=Atel-a3u8^N`h-<>UF&A;g9=!dpI`ClNmm`CWl{JD9icAbubAvCW8Ez;VPE#P>j+bb@(ThHEC->N>!<>yCI9_+yCp zG05`~i2nwEtP!XE<$(AU*jG$P{0rEhf%q2a$4ta4VZPmjxF)PS2M|wz_*_I>8rIWV z#O)xT8xU87`TslOw7p_5zG<8TAb+|ePW62d&*9ThV1zi;k3jq=jQ0S++Ld2`!yx2y>C&E0o9q}Z{pW}#2 z!#>~);)7tmeSkRqyM;Q$HDMlmgZO(`zgiH#4D)aYh#&12CD@ zan?ipH;gY^#D~D~_;|#HUm)k~2P19-`bfkFz_?C9d>*W8>4=|!Jluu&BG4Bg9t`VO zIpQB6Pp%=p5$rre{3Puc#2tZ)!MLGurt3uq#D_whRS-9ac|#L%NjMG~jrb7A2V2B1 ztB~Fm2z(Hy>q{`=BVnFjg7`YJC~;*K;)QZN--q}in172AzYO*tBTl~`QjhpT=wC@# zCuuytKzlnOPLF#BAwF1&_tOyZQpo=ah|}LO^g!GT_9uym=fio?WWL(yRpT+_4AL_jSixGbSF4g^u-~Wg=??wd4{@s3K)em+J$k;1+Nsj!{dYrpLzo}J z5MQdr>thk01NpNGaVg;I5%+@pKaM!npFw;ytb=b6{{rLcBjV98PCLUsnznZvaQgS4 zl&iq_HAMPN@O%W~b}&y)Lfo}0A0J=D4@12Pi08omWFF$K#4)aHMcfkFxf}6*uz$XV zIMqKw{3fj9oxv{}hZwNm6LI=|6kWuhLcJ!4&xdxoAbte$#}o1GQ12YX_ky1}i1&i= zo`?8M(7!-DY8W5SCd5NJ^IQ)0<1`Lb-vjZ_D!kqT@xHP=w?kY3=8fryQ+*8L^!!vd z;x#aD<{~}==HXL_)4!uRk9Y*czZ!8**q=N{T)hk5t~SJv!+xwi#FfVFp){}WhxmLr zUeiGQJvsTul~IVdf_)pr+d=<%Ax`yyh!2N$r66wFov$|?@h6anyAY?}PbxsXJpvmx){W=gVLZ_|kA%GKi}+|b&od11jSzne#Is=hdLkYO zaqvfcF|0d_5bvnS`?&(~YB-;;194CAb1&ip6?i*m5x)uZ*A>Jw;JEQU;#+(3c3Khl z=CPnF9LLjm+JT-P-&0Pm&q;~_((Azfd^qBZd-3{-h|h-g#Ru_$;D0jWi(nmDg19!U zJ2{9a_u%WzLwq9mUyAr+*k@coJP*djL&U>ifASP@HJFD#Bc2BH(l5jZ!aS)klJ}R! zc`@vl6cPU*&g+a3uhHQ7D8yyqyun1ozrecSgSbym-cAzY^!Rom;))Qr9K`9okcaqr z7+>cQSB81@D&pxd&o>}G1m>A{h;M~BOOE<)JikMKbwd0F#7!OXAjnT0#3#YH9*1~2 z^t&tKwUCD~h#SGYk%T#nqjiW|!u~J^@ftV|I)Qj0%&X@Rw}9~|X7=Cs(C-0vK->@J z8EwS7X!GwkKzvg_p4%aQmB)e!h*!b-8-n-^n9rjT_lI~cL0qgKU%@KGQy`!75HEvq zbO7;Zus^vCoJIWfS$IAphh}%J)_#-|B)|Yg|AHu#U2l0il&)bc70qnbq5$~Wb z5SB8;sr`$HyTW*{N1W>4B3=&r5DDl!8Xx+(j11zT{RG0IfjG547;&?Kyxtb^7tk&z z#04=1te{zo8A*Nb?>!(qIvMVzijTM)kt^VLbjXTiR?9Py-U9QOl+}OZbFe@Eyc6OH3OpZ-_+&Mn8zF8B^S>M7rMz6=g?JV0OXnkg z0s1i=@vShf*C9^Zn~k_F#J?1Ans4V3*HPvjtw)^Z+grqMLmu|9=HEy2O#{YDKg171 zKiVR03Huf|#1&zG;*Yozsfa64h*SM6#OeB;ig*#spV^2{hJ8W_;`@~NdLJR~q{8!; zh}S?orEU1vX?%J^9J(WZU7XjAKwKH(GYRoV$T#j1qQXM$&r|20&p@1h-jsp3Bh;IZ z_)l2B&LEyPfVY1iaeBVEY(-Dpf)DVxC;B|J0)4zXSiug@lF4&6r1K>vykAvgW z8;H*VUXM8aK3`|s|N8$F=7&Cr?}s>8B0e1UMdK0Q2=k{G;sQy&z9oq7f$_Bg@eCLj zxrkp@ih|}Y#E@S^2H(fa1G(`M1j5{~P??FB! zAl?e&B?-6~R}Hu*tT0Oi&tdGSaLUf@gmS@Qq^JAO8;B3&<$^~HCoaNM!CQDh#~uA1 z>Sx3qVBQe7;|)^%ZCJn55U2B)4&pN*e}*I82IoO0ApQ~JAB#BsotEv0(|V5}PX8|c zG~)DkPA(xn8;+x&BTns0+y6HXlq(=k|L#>2ar*b1Mu?w>^)v)=YJUdeiEy006mi<# zHHg#pZbF>4_YmS#e-iOR$V2gQd>lwVlPUNN?8g*=%W#YgY3hG}hLfR7^L7B@u$>fW zBl{I#-wN^9z&#K*2OiDXXZ@MUaN-Yay99F(r{ib=!-*YF4emd#q%)k@@fA{mU=8Av zfNug$<2D2Q+{x%wI4%8t{$Yj_`zc`OIO22c;2#h_4*WCXM}dC_PW@R7@#*cr3ous$PV!BKyS2eQJdEMQ&&%A6lu?LZ zF}TL3pld=_wP z#AAUwBEA9m1jI9dPXtb$lKdG7c@o9w+5Vk_IPI@xh|~FME3#h*>&Q{0r}Oq{hLiXl z0YA?nPX7-58nS-|?B8MZDx94Hi2qZD6Z<#8{tLvf1Al|;-vIl+5MK?vn-gc0D>RLt5z;G1~!8S?I-i3di#Gm-n0`oW`e#dk-n@j9!I%?oS|Bf*DTi*Mgnth~EJo zi?}+Rk4i+mH}Lt0djnsL_ypkTz^VUqf4h#+t8jiMaW_(SBE2SgBUcKLel3p$$B}+I z=+BDaHHgm#eS-+zhIk6-JGt@>kf-9@Eeg02;)8)}B5n!X7;#(RHi$og_Ifj%43$p6 zXCn@$e*`(e@%(cbahm5B5nluTR512Qd$&QwuNghbxAoBPO^B}o{sr-~z`rA20$jq4 zZy+7NuYk8lydJnbaN;)clYZ}4k|=w;5dKYGo19hG^}4A5f=a# za~GNu{<#y;n*f(YTo-s(#C?JHM0^r(72verOTd3EMz6xvD-ZoRoZ-Zum0-sV@l@cp zh!+DNhxkF@ZosKOmEeyzqbL3h0Dr<6PW-6=JJE<=20lxK{e_I4*tZ1xE0JCk@?<^I z`+|Na(oY9{fe3yX@%f;y62adfPJb8cE8qJkG0smCc1vqJ@3U{NQBM)HoWc_V~IOrmM zG|H?>*X!uFLq<>fh1xe~II(XJcB~N}1KbYTZx8-YL|hSgDB^$qE`za8{J8`DzJTGx zpFpTL1@WoCSBkK|p3$@RcQKsUr`Jo{gLo3y-;eBTK)X&LZVLPc;>UsC6Tv?MC;d+R zSqJsDBEA;5z>^bkh3e^b+S(z$6ZD-Br+Nj%slEqrnxFTZg5#KnNm zLA)REWr(W*&qmx7c%BG;4mgpKe(?nTMZ_lqzlQ8s0IxxOEbs=#4vGILi2rAXlX~g( z5x*f$Y0*+U}hNkWTIQ9_m$Dw0xmib~oSrJZDH6J`0%oO4|@ z@9W+9-1q%>{QmpR!!a|@d2QG0y5^c|mNSP@&b{4R7%?>BJyWq^wU4)c%?@*qW!Cu8zzxBxb(y3l98?Sue3nh5s? zd==oReG`H_nS@<`0QPMV`4JG06B8bca4Fc&FyYw<*9Y<^nDAPJ8v*%tgf9X7A;Q0d z_}?HLUMCqrI3KXX?na6At;K|F^L z-VS&k!k+_PfN=O;>r;TUV7BqR4T3o95xy4G;|(VK9pG^P{SN&0BOG4u{ep0IaD8+2Axmv;!y1pFJqF91G<@H2q3xHBSv`41dit+AJ{iU_z}P@5q=r)wFs{Q+!1gXXB6=3#)L;BcJ2T>u?W8fI1S-1 z0Z&7C58(R&hw;RNc*+o740tQT{Q$qignt4Y*5eTHJA&{}fPY8qYzOw)JQ)ixP9MNU z5v~Nd48rvRUqRq--^Di>5jZQh4(r7M;jrI}0vzqP(-3);84SmTOyo}!INsi7fcv=> z2>%80Q-^RhAm4y+Wx#JE+!F9^gu~x0eTDEqApZ{G?tp(Ja49VQA3}`sej{+aTxCFh z4B>fzPZBt82R@I=;l;2A+s{)V&xP>Efb#(k+levA|5Ajz0d9+MGT^=h`*=KXoEA*r zc)13E-*AL~06Yod9N@X!JqTw7Je|Oa`OG13+%NpyrDF(R2<#LPI5D560f+gK1LeJo zaBFr(-unn@9{C-2YHsCDY412I1w*o!`;huocK{$M0>pX-f0QtoTF9Tc- z;RS#%C2(S%S0Nm>LlXkW%li=6F-Lee;MRb{Jih_?bVj%^$bU4##R1=s@C-Ia9!mj7 z`=3ez$KxCV@l+xFBjC*l=MrGpZ$~%>;I|2!n71B;!@RvGa6BFvVCN&kr2!uX9Og|H zda`E{An%6oIKYDt zUIKU+!jA$TMc~BzClWYbuGc`GhVX}g?;~(x|Bwwh%(ExRXAQ#P@9Op-Tp!4PL+rzT zV}ii(IECh5|L|!mV+Q*Ne!%$%Xv2jDQDuUQ%GpqC&|tjA$QUKr$mwl6~u+UWsyL=Xpozp(!dCUD&E zIv^j8a4W#037nX>RKQ_=s31Ru2=@T|I${Ur;SCf13E>wOV!>k5IKoRneQ|&j2bkvx zPKLY`!l7RUgv0Lx>L6SPv$%LO7JC0*<$bSqzi(|C^b}dl5L^4*fu$eG%>r zcpzdQ`bZ*hm^0k*F@hbu-NHDF2pspD4D6R89KP4|EMgz}y-AQK+8<)V=lJ7MF|IQc z<>i@hb%dABWav8~9F{AV3C{x@ub0^j6ZHR8Oyuhb9M4Yy$WH^p^8jxpaJ*db{$n?R z<96zR{6mCa2K*U;<96Wv$`1sN+j$J+2M~TA@Dadad0~Cc55SbM32o=MtGYDgHIqFwiC%f#&$FhaZLCggu{L;8{wCg z8Fr5Yj^`hA!SoGR2=aJ6eg*Y)9pS@(w==PGmkA$4>~MqY2A>hm1^5rd4(vPTZD*7N z=I1FGSBL|Smy3fTLjP|>;NTR3&YclEF#q99cqYR0`4~#C=^4h@fF+_d{$d@AWkwE@D6Mh@v89@FK6F!3QLqL8C;ky9m4q*fa z>yZMuD8lUkmqGYOz?TCK>jl1tc@-jG&&%-VK#<4lB~OUKoe`c3xF^D|0=^aD@b_qf z5&jCuha>zM;IV+iJlqCx9zx_fz&Jby;jDlcAa*_gJLODxGh#;q*l9=jLcs4Ld@0}$ z5UvFH3xw+d{u<%BfDZr;^8n)~g)-^~_W#yEo*m)vJ(fIxLpzfo5A&GtrHCDuxeR~m z2;T(wN`waju8(kkz)cYz3%Di1V*s}U9F5->kt{}7Sy2J%l4-Uav@z@Z&^kcUr9_>8cB zwzt>7&MbuY0zL=fUjUzn@Dacz5Y9S};cpSbNq{Q?j>bUk&&^gi`=N3^*G9X++)*$X6hI9pIM%hj#2h z9vYeOXNVntVCN;m{Q&Pncnsj55FQQqcZ8<_K92BIz*)l??FEfr7;xB69tZOC5e|PJ zSsJkef4@nI2{%UUTmtsZ5MBki4Z>Riw?}w0;4TP%0JuBC?*YCIaF_=e|87M71CUQb z_#42}5j&BfJ!CWCm57~5V5bVdKjDHZ3 zUkc{Qy>qr5r6ta{Cola-mxO!P(DzAA!mZ{8o;fYa36%%0r_x*p8%W& zI2`Yls4)DdA@W^7zJwr;kN2!Vc~2wU4Dd?CP7kotM3Bex0Dt$q4UzAi!-(fKK_2(( z3+%r~xCh|F2u}n2E5efjpFsFIz)3q8{$W2*3iu4bVST~(Tdp9;1MR+1OZvyH2{TySxAVXe_G5gK+0e4}-lMoKyYnsi3pJKuxw}C^tqpd@pDu6Q09_S0lUvw8Ogyhwrz9-&4dlvtpkSP*F1Y3O1qK z4B_xSjhhi}4eabiIDEff8^XKz8UDU7;bd_C1jYm3cc+VR__I8 z1>sOW9pO;^A`^ZG;qZMyg9wN3tC?WJxxvLv7(bMsk8t?C00k!87~$}JCI^}Dr%d>4 za8Vn^1K$Utig5To3Uemh1L5#}4!fA}!wA0!Zsrs-;k5{d?;m*1gpV@e^S})hSYG&j z_BBj+0uz3b3GZjZh42F`HlcoX5e~m6z7gT@d&*l84!=jd3*qql7iXC8_XvmIhh+!# z0ON$;$AtBXawR76D-jOA&j^2C8rp$;8zK+CuXl_Izt4ov=Kg1%p&j@;;m|MSp@=;E ze%t|s!|zX>X2P#B;T;Hv-+Ss|!bcGfzh^Xq=bz<*T!;x@#DuFc;qd)iFhB5nG}{q* z_`R4cgfpVU?msZ$_Ye+-Z=}~u_-BO60tf8ipaSDu4frA^+yLS0fV@8wp2CD5N4Pz( zQ_F;RAsjw0-OGdzBis+z=K$wbu)OejX>}&tiV5G&gqJhn&kzou6aIv7_&o4TFm8fz zLN3LGQxFcHr}bsRX-s%I6aEO{@cGhVgu~}WXM=Glj309NySR|U=Pg$u^6 z2`^>B-!S2G!8jep1D_{UVZzOs@T~}k&*L3r!r}P=^b6&?n8^P`IDC&2C)n|!9r%2j zD8k|MW|~a64Z`Q)gGy}LM&RI3Oy?;C4i0^Eev-h!A%)JbG2u^`@NWbTh8}b~JVNvt z{kTu$WCF)Shxe~nG2zxsxHrP#{o;6p!~2Z+2(JhIP8}2enhBo?u1~{y>;`to2#5D& zRG4smCVVZz2Y`K7gv0wa+nMk`x&aUjO6)*S%o;kS}1uRS+Hn?5{yMysqenaCqHs9}`}|goD#c z`g3345mI^w0}gAy&o3Cg4v9nt3wXJ}E<`6P1P(40(1|{QLti+uCU9^nNhdA@PVC0fVn2MGz(v6_J_EzU-{pnlK$sI)kL!Sr5}2c07vc6`-4fvyV0{CD z6Z7dt;CO%j60E~^ui7ev!}ow$A^bMj3AQugnN0Xugv0ly)+2lr*nfa)ffM_&MFb8~PA`BmffM@~Z2||2bb0t( z9^O8Q{k8=`p4e~O5je5mb|G+LzrB^fiT!p6ffM`f7y>7jSBg*0m5PbXpHdXpdT?qIQ;!JTZB6U zc?X1h0}fsr_B(Iz_bl8H`CUNX8{ss-w;}u>;6VsK3V1leO8}2XcqQO*2(JY^3E@qE zry{%qa5x^o+Zx_Zo&XMyn~=W(JQuMu0C+ya;eD(^giitaQiOAXo$@Tg#Q?v6a9O}> z5Uv7v9m2H%Z$!90;B5$pzf%U=FU-R_Ab%H;cLe+)!aV_hhVX5G_aZzB@OKD@_w7C+ z{4kJ*;|&;R5#Zkt`HO&$BfJIhDTF@+oDI|)wEq%tPJ|Bu&V%qDfX_iV3H0y62%iNw z-0z`ZA;2XOc`3kU5UvC`yw3~m!0+FwAo7MlUK8QwfW!U<+OYv#50Q5Q+z{d3fSV#5 z9*^O;4%&|f@-~QkBH$Yko(4GV=b)XVfNw$MivagRcq!n12yX(MIGzNDAbQKm0`mBb zczirh;Kbu&H-Qt6kHZ8`JU+tr?Bbj8vcYL7XkR!d9v{(hAe0vY<-p}}Re0XvOgNt6 z9A1Arhj444&x_nYh1XYY5e~1@`XL-%XD&fFJReC$uI~kc>y;gZ>tOVvgLMJqIud+- zgLr*O6efW%$MXP>tvDv*|F8+SO{`xHI%RNT{Za{>SiepLPORTR0w>mQ0)Z3j7d}sd z$3v{&(*${X9>Dq|0*B|GIQm53xIC=)?*z^dmhqW3o)~PxWr^cM3W4MDBDfGX!Tk}J zr`rc|Aq07x!*+EX;rgImT|_u+Z=VpJ0pvMxqu2!f!gi>EaM%vv_imv)Y=^OkJZy(Y z5q=!B*BXSw^Iv!!8rp~VxkeCqcz;j@lmp7c`>L=Xg&f{ThTq?X9Nw2_2aOeS_#A=; z!r^lfeh7B~m3$oG@cJz~C^xhZpL0Bk=dZpnZ71VFHnd*Uk9BP7dYad7L4_VLuay@OscMWf1s3 z`XA-s9os@&w~&;BLxLD{Z@3iX;peIx;t>%-Qg(L@aV05l2@WPH2L<3O%9|an%vH6l zR)+=!djuOrxOoJI_yqXtxcRvT2m8Bj^Dqj-EvhQ3Vj9rSf1yO8JH!S5ZQM`|dy4z_ zc5|B$O}CI8fgYxAM%wNHo5OwFJ^YQ_5O;sEqJmrbM@*{fpd9u-{_X+cs;d40p&>yY zo*?%dgxh*W*$KS}u=XVDGot{vCKObKYza1oHFE_W%9`vMc#wx|ngBWmd zh-*+tXdpm7{yrg_U4w#LF|FTKV{7y8aszpKJV=s#K;KZ|F>znAdJdmOQ_doAAipPtijTkUAJrr@_@C?K$wD`PjCp{ zkm*htazU>CULOBsLH=I<7WDJ+$LfM%39CQ2h~v%lb%s%V2f=g9D2Aauw&JP0d9znU z#O6Scpx^+1S3jSS9h<{cNXl*j+qQZ5W4oAtK!}I3iPd@~tbW~m!Mc}!sB&OX0Hzdz z*DoHihxcaBAZ!Q28c9$9)(rl?nXX{{Kj^ytVNf5eaf7)DHeZZ=K==H6&P?9|=)q$; zt}p#R=)>^~9J}E9vj2m=J0^=y#P}7k_5U`0m|vnkevSRV)rZ#)i26(a2mKUG7N3aa z&%oCITmQH$J`w$AV(b5{{!zO2Km8y0AM^`>KGFZd|3SavFZ$~LgZ|aO=T`^hlb!Vi!CvxUNG+m$6>Ha;)e@hjz3FNm>F?XbZKC?UK;QJYBx8Y$tgB+{xJ`In5^je2 z#IZZR4f=<3Z@@V4fev9B0sdim;U+YHZrBET{t$hA&;Vhc@ciLb0qsGK?-O_|sDIL2 z3}O?Eld*>VekWW2^GYCt>hlAAG_R;We!lcK|L{2j;<*^^64md<*x$;(;V0U-%dQ!N5Pd|2P2u`!OBjgo)E9I8O%pX#X<+^ug@638)9b zZVb@#2LYJZfcRCwI==squ@9O*{JIlv6WRSp@cWw5*f!#X%MzzEKp%}?1@wDMh{D)1 z+WztD^?!@M55yk<^zrx?VIMU9dQ2bhqtN|y1Mm;!ftla>kY8cq-=&D50s9%;KR$kf zdXVG4`-1(ESdj#}0RPD0<6q?;0s3r+egx1*^9B7gqQl-_3gbuhLHxw}m;FopLYUs) z;?H2>AB{&7=%ew&?`xv+X#Dtn2YUS@@t6E1eti4~^XKOoS;5rc1-*~ z2L4@uAYT9Y_z~(u|9hDDe+>NV1ARDy`fxpwiGS^4hC~Sv#Qo#rPpA+5S400m4$egI zg9SE0dB)nm*DIlaC;;ZYz(4eZ`^U!$&>rL+!2jH^AO1cqa6=MtWGqP_9XRw4)1t>jUmM)WE`x%=Fsg40^wIva z&!3?H!7!PAk#b%4K52}xkPq7gGH9d}JAVuT^0?nTQ zCiXY|_85j_BeD_IccWhi4s>-_4p>UYCRHshO-(fwH4Rm4Sw%&K@Lx+qgG|=ez&7K8 zWEZYoMi$1bEPpJrkXHR}7sLW_s{WDDr*F_Fd63-cviO*O0rtTq@bNW%j8z8f;$V({ z-yGjAiG8HN@*-?54VLk|%3zQPkq688VM!4z)mNlz1bCKe0Q8o3=)uW^agD#R@`Aok>l@ zlY=dhrh7ANa6tPtZ7rKvA1X#ojZ&c|PKO9!bR#uYpFG{mClQNFZ*20U>#wKMzT035 z)c8-F)YM&c>G@RJP#-RoP#+>qrTJ=8L7bdHMW4!)S z^<}4f8TEq&hSkY4zCfDpX5s*4qhc-+yZQDVqOZmn(jHQ-f$R`z~xtd79`^`}&LEBUjAl`hpzpOPA8ft6LRi{*>X2;aU( zxObYJ1?4*4OJK$a(&7G(YhwAL{ykr*7Sh~u?J#9{dHHAo~18 zr=ruvmw-2}Yj_PYV_)U&ZwH0K)mv? zU@6z}1onT&%pm(^&cyU|{}>h(gI~jIkm1u26VCYUkJk9l)}CfPZ7BCK{v%62D?^#l z-~V6osn{MV*NCfl()&`p|Ht?L-#b6nKm)WHJ;orF&v1a6I2bYm>pen6u}YF9RMMaN zH>FMBy%cO-Sb}HZ-3B07w_%tT!SZ_@D*|7_U3P*5E)d9Kni?(5ut8s*1%XrecD0V~4QL z?2i*1C)U&2_!4$voYsd`9Y5XNOw8Og-JDJfg;sCKXVsE8$Y=E+v7Uk@&%zLMf%`SY z`!?X*koHmTW|{`p>3rw2Xv8)M;i6RB#UGRSj!&gUON(H_U(&c$=zXG2Ki`^0L)uU5 zC_xXFiX}k=ujE;@kE){pMRBTjU&Du|^!4~?X>Jz2bo@asyt&n2I}nKy-^`-ZzDt#w z>dT2)Go-zThdA7p*flaH0|{LTQzq%O$K1h#A{xgH(93Q}8-)tE2_CG7s=o=UWr#&B zgvG_r!iXj<01L1hbAcxni%Z1qUQ>0ZXmQjt*#$4 zN~lE43||8N)rLRyN^8SgiYUfteSeaV*9pcGah^CxkFpJGAb9Su`o*iV-}LwX2h#4# zNlCM3!GbnSEvdi+iTRjqNE?FdSXB$*(WiN{8m1|7#*ee|CG=yKv7MQ*KU$=^!P0+V zR3V;GdZk#<0BK<{)ENwY@Y^+(Z@TB>r~m1hFQFHUlTg9^U1;1c@yeZTp~Lo&D@FafVkaQ*iJ0JM>RlBPA-^9-)|<3eQYp$D?7pI<<@ zhdb29E8-vL6aQXkl#)uDNe>Gf64FaeKZT%SBiCKnFnT(KgFYbQ2OIGd1{&K&x&lM% zk3V$%8h$E4fd8})vib6wH73O{_{S7|35$S}u5Rk*=i%k*M>YxaaS!&1^dMQgx|6+K zgRx?h!+bo#0|SCWNFb}m_%j{Yc9L;GsJ}bem5e?1fj#)MjjTlW3J7rDvcrS4+SMP= zms@~8_NYmyTL>9@pa^?h>3=Bye~uj%1PGkj&^mv8Kr!M>d*X?7=3l? zzN#E(k^7^i!lb!B%k+)r55S_X*#^`8%9ec3p{>S@>hbvGB+^d*Q~hh15%*C#m6ImSqmT_R4s1XL{c^ z7V$%*kY#sFev*e%ze%o|+usx|+Fchd+y|@@xxeM#IFLD|FfLm7 zVgETwTT-4k5=Lyf6u?KOUHD@jxhF$XPa@oAd^3bP7b4vW=GT)oujB=-E z-Pb?Uv(1NkW@hBqMlJn-58E=&zSGS(`=%-L?1u}PFB%?6_0&rk*JetXL@t@;?00tR zV6UZlEvh?WFIkuTNV2EXi`>)rXi?8i2}*6+^|X)`(_;Nrx1X`rr5`5uv?P-!=U(UP zXNz9gojk@;7&U%{D)G*7URT?W`GvnC))f94k0_jOIZW2AUq;@!UvJMhxfs@dN{m?l zy$M>Fe*UYr%vBwFl*kklFSbd|rTUTCd?r5^gu^k7BKd|bylv^$r>o1S4G#xhh zDW>Pry)0uYZ@Q;YZb$Azt$K$bKJGDxFS6Xt6>k@dw7amhn?KXvI4`!*e}21XT)1jR z8>{uzZEOoS#CEPYPs$NKPs)BXHb>FDU*$PBn`biLjb*F+nzz?&c_G+z-(o@8o7^!4 z@vm0|mMIr6;nuy7aan2}b?FIFa?FrdqF2&K0dhX++;#)i8|(H*OI@AE`9yQws`)*Z z`&d|chxl`^P@>o`4qC5Z6Rfbm`onZZcc;NE)z2}OGH*)G^kw@j%g+v4Rn&KSHzaa+uJGQLrTa_5Q1B~E>> z!Gig>&u^b%3u2X6til;Ke)PsFioEOSey$xyOC2XVs^vtldd|LmGvxq<{d-aW ztfC3Eh2EkPdoCVLH*#z^B{|smsF-!|<|Xo(w^uU5-u%k6`?{{MX9r)QZiHT;?l@Vx_%ZIn z`0*`;tH;a=c~-K#ncsScE&uVMwu>_zZ6wPwsn>~17-tMBrq#2Te_a+ zuk0RG*k8VW>!XD{aoQrTDz209xz!5>d@sxnDy>uaG{srHK0{uSb<$LKmc>#^ah6?R z>|M8$WVc9bZBxEnE$*2q(#^LurL#f>VmDc3=;pE4^TllG4!Dz~c&5H`RjrJ8JHKlf z+boVk$}N}f3vRd4U5!l?t5(d|y2LPJrodIcs?-^Rq3SZM>@yR8s_5@8JN-;n?7CvUVtJU;>D`vq72LkM z&M6|K5)C!q15-CO2Zgi8t91jfr4JRD-R;?Yh31p~j`wDUYt<`}p;g5lvgy_0MYCd_ zb4(AKG~DwGGayp=bcir32TQb%f~pDS@IKO*vQN$I-ebkTPRw7!qJ354 zWyt5L#Z4)7>Y;x8u{CR@0?!^elvFOapB6yn;yG`YcB?jkgSL5n% zh`QU!r8zKTVB5C2@l}VzYXxFG)D?HAazy96c+?js#**k!A=b~mh|^bd!(0Vl&2C*! zm+B=OWJFGsMzwOXhO_ng2eL*lYi-KodT2~)bgxXmI+*Sf*K{O2L4Ykapwr)*W4q*) zb$V{^ECzPVw2Azb{`K;_$cDlTTn=F`j3~0xpV$?&IDJ;h&g|9`nE7OIpzFY{Zi)J$ zmiwHMH*Lh<`8e#pV9jUq%5SEsVXKN^V(=Bkj3qb5bZEQJcl#F_YiDnNsye20>R7@h z%c(_HD>zT-3@(W7^!d;$XtjbXKj=B7zH02qwiH6*U5GMlSGT-dT*dRJP8rlh+TuimoN(wmzUhcSf{=6XcpO$tI4av&zbsaCe1;BWp(g_2pP%`bADrv#jeYrl2ZqD>LZ?Z ztn)1umn~%B7Yq?Jh?@@HuimoJJ#)ta%O!7pG@E?B@%osKIqx6d^6Jpd79Y2;DE~B5 zYtTF24_+YbeZ2$cuymh6Hd7N+R z?X3>w+4Q#EYB*Xz^5=aY!qqFY$;wO5U+R6x=QlE2tcs>*uvJ%9dd4R1)I2_|BKIkW zMM=%)nCX$su&;0O+^h~s{8$iNHd*r_`(96a)IJ^E$(lz?`ql}reIDOg`uUBxyH$YR z5aqqo`!?P7qmKCE{qgO5YNzrgevpGdPS*U$RAXwN-dNH5oBx#(uu}%SV|7fi_>ON_UsWsl@2Jwav7-lEBDwZ+rz|vi_?Y+F zVOihw8Aoi_}{&5+0y3bT8yc=}soc#_t@ z>?@Lj<`#3+N}FvL-P@Nv)E+`Eo~h>1{LQdoy4W&A5NbloU;FyD*13FYgfND=`6?&I@WG8cpmm zE-ZrWJGQ&6)W{^Y@3ekWGqY<-G)qj$ZdY7@BA@iC<}D{q{LW?Hr9V zlHaX2HJhHMs%}`_n0Hm}k=&#$-|mRzDX)sgZx=f(za%izX8GglQf9;+! z#l^Q|&F}2bR$&vddRpvRc40lo>Gu~p$`>^~5kIP#VBt5*tYlPU{Z4*szJg@4epl@s z5zdkI8FNGK2kwx`c}kGtY7fk)-P%D+rd zlTf?3Yh7#R2|mLd2~j;&)%LDO1&Xm2QmWt9pIl?&ps2Pjg|<5B+9D5H%$UKw@Ipm7 zPNiCl+3e38#wSQ$S!cR#9oksovdZVwJZ_~zs^07lp?w_(J&*UbozPuyGV!U6z`o)# z@uS<;YbG7co5}I^Bd3&?he=6_ugF>TfUM=5KG)`-F51)|lyu;!t`%u~Qo`c3sn?vf zYpT;#oC;%xD%Q6(>qN z(qHZv`e{i$+Zom^vjUx1{r85m=9bLg%E*q5$+M4k|2qCU@H0=_VWB0w z$%QXwoqAWZo#j++*u~mGzgTpJ&v4H#O`l2Q z!kRUv1J_OV{5pCu$<2O+zx=5RY$)hNjSk%VA>Qq&ZA8!Qm1L?>=}QHJ!1o6ohZ9#QjTnR# zt-0#Lb1d>y#P~?!Cv(&Hdm{{Xc=0XBcG>$*V^}js-ow~w)5*@14&Otf+jksOTckW( zj;;NYQ-A#>65IA-bB@4aK5NhBcWk;Ur%sA)A1Avf38=H@ylU1UtMAT!)vht;UP>o* zORH3{j_R8XQ6md=HH|0A`6-y(3Z_Knyik}i{!~)6$iH{ z$XgZ4y*eWK+I`M0f!A-i&0bZQ%}^Ix-fhr4Exp~|ypvow?jmCu%kfk;QC<0`w2S9l zzU8w?Gm|%KJh%`(wI{q^`(b0;hQ3wBuN%z8c~`6~i4}Zbu|$xz@j}=#g{gg{4~u(O zzJDE@lWHF_v923gfO_sw;}fyc+K{H45!O=q z%Jt5#<1QDSJej>bfX3$gi(hK)zWoo+i&8AVc2CNGzUXl>`?_h$!%A=A)3^3M@Yk5O zdVEOA(4;Y?&yZV6S<3&|yy#Z3OTQ{AX2*Wk&Nv>g+PEHk`m0SInWZsvu zoX>TRgMW(UWXkt2A?=+PBP==MX~#}$rIRcYr-~;o|>sU=B z86026x$MdtzO2-S`8i6>wvrcarP(}sA#;FaF*vvW_*L=vO8x~QGv{mWtoD5Vp>;Jm z@We~0brrnpKF@EsE0vFq&jMjKLNJ3||vy8c|g#baV! ziPrM_2`5%gJzU8Cb6%hL+>%p^zw`u^udjPw{43tzd$moPQlG9O2lb}I30*JA=Vpq- zS5BTO*g{*pg|=bKw_0ugWdAzQ zZNZg<$<>nEqt7&d-rcn`D091uiLP1bo7KY>7YE*2Wrb3`C}RWcA2^o^#)|XSRI@1D zeUQ>)8zQU6YT`)Nc2eGLe!JkvjN{2g2KJ4?!;|mqVq`8?u6V6^j>n*G;c32`vRdm- zZPU*G~;E>Dt$_tliB^H z+dJ+#WGRF+nLYUCRFff^$MR+_+sXT*i^>G=>8`19lsdU+Lnc?S8ezA_^2qsLnSY{8Koe(*?eP!?YTk45tj}-CUT0A=Y{FAefxdq2W zg4rxrDztxuO98J=-}{m|*uo}_ic91o46 zP7FGVzkd)Ck^DNagtS+2+597=o6Gw?aP~CvPjVSux9b}^_;W?+lchGKsG@bV^`AzM zaOu}ZkK}OG_ogpgLE5==u0iSX`eBDBA%44`$#)Jvaelk2c>dv*&ZTeVUVq>qJ#%)g z%DSvkJ8u@{n5~JJGk;xnmm9lxj^U-Jz9VCSg2in2MkEi8M0V_pta{JpLt-!W*)kfk z>{wleWq(wncfN?(5amXIi?!=5{^xr)8i{iUoUkkj>)SP7W@w|U@Zzqam*HA%>^JK@ zzcmdNeeqs&a0aiCbCc^2x0bpkg>}sVu?Z6bbM!xdYKb_@zq{W`bKjRwvz*q(o2yz- zlpo(RxIFK;7pW?7PEc&?3ig#QUE->07(JIO(c)wt6vHa$gjs@}yK0UjB=29Fxx1fC1 z!`8d=IIX?NE_v)@uO8S~)j#_|t{0nCpJ!I<*sc4p?6WNE)sHH6C-Y5WuUB(r8^(^E zeI;6dY;tswXvZ8g3Gu}Gxh16M`@b~!tt5qaM+XinlI#zSoWG&A)6o7@{E^a>k=E6Z z9*7K7Ip6Y=eZ*F~Dc^s6`!Q!Fo}$lUUq(1mUUIJS9*~I2_dhoGV!p-r#7(tjEosvG z&R%S;`M6cDt=-~Wh*ZE5_Z>w!oHo((X#=a9*I4gAwZSTTr&8JEqQZ>=rpwZvZ`+?~ zBYK;BpkVM=iHhHOxu`qh}qV>xjG=%A} zH`utWs}8Ny_fQ=2Ea&_n@98)5S7OG6V}9F~)$rwRkvz_)IV&?Y?fwVfr$t%MTf_#7 zp4IJbkXZQKWHS0l?4`;HgLMn{R;M;lw_1ds(o>H8Ios~$aJdSbuS)o{PWNk)ebXuV z!d=y4U;RTm_BEGw1%4H7ZLCfW8aR9W@{Y23>vPi%4@U>8s*-+^olF!3SWa#{BcRL}V)#hUbfqljn95$m+Gd3fzgdAH;qS>n6)&V`5xUiMd6uQ^D%?s3ca zguFE%Z`~-r$+Gk1QL6pwwPM#b*p#cXUvXXS-5+_TJ$cxYMU+%?FR)*L)iJQjdV=S9 zRGH)%4wzJ z+O(Dx_Nlw%1(l~Py#4dew&)#;b*?*YY>^&r`)ttf{IjjQb${&_p}e7SdWpSarpRPod(+*{_Z{L3+GTA;KH6*%TffCt zZp-z#v8o*nDI0Pdw~T9_tV|vWDiSk~j!^8_Yh`?eT3KkHq>`Ie{NCvB3B?1ot1P4H zOsK8h5B6Sew3s@VGqK#w@XoZi%+iCCor#B&TZi{}#5tT?!30qIq!0Bk2Q-4+?u1A>#+N?)$T_kpUs9>$y}6u<>O@u8T-f=-7F@()%YkTqRoeM)w=wSu@5IomwA>t(3}QF?`=IZUkSU& zeDs3N;dM99Vb^N|k9BiN-8T|X?FoA_y~g=@phJYSqHpM@=Ibn}2Vb+#TTw7Ny`;t2 zcj4xhlgl68j94l#_9H>>;qLt+OG{G^vbpV-AJz5$@^??W(56o%~jo$xhHh) zQ3-B-UoNc^=PsX(v{cmLdcX8&;pI)k2`k1Z+9$Gkvd_qK%#R=N7I2Y`-rE!u+t{Xh zy5~+W=R51oD_WOW+^n9u_QGjFU9oc1`>M`IyoSk&X?fh6Id#_sC>!u5oioo1OX+^S z==Qs3x%Wd=Ji_$W8VFz3pepR`Q|kFL8gf%|BrH>X@}iGf=;IfsX~_dQW0$4!TUTsd zKV{{SXOpv2KKT00=V#O|m34lXzkuD#jZd&t5}wa^Jb_M5g0I z*}*R(o*_XcPdr-_mYpolm=W6X;Hh>pr>>ubU*nQr+gEf(FDQ47%#xnIGM#AG^uFec z&AdH60a{6|tm&6oPF$WR%_Bl~iYYw4cd3wZ?X!e4pBps?Y7f8Udf|BPgF)1GpK_H}K7$Ct0=3XL<1<=h4` zQhiScsZQ9GDO_R5}ECDfz7W#>|n`t8|$zmPxNf7ACI)| zerCNd{p97@p*tS83HWnSxD`)Oj-9{d?ND~P%;%*Rr+wIYNz=oc36@WmS680$S?D7e zx$Ng|uhXVa?8fex8CU0?F*sCeE27hqxcbN~o-Y%IH`j2EHzZ}WWZrMI%+RAMv^k{m z{5%x+Ic?DKVc)e`SsN`C;>+C@Cd+vgIb6@dtVO*Z6G=3Mribn3c>L4Q`*&IbOPY|O9I!wTurNQT|0V+-u^z>)?R|xmno5V6Urtz! zFOW=@e3bqEV3U#h2C``WUfX^7Zu6S9b%}+W^t}`cUV6!1oPD;;6VJ%<+!tlV>1F+I z?!SFiTQEcU{7$8UsZD8{eB);OI7JWi3i_nR2eR<2iZiZ~PtVbqJ5*3bNvG5#aO7`t zix!c2(37PSIFmgn?;Uh)nLG9g^5D9*Y`O4>#ZJ!gwD?NPs{1#4_dS&ibu$fP$@V;Cetf*w z-epfxuuD~*Nc%cO{~#s|LPDfZ^*lvY(;+8Cn9`Qw?(dvB+Y2b=1& zvg5=ot#qDy#h0E?y(8H+cvMiE5~tBXkqC_!j1+&~!|zc`%ARAPS`cOS?eLtQdxlFB zU1;lTb-ydy*7Bc@+e)MO9UD|MTOPknCup9>iq!MRjGo*s@bg+*c41LxP_@PK6^(@# z7U8qn_DH?Pt(7l+bSY(cCOtZ{_e^iWj4`RJ-18=8PY5eMo)aCj*J1bJ5Y1t$zN)j* zwJTVrt3L|G-cE>rFBZ}uB{9{Od1}_Mq{aPpqrKB?g0D=aoc2!Nl9iZxXX+1(AeupT!2JfB37_O^186nJg)%<#xZ7xw3QIU47@-S=VCs$SawTp5*<3 zR{6`y*_yj@TdO^q9_-tlwd1Q{O~#P$;vD~_!Xag2I~pEu9p8GZyxV1TZ3wxE#t#>}U zC-_XQ=nVgrA9CpUNmtv~R| z!)*Skys>@5W+}nP3ffmX7bULrlP~{B4t()7&}JZD&$WjqpQlS59x8X+>tvLxBiWh% zYgS$F1J9BGBM(Kp?9PCup&v$*Ngj5wnI;W4JSGkWhUI;Z-oTN#p7yyq@?(gZYj-|h z|MzbjPKr&WHatul3_UwGZ-HNyl5}B9ecif%J) z{Nh&6;#?Av(oc?@Eyqtz?220QZPT@eJ8oVbJuggO4taWdz39A}O` zQR!5UQ`a&`m@$uY&Bv-H9tCYflfu)o9y11nWi92r=MP-`bne%I-Ea0bHyF*i`ibkx zVg+$$$-zf2IV9&9USmJnzk7{E+xgc?*?bRo+NG^gIIeGW#mynKxme)7ck9d5(@Hx$ z#1=kP7^P_@2HV&Tow-rqx3B2fo&Eut6**@O7D*p5 z==;e%Q?d0zt4-#e(RB--&D*Zt$TAu5xI%Z!k-dR?=4*()fAWF%p1~V;uY9$NCp!Lh zniIi`+X6Q^KMgk*8y$BVIVlu4dueaLyoVR+!oD1RA$Rvi-L!TPI+Rh2>C4ySJoH(0Lh@wc#Z&QtP9 zzqI(?tX?k4F|O3J7GG^u4xKyS6I>oywJ|l2?bk9V2W9yro+ajPi6v)Pt3^jI9&}Ro zlzvof^YF3E>I(k{J(}lv>W6A}HI5F~9v#YWtt>6Ry6JjihoHg2+6F0)$mIB)Ps7}7 z9{4Bd3dQMKo>$!vbwGFX`>$#?QJ*~3D_+S;EWkz!_x8rIT`C#kW%V6$l6Q~#&ihpU z-ea$LZUz1}xvsPRmdn=84!BqM!nN)5sO->A?T4c~Y=@{-Cc#zjc^@3hTKdZ8-YMg3 zwxRAVTU!ihUx#EhCx1vklUm@}P}d)N++LtU@79rcu3wQWD}scE?y=qa@@u?WW#g+j zwQWnsrSvLy6xhh!OF5c1^VZp=B)%IR#*w=s%#^cC+{-&3G+K$@@<N^6g4p zc&gpX7Z*|tgFez?ZibddsGUi9_QUq}-VgUa=c-!gn+k3|qE|lV9C%K(S4VvN5uuT2 z_2Rpx;yuE-+k@{>M-y>j#4aH4YBB40Gm5oe*4gf0%W>V{hQ- zH8YNnR4pB)m>j8^2OGJyuiGyuy*(y-IoSW^tgB{2KdayENNbfA*mO!H?Q67-vFAa{ zyXiJgE}0S9lp71{?Us}pDAQgX-|m&SrZTkQ!F5xmkwtHn9Cup_e$l$6GkiAOeRs#! z@7K-Qgf6vS_%*F-cG!2l^uVkLy+aPQw4H8Hof%!5qIbD zP_<#>zz2yoNwleKDI{4U${tC!%95h&g)G^ZNF}9>P)a3IXr-c6i#9Eyw5n*MMWIb; z?>+a-b$d?N^PJ!N{`Whd4>R+fYp!!|=RRk~IA>G;=91t*w7MB*Ed-vdHa6HB8q3@YTNGnci${T;E!}!6Nin-qrR~_Lr7@OKIpV z4eK0z;@zaG&u&F8hg84IJoHg!q|UeGhT=YNe{a~BD%X+J&*NF;ld0lAckVWpi?p$| z``LHsnMFl{>8tDejwMofK0Dw#$KT0H`b@;T2Nf};$7l85sU_Pq@5nmqqt^F+OU@n> zEHmlq8f!g8shN`BUplNF*=@ggp-dmA#^+h(`^$}IiQ4??QC^-hW2@M7|1rjQHU<7r z98(ylDzoF)%i6}qZzp5}qXtI5ydHB#XMXLrZ;v9@Wy_Qq?t6UsfYX&BzCPn(FM2ga zUOX{qXZi!z9F3}Z?&Gc>?`v51zOrJQ>4g^;e=YYvo~Qq6=d*1luhy(E_%nP+WYeVm zrjt64Pu(%JF>!Tp;hojWSt9MeXV*OW{rJfB+4r1^WI}o0E}nh5bMxoY9S4IpJ`8sF z;uur<%O&Yooo?Bf4N1dIitFQ6c&E*Ib?Hg;)kF6;wn#O~&;9-U%rL7xWo|pZANgV5 z&^|tYME=(H8yb%ePg}Ujbb<9J$Cdl5zKFQ!J&CTIdN$x{=B8PW!@@qT9{78Wx6O-`?s2Jw-0^tJ1KQm zHYp+EbMeX>p$lF;SKYj|Ic$6REx(g58p3WazMRuHVROvy@Gbd5i{dU_HFlD9L@mMr{-7H(@TJIjG-sL^Bsob;1 zf7?dWcICx(n}_x|w7~76n)=)smfhW-A2=6(w&wJ(m6m&xH4~I~iH=@bdwl$yGs}9b z%Xxo0-0o93QT8Lbui(&YOuEt${lW(qZf=QEs4>r}9+a+KAbtAd$1U1(qRvJn5Ba&T zdw%r??S@nL2QOAvfQ5kIrRYbaB2O zm{XEbcCJ-*jz&yTiCg)pfmDNy}wd z)1eu$1Jy3QoHOovg-%$$&IhqDmkm2JdnXqUIyt#k!KFy9WwoqR$Z?OVxJ!2oZRWQ0 z+UB`$$LGPh;R|lXbtcC;_nhydSfcdgaCLde^0r-}Edvha-t>Alv+nx)-e0%|Y_<^rA=SnSH@})tb}XWD0qg$7Lj3c5$&czmZ;$P+7ir`r6kE zyfm`z+fAP{x#z>8g5bS=+b=qeFD_Ht(kFcH(LJdmQy%(Chi6_mx?RP&Zq2o=_UbqD zTAu_<%T16oxLaLVFhg3+a>tB2Gi@f`ihP{-IxwK5@#JNdBN^*%RhebHNUl(5-7b0l z;yBp@xmwO9Z(Y@<1@`|^V3&MuOkVd+(|R3+<*R;4esK_678w|DL+C=YW}%*s$iwS) z5*M0{#ea-k&U;m*{A%qeE2&8~dfi0o6y(l)?{nmF9&dr`!4*pR{e;%tnXGnh-RsgY zo|c?z`or&i3g!>kacAXMn-<$QOB+;b(rR0me%o$*=ll23FLiZR+}OFH_ino*Q!HkM zBzwDcKVoZ@czNq}N57>iV#khJjA-@}K4sC|Eq3z~p7tnt{U^U}8dZFemJln68Md#< z+01m_{Xgk4W0ANtk>|zWwCd=t4(k963V&IW_d>RX6oiXIw@HV3$<;1gU>fx z=*jD54BTw*WBNQT#n*a`;f^#7@i~nd(`~$NyKSHT`1bd-yM3Z#>^EQAICz)#qAQVN z>f2R`SBZ}Yr&?sS7iPC9XaD*O>EH0mbRI*e8c-L)sNihJaWp(AtQfJ zm;HI|?ZsOqYp*%`PrsvaUS;YO#+Cnh{H>e=wrepY{%0cP<>XFSpyey{hOAC|A% zDoc%T4qA3Fc;$)JiM6kXzUVznXlI0z(W`KChxl$PnqD2u`BFx`BL5r3Ec7^56YkK* zvDsEieBMve^hLp*d7hpYO*;M8zZ#Vhx}<8pa^)-YrqKl-4C=lf z^-qZE-pZUT;F{1CR^Ce@{MB@=Cw5y(rjgAB(?OTV)|hN^zqM&s;K2jIiK^W#ryue( z8=8CZ>ZMDU>|TrAGnm3-;ju==s zWB<}s_1zo&hlmAbIo}z7@Pyy{6tf9NxS)OOsk4z8-whTnmCa8nviT$x?Y><)taz^U*^3!*>gokc zjo$lwGrBUc&f~(WgzTSLzDqP$o_TZsj?&hT(@UPZZog!|ZtC@w-o>@@1J9;PWUOpe zS!a7Z`KM4f-8WKu)W+_}ypr}wYW3%r3Y(vWs_2es_3*gg{OONZ^Yqk*Z)cxwOW88i zZpFy5N!j1BM(WNQcIEE4eCvQMx20D(RMcxT=j)*Tw^b6id+y8yLGD&Ek5A0M(b~AF zt^L9wyMp~$(&Md<^yp(^ez>To@SZavQ=RXGJ1U6&4*DpzC;y1-qpK(99Fy57`Oy54 z#d`IAP8QBCsb}N|Nlodm>$ci7aE~+dy}>Q!Z=`oro}HTd?s`LF{o^T1e}%=&tNk?b z)%Bd5oryanS2o-n=&Z79!}o)uRFgI@Z$1A#_I1)%gTT|bD|CDdlhex*rXJAM=~=z< z#ZI?88TE`83xbz@J3eQ`HVvsZhey-4Ivi_AJz9COr1RNZyO~d)%1C_JGVM-4V6mL) zrEM>lyV&+mGe2nX*gC0SuU$GTq@wk2Sywz&ODi%c2z}nFS8djC|7w_CNO_k1_^TnK zzQvkf`5KnzqI`D@T?DzDSj_tU%vV#3@!Z_Mq+io(!_jsT zZ-zK-XCYDR^0uZUvt?ZU;@VDjXLi+k*}_?hr{lI=z1>+Hm#gm5kz1vp+x|-ar-4?Z zXUxQeZ&IIl@9Nal4|lW->HBuv{KgrpvbNMJjn5ELuXCtgy{IKqO=0j4eUZggsl!KC z80*Yg-jQn0{Qt**eJ|qn|7z0ojjHN9am!+%NA@c&h{djS8E$bqvP9i%N2_q(*X42p z=1z#SShaPA=$7Gq@7K4y+Mg)ICsrVY4M$v_#QwgT2ye)ssU~+ShvR zc(ZGlq4l4&+4@b+hs5_eY`G+Tx@PrCnb2g%Q~S>Q7{A*apZ(%ax!)}RLrdlv^vrIG zto)Gbs*`r|(n;k+{XLN>cTId{2?6I%#`HWdE8YF{ z{Y&2;Zt(kM>^i>Zf}`tBcp2Daf12s2=HvQGC_XDQa+ze|nk;Aaclmi%vS(hLl3xDR z{m$l5nT22r&PUzaz9T>*3V1x631>qVK6a-s`L^{^V@m z9or8-9BgfUbZ(Cv;d=-33dIbgcRQ%p7AovNKL6bTu^ahQ18(XVM0E%yCx*?sWoFWE zL}Q&va=uuf$h@s(gA;?Cw`a>V)RcGI{n|+GL#)rzMaEUn4m9Y@?Emi8I+t#v&AR=$ zZSh5D(Z2A9{mv;YRBXAFCce6A(YChW%1&PU4*TO`4el~+p{3yw{;4(!x;K(9$L&fx zva@W>8I`YD-PFgdGdDGU8ssurw@NJ6ZFW=CAh!;iQzttn+$=3zSybn3*rRfGdT8x< z5zY4O>-XXm?=?&qYo8i_^3s^fAAQ$;w5nKs^s$Sv>CAq~?q)w9cT-gxGw4uf#aE|y z>StCyyS<_yRr%)XmM`)9L{2xxw!Ori?L(u?^llN?tAH!Zn??| ziG^pgCn;}#wRp?>SQ~|#rN2byPO3X4JtO(p5>>CZkzU6-KW!Vjar2WgR>Ga_O}ah_ z3luz;<}MB@OMO1b$f#*>XHvw)SC6%(d3P*x^w-Gw_9;#7das2G(wBaWy!d$L>pg=b z23)>r7HH=9wXxr$J9Cp?^t<%v$jNyX?`*ejxVC&iKRbgDUPfL6YS)a8R+v}6F=61vZ^rTa8lI-EELoWqTN?Im zS=3mwcTK&2AAjCB#^i}%kdUFT*;HYvEx+~JM5pBTQLT>MA2j$ziA8+a)Y{hyyFRbK zvFg{*C!;2fHSK(%ck6d`SJR=0DTG{6bW1j?pcLB;U6$J9}3S${iQH zJN>chz@R_BL^cH(xSb@nh-On4H9~9Us?zZfOj!``+;-FmGY)EThs%H@=(x4CJ+6Y4ZB9|IUe5WJNkl)F*Y$JK>xA{YPN&w)F0=7xyr_ zrFYb6t5M;=vgX*b1M;2LrDc7(O>Ewi^HO5ZefK}zw+Lz6`0;jVv90BGd-vNho|*fd zrd|53bFw}AV^qMO8`+IRLc|QqSALt@{!6`Y?lC&u}2iyL3N>U5RK(~DWpd!3Up z-jwy}`J;NNg|EAshpM?&!?>^f8uy#LE;xp&U zjWMH2+!uK4ep3K* zcw@D2*6xiFMPq(hp4j+uS=N&4NkU5}KRDU7zfV*7*ZzKXKQf+z9({(oIE>(V# ze4STzD05Kl#ktjH13nd+>28(s8Q!x(b#}7l;vZ-BhRjv;TQJ^qf3mNfbLrgEdtHuL zKez4m?S8}dZoT^Jy~~d63<&?(5ihCxepKH{*c5qW(!H>`wjcuior`%^xZ3Mb4{*O-0r(o ztEIMXnC{v7P4$bESijmE-&fawN=JXvktE)CeJ2!81@3zA! zcB<3wAvgS&t;?PeF*$GByT_;cDMau8XfeWi(1ourXUnGiNbW77y7T&k{?;YSEcO}h zys8(SaplOE5kE|St0rq+T;3t^@}oy`+I%>5(qmygk&by-7-E;4g4H0d{oT3b|q@Z zMu{WmV$>Y&nD zX`vT=mi~x2+t4F%{ZVo61tE7@$JLCFk1lNwb$;`~p(Ot@uSlhMj8(^|mo;l-7Udp) znqpd5Dedw6W{Lk;Q3GAQjp6yj^q=+COV=?RF=KOYts%ui)3*Dl3Ri4;nypzUs;J;L zyl#`&1EbB0ERuJ6i==#l5P|l=WD$wfm*4kv+|MG83jWZWOmq znHW8@CjHB#XA@Hn$zSw2k<(A2Ds9+A^`vEf!tKA;%nH_8I^R5_C2-jCoj*074H_(T zbKD`#@+}U^b$z$3aNcifY#}axQq*|yyAy7{ewmsp+vdr?(pJ@6us_v$(D6U|+Il}f z->=;-al`8Dn(PBP9hy69m9{YdDyM85ndd?6K+R5cz4~t#yf_HA@wWHXEsYyp%s{t*drNPfkBo@ll{r+}y>LR|)8c-yM(-zEKK^RVi}YE2 zW$W{05d}ATww#RHl@gTg_VJizRHQ<5L28EP+UiYqVS7J*K043L_V`?Bhl7V~?)Nz$ zU$}%<73Z67*wWabo*RDt!0LXN-rkxz!mTQ~{M-ylSL4Tt{nW*Iul=@1^bTvCqni=7 zb47-J#qz%TIyDQ!)IudI$H!&ueb|`i**aKy=E;R89>xbnKVQ|qXGPzlm1f%Ug-h}` zq}g~awQv+kn^SQ!-flBbUuBb@k9v6G!x`x@y=u5G>BSUsX% zDrLLDLSFgQucz8JYGm%N8ltr1)|s$=4@a6^9I3h4n>R3En|GX#_}ld#SG@na)7@7g zq)%#{VUncb;K)k2kz!f~QXE5oGYWRCc38adOf zEOvS0nKx}Z1EO@4^$wLt#(RctIb8dv`C8Q2NxO!O8*ukrX2`0B)i^nFKw`%7${XV4M zl)2)o&*`XyKPq}-+&UVIq#E9qU6fxiS6A^?;W@9L9�>@b+;ED<`R6erJ_^*YK+yq=RIE>NxV1fYmMy7 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�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 diff --git a/lib/libmenut.a b/lib/libmenut.a deleted file mode 100644 index ba26255330ea3a6e0c9d9daeef3fa2dbdbddd2fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70470 zcmeIb3w&I~c{YAl79ea#Ma*QJplI&V5`-sS(U>lnN)ycXno;^S$CZEVI43%;g$y}X|B2)9So_-K zW7B<(V;;AE(s6kBEx~cme#hbQDbRi9huP!v-*+52?*F3Wn8z-p!(;e@;CSq7j$Y1gCla<+k<1q9ZqD%9ldSI#tm(qeU0s1J#9`ll)+n?Th|4+ z3T5y$J#Cux^ zYv20jWLx8MCcJX(>SRa2pE;q@uW##Ilk8}0?p$rq)UWMaXC$z!qibX1Qk0kyaCzIt z#^qhzR{|qfOTW6BO0&UvboBP%W`b`3qfK2YzcCOWVQ=trwve^*iS%rwNWjQIT zY$$^(Durk0Q61Ds@i~(sntyfMCPxK3S@1`i z4b45eX{b;}jjrxwZy<@G#;*2uGuD}nsQOKIbvO2OZFI!Xi0SKX>*-GR1mqIQoV~Gm zeV^9X46f~6+p@kb+i<9RZ%~FoQ01_-tFJSu@}^pRZ+9jfd-3}F1+~S`4#iuw-7ycMFqO>%>Tj#3!>5a@8>^V)AZYF>lYV9BIwKm7jZu1 zWMhJ&FFhk0j;UbGd6P5KS?2k_^-@1C85mEV7V97HyV@IgI{EJE-u20ue((D6)K@_p z>6?r22)Pa@*2-Zo^>E2G``q&!Z}1NYjs4I)ZwmvS|06$HHd7HJto$^9v2SSp*Cr+= zcJXiQ>+X3m#~YaN22WF*ZsJ&a$@+cm?epC8`iVG@AEsY7_3JkD>;9k7uX~F6C8=N1 z&@cHvqhE5Lv!tfxl4$vo%U8^eR?eR{e_jQPvJgiU2a6h~oB}5@OibEJ#EQ?xIl9On zWANKl5;=F~8AU@Njsly*6L2^4FJ4@dDp*n+?VVm+5-%=F%z)hhIL32uX9b?(Tdu<= z;@hNYOuoCP!1sW~r=!Pt%x|Idi;3e-0GO63jqKSsA$XR7E8T&ei-Y;J-9-R$;U5ga zKN5n^0?u@|z^9Y)xLSoH&US)uqR({*lRnA}s&L@1QQ?Ra)40&D)A+DO?`+6)My=V- zOqn^2jcq+Won4LVyIPyoD91iHp~vc_GPWl&-7rsQ$Nfy#m%|`}E*A#ss&>kD`8)Iw zbTt|;fX}uo_$rN)_H+YpGH`ZzLeKotk=~Slr$QZE50m9Tu5p|GnGpJ82EC~dszf=; zG4+{Y;HEwoXx!FkT?l<^J24YH-mjk=0U=m0SuTXbCN zOYrR)m-Z-lRHrwj&kG*YIL9M8!G|^O%*jVCyC2Cuy}H zKwWJ9RT>x;Lhal9?5}gx-zME4r2Vu0$SeF(f4S0TQl+{=s&qlk07l5>KU3rICb|An{xSFCdzTIj$J~z}h!wrk=XnFe$r=xq@WSye%I;0py1O^cc6T?FMqY7u z-&*C~|2=<}yW8t5iDP~e=f=eij3c-(sTRY!FakW<_$dW_Wv3>dugx9-QBH}@Y1Wi$S>X9H$agm z;XwtjWA3-{e~x?qFVb5d0DbDmC9vS#ezu>1N0SMhEN>rp^w#N6_pHH0(L`jgnB`ve ze0WrFzrk$5Jul%nUsuzH z`-Z;G@*Ml~+=ebV*o31vSpBB0i>Pu_wRKBCJxBB0sQq&I6*|0xjT-jvodxmY($us> zakSvM>BXfr$`JN=<>hu{%f|+t33}586wnoQFq%d1dt1lhv0P~IF`h6 z%4rS3VN>dhy;Uves3~!PaScC7Dojx$AB#O*wT2ZpyjFz}f$bE!tw>?1u&C{EE)j|8pAW z(8BRR=%WbJ5jV%71q#jLTXg)5W+NTYfxn2mIX zS=a%K`nS{xwUMUEA7|EbzY=S)%mFdHeV`74aPGbrUJa0>z~6Fa#E4XhGE?c4le zHd2uu*CqXYZKNGK{UTjq`PxViXv3%7(%-KCFdL~#>wj_^DOk{-s*SX8{=&T11$WKP zW+JA7F~@a^o%qVQ|8o4QchsomqE36jJOBZu?3(68$?JFB0 zW9`61dO?|&#!1hA1csEmdr5iw2bL7OgAo+CmtGki^dj-p3z2sJit^aj1qF(NxDv9z zu)x{;Cdlnt6(6jf@DpWaiS%6$KyrQhiiZ7(vJW7zCYngE#|fx#X*_iVDXlMqJ#lSW z#Zv#dg#Spw|5?5NIMxkQuNArd=b=WR#j4caNcAE2o;iqm{!^8Qy>wB1`W?0IgO`@k z&f1GKmijN%_QN3i6GbxzDf~9>e-F}U*ZV)M^S@b-d?K}*%SsW5j?GtDj=K*&=|1?l zmwF`PrJeMGq3Q)&-GMz2=RSCyQ#V)}>4zyc3nJ_MN03~fQ;Q|mhrKlPt@U5^kd<=i z?WL!|I$Mya9_cIDax?Pj4t$3)X!F$j@2ed4YaQ59-Zj_7uZ>?9|D$;0z9C3Ey|#Zi zc~)KO;YgxtxbI9TQ&`qN-1k!i7Do_Rq0))_-&N_<`QOf_le~BAi|tB&>SvM7XSlmp zu0p_T-Rlh&?i>9N*jZkBPFXz`Zi^EBD^PPb>$Mc|C@UgTy}Yc<9k>^C3E-FNjQko+ zAX)0}M70kL-|D7DP}57w-JQen{e^|ju9so8jaK4Mt^11ndjH3E639SpWb_hHB6PZ9 z8A5x!N;kyR&sVMX(uL=jql`Q>6A#PLw52OCCc8V8C5=Vx9R=>dN?d3=B5wa0_-H## zgLgVq8BMIif2rPIT~?ktRcm9qSiy~NsvM@uUV2G%Kkhd^&xV_N)phTB z8bgLR7?`E4g_j;|5cYvwRGTFw|^d* zz&DN|Ln!oqfR3Z+eWV2aS9=!*xp4H;;WwAN#z%q1B<0)P?P@ot@N`Zes{2RZ90%Lau_3ppm4KC-U6PW+?X%vS4 zh@!n6w74t=u2vPWJ6X0cQT@WrZ*_Mso9Q2&duY+%%y*}TBh}wd_%FCikJkG?fso4Q zl@6olgGZH1ox3|xw!q!}kyR)Zk{@*MX1^Jz7IgI(D)U35zou8hYaBoK~9<_@G$DjAvQfCrt*vQ>f9)rXFWTz6nT&W-(Tru+k* zh&vE8_L`>gSOsE#2kGA!2PsQpU?q|t?Ln-4sFoeYR}f!{l4^*jo{uPsACTg6_;YvH z%tXqCiO2}Ln!&p?<*GRP21WUgq}+_ZAV2QT8eS#tw(9`lO7YUmqA169zlIkK`@*0= zM{qj0UUdE+K$FZ>xXXZN3St(xtdeyHDgcgtUdvP2P>Q{c@DW@9s@{mNQh0>;K@;~B zJ_=~`0l~9Xv8@jb$Ofu&^sx?(R&VI_#-kw+>I zqbQI{-`hrit5R?f{~D^;Ngcx#-U$r-h3MG#lm5eQ{~f3@&#x~lM=w2Eueek?H8atn z#@#C(q5PL&Gsowe^8X@-{Nk+q25Rw>vCqo&nqFSE0Nr1e%vbw|-TqHNXnp!76bp3w zD73`IT*Yg0jyJd-14RNoCN2W_b5vzkK3ebp(!-VKA5d}1_#-NoUQz=2r5vMfhnV=Z zB}LVH-EChAM8<19)SYE8HU_o=p}vQ(em zrLuGno7C=)l%hq=-qL+Z#NFL{PUJDHFH~VLUFfB6s&Mar!oB~f(#T8qHc0~FkKTOCYRDY98l~ zYZath1-kasO{*Mt+foF*K^Q-^mE-k;HV6T|&Z@f9{z#(wsJrbQq(ukn zA#GI9Z;-Rg1}}Pv^>$f$L6Gx-;l9U_pR#JS#=bouoRh9Ei&j5&^Z$jY*^z_QdvE!> zpsOe=S9Q#B1h!KbWTS_NNc8ZklpdOCWLhAExOCgJ#l_LV!bQd9cb^t7uDJ8`cyU$gj3vceBGYb;OfRki7B4PeR2*GY zTne5=#YKxaFQGh{ClnQlJkV^L2HNA~C5ne41wV$kn&ZUPhA&7#Ec2PqniR;f{;MuX z1~YCZLgrePDg$8iag=1JvVocqd?j$o8Dbg2sl3B)#gR)6%(a~O4I%hY2);c8|Jx9p z>$bV{*%N|49D>u}&n4%(A^0;P_%A~6(@?>=L zb9-eBO|^B{PWffpP2KN>iLLcdSrEC<)Xe_+tF9SZ$BSSWDR$1I2H z5PX$^lSky-7=nLNS&hFhYZ{- z|8@g6%lQ!l=TeQN>$0-pDBrC2IRl_fB{69ihO*w12N|r#gDvm>71?AjZxN&eQ!c+auGF_A2e_ z0*z}j!~*w}m9F4=IFV@RJ%g$8^Bx~%vK^aF_+uuBux=(9v{GZS3=#yk>J4aHw8G3k zo1UHj4*?^Iv}**FE7jKL$?jP!0kvHw6mVgP^=i}7Ze+h_=f6Vp+j@!qOoOfq2W8s) zO`3lfi414+UypMv)0jcSV3F>SBz=}2n}qO7`^l9y`Af+FSE3c;7|nESehwFQ+XLj3 zb5Mah+bS?C>ToQ~#b2fM->jr$|7`vZd?W%78cg+`#r*l)-%L04eI2WGpGPfXN|j(= z#|rGJTWU;fQt zcVt}Mw!o^*9T1|>*RTW{ul^+#mrr-E_#s!BHx?q&;iYRGu+Q}TB~1zcsnkKBY6W`) zoWT;{0fw-{gu5x!UJ9(CT``@i`Hw+4cc2l5>1Y@JpwP-9|FMMsugJi_hk=a!8`low z)sOlI2qMmGb??z6y7mowV^izyykGybgIXQOh)d|C5SIt0riYDjb4GjA#SC)P9mqb}<0C@Q;Szq*ZfjEjOco=AxavrQOM!v@Z}6#V^KPj-16&&fl#$iii;=MpR(=}bB8A^1%pxa^&kbVZ+oR=R>m znJ66Td5Ejm0l{T|NB%a}|E^gTMLw8yDQBH6C#C~W>v9p?Zj)g))e$|=Jf#^q9#T}1 zj?0*MfyV7|>0Gn0H4i;Yolu)KuW|M9Z z%%AD(`VX^dMzsFxO=g5`{tb<5)_1iuub-+-b8*#zylt8iqY=fFJ~6DHU>`=X`6Ada z8h1bO2nJR66T|W7Bgxym^t?L%cb@+%kGGXZV9NBpWvoi>mo6&uQhTw>bU3-rOKple z$)D2}sC?8*?JM#Q)JB;|yT5dSm%fmk&(+~hKCGRI1Q7a+qtR8-5D#be#Kq% zz3M&gqJv&~F><<}IqmzgVkmZZQ{(!wlEFWY1et;QwB+3W-{B@t<@kP#@$T;BWz*~Z z{{&^StQ=8nc2LCFCQ&&7^yadTI`B0ypU7iyLw@q(UonRTcFi(uVu8-Tg#pu7%E#hV zIUk5cSy-%vcHcue7f?m)_PEI?W|ppZphi*h<}boQ5&O$lU9+!!$W9NtD~cvzyI10V z>J?{U6ESvhw7d7OJO@SD?&Eg-%HqfqfhAgy#IEI)CG7);Z!L;Ef#BKvZ#W%$cuJw# zZ1?`hz>H1Bk;hOm1*UvuK7R^V1PsoGI{%m|#Jf}+B@R28gJ^bhMm#;l+IM%~wyHgz z+D>~L`)CfwQ$LBOep2Z6uK+bRRj)c7H}$q1!}XsSTr&|LTsKkqXl>=Ab$gzjRyjWU z6-v^|9)g+-)u{_{88^-28gc-By4IcDNkGuAGl~kl9gKOSAU|2(2AB z><;XOl=$Fv*h6yv(~)1*xBjYb&vVnNaX0H%b?)Uq!2Xs}FgC;o=gg@7k$cY$P}dIL zfIToj^!7Y6t+x7wI=5a?wfj9)xZwukRqYA?vW4;LU-g|HPwk1|h9>^2zvFIuFEipl z?WJeK%)bBMafJ>f(3Gi0e=p8?2NuO3pSvoyeH|q*cy$D6ZsRi=DhEn?l?~?Le!!W1 z3e*qms!fn*CwW?t)SRbATabp>&Jf`hvQW8M6pgv#be3%8;o8b!mTGO~)A7NpC$Mb+ z3XYEA;dUmG0IC0S?cDDyZJoG0eJRR$b1YH)vb&9U-SaM?EoVBM zRVW=k3uO|6H^0R}>bFhHk%50u8kiaAzYje1%v16xGI~Qp^}k}<0R#r+fEuoT?dGD| zx!+nen0z;y!MKOadC1jhbwJb)k*X>^`k4mT|1tC^{^NS0^sp}lb+ZO%q*1&8s}ysp z#NdJpm$tr8x96v*p_frZKfgSE5pM8a9~*f7)_>I((XEf=XnqwCHo8wqfnG}cM#?`B zR~ct|YqW;T~kc~HX~iJ2Rlm|+}+dE78LY7xKQvA1NWaa1fxLeVcdHE(KVyYMRxqbMuHfm z_uZ#ASbPmdG4ap*^U@F83sNTir(-G6KiIWa=l|OZ|D|Qd?lg>cab8jAM57`21U33dt|6y z*OXj?1l0x$Zm!^#ipXB{Eww1?L-ZF)nb)h00ztW@Yno(RMusc1EhB78MmjZwG%>h@ zY$3I7d6eIaR+{kRy$gQsOm?huq&}=B~#M=C)u(O2PrJ;82u|mnds|q ztjm1ddrm@J0&6#WkQl2b`gao6Q#f6yc?z89DR7hJHsSkk-p9edPS%9}l!cBx8G{Ab zcX9W$cyaX3LhRK@ot7xBDEP$m;&MFslaO5-wKEF7rw}|76ztTrC_Rtm+c}mvQ9Mb7u&? zI|Tnu2+p-U=4+S>7I3Ov!2bn~T>7qisrUJ#djIhjd1HlOef zJKX0n`9(*37Z1*@=l+z;+X(b4l1TkO_!6WIH?D5$;j3R-ySg{ix3|4uR|{1-!A6;| zoi6f1hC2IgO6m;_PG3-LYK@fZd9sEnYpU#0SapJT>Gnyy$iRPK;HI2;y531|?qldP zaMzIY8I7~~@|u%$?_*+clw&(ky$DZK0@|;H z&$b=Yaq$lF;)5#suL;9m=o^JEA;=Q?z@p3`+X z+xnRA0yFa!RZ;>u<~UYm;nJR1|8%6~A?;~3K{&y;s2J82v@iH}9UrprLpuI>3qPvk z|6<|Np7OUvf4}!XEVKs65}j}H!feiRRw|s73;Pp_Dk2ESeuOT}=Dg8LH=sV=X1WL` zDAOMIr^-*8kx5nHFrDz9%;sZ1mP=JX7npm}tUy0&PUY|o|}*6ANK zL4B7nJ0ZAX^`Eu(gkS29$=GR=Wvd2d&M^ZR>&WI0v-yT~h01kInRIrs(loW} zo^(ap&RWli;cR}qI+^cJ#`|~zyYHknUq$6YwWTwUJ)PV2wLmpuN*BGSGyATruK@P^ zm$(6<{|hSoTd(@oDBeSWh`zPLr~dz%=c+e0B|p5Qux}0bTH>}k9v|OND%`W!-P_S# zee@P=eXPNYyp9G>Bp>v@7x`uN6Sth_`9H%wf)U6#-VEgSOWah6`-kTK(*HK7XHmx3 zH*vpBF^v7$5O#acJ*Fj({Zspp!i_zYV>^TU5E{o5s1v*RH}+Th{si_DyqWjfc`sxp z0!@J}tKKk{P&O^jr*6Z34&3)&vH)kdP}g0MF>wmE9(n0bWv}GV$T<1^S9fLhO2%g> zTgM{}9Q!~z+J9Wbrh9wfo$#M+F&~>uY$*|{bVTGl9Cp7<8ro91aL!Y6;oJsK8|x^1 zI?2}`AxykPUp$$-85d7rH{mkMzFYhxi+smFYllTaG?q)-XdB>t z`ctzFD&NPq+S5(_d5X}0Us9s){o{OI z&k?Ak@Hf@5k=M4YgGjq4CT&nKk!$;`o7XeeiF~##jzv+OfZ&+Fs{wC%XWKBnKp*vCE{rmL#W%ju&Yi<4_6u6l7-=}@?Scj&22O{LRZR%c=$Ox0x zbnilh{lKa6v(KhXX;%m;C+TPETjP?x_RcbX9+Y}3}_T(0@pR?TDUC4HWV zWS>cyW}D)lGav8U6oLZmzzJ>X(!IyKu(JrR^U_Lf! zKYH?F_d!gUUhRK6d10OZ(g^ABGB0f19(%LAujav3*nBsP7vUw#;^T>HBeA}pE4s?3 zgIN)GSL3C8dUy5ELrsvOcC0BX&)=tZ9Dfn$uiP$LqV(0x61<8D!MAAW543;2_TNL_ zoi)v!^^p>H*0QKO>zWF8R%^_iwN7vF^Do3at*CN%>A>^JnRwIO3a9^Y-&?Vx9dK#A zzpiAo33Do)k9vPJ*e~nuEL`4xz7tF0&3_+7*7iieHCivPG2WNS94BO>Z^z%{F)7%| zpR87MxW1?&SAPenu-w1EWUybw^(mU=yZASDL?hTrroW@|Z6kr9_zF}6-q(m)(KBbv zmN%jWCEN!uKqh}s+m9EUJqX#{^go-3H>k==o%lxiq|=`13u%R{#gnP+?Hl6tf;7jZY+zGjanK8EJ?{OBK|Xr%nq^POh{ z5G`}$ZXQmLo~M|YOXSTvpt3>*ps?G26;7&`8!bfu&kQI94b}T=feWbo(W*cm_s-=S^aI{p3RppIjlIKYh)I}46Vj^{LV)S`%RSu8+RQB20_qcXI=iFuv zbEEprD12T?C%WguK8}v_bvpYyFjc_B)_EU0sIdKU9|`uyWp=~itw!vJSK**r&Oh8Q z!fvpl%h2agZju<>XhtsHpQQKQVNY4G?{0svSu7(LAD-bj{ea@k-fz;;<2;IfJ+_w0 zGi1CK2h+73yP;e-?^Wc&KNx~v9)ffK7j3*4GXkf|5kBva=aRn~IO(@*dR4Z-ct1NA zeJTY1lMwvNAvo^=i*|q%|S9 zJdw>&E;YM^Jv#l^4)*T(kR=Nvt5Vw+Xp0fcG!;#i> z>=!80CZ8&Q*t($bpKOjAcF*uPwnAEITmQ>|v#89rs7QH%!Bqra=3mNBfEENO)8?0T zv0)+9zRiCfa3&Sg=fzva3WIA>|M}lDJgW77Kxa7Lb;0erK|ZF_7tb!guzQBPwEpXb zQTsN(9>(!~&#BE(=g)uNe6=i?$GYGqc1+sEl&|j@;<;nFZJ1nyhs3HkRwU2!H&)<< zFHtMhaf$5h=_T@Km!(1wrMHrGtBZsn;SK&&_UDd-+Mv ztv&G0?uya(={W@Ej9R_Slz}?Rx+k(Lb1iO*t35CSyf1?^=Nuuuq#|`Bl52{%C)5jKjSx z@YGx+sl#g8uft&;^?W@xzS12sm>0W$W}2Kf=fcD8DJDYbuMEMPfYU~P06v{6ANZX( zh#w^gC*>peCgomQri_e>F}Me*mVwo`cXQrh6mwYF&|wc6WM8S7k#_t?iaI*~8*-woj7^cmNfMX|2w zPG+?tJe#Jd|7FNnE}KXAD5%q0`^W zh~aGhFq>xwFM7Bp^`F1ZQ=t`#YCZC`c^Y*4xk;xlo?WbAHjjL7Xo@xuKFK~co2Rlm z|9heGeMaUXrZS>!9&BbW;bLR|KLT}k-ouI1_#SMB;x1M7eiFWoVmBiGOV~lRHBB=0 z@bt!+bB|V!+YqaPN&STqa=^*F zYmV=$i>Z6T=gPjRv%FMQus^CpY^49G{ZUbriP%2BV*zQ~CtA=Sd?0&quud7{IXKSK zPUP4|Uylu=bbyR=aM=AV)1^(33uj-F3l|$hbrhh<=&x-IHvYiIK&Y{&YvakDW6WuQ z7+ai>2A$Y_>`HjZSiYGj;fR^*6kk+mfSWeN9s@V&|2+gB3&EorXV+x*muULRWpL?a z-eBJ+mc8jZyT`Sau(3R<`{E(ZnD1CF@A8v$#g}51IBiLePdYh)ovHGNjpf3Bs$=