X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=include%2FMKterm.h.awk.in;h=e79840d9974afede3e2a4589716a696e1f687566;hp=3c7eb72c1b561c99522e614a368447bab2526ac3;hb=HEAD;hpb=790a85dbd4a81d5f5d8dd02a44d84f01512ef443;ds=sidebyside diff --git a/include/MKterm.h.awk.in b/include/MKterm.h.awk.in index 3c7eb72c..a93d8e86 100644 --- a/include/MKterm.h.awk.in +++ b/include/MKterm.h.awk.in @@ -26,7 +26,7 @@ BEGIN { lcurl = "{"; rcurl = "}"; print "/****************************************************************************" - print " * Copyright 2018-2019,2020 Thomas E. Dickey *" + print " * Copyright 2018-2021,2023 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 *" @@ -60,7 +60,7 @@ BEGIN { print "/* and: Thomas E. Dickey 1995-on */" print "/****************************************************************************/" print "" - print "/* $Id: MKterm.h.awk.in,v 1.76 2020/05/30 19:24:03 tom Exp $ */" + print "/* $Id: MKterm.h.awk.in,v 1.85 2023/04/23 19:15:36 tom Exp $ */" print "" print "/*" print "** term.h -- Definition of struct term" @@ -82,6 +82,24 @@ BEGIN { 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 "" @@ -127,9 +145,14 @@ BEGIN { print "" print "#else /* !HAVE_TERMIO_H */" print "" - print "#if _WIN32" - print "# include " - print "# define TTY struct termios" + 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 " @@ -143,6 +166,9 @@ BEGIN { 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)" @@ -218,28 +244,28 @@ END { 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 "typedef TERMTYPE TERMTYPE2;" + 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 " short Filedes; /* file description being written to */" - print " TTY Ottyb; /* original state of the terminal */" - print " TTY Nttyb; /* current state of the terminal */" - print " int _baudrate; /* used to compute padding */" - print " char * _termname; /* used for termname() */" - if (@NCURSES_EXT_COLORS@) { - print " TERMTYPE2 type2; /* extended terminal type description */" - } print "} TERMINAL;" - print "#else" - print "typedef struct term TERMINAL;" + print "" print "#endif /* NCURSES_INTERNALS */" print "" print "" @@ -299,16 +325,11 @@ END { 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 "#endif /* NCURSES_INTERNALS */" + print "" print "/*" print " * Normal entry points" print " */" @@ -334,6 +355,8 @@ END { print "#endif" print "" print "extern NCURSES_EXPORT(char *) tiparm (const char *, ...); /* special */" + print "extern NCURSES_EXPORT(char *) tiparm_s (int, int, const char *, ...); /* special */" + print "extern NCURSES_EXPORT(int) tiscan_s (int *, int *, const char *); /* special */" print "" print "#endif /* __NCURSES_H */" print "" @@ -380,7 +403,7 @@ END { print "/*" print " * Debugging features." print " */" - print "extern NCURSES_EXPORT(void) exit_terminfo(int) GCC_NORETURN;" + print "extern GCC_NORETURN NCURSES_EXPORT(void) exit_terminfo(int);" print "" print "#ifdef __cplusplus" printf "%s\n", rcurl;