X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=include%2Fncurses_mingw.h;h=5e89dc6424eb09ae3fc906a509363a0f62be3f50;hp=4ea1dad537371e1228939705f692e6724374bb00;hb=45291421bee33c79ffb4c8f0e1b67ca5cc262114;hpb=da1f84b7eb32f17e91f6de242132ab3b2d462148 diff --git a/include/ncurses_mingw.h b/include/ncurses_mingw.h index 4ea1dad5..5e89dc64 100644 --- a/include/ncurses_mingw.h +++ b/include/ncurses_mingw.h @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * + * Copyright (c) 1998-2017,2018 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 * @@ -28,17 +28,16 @@ /**************************************************************************** * Author: Juergen Pfeifer, 2008-on * - * * ****************************************************************************/ -/* $Id: ncurses_mingw.h,v 1.1 2008/12/14 19:22:16 juergen Exp $ */ +/* $Id: ncurses_mingw.h,v 1.5 2018/06/24 00:07:35 tom Exp $ */ /* - * This is a placholder up to now and describes what needs to be implemented + * This is a placeholder up to now and describes what needs to be implemented * to support I/O to external terminals with ncurses on the Windows OS. */ -#if __MINGW32__ +#ifdef _WIN32 #ifndef _NC_MINGWH #define _NC_MINGWH @@ -47,118 +46,36 @@ #undef TERMIOS #define TERMIOS 1 -#define InvalidHandle ((TERM_HANDLE)-1) -#define InvalidConsoleHandle(s) ((s)==InvalidHandle) - typedef unsigned char cc_t; -typedef unsigned int speed_t; typedef unsigned int tcflag_t; +typedef unsigned int speed_t; +typedef unsigned short otcflag_t; +typedef unsigned char ospeed_t; -#define NCCS 32 +#define NCCS 18 struct termios { - tcflag_t c_iflag; /* input mode */ - tcflag_t c_oflag; /* output mode */ - tcflag_t c_cflag; /* control mode */ - tcflag_t c_lflag; /* local mode */ - cc_t c_line; /* line discipline */ - cc_t c_cc[NCCS]; /* control characters */ - speed_t c_ispeed; /* input speed */ - speed_t c_ospeed; /* c_ospeed */ + tcflag_t c_iflag; + tcflag_t c_oflag; + tcflag_t c_cflag; + tcflag_t c_lflag; + char c_line; + cc_t c_cc[NCCS]; + speed_t c_ispeed; + speed_t c_ospeed; }; -/* c_cc chars */ -#define VINTR 0 -#define VQUIT 1 -#define VERASE 2 -#define VKILL 3 -#define VEOF 4 -#define VTIME 5 -#define VMIN 6 - -/* c_iflag bits */ -#define ISTRIP 0000040 -#define INLCR 0000100 -#define IGNCR 0000200 -#define ICRNL 0000400 -#define BRKINT 0000002 -#define PARMRK 0000010 -#define IXON 0002000 -#define IGNBRK 0000001 -#define IGNPAR 0000004 -#define INPCK 0000020 -#define IXOFF 0010000 - -/* c_oflag bits */ -#define OPOST 0000001 - -/* c_cflag bit meaning */ -#define CBAUD 0010017 -#define CSIZE 0000060 -#define CS8 0000060 -#define B0 0000000 -#define B50 0000001 -#define B75 0000002 -#define B110 0000003 -#define B134 0000004 -#define B150 0000005 -#define B200 0000006 -#define B300 0000007 -#define B600 0000010 -#define B1200 0000011 -#define B1800 0000012 -#define B2400 0000013 -#define B4800 0000014 -#define B9600 0000015 -#define CLOCAL 0004000 -#define CREAD 0000200 -#define CSTOPB 0000100 -#define HUPCL 0002000 -#define PARENB 0000400 -#define PARODD 0001000 - -/* c_lflag bits */ -#define ECHO 0000010 -#define ECHONL 0000100 -#define ISIG 0000001 -#define IEXTEN 0100000 -#define ICANON 0000002 -#define NOFLSH 0000200 -#define ECHOE 0000020 -#define ECHOK 0000040 - -/* tcflush() */ -#define TCIFLUSH 0 - -/* tcsetattr uses these */ -#define TCSADRAIN 1 - -/* ioctls */ -#define TCGETA 0x5405 -#define TCFLSH 0x540B -#define TIOCGWINSZ 0x5413 - -extern int _nc_mingw_ioctl(int fd, long int request, struct termios* arg); -extern void _nc_set_term_driver(void* term); - -#ifndef cfgetospeed -#define cfgetospeed(t) ((t)->c_cflag & CBAUD) -#endif - -#ifndef tcsetattr -#define tcsetattr(fd, cmd, arg) _nc_mingw_ioctl(fd, cmd, arg) -#endif - -#ifndef tcgetattr -#define tcgetattr(fd, arg) _nc_mingw_ioctl(fd, TCGETA, arg) -#endif - -#ifndef tcflush -#define tcflush(fd, arg) _nc_mingw_ioctl(fd, TCFLSH, arg) -#endif - -#undef ttyname -#define ttyname(fd) NULL - -#endif -#endif +extern NCURSES_EXPORT(int) _nc_mingw_tcsetattr( + int fd, + int optional_actions, + const struct termios* arg); +extern NCURSES_EXPORT(int) _nc_mingw_tcgetattr( + int fd, + struct termios* arg); +extern NCURSES_EXPORT(int) _nc_mingw_tcflush( + int fd, + int queue); +extern NCURSES_EXPORT(void) _nc_set_term_driver(void* term); + +#endif /* _NC_MINGWH */ +#endif /* _WIN32 */