ncurses_mingw.h 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. /****************************************************************************
  2. * Copyright 2018-2020,2021 Thomas E. Dickey *
  3. * Copyright 2008-2014,2017 Free Software Foundation, Inc. *
  4. * *
  5. * Permission is hereby granted, free of charge, to any person obtaining a *
  6. * copy of this software and associated documentation files (the *
  7. * "Software"), to deal in the Software without restriction, including *
  8. * without limitation the rights to use, copy, modify, merge, publish, *
  9. * distribute, distribute with modifications, sublicense, and/or sell *
  10. * copies of the Software, and to permit persons to whom the Software is *
  11. * furnished to do so, subject to the following conditions: *
  12. * *
  13. * The above copyright notice and this permission notice shall be included *
  14. * in all copies or substantial portions of the Software. *
  15. * *
  16. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
  17. * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
  18. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
  19. * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
  20. * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
  21. * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
  22. * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
  23. * *
  24. * Except as contained in this notice, the name(s) of the above copyright *
  25. * holders shall not be used in advertising or otherwise to promote the *
  26. * sale, use or other dealings in this Software without prior written *
  27. * authorization. *
  28. ****************************************************************************/
  29. /****************************************************************************
  30. * Author: Juergen Pfeifer, 2008-on *
  31. ****************************************************************************/
  32. /* $Id: ncurses_mingw.h,v 1.7 2021/06/17 21:26:02 tom Exp $ */
  33. /*
  34. * This is a placeholder up to now and describes what needs to be implemented
  35. * to support I/O to external terminals with ncurses on the Windows OS.
  36. */
  37. #ifdef _WIN32
  38. #ifndef _NC_MINGWH
  39. #define _NC_MINGWH
  40. #define USE_CONSOLE_DRIVER 1
  41. #undef TERMIOS
  42. #define TERMIOS 1
  43. typedef unsigned char cc_t;
  44. typedef unsigned int tcflag_t;
  45. typedef unsigned int speed_t;
  46. typedef unsigned short otcflag_t;
  47. typedef unsigned char ospeed_t;
  48. #define NCCS 18
  49. struct termios
  50. {
  51. tcflag_t c_iflag;
  52. tcflag_t c_oflag;
  53. tcflag_t c_cflag;
  54. tcflag_t c_lflag;
  55. char c_line;
  56. cc_t c_cc[NCCS];
  57. speed_t c_ispeed;
  58. speed_t c_ospeed;
  59. };
  60. extern NCURSES_EXPORT(int) _nc_mingw_tcsetattr(
  61. int fd,
  62. int optional_actions,
  63. const struct termios* arg);
  64. extern NCURSES_EXPORT(int) _nc_mingw_tcgetattr(
  65. int fd,
  66. struct termios* arg);
  67. extern NCURSES_EXPORT(int) _nc_mingw_tcflush(
  68. int fd,
  69. int queue);
  70. extern NCURSES_EXPORT(void) _nc_set_term_driver(void* term);
  71. #endif /* _NC_MINGWH */
  72. #endif /* _WIN32 */