diff options
author | Baptiste Daroussin <bapt@FreeBSD.org> | 2021-02-25 18:26:18 +0000 |
---|---|---|
committer | Baptiste Daroussin <bapt@FreeBSD.org> | 2021-02-25 18:26:56 +0000 |
commit | 7a65641922f404b84e9a249d48593de84d8e8d17 (patch) | |
tree | 367e0bced74126ec14c9a1f2a626e686d81ac2fc /contrib/ncurses/include | |
parent | 220c6d922a84f6679d72dfc5bac762b4c4812199 (diff) | |
parent | bf0ab54638a5ef969749f6ceae30e864f9556ea8 (diff) | |
download | src-7a65641922f404b84e9a249d48593de84d8e8d17.tar.gz src-7a65641922f404b84e9a249d48593de84d8e8d17.zip |
ncurses: import version 6.2-20210220
Diffstat (limited to 'contrib/ncurses/include')
23 files changed, 507 insertions, 142 deletions
diff --git a/contrib/ncurses/include/Caps b/contrib/ncurses/include/Caps index af0ec4513a57..4528cffb80ed 100644 --- a/contrib/ncurses/include/Caps +++ b/contrib/ncurses/include/Caps @@ -30,7 +30,7 @@ # Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 # and: Eric S. Raymond <esr@snark.thyrsus.com> # -# $Id: Caps,v 1.45 2020/02/02 23:34:34 tom Exp $ +# $Id: Caps,v 1.46 2020/10/17 21:30:19 tom Exp $ # # This is the master termcap/terminfo capability table. # @@ -189,8 +189,12 @@ #%indicates that padding may be specified #%.TP #%#[1-9] -#%in the description field indicates that the string is passed through tparm with -#%parms as given (#\fIi\fP). +#%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 diff --git a/contrib/ncurses/include/Caps-ncurses b/contrib/ncurses/include/Caps-ncurses index a1aef0d51e57..d8c8baca1fb3 100644 --- a/contrib/ncurses/include/Caps-ncurses +++ b/contrib/ncurses/include/Caps-ncurses @@ -28,7 +28,7 @@ # # Author: Thomas E. Dickey # -# $Id: Caps-ncurses,v 1.8 2020/02/02 23:34:34 tom Exp $ +# $Id: Caps-ncurses,v 1.10 2020/09/29 19:05:19 tom Exp $ # ############################################################################# # @@ -342,6 +342,7 @@ infoalias ksel kslt IBM key_select # 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. @@ -361,6 +362,15 @@ 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). diff --git a/contrib/ncurses/include/Caps.aix4 b/contrib/ncurses/include/Caps.aix4 index 100489c592d8..a27f2699582b 100644 --- a/contrib/ncurses/include/Caps.aix4 +++ b/contrib/ncurses/include/Caps.aix4 @@ -29,7 +29,7 @@ # # Author: Thomas Dickey # -# $Id: Caps.aix4,v 1.17 2020/02/02 23:34:34 tom Exp $ +# $Id: Caps.aix4,v 1.18 2020/10/17 21:30:19 tom Exp $ # # This is an adaptation of ncurses' termcap/terminfo capability table, which # is designed to align with AIX 4.x's terminfo. @@ -189,8 +189,12 @@ #%indicates that padding may be specified #%.TP #%#[1-9] -#%in the description field indicates that the string is passed through tparm with -#%parms as given (#\fIi\fP). +#%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 diff --git a/contrib/ncurses/include/Caps.hpux11 b/contrib/ncurses/include/Caps.hpux11 index e028224c3834..712a74297f6a 100644 --- a/contrib/ncurses/include/Caps.hpux11 +++ b/contrib/ncurses/include/Caps.hpux11 @@ -29,7 +29,7 @@ # # Author: Thomas Dickey # -# $Id: Caps.hpux11,v 1.15 2020/02/02 23:34:34 tom Exp $ +# $Id: Caps.hpux11,v 1.16 2020/10/17 21:30:19 tom Exp $ # # This is an adaptation of ncurses' termcap/terminfo capability table, which # is designed to align with HPUX 11.x's terminfo. @@ -189,8 +189,12 @@ #%indicates that padding may be specified #%.TP #%#[1-9] -#%in the description field indicates that the string is passed through tparm with -#%parms as given (#\fIi\fP). +#%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 diff --git a/contrib/ncurses/include/Caps.keys b/contrib/ncurses/include/Caps.keys index 6b03964fd67d..018f68474fda 100644 --- a/contrib/ncurses/include/Caps.keys +++ b/contrib/ncurses/include/Caps.keys @@ -30,7 +30,7 @@ # Author: Thomas Dickey # and: Ilya Zakharevich # -# $Id: Caps.keys,v 1.14 2020/02/02 23:34:34 tom Exp $ +# $Id: Caps.keys,v 1.15 2020/10/17 21:30:19 tom Exp $ # # This is an adaptation of ncurses' termcap/terminfo capability table, which # is illustrates an experimental extension to describe alt-, shift- and @@ -191,8 +191,12 @@ #%indicates that padding may be specified #%.TP #%#[1-9] -#%in the description field indicates that the string is passed through tparm with -#%parms as given (#\fIi\fP). +#%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 diff --git a/contrib/ncurses/include/Caps.osf1r5 b/contrib/ncurses/include/Caps.osf1r5 index 94991837a968..8a2955486ee9 100644 --- a/contrib/ncurses/include/Caps.osf1r5 +++ b/contrib/ncurses/include/Caps.osf1r5 @@ -29,7 +29,7 @@ # # Author: Thomas Dickey # -# $Id: Caps.osf1r5,v 1.13 2020/02/02 23:34:34 tom Exp $ +# $Id: Caps.osf1r5,v 1.14 2020/10/17 21:30:19 tom Exp $ # # This is an adaptation of ncurses' termcap/terminfo capability table, which # is designed to align with OSF/1 version 5 (Tru64) terminfo. @@ -189,8 +189,12 @@ #%indicates that padding may be specified #%.TP #%#[1-9] -#%in the description field indicates that the string is passed through tparm with -#%parms as given (#\fIi\fP). +#%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 diff --git a/contrib/ncurses/include/Caps.uwin b/contrib/ncurses/include/Caps.uwin index 7628bd47b6e8..de0d5b77cae9 100644 --- a/contrib/ncurses/include/Caps.uwin +++ b/contrib/ncurses/include/Caps.uwin @@ -29,7 +29,7 @@ # # Author: Thomas Dickey # -# $Id: Caps.uwin,v 1.12 2020/02/02 23:34:34 tom Exp $ +# $Id: Caps.uwin,v 1.13 2020/10/17 21:30:19 tom Exp $ # # This is an adaptation of ncurses' termcap/terminfo capability table, which # is designed to align with U/Win's terminfo. @@ -189,8 +189,12 @@ #%indicates that padding may be specified #%.TP #%#[1-9] -#%in the description field indicates that the string is passed through tparm with -#%parms as given (#\fIi\fP). +#%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 diff --git a/contrib/ncurses/include/MKkey_defs.sh b/contrib/ncurses/include/MKkey_defs.sh index 865a7b9c8b87..86d6891c3693 100755 --- a/contrib/ncurses/include/MKkey_defs.sh +++ b/contrib/ncurses/include/MKkey_defs.sh @@ -1,5 +1,5 @@ #! /bin/sh -# $Id: MKkey_defs.sh,v 1.19 2020/02/02 23:34:34 tom Exp $ +# $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. # @@ -63,8 +63,7 @@ fi # add keys that we generate automatically: cat >>$data <<EOF -key_resize kr1 str R1 KEY_RESIZE + ----- Terminal resize event -key_event kv1 str V1 KEY_EVENT + ----- We were interrupted by an event +key_resize kr1 str R1 KEY_RESIZE + NCURSES_EXT_FUNCS Terminal resize event EOF THIS=./`basename $0` @@ -142,6 +141,12 @@ $5 != "-" && $6 != "-" { 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); @@ -160,6 +165,9 @@ $5 != "-" && $6 != "-" { printf " %s", $i print " */" } + if (ifdef != 0) { + printf "#endif\n"; + } } } END { diff --git a/contrib/ncurses/include/MKterm.h.awk.in b/contrib/ncurses/include/MKterm.h.awk.in index ee4e2b48dc1f..c93cdeac6971 100644 --- a/contrib/ncurses/include/MKterm.h.awk.in +++ b/contrib/ncurses/include/MKterm.h.awk.in @@ -60,7 +60,7 @@ BEGIN { print "/* and: Thomas E. Dickey 1995-on */" print "/****************************************************************************/" print "" - print "/* $Id: MKterm.h.awk.in,v 1.74 2020/02/02 23:34:34 tom Exp $ */" + print "/* $Id: MKterm.h.awk.in,v 1.78 2020/10/31 23:14:24 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 <ncurses_mingw.h>" - print "# define TTY struct termios" + print "#if (defined(_WIN32) || defined(_WIN64))" + print "#if @EXP_WIN32_DRIVER@" + print "#include <win32_curses.h>" + print "#define TTY struct winconmode" + print "#else" + print "#include <ncurses_mingw.h>" + print "#define TTY struct termios" + print "#endif" print "#else" print "#undef TERMIOS" print "#include <sgtty.h>" @@ -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)" @@ -298,6 +324,7 @@ END { 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 "" @@ -330,7 +357,6 @@ END { 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 "extern NCURSES_EXPORT(char *) tparm_varargs (const char *, ...); /* special */" print "#endif" print "" print "extern NCURSES_EXPORT(char *) tiparm (const char *, ...); /* special */" @@ -361,7 +387,6 @@ END { 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 "extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tparm_varargs) (SCREEN*, const char *, ...); /* special */" print "#endif" print "" print "/* termcap database emulation (XPG4 uses const only for 2nd param of tgetent) */" diff --git a/contrib/ncurses/include/Makefile.in b/contrib/ncurses/include/Makefile.in index d23c472b1c18..b911f8eadce1 100644 --- a/contrib/ncurses/include/Makefile.in +++ b/contrib/ncurses/include/Makefile.in @@ -1,4 +1,4 @@ -# $Id: Makefile.in,v 1.46 2020/02/02 23:34:34 tom Exp $ +# $Id: Makefile.in,v 1.51 2020/09/18 22:55:10 tom Exp $ ############################################################################## # Copyright 2019,2020 Thomas E. Dickey # # Copyright 1998-2013,2015 Free Software Foundation, Inc. # @@ -28,7 +28,7 @@ # authorization. # ############################################################################## # -# Author: Thomas E. Dickey 1996-2001 +# Author: Thomas E. Dickey 1996-on # # Makefile for ncurses source code. # @@ -59,6 +59,10 @@ 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@ @@ -100,6 +104,7 @@ curses.h : $(CAPLIST) \ $(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 >>$@ @@ -141,6 +146,17 @@ distclean :: clean 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/contrib/ncurses/include/curses.events b/contrib/ncurses/include/curses.events new file mode 100644 index 000000000000..25a2583fc9b5 --- /dev/null +++ b/contrib/ncurses/include/curses.events @@ -0,0 +1,55 @@ +/* $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/contrib/ncurses/include/curses.h.in b/contrib/ncurses/include/curses.h.in index 2cb3224b3ecc..c516b22c1fe4 100644 --- a/contrib/ncurses/include/curses.h.in +++ b/contrib/ncurses/include/curses.h.in @@ -33,7 +33,7 @@ * and: Thomas E. Dickey 1996-on * ****************************************************************************/ -/* $Id: curses.h.in,v 1.266 2020/02/08 10:51:53 tom Exp $ */ +/* $Id: curses.h.in,v 1.269 2020/08/17 14:14:12 tom Exp $ */ #ifndef __NCURSES_H #define __NCURSES_H @@ -498,55 +498,6 @@ struct _win_st #endif /* NCURSES_OPAQUE */ /* - * This is an extension to support events... - */ -#if @NCURSES_EXT_FUNCS@ -#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 *); /* experimental */ -extern NCURSES_EXPORT(int) wgetnstr_events (WINDOW *,char *,int,_nc_eventlist *);/* experimental */ - -#endif /* NCURSES_WGETCH_EVENTS */ -#endif /* NCURSES_EXT_FUNCS */ - -/* * 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. @@ -590,7 +541,7 @@ extern NCURSES_EXPORT(int) wgetnstr_events (WINDOW *,char *,int,_nc_eventlist *) #endif #undef GCC_DEPRECATED -#if (__GNUC__ - 0 > 3 || (__GNUC__ - 0 == 3 && __GNUC_MINOR__ - 0 >= 2)) +#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 */ @@ -895,7 +846,6 @@ extern NCURSES_EXPORT(int) putp (const char *); /* implemented */ 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 */ -extern NCURSES_EXPORT(char *) tparm_varargs (const char *, ...); /* special */ #endif extern NCURSES_EXPORT(char *) tiparm (const char *, ...); /* special */ diff --git a/contrib/ncurses/include/headers b/contrib/ncurses/include/headers index dbb134d13f90..32e33fdbc734 100644 --- a/contrib/ncurses/include/headers +++ b/contrib/ncurses/include/headers @@ -1,4 +1,4 @@ -# $Id: headers,v 1.14 2020/02/02 23:34:34 tom Exp $ +# $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. # @@ -49,5 +49,7 @@ $(srcdir)/nc_tparm.h @ port_win32con $(srcdir)/ncurses_mingw.h $(srcdir)/nc_mingw.h +@ port_win32 +$(srcdir)/win32_curses.h # vile:makemode diff --git a/contrib/ncurses/include/nc_alloc.h b/contrib/ncurses/include/nc_alloc.h index ca63e78cd922..8d19f98e0f67 100644 --- a/contrib/ncurses/include/nc_alloc.h +++ b/contrib/ncurses/include/nc_alloc.h @@ -30,7 +30,7 @@ /**************************************************************************** * Author: Thomas E. Dickey 1996-on * ****************************************************************************/ -/* $Id: nc_alloc.h,v 1.26 2020/02/02 23:34:34 tom Exp $ */ +/* $Id: nc_alloc.h,v 1.27 2020/07/04 20:01:13 tom Exp $ */ #ifndef NC_ALLOC_included #define NC_ALLOC_included 1 @@ -78,7 +78,7 @@ extern NCURSES_EXPORT(void) _nc_free_tinfo(int) GCC_NORETURN GCC_DEPRECATED("use #ifdef NCURSES_INTERNALS extern NCURSES_EXPORT(void) _nc_free_tic(int) GCC_NORETURN; extern NCURSES_EXPORT(void) _nc_free_tparm(void); -extern NCURSES_EXPORT(void) _nc_leaks_dump_entry(void); +extern void _nc_leaks_dump_entry(void); extern NCURSES_EXPORT(void) _nc_leaks_tic(void); #if NCURSES_SP_FUNCS diff --git a/contrib/ncurses/include/nc_mingw.h b/contrib/ncurses/include/nc_mingw.h index 68a418494560..6729b29d3d09 100644 --- a/contrib/ncurses/include/nc_mingw.h +++ b/contrib/ncurses/include/nc_mingw.h @@ -31,12 +31,13 @@ * Author: Thomas Dickey, 2008-on * ****************************************************************************/ -/* $Id: nc_mingw.h,v 1.7 2020/02/02 23:34:34 tom Exp $ */ +/* $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 @@ -52,9 +53,21 @@ #undef gettimeofday #define gettimeofday(tv,tz) _nc_gettimeofday(tv,tz) +#if HAVE_SYS_TIME_H #include <sys/time.h> /* for struct timeval */ +#endif -extern int _nc_gettimeofday(struct timeval *, void *); +#ifdef _MSC_VER +#include <winsock2.h> /* for struct timeval */ +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#include <ncurses_dll.h> + +NCURSES_EXPORT(int) _nc_gettimeofday(struct timeval *, void *); #undef HAVE_GETTIMEOFDAY #define HAVE_GETTIMEOFDAY 1 @@ -65,7 +78,11 @@ extern int _nc_gettimeofday(struct timeval *, void *); #undef wcwidth #define wcwidth(ucs) _nc_wcwidth((wchar_t)(ucs)) -extern int _nc_wcwidth(wchar_t); +NCURSES_EXPORT(int) _nc_wcwidth(wchar_t); + +#ifdef __cplusplus +} +#endif #endif /* _WIN32 */ diff --git a/contrib/ncurses/include/nc_termios.h b/contrib/ncurses/include/nc_termios.h index 87fa46efb48d..13cc0af7ab53 100644 --- a/contrib/ncurses/include/nc_termios.h +++ b/contrib/ncurses/include/nc_termios.h @@ -31,7 +31,7 @@ * Author: Thomas E. Dickey 2011 * ****************************************************************************/ -/* $Id: nc_termios.h,v 1.7 2020/02/02 23:34:34 tom Exp $ */ +/* $Id: nc_termios.h,v 1.8 2020/08/29 20:53:19 tom Exp $ */ #ifndef NC_TERMIOS_included #define NC_TERMIOS_included 1 @@ -70,9 +70,13 @@ #define tcflush(fd, arg) ioctl(fd, TCFLSH, arg) #endif +#if defined(EXP_WIN32_DRIVER) +#undef TERMIOS +#endif + #else /* !HAVE_TERMIO_H */ -#if _WIN32 +#if defined(_WIN32) && !defined(EXP_WIN32_DRIVER) /* lflag bits */ #define ISIG 0x0001 diff --git a/contrib/ncurses/include/nc_tparm.h b/contrib/ncurses/include/nc_tparm.h index 61570959c08c..943d9476055d 100644 --- a/contrib/ncurses/include/nc_tparm.h +++ b/contrib/ncurses/include/nc_tparm.h @@ -31,7 +31,7 @@ * Author: Thomas E. Dickey 2006 * ****************************************************************************/ -/* $Id: nc_tparm.h,v 1.10 2020/02/02 23:34:34 tom Exp $ */ +/* $Id: nc_tparm.h,v 1.11 2020/05/27 23:33:31 tom Exp $ */ #ifndef NC_TPARM_included #define NC_TPARM_included 1 @@ -77,4 +77,16 @@ #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/contrib/ncurses/include/nc_win32.h b/contrib/ncurses/include/nc_win32.h new file mode 100644 index 000000000000..790e8dfe9388 --- /dev/null +++ b/contrib/ncurses/include/nc_win32.h @@ -0,0 +1,183 @@ +/**************************************************************************** + * 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 <windows.h> + +#if HAVE_SYS_TIME_H +#include <sys/time.h> /* for struct timeval */ +#endif + +#ifdef _NC_MSC +#include <winsock2.h> /* for struct timeval */ +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#include <ncurses_dll.h> + +#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/contrib/ncurses/include/ncurses_cfg.hin b/contrib/ncurses/include/ncurses_cfg.hin index bf9b2c5fc293..8d9ed81a8406 100644 --- a/contrib/ncurses/include/ncurses_cfg.hin +++ b/contrib/ncurses/include/ncurses_cfg.hin @@ -31,7 +31,7 @@ * Author: Thomas E. Dickey 1997-on * ****************************************************************************/ /* - * $Id: ncurses_cfg.hin,v 1.12 2020/02/02 23:34:34 tom Exp $ + * $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. @@ -43,7 +43,7 @@ * 971222) to autoconf 2.12 or 2.13 to do this. * * See: - * http://invisible-island.net/autoconf/ + * https://invisible-island.net/autoconf/ * ftp://ftp.invisible-island.net/autoconf/ */ #ifndef NC_CONFIG_H diff --git a/contrib/ncurses/include/ncurses_defs b/contrib/ncurses/include/ncurses_defs index e37fc901eaaf..b805c8414182 100644 --- a/contrib/ncurses/include/ncurses_defs +++ b/contrib/ncurses/include/ncurses_defs @@ -1,4 +1,4 @@ -# $Id: ncurses_defs,v 1.92 2020/02/02 23:34:34 tom Exp $ +# $Id: ncurses_defs,v 1.95 2020/08/01 19:48:21 tom Exp $ ############################################################################## # Copyright 2018-2019,2020 Thomas E. Dickey # # Copyright 2000-2016,2017 Free Software Foundation, Inc. # @@ -63,6 +63,8 @@ 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 @@ -120,7 +122,7 @@ HAVE_NANOSLEEP HAVE_NC_ALLOC_H HAVE_NEWPAD 1 HAVE_PANEL_H -HAVE_PCRE2_POSIX_H +HAVE_PCRE2POSIX_H HAVE_PCREPOSIX_H HAVE_POLL HAVE_POLL_H diff --git a/contrib/ncurses/include/ncurses_dll.h.in b/contrib/ncurses/include/ncurses_dll.h.in index f439d48013ca..437c54de0271 100644 --- a/contrib/ncurses/include/ncurses_dll.h.in +++ b/contrib/ncurses/include/ncurses_dll.h.in @@ -26,7 +26,7 @@ * sale, use or other dealings in this Software without prior written * * authorization. * ****************************************************************************/ -/* $Id: ncurses_dll.h.in,v 1.12 2020/02/02 23:34:34 tom Exp $ */ +/* $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 @@ -66,52 +66,34 @@ * using functions to access them. */ #define NCURSES_PUBLIC_VAR(name) @NCURSES_WRAP_PREFIX@##name -#define NCURSES_WRAPPED_VAR(type,name) extern type NCURSES_PUBLIC_VAR(name)(void) -/* no longer needed on cygwin or mingw, thanks to auto-import */ -/* but this structure may be useful at some point for an MSVC build */ -/* so, for now unconditionally define the important flags */ -/* "the right way" for proper static and dll+auto-import behavior */ -#undef NCURSES_DLL -#define NCURSES_STATIC - -#if defined(__CYGWIN__) || defined(_WIN32) -# if defined(NCURSES_DLL) -# if defined(NCURSES_STATIC) -# undef NCURSES_STATIC -# endif -# endif -# undef NCURSES_IMPEXP -# undef NCURSES_API -# undef NCURSES_EXPORT -# undef NCURSES_EXPORT_VAR -# if defined(NCURSES_DLL) -/* building a DLL */ -# define NCURSES_IMPEXP __declspec(dllexport) -# elif defined(NCURSES_STATIC) -/* building or linking to a static library */ -# define NCURSES_IMPEXP /* nothing */ -# else -/* linking to the DLL */ -# define NCURSES_IMPEXP __declspec(dllimport) -# endif -# define NCURSES_API __cdecl -# define NCURSES_EXPORT(type) NCURSES_IMPEXP type NCURSES_API -# define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type +#if defined(BUILDING_NCURSES) +# define NCURSES_IMPEXP NCURSES_EXPORT_GENERAL_EXPORT +#else +# define NCURSES_IMPEXP NCURSES_EXPORT_GENERAL_IMPORT #endif -/* Take care of non-cygwin platforms */ -#if !defined(NCURSES_IMPEXP) -# define NCURSES_IMPEXP /* nothing */ -#endif -#if !defined(NCURSES_API) -# define NCURSES_API /* nothing */ -#endif -#if !defined(NCURSES_EXPORT) -# define NCURSES_EXPORT(type) NCURSES_IMPEXP type NCURSES_API -#endif -#if !defined(NCURSES_EXPORT_VAR) -# define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type +#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/contrib/ncurses/include/term_entry.h b/contrib/ncurses/include/term_entry.h index df13f53f49ee..18e4b87aab77 100644 --- a/contrib/ncurses/include/term_entry.h +++ b/contrib/ncurses/include/term_entry.h @@ -33,7 +33,7 @@ * and: Thomas E. Dickey 1998-on * ****************************************************************************/ -/* $Id: term_entry.h,v 1.59 2020/02/02 23:34:34 tom Exp $ */ +/* $Id: term_entry.h,v 1.60 2020/02/29 15:46:00 anonymous.maarten Exp $ */ /* * term_entry.h -- interface to entry-manipulation code @@ -200,8 +200,8 @@ 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); +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 *); diff --git a/contrib/ncurses/include/win32_curses.h b/contrib/ncurses/include/win32_curses.h new file mode 100644 index 000000000000..5babf47d214a --- /dev/null +++ b/contrib/ncurses/include/win32_curses.h @@ -0,0 +1,75 @@ +/**************************************************************************** + * Copyright 2018,2020 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.2 2020/11/14 23:52:46 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 */ |