xref: /freebsd/contrib/ncurses/include/MKterm.h.awk.in (revision 21817992b3314c908ab50f0bb88d2ee750b9c4ac)
15ca44d1cSRong-En Fan# vile:awkmode
2aae38d10SBaptiste Daroussinfunction declare_termtype(number,suffix) {
3aae38d10SBaptiste Daroussin	printf "typedef struct termtype%s {	/* in-core form of terminfo data */\n", suffix;
4aae38d10SBaptiste Daroussin	print  "    char  *term_names;		/* str_table offset of term names */"
5aae38d10SBaptiste Daroussin	print  "    char  *str_table;		/* pointer to string table */"
6aae38d10SBaptiste Daroussin	print  "    NCURSES_SBOOL  *Booleans;	/* array of boolean values */"
7aae38d10SBaptiste Daroussin	printf "    %-5s *Numbers;		/* array of integer values */\n", number;
8aae38d10SBaptiste Daroussin	print  "    char  **Strings;		/* array of string offsets */"
9aae38d10SBaptiste Daroussin	print  ""
10aae38d10SBaptiste Daroussin	print  "#if NCURSES_XNAMES"
11aae38d10SBaptiste Daroussin	print  "    char  *ext_str_table;	/* pointer to extended string table */"
12aae38d10SBaptiste Daroussin	print  "    char  **ext_Names;		/* corresponding names */"
13aae38d10SBaptiste Daroussin	print  ""
14aae38d10SBaptiste Daroussin	print  "    unsigned short num_Booleans;/* count total Booleans */";
15aae38d10SBaptiste Daroussin	print  "    unsigned short num_Numbers;	/* count total Numbers */";
16aae38d10SBaptiste Daroussin	print  "    unsigned short num_Strings;	/* count total Strings */";
17aae38d10SBaptiste Daroussin	print  ""
18aae38d10SBaptiste Daroussin	print  "    unsigned short ext_Booleans;/* count extensions to Booleans */";
19aae38d10SBaptiste Daroussin	print  "    unsigned short ext_Numbers;	/* count extensions to Numbers */";
20aae38d10SBaptiste Daroussin	print  "    unsigned short ext_Strings;	/* count extensions to Strings */";
21aae38d10SBaptiste Daroussin	print  "#endif /* NCURSES_XNAMES */"
22aae38d10SBaptiste Daroussin	print  ""
23aae38d10SBaptiste Daroussin	printf "} TERMTYPE%s;\n", suffix;
24aae38d10SBaptiste Daroussin}
250e3d5408SPeter WemmBEGIN {
26aae38d10SBaptiste Daroussin	lcurl = "{";
27aae38d10SBaptiste Daroussin	rcurl = "}";
280e3d5408SPeter Wemm	print  "/****************************************************************************"
29*21817992SBaptiste Daroussin	print  " * Copyright 2018-2021,2023 Thomas E. Dickey                                *"
30e1865124SBaptiste Daroussin	print  " * Copyright 1998-2013,2017 Free Software Foundation, Inc.                  *"
310e3d5408SPeter Wemm	print  " *                                                                          *"
320e3d5408SPeter Wemm	print  " * Permission is hereby granted, free of charge, to any person obtaining a  *"
330e3d5408SPeter Wemm	print  " * copy of this software and associated documentation files (the            *"
341759abf3SPeter Wemm	print  " * \"Software\"), to deal in the Software without restriction, including      *"
350e3d5408SPeter Wemm	print  " * without limitation the rights to use, copy, modify, merge, publish,      *"
360e3d5408SPeter Wemm	print  " * distribute, distribute with modifications, sublicense, and/or sell       *"
370e3d5408SPeter Wemm	print  " * copies of the Software, and to permit persons to whom the Software is    *"
380e3d5408SPeter Wemm	print  " * furnished to do so, subject to the following conditions:                 *"
390e3d5408SPeter Wemm	print  " *                                                                          *"
400e3d5408SPeter Wemm	print  " * The above copyright notice and this permission notice shall be included  *"
410e3d5408SPeter Wemm	print  " * in all copies or substantial portions of the Software.                   *"
420e3d5408SPeter Wemm	print  " *                                                                          *"
431759abf3SPeter Wemm	print  " * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *"
440e3d5408SPeter Wemm	print  " * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *"
450e3d5408SPeter Wemm	print  " * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *"
460e3d5408SPeter Wemm	print  " * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *"
470e3d5408SPeter Wemm	print  " * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *"
480e3d5408SPeter Wemm	print  " * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *"
490e3d5408SPeter Wemm	print  " * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *"
500e3d5408SPeter Wemm	print  " *                                                                          *"
510e3d5408SPeter Wemm	print  " * Except as contained in this notice, the name(s) of the above copyright   *"
520e3d5408SPeter Wemm	print  " * holders shall not be used in advertising or otherwise to promote the     *"
530e3d5408SPeter Wemm	print  " * sale, use or other dealings in this Software without prior written       *"
540e3d5408SPeter Wemm	print  " * authorization.                                                           *"
550e3d5408SPeter Wemm	print  " ****************************************************************************/"
560e3d5408SPeter Wemm	print  ""
570e3d5408SPeter Wemm	print  "/****************************************************************************/"
580e3d5408SPeter Wemm	print  "/* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995                */"
590e3d5408SPeter Wemm	print  "/*    and: Eric S. Raymond <esr@snark.thyrsus.com>                          */"
604a1a9510SRong-En Fan	print  "/*    and: Thomas E. Dickey                        1995-on                  */"
610e3d5408SPeter Wemm	print  "/****************************************************************************/"
620e3d5408SPeter Wemm	print  ""
63*21817992SBaptiste Daroussin	print  "/* $Id: MKterm.h.awk.in,v 1.85 2023/04/23 19:15:36 tom Exp $ */"
640e3d5408SPeter Wemm	print  ""
650e3d5408SPeter Wemm	print  "/*"
660e3d5408SPeter Wemm	print  "**	term.h -- Definition of struct term"
670e3d5408SPeter Wemm	print  "*/"
680e3d5408SPeter Wemm	print  ""
697a69bbfbSPeter Wemm	print  "#ifndef NCURSES_TERM_H_incl"
707a69bbfbSPeter Wemm	print  "#define NCURSES_TERM_H_incl 1"
710e3d5408SPeter Wemm	print  ""
720e3d5408SPeter Wemm	print  "#undef  NCURSES_VERSION"
730e3d5408SPeter Wemm	print  "#define NCURSES_VERSION \"@NCURSES_MAJOR@.@NCURSES_MINOR@\""
740e3d5408SPeter Wemm	print  ""
757a69bbfbSPeter Wemm	print  "#include <ncurses_dll.h>"
767a69bbfbSPeter Wemm	print  ""
770e3d5408SPeter Wemm	print  "#ifdef __cplusplus"
78aae38d10SBaptiste Daroussin	printf "extern \"C\" %s\n", lcurl;
790e3d5408SPeter Wemm	print  "#endif"
800e3d5408SPeter Wemm	print  ""
810e3d5408SPeter Wemm	print  "/* Make this file self-contained by providing defaults for the HAVE_TERMIO[S]_H"
8239f2269fSPeter Wemm	print  " * definition (based on the system for which this was configured)."
830e3d5408SPeter Wemm	print  " */"
840e3d5408SPeter Wemm	print  ""
857a656419SBaptiste Daroussin	print  "#ifndef __NCURSES_H"
867a656419SBaptiste Daroussin	print  ""
877a656419SBaptiste Daroussin	print  "typedef struct screen  SCREEN;"
887a656419SBaptiste Daroussin	print  ""
897a656419SBaptiste Daroussin	print  "#if @NCURSES_SP_FUNCS@"
907a656419SBaptiste Daroussin	print  "#undef  NCURSES_SP_FUNCS"
917a656419SBaptiste Daroussin	print  "#define NCURSES_SP_FUNCS @NCURSES_PATCH@"
927a656419SBaptiste Daroussin	print  "#undef  NCURSES_SP_NAME"
937a656419SBaptiste Daroussin	print  "#define NCURSES_SP_NAME(name) name##_sp"
947a656419SBaptiste Daroussin	print  ""
957a656419SBaptiste Daroussin	print  "/* Define the sp-funcs helper function */"
967a656419SBaptiste Daroussin	print  "#undef  NCURSES_SP_OUTC"
977a656419SBaptiste Daroussin	print  "#define NCURSES_SP_OUTC NCURSES_SP_NAME(NCURSES_OUTC)"
987a656419SBaptiste Daroussin	print  "typedef int (*NCURSES_SP_OUTC)(SCREEN*, int);"
997a656419SBaptiste Daroussin	print  "#endif"
1007a656419SBaptiste Daroussin	print  ""
1017a656419SBaptiste Daroussin	print  "#endif /* __NCURSES_H */"
1027a656419SBaptiste Daroussin	print  ""
1030e3d5408SPeter Wemm	print  "#undef  NCURSES_CONST"
1040e3d5408SPeter Wemm	print  "#define NCURSES_CONST @NCURSES_CONST@"
1050e3d5408SPeter Wemm	print  ""
1064a1a9510SRong-En Fan	print  "#undef  NCURSES_SBOOL"
1074a1a9510SRong-En Fan	print  "#define NCURSES_SBOOL @NCURSES_SBOOL@"
1084a1a9510SRong-En Fan	print  ""
10973f0a83dSXin LI	print  "#undef  NCURSES_USE_DATABASE"
11073f0a83dSXin LI	print  "#define NCURSES_USE_DATABASE @NCURSES_USE_DATABASE@"
11173f0a83dSXin LI	print  ""
11273f0a83dSXin LI	print  "#undef  NCURSES_USE_TERMCAP"
11373f0a83dSXin LI	print  "#define NCURSES_USE_TERMCAP @NCURSES_USE_TERMCAP@"
11473f0a83dSXin LI	print  ""
1150e3d5408SPeter Wemm	print  "#undef  NCURSES_XNAMES"
1160e3d5408SPeter Wemm	print  "#define NCURSES_XNAMES @NCURSES_XNAMES@"
1170e3d5408SPeter Wemm	print  ""
1180e3d5408SPeter Wemm	print  "/* We will use these symbols to hide differences between"
1190e3d5408SPeter Wemm	print  " * termios/termio/sgttyb interfaces."
1200e3d5408SPeter Wemm	print  " */"
1210e3d5408SPeter Wemm	print  "#undef  TTY"
1220e3d5408SPeter Wemm	print  "#undef  SET_TTY"
1230e3d5408SPeter Wemm	print  "#undef  GET_TTY"
1240e3d5408SPeter Wemm	print  ""
12539f2269fSPeter Wemm	print  "/* Assume POSIX termio if we have the header and function */"
1264a1a9510SRong-En Fan	print  "/* #if HAVE_TERMIOS_H && HAVE_TCGETATTR */"
1274a1a9510SRong-En Fan	print  "#if @HAVE_TERMIOS_H@ && @HAVE_TCGETATTR@"
1280e3d5408SPeter Wemm	print  ""
1290e3d5408SPeter Wemm	print  "#undef  TERMIOS"
1300e3d5408SPeter Wemm	print  "#define TERMIOS 1"
1310e3d5408SPeter Wemm	print  ""
1320e3d5408SPeter Wemm	print  "#include <termios.h>"
1330e3d5408SPeter Wemm	print  "#define TTY struct termios"
1340e3d5408SPeter Wemm	print  ""
1350e3d5408SPeter Wemm	print  "#else /* !HAVE_TERMIOS_H */"
1360e3d5408SPeter Wemm	print  ""
1374a1a9510SRong-En Fan	print  "/* #if HAVE_TERMIO_H */"
1384a1a9510SRong-En Fan	print  "#if @HAVE_TERMIO_H@"
1390e3d5408SPeter Wemm	print  ""
1400e3d5408SPeter Wemm	print  "#undef  TERMIOS"
1410e3d5408SPeter Wemm	print  "#define TERMIOS 1"
1420e3d5408SPeter Wemm	print  ""
1430e3d5408SPeter Wemm	print  "#include <termio.h>"
1440e3d5408SPeter Wemm	print  "#define TTY struct termio"
1450e3d5408SPeter Wemm	print  ""
1460e3d5408SPeter Wemm	print  "#else /* !HAVE_TERMIO_H */"
1470e3d5408SPeter Wemm	print  ""
1487a656419SBaptiste Daroussin	print  "#if (defined(_WIN32) || defined(_WIN64))"
1497a656419SBaptiste Daroussin	print  "#if @EXP_WIN32_DRIVER@"
1507a656419SBaptiste Daroussin	print  "#include <win32_curses.h>"
1517a656419SBaptiste Daroussin	print  "#define TTY struct winconmode"
1527a656419SBaptiste Daroussin	print  "#else"
15306bfebdeSXin LI	print  "#include <ncurses_mingw.h>"
15406bfebdeSXin LI	print  "#define TTY struct termios"
1557a656419SBaptiste Daroussin	print  "#endif"
15606bfebdeSXin LI	print  "#else"
1570e3d5408SPeter Wemm	print  "#undef TERMIOS"
1580e3d5408SPeter Wemm	print  "#include <sgtty.h>"
1590e3d5408SPeter Wemm	print  "#include <sys/ioctl.h>"
1600e3d5408SPeter Wemm	print  "#define TTY struct sgttyb"
16106bfebdeSXin LI	print  "#endif /* MINGW32 */"
1620e3d5408SPeter Wemm	print  "#endif /* HAVE_TERMIO_H */"
1630e3d5408SPeter Wemm	print  ""
1640e3d5408SPeter Wemm	print  "#endif /* HAVE_TERMIOS_H */"
1650e3d5408SPeter Wemm	print  ""
1660e3d5408SPeter Wemm	print  "#ifdef TERMIOS"
1670e3d5408SPeter Wemm	print  "#define GET_TTY(fd, buf) tcgetattr(fd, buf)"
1680e3d5408SPeter Wemm	print  "#define SET_TTY(fd, buf) tcsetattr(fd, TCSADRAIN, buf)"
1697a656419SBaptiste Daroussin	print  "#elif @EXP_WIN32_DRIVER@ && (defined(_WIN32) || defined(_WIN64))"
1707a656419SBaptiste Daroussin	print  "#define GET_TTY(fd, buf) _nc_console_getmode(_nc_console_fd2handle(fd),buf)"
1717a656419SBaptiste Daroussin	print  "#define SET_TTY(fd, buf) _nc_console_setmode(_nc_console_fd2handle(fd),buf)"
1720e3d5408SPeter Wemm	print  "#else"
1730e3d5408SPeter Wemm	print  "#define GET_TTY(fd, buf) gtty(fd, buf)"
1740e3d5408SPeter Wemm	print  "#define SET_TTY(fd, buf) stty(fd, buf)"
1750e3d5408SPeter Wemm	print  "#endif"
1760e3d5408SPeter Wemm	print  ""
177aae38d10SBaptiste Daroussin	print  "#ifndef	GCC_NORETURN"
178aae38d10SBaptiste Daroussin	print  "#define	GCC_NORETURN /* nothing */"
179aae38d10SBaptiste Daroussin	print  "#endif"
180aae38d10SBaptiste Daroussin	print  ""
1810e3d5408SPeter Wemm	print  "#define NAMESIZE 256"
1820e3d5408SPeter Wemm	print  ""
183aae38d10SBaptiste Daroussin	print  "/* The cast works because TERMTYPE is the first data in TERMINAL */"
184aae38d10SBaptiste Daroussin	print  "#define CUR ((TERMTYPE *)(cur_term))->"
1850e3d5408SPeter Wemm	print  ""
1860e3d5408SPeter Wemm}
1870e3d5408SPeter Wemm
1880e3d5408SPeter Wemm$2 == "%%-STOP-HERE-%%" {
1890e3d5408SPeter Wemm	print  ""
1900e3d5408SPeter Wemm	printf "#define BOOLWRITE %d\n", BoolCount
1910e3d5408SPeter Wemm	printf "#define NUMWRITE  %d\n", NumberCount
1920e3d5408SPeter Wemm	printf "#define STRWRITE  %d\n", StringCount
1930e3d5408SPeter Wemm	print  ""
1940e3d5408SPeter Wemm	print  "/* older synonyms for some capabilities */"
1950e3d5408SPeter Wemm	print  "#define beehive_glitch	no_esc_ctlc"
1960e3d5408SPeter Wemm	print  "#define teleray_glitch	dest_tabs_magic_smso"
197aae38d10SBaptiste Daroussin	print  ""
198aae38d10SBaptiste Daroussin	print  "/* HPUX-11 uses this name rather than the standard one */"
199aae38d10SBaptiste Daroussin	print  "#ifndef micro_char_size"
2000e3d5408SPeter Wemm	print  "#define micro_char_size micro_col_size"
201aae38d10SBaptiste Daroussin	print  "#endif"
2020e3d5408SPeter Wemm	print  ""
2030e3d5408SPeter Wemm	print  "#ifdef __INTERNAL_CAPS_VISIBLE"
2040e3d5408SPeter Wemm}
2050e3d5408SPeter Wemm
2060e3d5408SPeter Wemm/^#/ { next; }
2070e3d5408SPeter Wemm
208aae38d10SBaptiste Daroussin/^used_by/ { next ; }
209aae38d10SBaptiste Daroussin/^userdef/ { next ; }
210aae38d10SBaptiste Daroussin
211aae38d10SBaptiste Daroussin$1 == "acs_chars" {
212aae38d10SBaptiste Daroussin	acsindex = StringCount;
213aae38d10SBaptiste Daroussin}
21415589c42SPeter Wemm
2150e3d5408SPeter Wemm$3 == "bool" {
2160e3d5408SPeter Wemm	printf "#define %-30s CUR Booleans[%d]\n", $1, BoolCount++
2170e3d5408SPeter Wemm}
2180e3d5408SPeter Wemm
2190e3d5408SPeter Wemm$3 == "num" {
2200e3d5408SPeter Wemm	printf "#define %-30s CUR Numbers[%d]\n", $1, NumberCount++
2210e3d5408SPeter Wemm}
2220e3d5408SPeter Wemm
2230e3d5408SPeter Wemm$3 == "str" {
2240e3d5408SPeter Wemm	printf "#define %-30s CUR Strings[%d]\n", $1, StringCount++
2250e3d5408SPeter Wemm}
2260e3d5408SPeter Wemm
2270e3d5408SPeter WemmEND {
2280e3d5408SPeter Wemm	print  "#endif /* __INTERNAL_CAPS_VISIBLE */"
2290e3d5408SPeter Wemm	print  ""
2300e3d5408SPeter Wemm	print  ""
2310e3d5408SPeter Wemm	print  "/*"
2320e3d5408SPeter Wemm	print  " * Predefined terminfo array sizes"
2330e3d5408SPeter Wemm	print  " */"
2340e3d5408SPeter Wemm	printf "#define BOOLCOUNT %d\n", BoolCount
2350e3d5408SPeter Wemm	printf "#define NUMCOUNT  %d\n", NumberCount
2360e3d5408SPeter Wemm	printf "#define STRCOUNT  %d\n", StringCount
2370e3d5408SPeter Wemm	print  ""
23815589c42SPeter Wemm	print  "/* used by code for comparing entries */"
23915589c42SPeter Wemm	print  "#define acs_chars_index	", acsindex
24015589c42SPeter Wemm	print  ""
241aae38d10SBaptiste Daroussin	declare_termtype("short","");
2420e3d5408SPeter Wemm	print  ""
243aae38d10SBaptiste Daroussin	print  "/*"
244aae38d10SBaptiste Daroussin	print  " * The only reason these structures are visible is for read-only use."
245aae38d10SBaptiste Daroussin	print  " * Programs which modify the data are not, never were, portable across"
246aae38d10SBaptiste Daroussin	print  " * curses implementations."
247*21817992SBaptiste Daroussin	print  " *"
248*21817992SBaptiste Daroussin	print  " * The first field in TERMINAL is used in macros."
249*21817992SBaptiste Daroussin	print  " * The remaining fields are private."
250aae38d10SBaptiste Daroussin	print  " */"
251aae38d10SBaptiste Daroussin	print  "#ifdef NCURSES_INTERNALS"
2520e3d5408SPeter Wemm	print  ""
253*21817992SBaptiste Daroussin	print  "#undef TERMINAL"
254*21817992SBaptiste Daroussin	print  "#define TERMINAL struct term"
255*21817992SBaptiste Daroussin	print  "TERMINAL;"
256*21817992SBaptiste Daroussin	print  ""
257aae38d10SBaptiste Daroussin	if (@NCURSES_EXT_COLORS@) {
258aae38d10SBaptiste Daroussin	declare_termtype("int","2");
259aae38d10SBaptiste Daroussin	} else {
260*21817992SBaptiste Daroussin	print  "#undef TERMTYPE2"
261*21817992SBaptiste Daroussin	print  "#define TERMTYPE2 TERMTYPE"
262aae38d10SBaptiste Daroussin	}
263*21817992SBaptiste Daroussin	print  "#else"
2640e3d5408SPeter Wemm	print  ""
2650e3d5408SPeter Wemm	print  "typedef struct term {		/* describe an actual terminal */"
2660e3d5408SPeter Wemm	print  "    TERMTYPE	type;		/* terminal type description */"
2670e3d5408SPeter Wemm	print  "} TERMINAL;"
268*21817992SBaptiste Daroussin	print  ""
269aae38d10SBaptiste Daroussin	print  "#endif /* NCURSES_INTERNALS */"
270aae38d10SBaptiste Daroussin	print  ""
2710e3d5408SPeter Wemm	print  ""
27206bfebdeSXin LI	print  "#if @BROKEN_LINKER@ && !@cf_cv_enable_reentrant@"
27306bfebdeSXin LI	print  "extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term;"
27406bfebdeSXin LI	print  "#elif @cf_cv_enable_reentrant@"
2755d08fb1fSRong-En Fan	print  "NCURSES_WRAPPED_VAR(TERMINAL *, cur_term);"
27606bfebdeSXin LI	print  "#define cur_term   NCURSES_PUBLIC_VAR(cur_term())"
27706bfebdeSXin LI	print  "#else"
27806bfebdeSXin LI	print  "extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term;"
27906bfebdeSXin LI	print  "#endif"
28006bfebdeSXin LI	print  ""
28106bfebdeSXin LI	print  "#if @BROKEN_LINKER@ || @cf_cv_enable_reentrant@"
2825ca44d1cSRong-En Fan	print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolnames);"
2835ca44d1cSRong-En Fan	print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolcodes);"
2845ca44d1cSRong-En Fan	print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolfnames);"
2855ca44d1cSRong-En Fan	print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numnames);"
2865ca44d1cSRong-En Fan	print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numcodes);"
2875ca44d1cSRong-En Fan	print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numfnames);"
2885ca44d1cSRong-En Fan	print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strnames);"
2895ca44d1cSRong-En Fan	print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strcodes);"
2905ca44d1cSRong-En Fan	print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strfnames);"
2910e3d5408SPeter Wemm	print  ""
2925ca44d1cSRong-En Fan	print  "#define boolnames  NCURSES_PUBLIC_VAR(boolnames())"
2935ca44d1cSRong-En Fan	print  "#define boolcodes  NCURSES_PUBLIC_VAR(boolcodes())"
2945ca44d1cSRong-En Fan	print  "#define boolfnames NCURSES_PUBLIC_VAR(boolfnames())"
2955ca44d1cSRong-En Fan	print  "#define numnames   NCURSES_PUBLIC_VAR(numnames())"
2965ca44d1cSRong-En Fan	print  "#define numcodes   NCURSES_PUBLIC_VAR(numcodes())"
2975ca44d1cSRong-En Fan	print  "#define numfnames  NCURSES_PUBLIC_VAR(numfnames())"
2985ca44d1cSRong-En Fan	print  "#define strnames   NCURSES_PUBLIC_VAR(strnames())"
2995ca44d1cSRong-En Fan	print  "#define strcodes   NCURSES_PUBLIC_VAR(strcodes())"
3005ca44d1cSRong-En Fan	print  "#define strfnames  NCURSES_PUBLIC_VAR(strfnames())"
3010e3d5408SPeter Wemm	print  ""
3020e3d5408SPeter Wemm	print  "#else"
3030e3d5408SPeter Wemm	print  ""
3047a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolnames[];"
3057a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolcodes[];"
3067a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolfnames[];"
3077a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numnames[];"
3087a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numcodes[];"
3097a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numfnames[];"
3107a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strnames[];"
3117a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strcodes[];"
3127a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strfnames[];"
3130e3d5408SPeter Wemm	print  ""
3140e3d5408SPeter Wemm	print  "#endif"
3150e3d5408SPeter Wemm	print  ""
316aae38d10SBaptiste Daroussin	print  "/*"
317aae38d10SBaptiste Daroussin	print  " * These entrypoints are used only by the ncurses utilities such as tic."
318aae38d10SBaptiste Daroussin	print  " */"
319aae38d10SBaptiste Daroussin	print  "#ifdef NCURSES_INTERNALS"
320aae38d10SBaptiste Daroussin	print  ""
3217a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT(int) _nc_set_tty_mode (TTY *buf);"
322aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int) _nc_read_entry2 (const char * const, char * const, TERMTYPE2 *const);"
323aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int) _nc_read_file_entry (const char *const, TERMTYPE2 *);"
324aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int) _nc_read_termtype (TERMTYPE2 *, char *, int);"
3257a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT(char *) _nc_first_name (const char *const);"
3267a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT(int) _nc_name_match (const char *const, const char *const, const char *const);"
3277a656419SBaptiste Daroussin	print  "extern NCURSES_EXPORT(char *) _nc_tiparm(int, const char *, ...);"
328aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(const TERMTYPE *) _nc_fallback (const char *);"
329aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int) _nc_read_entry (const char * const, char * const, TERMTYPE *const);"
330aae38d10SBaptiste Daroussin	print  ""
331*21817992SBaptiste Daroussin	print  "#endif /* NCURSES_INTERNALS */"
332*21817992SBaptiste Daroussin	print  ""
333aae38d10SBaptiste Daroussin	print  "/*"
334aae38d10SBaptiste Daroussin	print  " * Normal entry points"
335aae38d10SBaptiste Daroussin	print  " */"
3367a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT(TERMINAL *) set_curterm (TERMINAL *);"
3377a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT(int) del_curterm (TERMINAL *);"
3380e3d5408SPeter Wemm	print  ""
3390e3d5408SPeter Wemm	print  "/* miscellaneous entry points */"
3407a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT(int) restartterm (NCURSES_CONST char *, int, int *);"
341aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int) setupterm (const char *,int,int *);"
3420e3d5408SPeter Wemm	print  ""
3430e3d5408SPeter Wemm	print  "/* terminfo entry points, also declared in curses.h */"
3440e3d5408SPeter Wemm	print  "#if !defined(__NCURSES_H)"
345aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(char *) tigetstr (const char *);"
3467a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT_VAR(char) ttytype[];"
3477a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT(int) putp (const char *);"
348aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int) tigetflag (const char *);"
349aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int) tigetnum (const char *);"
3504a1a9510SRong-En Fan	print  ""
3514a1a9510SRong-En Fan	print  "#if @NCURSES_TPARM_VARARGS@ /* NCURSES_TPARM_VARARGS */"
352aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(char *) tparm (const char *, ...);	/* special */"
3534a1a9510SRong-En Fan	print  "#else"
354aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(char *) tparm (const char *, long,long,long,long,long,long,long,long,long);	/* special */"
3554a1a9510SRong-En Fan	print  "#endif"
3564a1a9510SRong-En Fan	print  ""
35706bfebdeSXin LI	print  "extern NCURSES_EXPORT(char *) tiparm (const char *, ...);		/* special */"
358*21817992SBaptiste Daroussin	print  "extern NCURSES_EXPORT(char *) tiparm_s (int, int, const char *, ...);	/* special */"
359*21817992SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int) tiscan_s (int *, int *, const char *);	/* special */"
36006bfebdeSXin LI	print  ""
3610e3d5408SPeter Wemm	print  "#endif /* __NCURSES_H */"
3620e3d5408SPeter Wemm	print  ""
3630e3d5408SPeter Wemm	print  "/* termcap database emulation (XPG4 uses const only for 2nd param of tgetent) */"
3647a69bbfbSPeter Wemm	print  "#if !defined(NCURSES_TERMCAP_H_incl)"
365aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(char *) tgetstr (const char *, char **);"
3667a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT(char *) tgoto (const char *, int, int);"
3677a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT(int) tgetent (char *, const char *);"
368aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int) tgetflag (const char *);"
369aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int) tgetnum (const char *);"
3707a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT(int) tputs (const char *, int, int (*)(int));"
3717a69bbfbSPeter Wemm	print  "#endif /* NCURSES_TERMCAP_H_incl */"
3720e3d5408SPeter Wemm	print  ""
37306bfebdeSXin LI	print  "/*"
37406bfebdeSXin LI	print  " * Include curses.h before term.h to enable these extensions."
37506bfebdeSXin LI	print  " */"
37606bfebdeSXin LI	print  "#if defined(NCURSES_SP_FUNCS) && (NCURSES_SP_FUNCS != 0)"
37706bfebdeSXin LI	print  ""
378aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tigetstr) (SCREEN*, const char *);"
37906bfebdeSXin LI	print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(putp) (SCREEN*, const char *);"
380aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tigetflag) (SCREEN*, const char *);"
381aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tigetnum) (SCREEN*, const char *);"
38206bfebdeSXin LI	print  ""
38306bfebdeSXin LI	print  "#if @NCURSES_TPARM_VARARGS@ /* NCURSES_TPARM_VARARGS */"
384aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tparm) (SCREEN*, const char *, ...);	/* special */"
38506bfebdeSXin LI	print  "#else"
386aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tparm) (SCREEN*, const char *, long,long,long,long,long,long,long,long,long);	/* special */"
38706bfebdeSXin LI	print  "#endif"
38806bfebdeSXin LI	print  ""
38906bfebdeSXin LI	print  "/* termcap database emulation (XPG4 uses const only for 2nd param of tgetent) */"
390aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tgetstr) (SCREEN*, const char *, char **);"
39106bfebdeSXin LI	print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tgoto) (SCREEN*, const char *, int, int);"
39206bfebdeSXin LI	print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tgetent) (SCREEN*, char *, const char *);"
393aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tgetflag) (SCREEN*, const char *);"
394aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tgetnum) (SCREEN*, const char *);"
39506bfebdeSXin LI	print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tputs) (SCREEN*, const char *, int, NCURSES_SP_OUTC);"
39606bfebdeSXin LI	print  ""
39706bfebdeSXin LI	print  "extern NCURSES_EXPORT(TERMINAL *) NCURSES_SP_NAME(set_curterm) (SCREEN*, TERMINAL *);"
39806bfebdeSXin LI	print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(del_curterm) (SCREEN*, TERMINAL *);"
39906bfebdeSXin LI	print  ""
40006bfebdeSXin LI	print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(restartterm) (SCREEN*, NCURSES_CONST char *, int, int *);"
40106bfebdeSXin LI	print  "#endif /* NCURSES_SP_FUNCS */"
40206bfebdeSXin LI	print  ""
403aae38d10SBaptiste Daroussin	print  "/*"
404aae38d10SBaptiste Daroussin	print  " * Debugging features."
405aae38d10SBaptiste Daroussin	print  " */"
406*21817992SBaptiste Daroussin	print  "extern GCC_NORETURN NCURSES_EXPORT(void)    exit_terminfo(int);"
407aae38d10SBaptiste Daroussin	print  ""
4080e3d5408SPeter Wemm	print  "#ifdef __cplusplus"
409aae38d10SBaptiste Daroussin	printf "%s\n", rcurl;
4100e3d5408SPeter Wemm	print  "#endif"
4110e3d5408SPeter Wemm	print  ""
4127a69bbfbSPeter Wemm	print  "#endif /* NCURSES_TERM_H_incl */"
4130e3d5408SPeter Wemm}
414