xref: /freebsd/contrib/ncurses/include/MKterm.h.awk.in (revision aae38d10b4eebf81c0942947e8b83a9bb8651d88)
15ca44d1cSRong-En Fan# vile:awkmode
2*aae38d10SBaptiste Daroussinfunction declare_termtype(number,suffix) {
3*aae38d10SBaptiste Daroussin	printf "typedef struct termtype%s {	/* in-core form of terminfo data */\n", suffix;
4*aae38d10SBaptiste Daroussin	print  "    char  *term_names;		/* str_table offset of term names */"
5*aae38d10SBaptiste Daroussin	print  "    char  *str_table;		/* pointer to string table */"
6*aae38d10SBaptiste Daroussin	print  "    NCURSES_SBOOL  *Booleans;	/* array of boolean values */"
7*aae38d10SBaptiste Daroussin	printf "    %-5s *Numbers;		/* array of integer values */\n", number;
8*aae38d10SBaptiste Daroussin	print  "    char  **Strings;		/* array of string offsets */"
9*aae38d10SBaptiste Daroussin	print  ""
10*aae38d10SBaptiste Daroussin	print  "#if NCURSES_XNAMES"
11*aae38d10SBaptiste Daroussin	print  "    char  *ext_str_table;	/* pointer to extended string table */"
12*aae38d10SBaptiste Daroussin	print  "    char  **ext_Names;		/* corresponding names */"
13*aae38d10SBaptiste Daroussin	print  ""
14*aae38d10SBaptiste Daroussin	print  "    unsigned short num_Booleans;/* count total Booleans */";
15*aae38d10SBaptiste Daroussin	print  "    unsigned short num_Numbers;	/* count total Numbers */";
16*aae38d10SBaptiste Daroussin	print  "    unsigned short num_Strings;	/* count total Strings */";
17*aae38d10SBaptiste Daroussin	print  ""
18*aae38d10SBaptiste Daroussin	print  "    unsigned short ext_Booleans;/* count extensions to Booleans */";
19*aae38d10SBaptiste Daroussin	print  "    unsigned short ext_Numbers;	/* count extensions to Numbers */";
20*aae38d10SBaptiste Daroussin	print  "    unsigned short ext_Strings;	/* count extensions to Strings */";
21*aae38d10SBaptiste Daroussin	print  "#endif /* NCURSES_XNAMES */"
22*aae38d10SBaptiste Daroussin	print  ""
23*aae38d10SBaptiste Daroussin	printf "} TERMTYPE%s;\n", suffix;
24*aae38d10SBaptiste Daroussin}
250e3d5408SPeter WemmBEGIN {
26*aae38d10SBaptiste Daroussin	lcurl = "{";
27*aae38d10SBaptiste Daroussin	rcurl = "}";
280e3d5408SPeter Wemm	print  "/****************************************************************************"
29*aae38d10SBaptiste Daroussin	print  " * Copyright (c) 1998-2018,2019 Free Software Foundation, Inc.              *"
300e3d5408SPeter Wemm	print  " *                                                                          *"
310e3d5408SPeter Wemm	print  " * Permission is hereby granted, free of charge, to any person obtaining a  *"
320e3d5408SPeter Wemm	print  " * copy of this software and associated documentation files (the            *"
331759abf3SPeter Wemm	print  " * \"Software\"), to deal in the Software without restriction, including      *"
340e3d5408SPeter Wemm	print  " * without limitation the rights to use, copy, modify, merge, publish,      *"
350e3d5408SPeter Wemm	print  " * distribute, distribute with modifications, sublicense, and/or sell       *"
360e3d5408SPeter Wemm	print  " * copies of the Software, and to permit persons to whom the Software is    *"
370e3d5408SPeter Wemm	print  " * furnished to do so, subject to the following conditions:                 *"
380e3d5408SPeter Wemm	print  " *                                                                          *"
390e3d5408SPeter Wemm	print  " * The above copyright notice and this permission notice shall be included  *"
400e3d5408SPeter Wemm	print  " * in all copies or substantial portions of the Software.                   *"
410e3d5408SPeter Wemm	print  " *                                                                          *"
421759abf3SPeter Wemm	print  " * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *"
430e3d5408SPeter Wemm	print  " * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *"
440e3d5408SPeter Wemm	print  " * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *"
450e3d5408SPeter Wemm	print  " * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *"
460e3d5408SPeter Wemm	print  " * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *"
470e3d5408SPeter Wemm	print  " * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *"
480e3d5408SPeter Wemm	print  " * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *"
490e3d5408SPeter Wemm	print  " *                                                                          *"
500e3d5408SPeter Wemm	print  " * Except as contained in this notice, the name(s) of the above copyright   *"
510e3d5408SPeter Wemm	print  " * holders shall not be used in advertising or otherwise to promote the     *"
520e3d5408SPeter Wemm	print  " * sale, use or other dealings in this Software without prior written       *"
530e3d5408SPeter Wemm	print  " * authorization.                                                           *"
540e3d5408SPeter Wemm	print  " ****************************************************************************/"
550e3d5408SPeter Wemm	print  ""
560e3d5408SPeter Wemm	print  "/****************************************************************************/"
570e3d5408SPeter Wemm	print  "/* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995                */"
580e3d5408SPeter Wemm	print  "/*    and: Eric S. Raymond <esr@snark.thyrsus.com>                          */"
594a1a9510SRong-En Fan	print  "/*    and: Thomas E. Dickey                        1995-on                  */"
600e3d5408SPeter Wemm	print  "/****************************************************************************/"
610e3d5408SPeter Wemm	print  ""
62*aae38d10SBaptiste Daroussin	print  "/* $Id: MKterm.h.awk.in,v 1.73 2019/12/21 18:29:09 tom Exp $ */"
630e3d5408SPeter Wemm	print  ""
640e3d5408SPeter Wemm	print  "/*"
650e3d5408SPeter Wemm	print  "**	term.h -- Definition of struct term"
660e3d5408SPeter Wemm	print  "*/"
670e3d5408SPeter Wemm	print  ""
687a69bbfbSPeter Wemm	print  "#ifndef NCURSES_TERM_H_incl"
697a69bbfbSPeter Wemm	print  "#define NCURSES_TERM_H_incl 1"
700e3d5408SPeter Wemm	print  ""
710e3d5408SPeter Wemm	print  "#undef  NCURSES_VERSION"
720e3d5408SPeter Wemm	print  "#define NCURSES_VERSION \"@NCURSES_MAJOR@.@NCURSES_MINOR@\""
730e3d5408SPeter Wemm	print  ""
747a69bbfbSPeter Wemm	print  "#include <ncurses_dll.h>"
757a69bbfbSPeter Wemm	print  ""
760e3d5408SPeter Wemm	print  "#ifdef __cplusplus"
77*aae38d10SBaptiste Daroussin	printf "extern \"C\" %s\n", lcurl;
780e3d5408SPeter Wemm	print  "#endif"
790e3d5408SPeter Wemm	print  ""
800e3d5408SPeter Wemm	print  "/* Make this file self-contained by providing defaults for the HAVE_TERMIO[S]_H"
8139f2269fSPeter Wemm	print  " * definition (based on the system for which this was configured)."
820e3d5408SPeter Wemm	print  " */"
830e3d5408SPeter Wemm	print  ""
840e3d5408SPeter Wemm	print  "#undef  NCURSES_CONST"
850e3d5408SPeter Wemm	print  "#define NCURSES_CONST @NCURSES_CONST@"
860e3d5408SPeter Wemm	print  ""
874a1a9510SRong-En Fan	print  "#undef  NCURSES_SBOOL"
884a1a9510SRong-En Fan	print  "#define NCURSES_SBOOL @NCURSES_SBOOL@"
894a1a9510SRong-En Fan	print  ""
9073f0a83dSXin LI	print  "#undef  NCURSES_USE_DATABASE"
9173f0a83dSXin LI	print  "#define NCURSES_USE_DATABASE @NCURSES_USE_DATABASE@"
9273f0a83dSXin LI	print  ""
9373f0a83dSXin LI	print  "#undef  NCURSES_USE_TERMCAP"
9473f0a83dSXin LI	print  "#define NCURSES_USE_TERMCAP @NCURSES_USE_TERMCAP@"
9573f0a83dSXin LI	print  ""
960e3d5408SPeter Wemm	print  "#undef  NCURSES_XNAMES"
970e3d5408SPeter Wemm	print  "#define NCURSES_XNAMES @NCURSES_XNAMES@"
980e3d5408SPeter Wemm	print  ""
990e3d5408SPeter Wemm	print  "/* We will use these symbols to hide differences between"
1000e3d5408SPeter Wemm	print  " * termios/termio/sgttyb interfaces."
1010e3d5408SPeter Wemm	print  " */"
1020e3d5408SPeter Wemm	print  "#undef  TTY"
1030e3d5408SPeter Wemm	print  "#undef  SET_TTY"
1040e3d5408SPeter Wemm	print  "#undef  GET_TTY"
1050e3d5408SPeter Wemm	print  ""
10639f2269fSPeter Wemm	print  "/* Assume POSIX termio if we have the header and function */"
1074a1a9510SRong-En Fan	print  "/* #if HAVE_TERMIOS_H && HAVE_TCGETATTR */"
1084a1a9510SRong-En Fan	print  "#if @HAVE_TERMIOS_H@ && @HAVE_TCGETATTR@"
1090e3d5408SPeter Wemm	print  ""
1100e3d5408SPeter Wemm	print  "#undef  TERMIOS"
1110e3d5408SPeter Wemm	print  "#define TERMIOS 1"
1120e3d5408SPeter Wemm	print  ""
1130e3d5408SPeter Wemm	print  "#include <termios.h>"
1140e3d5408SPeter Wemm	print  "#define TTY struct termios"
1150e3d5408SPeter Wemm	print  ""
1160e3d5408SPeter Wemm	print  "#else /* !HAVE_TERMIOS_H */"
1170e3d5408SPeter Wemm	print  ""
1184a1a9510SRong-En Fan	print  "/* #if HAVE_TERMIO_H */"
1194a1a9510SRong-En Fan	print  "#if @HAVE_TERMIO_H@"
1200e3d5408SPeter Wemm	print  ""
1210e3d5408SPeter Wemm	print  "#undef  TERMIOS"
1220e3d5408SPeter Wemm	print  "#define TERMIOS 1"
1230e3d5408SPeter Wemm	print  ""
1240e3d5408SPeter Wemm	print  "#include <termio.h>"
1250e3d5408SPeter Wemm	print  "#define TTY struct termio"
1260e3d5408SPeter Wemm	print  ""
1270e3d5408SPeter Wemm	print  "#else /* !HAVE_TERMIO_H */"
1280e3d5408SPeter Wemm	print  ""
129*aae38d10SBaptiste Daroussin	print  "#if _WIN32"
13006bfebdeSXin LI	print  "#  include <ncurses_mingw.h>"
13106bfebdeSXin LI	print  "#  define TTY struct termios"
13206bfebdeSXin LI	print  "#else"
1330e3d5408SPeter Wemm	print  "#undef TERMIOS"
1340e3d5408SPeter Wemm	print  "#include <sgtty.h>"
1350e3d5408SPeter Wemm	print  "#include <sys/ioctl.h>"
1360e3d5408SPeter Wemm	print  "#define TTY struct sgttyb"
13706bfebdeSXin LI	print  "#endif /* MINGW32 */"
1380e3d5408SPeter Wemm	print  "#endif /* HAVE_TERMIO_H */"
1390e3d5408SPeter Wemm	print  ""
1400e3d5408SPeter Wemm	print  "#endif /* HAVE_TERMIOS_H */"
1410e3d5408SPeter Wemm	print  ""
1420e3d5408SPeter Wemm	print  "#ifdef TERMIOS"
1430e3d5408SPeter Wemm	print  "#define GET_TTY(fd, buf) tcgetattr(fd, buf)"
1440e3d5408SPeter Wemm	print  "#define SET_TTY(fd, buf) tcsetattr(fd, TCSADRAIN, buf)"
1450e3d5408SPeter Wemm	print  "#else"
1460e3d5408SPeter Wemm	print  "#define GET_TTY(fd, buf) gtty(fd, buf)"
1470e3d5408SPeter Wemm	print  "#define SET_TTY(fd, buf) stty(fd, buf)"
1480e3d5408SPeter Wemm	print  "#endif"
1490e3d5408SPeter Wemm	print  ""
150*aae38d10SBaptiste Daroussin	print  "#ifndef	GCC_NORETURN"
151*aae38d10SBaptiste Daroussin	print  "#define	GCC_NORETURN /* nothing */"
152*aae38d10SBaptiste Daroussin	print  "#endif"
153*aae38d10SBaptiste Daroussin	print  ""
1540e3d5408SPeter Wemm	print  "#define NAMESIZE 256"
1550e3d5408SPeter Wemm	print  ""
156*aae38d10SBaptiste Daroussin	print  "/* The cast works because TERMTYPE is the first data in TERMINAL */"
157*aae38d10SBaptiste Daroussin	print  "#define CUR ((TERMTYPE *)(cur_term))->"
1580e3d5408SPeter Wemm	print  ""
1590e3d5408SPeter Wemm}
1600e3d5408SPeter Wemm
1610e3d5408SPeter Wemm$2 == "%%-STOP-HERE-%%" {
1620e3d5408SPeter Wemm	print  ""
1630e3d5408SPeter Wemm	printf "#define BOOLWRITE %d\n", BoolCount
1640e3d5408SPeter Wemm	printf "#define NUMWRITE  %d\n", NumberCount
1650e3d5408SPeter Wemm	printf "#define STRWRITE  %d\n", StringCount
1660e3d5408SPeter Wemm	print  ""
1670e3d5408SPeter Wemm	print  "/* older synonyms for some capabilities */"
1680e3d5408SPeter Wemm	print  "#define beehive_glitch	no_esc_ctlc"
1690e3d5408SPeter Wemm	print  "#define teleray_glitch	dest_tabs_magic_smso"
170*aae38d10SBaptiste Daroussin	print  ""
171*aae38d10SBaptiste Daroussin	print  "/* HPUX-11 uses this name rather than the standard one */"
172*aae38d10SBaptiste Daroussin	print  "#ifndef micro_char_size"
1730e3d5408SPeter Wemm	print  "#define micro_char_size micro_col_size"
174*aae38d10SBaptiste Daroussin	print  "#endif"
1750e3d5408SPeter Wemm	print  ""
1760e3d5408SPeter Wemm	print  "#ifdef __INTERNAL_CAPS_VISIBLE"
1770e3d5408SPeter Wemm}
1780e3d5408SPeter Wemm
1790e3d5408SPeter Wemm/^#/ { next; }
1800e3d5408SPeter Wemm
181*aae38d10SBaptiste Daroussin/^used_by/ { next ; }
182*aae38d10SBaptiste Daroussin/^userdef/ { next ; }
183*aae38d10SBaptiste Daroussin
184*aae38d10SBaptiste Daroussin$1 == "acs_chars" {
185*aae38d10SBaptiste Daroussin	acsindex = StringCount;
186*aae38d10SBaptiste Daroussin}
18715589c42SPeter Wemm
1880e3d5408SPeter Wemm$3 == "bool" {
1890e3d5408SPeter Wemm	printf "#define %-30s CUR Booleans[%d]\n", $1, BoolCount++
1900e3d5408SPeter Wemm}
1910e3d5408SPeter Wemm
1920e3d5408SPeter Wemm$3 == "num" {
1930e3d5408SPeter Wemm	printf "#define %-30s CUR Numbers[%d]\n", $1, NumberCount++
1940e3d5408SPeter Wemm}
1950e3d5408SPeter Wemm
1960e3d5408SPeter Wemm$3 == "str" {
1970e3d5408SPeter Wemm	printf "#define %-30s CUR Strings[%d]\n", $1, StringCount++
1980e3d5408SPeter Wemm}
1990e3d5408SPeter Wemm
2000e3d5408SPeter WemmEND {
2010e3d5408SPeter Wemm	print  "#endif /* __INTERNAL_CAPS_VISIBLE */"
2020e3d5408SPeter Wemm	print  ""
2030e3d5408SPeter Wemm	print  ""
2040e3d5408SPeter Wemm	print  "/*"
2050e3d5408SPeter Wemm	print  " * Predefined terminfo array sizes"
2060e3d5408SPeter Wemm	print  " */"
2070e3d5408SPeter Wemm	printf "#define BOOLCOUNT %d\n", BoolCount
2080e3d5408SPeter Wemm	printf "#define NUMCOUNT  %d\n", NumberCount
2090e3d5408SPeter Wemm	printf "#define STRCOUNT  %d\n", StringCount
2100e3d5408SPeter Wemm	print  ""
21115589c42SPeter Wemm	print  "/* used by code for comparing entries */"
21215589c42SPeter Wemm	print  "#define acs_chars_index	", acsindex
21315589c42SPeter Wemm	print  ""
214*aae38d10SBaptiste Daroussin	declare_termtype("short","");
2150e3d5408SPeter Wemm	print  ""
216*aae38d10SBaptiste Daroussin	print  "/*"
217*aae38d10SBaptiste Daroussin	print  " * The only reason these structures are visible is for read-only use."
218*aae38d10SBaptiste Daroussin	print  " * Programs which modify the data are not, never were, portable across"
219*aae38d10SBaptiste Daroussin	print  " * curses implementations."
220*aae38d10SBaptiste Daroussin	print  " */"
221*aae38d10SBaptiste Daroussin	print  "#ifdef NCURSES_INTERNALS"
2220e3d5408SPeter Wemm	print  ""
223*aae38d10SBaptiste Daroussin	if (@NCURSES_EXT_COLORS@) {
224*aae38d10SBaptiste Daroussin	declare_termtype("int","2");
225*aae38d10SBaptiste Daroussin	} else {
226*aae38d10SBaptiste Daroussin	print  "typedef TERMTYPE TERMTYPE2;"
227*aae38d10SBaptiste Daroussin	}
2280e3d5408SPeter Wemm	print  ""
2290e3d5408SPeter Wemm	print  "typedef struct term {		/* describe an actual terminal */"
2300e3d5408SPeter Wemm	print  "    TERMTYPE	type;		/* terminal type description */"
2310e3d5408SPeter Wemm	print  "    short	Filedes;	/* file description being written to */"
232*aae38d10SBaptiste Daroussin	print  "    TTY		Ottyb;		/* original state of the terminal */"
233*aae38d10SBaptiste Daroussin	print  "    TTY		Nttyb;		/* current state of the terminal */"
2340e3d5408SPeter Wemm	print  "    int		_baudrate;	/* used to compute padding */"
2354a1a9510SRong-En Fan	print  "    char *	_termname;	/* used for termname() */"
236*aae38d10SBaptiste Daroussin	if (@NCURSES_EXT_COLORS@) {
237*aae38d10SBaptiste Daroussin	print  "    TERMTYPE2	type2;		/* extended terminal type description */"
238*aae38d10SBaptiste Daroussin	}
2390e3d5408SPeter Wemm	print  "} TERMINAL;"
240*aae38d10SBaptiste Daroussin	print  "#else"
241*aae38d10SBaptiste Daroussin	print  "typedef struct term TERMINAL;"
242*aae38d10SBaptiste Daroussin	print  "#endif /* NCURSES_INTERNALS */"
243*aae38d10SBaptiste Daroussin	print  ""
2440e3d5408SPeter Wemm	print  ""
24506bfebdeSXin LI	print  "#if @BROKEN_LINKER@ && !@cf_cv_enable_reentrant@"
24606bfebdeSXin LI	print  "extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term;"
24706bfebdeSXin LI	print  "#elif @cf_cv_enable_reentrant@"
2485d08fb1fSRong-En Fan	print  "NCURSES_WRAPPED_VAR(TERMINAL *, cur_term);"
24906bfebdeSXin LI	print  "#define cur_term   NCURSES_PUBLIC_VAR(cur_term())"
25006bfebdeSXin LI	print  "#else"
25106bfebdeSXin LI	print  "extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term;"
25206bfebdeSXin LI	print  "#endif"
25306bfebdeSXin LI	print  ""
25406bfebdeSXin LI	print  "#if @BROKEN_LINKER@ || @cf_cv_enable_reentrant@"
2555ca44d1cSRong-En Fan	print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolnames);"
2565ca44d1cSRong-En Fan	print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolcodes);"
2575ca44d1cSRong-En Fan	print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolfnames);"
2585ca44d1cSRong-En Fan	print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numnames);"
2595ca44d1cSRong-En Fan	print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numcodes);"
2605ca44d1cSRong-En Fan	print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numfnames);"
2615ca44d1cSRong-En Fan	print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strnames);"
2625ca44d1cSRong-En Fan	print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strcodes);"
2635ca44d1cSRong-En Fan	print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strfnames);"
2640e3d5408SPeter Wemm	print  ""
2655ca44d1cSRong-En Fan	print  "#define boolnames  NCURSES_PUBLIC_VAR(boolnames())"
2665ca44d1cSRong-En Fan	print  "#define boolcodes  NCURSES_PUBLIC_VAR(boolcodes())"
2675ca44d1cSRong-En Fan	print  "#define boolfnames NCURSES_PUBLIC_VAR(boolfnames())"
2685ca44d1cSRong-En Fan	print  "#define numnames   NCURSES_PUBLIC_VAR(numnames())"
2695ca44d1cSRong-En Fan	print  "#define numcodes   NCURSES_PUBLIC_VAR(numcodes())"
2705ca44d1cSRong-En Fan	print  "#define numfnames  NCURSES_PUBLIC_VAR(numfnames())"
2715ca44d1cSRong-En Fan	print  "#define strnames   NCURSES_PUBLIC_VAR(strnames())"
2725ca44d1cSRong-En Fan	print  "#define strcodes   NCURSES_PUBLIC_VAR(strcodes())"
2735ca44d1cSRong-En Fan	print  "#define strfnames  NCURSES_PUBLIC_VAR(strfnames())"
2740e3d5408SPeter Wemm	print  ""
2750e3d5408SPeter Wemm	print  "#else"
2760e3d5408SPeter Wemm	print  ""
2777a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolnames[];"
2787a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolcodes[];"
2797a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolfnames[];"
2807a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numnames[];"
2817a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numcodes[];"
2827a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numfnames[];"
2837a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strnames[];"
2847a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strcodes[];"
2857a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strfnames[];"
2860e3d5408SPeter Wemm	print  ""
2870e3d5408SPeter Wemm	print  "#endif"
2880e3d5408SPeter Wemm	print  ""
289*aae38d10SBaptiste Daroussin	print  "/*"
290*aae38d10SBaptiste Daroussin	print  " * These entrypoints are used only by the ncurses utilities such as tic."
291*aae38d10SBaptiste Daroussin	print  " */"
292*aae38d10SBaptiste Daroussin	print  "#ifdef NCURSES_INTERNALS"
293*aae38d10SBaptiste Daroussin	print  ""
2947a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT(int) _nc_set_tty_mode (TTY *buf);"
295*aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int) _nc_read_entry2 (const char * const, char * const, TERMTYPE2 *const);"
296*aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int) _nc_read_file_entry (const char *const, TERMTYPE2 *);"
297*aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int) _nc_read_termtype (TERMTYPE2 *, char *, int);"
2987a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT(char *) _nc_first_name (const char *const);"
2997a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT(int) _nc_name_match (const char *const, const char *const, const char *const);"
3000e3d5408SPeter Wemm	print  ""
301*aae38d10SBaptiste Daroussin	print  "#endif /* NCURSES_INTERNALS */"
302*aae38d10SBaptiste Daroussin	print  ""
303*aae38d10SBaptiste Daroussin	print  ""
304*aae38d10SBaptiste Daroussin	print  "/*"
305*aae38d10SBaptiste Daroussin	print  " * These entrypoints are used by tack 1.07."
306*aae38d10SBaptiste Daroussin	print  " */"
307*aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(const TERMTYPE *) _nc_fallback (const char *);"
308*aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int) _nc_read_entry (const char * const, char * const, TERMTYPE *const);"
309*aae38d10SBaptiste Daroussin	print  ""
310*aae38d10SBaptiste Daroussin	print  "/*"
311*aae38d10SBaptiste Daroussin	print  " * Normal entry points"
312*aae38d10SBaptiste Daroussin	print  " */"
3137a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT(TERMINAL *) set_curterm (TERMINAL *);"
3147a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT(int) del_curterm (TERMINAL *);"
3150e3d5408SPeter Wemm	print  ""
3160e3d5408SPeter Wemm	print  "/* miscellaneous entry points */"
3177a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT(int) restartterm (NCURSES_CONST char *, int, int *);"
318*aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int) setupterm (const char *,int,int *);"
3190e3d5408SPeter Wemm	print  ""
3200e3d5408SPeter Wemm	print  "/* terminfo entry points, also declared in curses.h */"
3210e3d5408SPeter Wemm	print  "#if !defined(__NCURSES_H)"
322*aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(char *) tigetstr (const char *);"
3237a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT_VAR(char) ttytype[];"
3247a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT(int) putp (const char *);"
325*aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int) tigetflag (const char *);"
326*aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int) tigetnum (const char *);"
3274a1a9510SRong-En Fan	print  ""
3284a1a9510SRong-En Fan	print  "#if @NCURSES_TPARM_VARARGS@ /* NCURSES_TPARM_VARARGS */"
329*aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(char *) tparm (const char *, ...);	/* special */"
3304a1a9510SRong-En Fan	print  "#else"
331*aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(char *) tparm (const char *, long,long,long,long,long,long,long,long,long);	/* special */"
332*aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(char *) tparm_varargs (const char *, ...);	/* special */"
3334a1a9510SRong-En Fan	print  "#endif"
3344a1a9510SRong-En Fan	print  ""
33506bfebdeSXin LI	print  "extern NCURSES_EXPORT(char *) tiparm (const char *, ...);		/* special */"
33606bfebdeSXin LI	print  ""
3370e3d5408SPeter Wemm	print  "#endif /* __NCURSES_H */"
3380e3d5408SPeter Wemm	print  ""
3390e3d5408SPeter Wemm	print  "/* termcap database emulation (XPG4 uses const only for 2nd param of tgetent) */"
3407a69bbfbSPeter Wemm	print  "#if !defined(NCURSES_TERMCAP_H_incl)"
341*aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(char *) tgetstr (const char *, char **);"
3427a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT(char *) tgoto (const char *, int, int);"
3437a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT(int) tgetent (char *, const char *);"
344*aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int) tgetflag (const char *);"
345*aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int) tgetnum (const char *);"
3467a69bbfbSPeter Wemm	print  "extern NCURSES_EXPORT(int) tputs (const char *, int, int (*)(int));"
3477a69bbfbSPeter Wemm	print  "#endif /* NCURSES_TERMCAP_H_incl */"
3480e3d5408SPeter Wemm	print  ""
34906bfebdeSXin LI	print  "/*"
35006bfebdeSXin LI	print  " * Include curses.h before term.h to enable these extensions."
35106bfebdeSXin LI	print  " */"
35206bfebdeSXin LI	print  "#if defined(NCURSES_SP_FUNCS) && (NCURSES_SP_FUNCS != 0)"
35306bfebdeSXin LI	print  ""
354*aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tigetstr) (SCREEN*, const char *);"
35506bfebdeSXin LI	print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(putp) (SCREEN*, const char *);"
356*aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tigetflag) (SCREEN*, const char *);"
357*aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tigetnum) (SCREEN*, const char *);"
35806bfebdeSXin LI	print  ""
35906bfebdeSXin LI	print  "#if @NCURSES_TPARM_VARARGS@ /* NCURSES_TPARM_VARARGS */"
360*aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tparm) (SCREEN*, const char *, ...);	/* special */"
36106bfebdeSXin LI	print  "#else"
362*aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tparm) (SCREEN*, const char *, long,long,long,long,long,long,long,long,long);	/* special */"
363*aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tparm_varargs) (SCREEN*, const char *, ...);	/* special */"
36406bfebdeSXin LI	print  "#endif"
36506bfebdeSXin LI	print  ""
36606bfebdeSXin LI	print  "/* termcap database emulation (XPG4 uses const only for 2nd param of tgetent) */"
367*aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tgetstr) (SCREEN*, const char *, char **);"
36806bfebdeSXin LI	print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tgoto) (SCREEN*, const char *, int, int);"
36906bfebdeSXin LI	print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tgetent) (SCREEN*, char *, const char *);"
370*aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tgetflag) (SCREEN*, const char *);"
371*aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tgetnum) (SCREEN*, const char *);"
37206bfebdeSXin LI	print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tputs) (SCREEN*, const char *, int, NCURSES_SP_OUTC);"
37306bfebdeSXin LI	print  ""
37406bfebdeSXin LI	print  "extern NCURSES_EXPORT(TERMINAL *) NCURSES_SP_NAME(set_curterm) (SCREEN*, TERMINAL *);"
37506bfebdeSXin LI	print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(del_curterm) (SCREEN*, TERMINAL *);"
37606bfebdeSXin LI	print  ""
37706bfebdeSXin LI	print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(restartterm) (SCREEN*, NCURSES_CONST char *, int, int *);"
37806bfebdeSXin LI	print  "#endif /* NCURSES_SP_FUNCS */"
37906bfebdeSXin LI	print  ""
380*aae38d10SBaptiste Daroussin	print  "/*"
381*aae38d10SBaptiste Daroussin	print  " * Debugging features."
382*aae38d10SBaptiste Daroussin	print  " */"
383*aae38d10SBaptiste Daroussin	print  "extern NCURSES_EXPORT(void)    exit_terminfo(int) GCC_NORETURN;"
384*aae38d10SBaptiste Daroussin	print  ""
3850e3d5408SPeter Wemm	print  "#ifdef __cplusplus"
386*aae38d10SBaptiste Daroussin	printf "%s\n", rcurl;
3870e3d5408SPeter Wemm	print  "#endif"
3880e3d5408SPeter Wemm	print  ""
3897a69bbfbSPeter Wemm	print  "#endif /* NCURSES_TERM_H_incl */"
3900e3d5408SPeter Wemm}
391