summaryrefslogtreecommitdiff
path: root/include/ncurses_mingw.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/ncurses_mingw.h')
-rw-r--r--include/ncurses_mingw.h140
1 files changed, 29 insertions, 111 deletions
diff --git a/include/ncurses_mingw.h b/include/ncurses_mingw.h
index 4ea1dad..2bbad76 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-2011,2014 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 *
@@ -31,10 +31,10 @@
* *
****************************************************************************/
-/* $Id: ncurses_mingw.h,v 1.1 2008/12/14 19:22:16 juergen Exp $ */
+/* $Id: ncurses_mingw.h,v 1.3 2014/05/03 19:40:19 juergen 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.
*/
@@ -47,118 +47,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 /* __MINGW32__ */