curses 1.4.5 → 1.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/push_gem.yml +48 -0
  3. data/History.md +3 -0
  4. data/curses.gemspec +1 -1
  5. metadata +8 -247
  6. data/vendor/PDCurses/.gitignore +0 -47
  7. data/vendor/PDCurses/.travis.yml +0 -49
  8. data/vendor/PDCurses/CMakeLists.txt +0 -68
  9. data/vendor/PDCurses/HISTORY.md +0 -2036
  10. data/vendor/PDCurses/IMPLEMNT.md +0 -327
  11. data/vendor/PDCurses/Makefile +0 -27
  12. data/vendor/PDCurses/README.md +0 -77
  13. data/vendor/PDCurses/acs_defs.h +0 -265
  14. data/vendor/PDCurses/appveyor.yml +0 -218
  15. data/vendor/PDCurses/cmake/README.md +0 -71
  16. data/vendor/PDCurses/cmake/build_dependencies.cmake +0 -178
  17. data/vendor/PDCurses/cmake/build_options.cmake +0 -25
  18. data/vendor/PDCurses/cmake/dll_version.cmake +0 -26
  19. data/vendor/PDCurses/cmake/gen_config_header.cmake +0 -43
  20. data/vendor/PDCurses/cmake/get_version.cmake +0 -17
  21. data/vendor/PDCurses/cmake/make_uninstall.cmake +0 -19
  22. data/vendor/PDCurses/cmake/project_common.cmake +0 -121
  23. data/vendor/PDCurses/cmake/resource.in.cmake +0 -52
  24. data/vendor/PDCurses/cmake/sdl2_ttf/CMakeLists.txt +0 -83
  25. data/vendor/PDCurses/cmake/target_arch.cmake +0 -36
  26. data/vendor/PDCurses/cmake/version.in.cmake +0 -73
  27. data/vendor/PDCurses/cmake/watcom_open_dos16_toolchain.cmake +0 -96
  28. data/vendor/PDCurses/cmake/watcom_open_dos32_toolchain.cmake +0 -106
  29. data/vendor/PDCurses/cmake/watcom_open_os2v2_toolchain.cmake +0 -105
  30. data/vendor/PDCurses/curses.h +0 -1846
  31. data/vendor/PDCurses/curspriv.h +0 -134
  32. data/vendor/PDCurses/demos/README.md +0 -25
  33. data/vendor/PDCurses/demos/firework.c +0 -144
  34. data/vendor/PDCurses/demos/newtest.c +0 -581
  35. data/vendor/PDCurses/demos/ozdemo.c +0 -447
  36. data/vendor/PDCurses/demos/ptest.c +0 -283
  37. data/vendor/PDCurses/demos/rain.c +0 -157
  38. data/vendor/PDCurses/demos/testcurs.c +0 -1607
  39. data/vendor/PDCurses/demos/tui.c +0 -1048
  40. data/vendor/PDCurses/demos/tui.h +0 -65
  41. data/vendor/PDCurses/demos/tuidemo.c +0 -233
  42. data/vendor/PDCurses/demos/version.c +0 -61
  43. data/vendor/PDCurses/demos/worm.c +0 -432
  44. data/vendor/PDCurses/demos/xmas.c +0 -955
  45. data/vendor/PDCurses/dos/CMakeLists.txt +0 -47
  46. data/vendor/PDCurses/dos/Makefile +0 -105
  47. data/vendor/PDCurses/dos/Makefile.bcc +0 -83
  48. data/vendor/PDCurses/dos/Makefile.dmc +0 -257
  49. data/vendor/PDCurses/dos/Makefile.msc +0 -113
  50. data/vendor/PDCurses/dos/Makefile.wcc +0 -107
  51. data/vendor/PDCurses/dos/README.md +0 -51
  52. data/vendor/PDCurses/dos/bccdos.lrf +0 -9
  53. data/vendor/PDCurses/dos/mscdos.lrf +0 -50
  54. data/vendor/PDCurses/dos/pdcclip.c +0 -132
  55. data/vendor/PDCurses/dos/pdcdisp.c +0 -135
  56. data/vendor/PDCurses/dos/pdcdos.h +0 -194
  57. data/vendor/PDCurses/dos/pdcgetsc.c +0 -98
  58. data/vendor/PDCurses/dos/pdckbd.c +0 -513
  59. data/vendor/PDCurses/dos/pdcscrn.c +0 -785
  60. data/vendor/PDCurses/dos/pdcsetsc.c +0 -101
  61. data/vendor/PDCurses/dos/pdcutil.c +0 -212
  62. data/vendor/PDCurses/libobjs.mif +0 -26
  63. data/vendor/PDCurses/makedist.mif +0 -20
  64. data/vendor/PDCurses/man/Makefile +0 -37
  65. data/vendor/PDCurses/man/README.md +0 -21
  66. data/vendor/PDCurses/man/intro.md +0 -361
  67. data/vendor/PDCurses/man/manext.c +0 -119
  68. data/vendor/PDCurses/man/sdl.md +0 -152
  69. data/vendor/PDCurses/man/sdl2.md +0 -58
  70. data/vendor/PDCurses/man/x11.md +0 -407
  71. data/vendor/PDCurses/ncurses/CMakeLists.txt +0 -66
  72. data/vendor/PDCurses/ncurses/README.md +0 -26
  73. data/vendor/PDCurses/ncurses/makefile +0 -29
  74. data/vendor/PDCurses/os2/CMakeLists.txt +0 -41
  75. data/vendor/PDCurses/os2/Makefile +0 -132
  76. data/vendor/PDCurses/os2/Makefile.bcc +0 -90
  77. data/vendor/PDCurses/os2/Makefile.wcc +0 -43
  78. data/vendor/PDCurses/os2/README.md +0 -43
  79. data/vendor/PDCurses/os2/iccos2.lrf +0 -50
  80. data/vendor/PDCurses/os2/iccos2.mak +0 -256
  81. data/vendor/PDCurses/os2/pdcclip.c +0 -188
  82. data/vendor/PDCurses/os2/pdcdisp.c +0 -93
  83. data/vendor/PDCurses/os2/pdcgetsc.c +0 -89
  84. data/vendor/PDCurses/os2/pdckbd.c +0 -521
  85. data/vendor/PDCurses/os2/pdcos2.h +0 -55
  86. data/vendor/PDCurses/os2/pdcscrn.c +0 -449
  87. data/vendor/PDCurses/os2/pdcsetsc.c +0 -112
  88. data/vendor/PDCurses/os2/pdcutil.c +0 -52
  89. data/vendor/PDCurses/panel.h +0 -56
  90. data/vendor/PDCurses/pdcurses/README.md +0 -25
  91. data/vendor/PDCurses/pdcurses/addch.c +0 -693
  92. data/vendor/PDCurses/pdcurses/addchstr.c +0 -245
  93. data/vendor/PDCurses/pdcurses/addstr.c +0 -240
  94. data/vendor/PDCurses/pdcurses/attr.c +0 -359
  95. data/vendor/PDCurses/pdcurses/beep.c +0 -68
  96. data/vendor/PDCurses/pdcurses/bkgd.c +0 -223
  97. data/vendor/PDCurses/pdcurses/border.c +0 -411
  98. data/vendor/PDCurses/pdcurses/clear.c +0 -159
  99. data/vendor/PDCurses/pdcurses/color.c +0 -298
  100. data/vendor/PDCurses/pdcurses/debug.c +0 -109
  101. data/vendor/PDCurses/pdcurses/delch.c +0 -96
  102. data/vendor/PDCurses/pdcurses/deleteln.c +0 -211
  103. data/vendor/PDCurses/pdcurses/deprec.c +0 -27
  104. data/vendor/PDCurses/pdcurses/getch.c +0 -417
  105. data/vendor/PDCurses/pdcurses/getstr.c +0 -474
  106. data/vendor/PDCurses/pdcurses/getyx.c +0 -139
  107. data/vendor/PDCurses/pdcurses/inch.c +0 -127
  108. data/vendor/PDCurses/pdcurses/inchstr.c +0 -214
  109. data/vendor/PDCurses/pdcurses/initscr.c +0 -367
  110. data/vendor/PDCurses/pdcurses/inopts.c +0 -324
  111. data/vendor/PDCurses/pdcurses/insch.c +0 -271
  112. data/vendor/PDCurses/pdcurses/insstr.c +0 -264
  113. data/vendor/PDCurses/pdcurses/instr.c +0 -246
  114. data/vendor/PDCurses/pdcurses/kernel.c +0 -259
  115. data/vendor/PDCurses/pdcurses/keyname.c +0 -157
  116. data/vendor/PDCurses/pdcurses/mouse.c +0 -438
  117. data/vendor/PDCurses/pdcurses/move.c +0 -57
  118. data/vendor/PDCurses/pdcurses/outopts.c +0 -159
  119. data/vendor/PDCurses/pdcurses/overlay.c +0 -214
  120. data/vendor/PDCurses/pdcurses/pad.c +0 -260
  121. data/vendor/PDCurses/pdcurses/panel.c +0 -633
  122. data/vendor/PDCurses/pdcurses/printw.c +0 -126
  123. data/vendor/PDCurses/pdcurses/refresh.c +0 -279
  124. data/vendor/PDCurses/pdcurses/scanw.c +0 -578
  125. data/vendor/PDCurses/pdcurses/scr_dump.c +0 -213
  126. data/vendor/PDCurses/pdcurses/scroll.c +0 -101
  127. data/vendor/PDCurses/pdcurses/slk.c +0 -591
  128. data/vendor/PDCurses/pdcurses/termattr.c +0 -182
  129. data/vendor/PDCurses/pdcurses/terminfo.c +0 -217
  130. data/vendor/PDCurses/pdcurses/touch.c +0 -163
  131. data/vendor/PDCurses/pdcurses/util.c +0 -312
  132. data/vendor/PDCurses/pdcurses/window.c +0 -569
  133. data/vendor/PDCurses/sdl1/Makefile +0 -129
  134. data/vendor/PDCurses/sdl1/Makefile.mng +0 -110
  135. data/vendor/PDCurses/sdl1/README.md +0 -31
  136. data/vendor/PDCurses/sdl1/deffont.h +0 -385
  137. data/vendor/PDCurses/sdl1/deficon.h +0 -23
  138. data/vendor/PDCurses/sdl1/pdcclip.c +0 -131
  139. data/vendor/PDCurses/sdl1/pdcdisp.c +0 -373
  140. data/vendor/PDCurses/sdl1/pdcgetsc.c +0 -30
  141. data/vendor/PDCurses/sdl1/pdckbd.c +0 -405
  142. data/vendor/PDCurses/sdl1/pdcscrn.c +0 -414
  143. data/vendor/PDCurses/sdl1/pdcsdl.h +0 -31
  144. data/vendor/PDCurses/sdl1/pdcsetsc.c +0 -64
  145. data/vendor/PDCurses/sdl1/pdcutil.c +0 -40
  146. data/vendor/PDCurses/sdl1/sdltest.c +0 -79
  147. data/vendor/PDCurses/sdl2/CMakeLists.txt +0 -76
  148. data/vendor/PDCurses/sdl2/Makefile +0 -135
  149. data/vendor/PDCurses/sdl2/Makefile.vc +0 -164
  150. data/vendor/PDCurses/sdl2/README.md +0 -34
  151. data/vendor/PDCurses/sdl2/deffont.h +0 -385
  152. data/vendor/PDCurses/sdl2/deficon.h +0 -23
  153. data/vendor/PDCurses/sdl2/pdcclip.c +0 -93
  154. data/vendor/PDCurses/sdl2/pdcdisp.c +0 -534
  155. data/vendor/PDCurses/sdl2/pdcgetsc.c +0 -30
  156. data/vendor/PDCurses/sdl2/pdckbd.c +0 -480
  157. data/vendor/PDCurses/sdl2/pdcscrn.c +0 -443
  158. data/vendor/PDCurses/sdl2/pdcsdl.h +0 -33
  159. data/vendor/PDCurses/sdl2/pdcsetsc.c +0 -67
  160. data/vendor/PDCurses/sdl2/pdcutil.c +0 -39
  161. data/vendor/PDCurses/sdl2/sdltest.c +0 -81
  162. data/vendor/PDCurses/term.h +0 -48
  163. data/vendor/PDCurses/version.mif +0 -7
  164. data/vendor/PDCurses/vt/CMakeLists.txt +0 -28
  165. data/vendor/PDCurses/vt/Makefile +0 -135
  166. data/vendor/PDCurses/vt/Makefile.bcc +0 -111
  167. data/vendor/PDCurses/vt/Makefile.dmc +0 -258
  168. data/vendor/PDCurses/vt/Makefile.vc +0 -144
  169. data/vendor/PDCurses/vt/Makefile.wcc +0 -107
  170. data/vendor/PDCurses/vt/README.md +0 -64
  171. data/vendor/PDCurses/vt/pdcclip.c +0 -20
  172. data/vendor/PDCurses/vt/pdcdisp.c +0 -284
  173. data/vendor/PDCurses/vt/pdcgetsc.c +0 -27
  174. data/vendor/PDCurses/vt/pdckbd.c +0 -394
  175. data/vendor/PDCurses/vt/pdcscrn.c +0 -434
  176. data/vendor/PDCurses/vt/pdcsetsc.c +0 -45
  177. data/vendor/PDCurses/vt/pdcutil.c +0 -43
  178. data/vendor/PDCurses/vt/pdcvt.h +0 -16
  179. data/vendor/PDCurses/watcom.mif +0 -68
  180. data/vendor/PDCurses/wincon/CMakeLists.txt +0 -27
  181. data/vendor/PDCurses/wincon/Makefile.bcc +0 -88
  182. data/vendor/PDCurses/wincon/Makefile.dmc +0 -256
  183. data/vendor/PDCurses/wincon/Makefile.lcc +0 -273
  184. data/vendor/PDCurses/wincon/Makefile.mng +0 -176
  185. data/vendor/PDCurses/wincon/Makefile.vc +0 -144
  186. data/vendor/PDCurses/wincon/Makefile.wcc +0 -51
  187. data/vendor/PDCurses/wincon/README.md +0 -85
  188. data/vendor/PDCurses/wincon/pdcclip.c +0 -174
  189. data/vendor/PDCurses/wincon/pdcdisp.c +0 -143
  190. data/vendor/PDCurses/wincon/pdcgetsc.c +0 -55
  191. data/vendor/PDCurses/wincon/pdckbd.c +0 -786
  192. data/vendor/PDCurses/wincon/pdcscrn.c +0 -717
  193. data/vendor/PDCurses/wincon/pdcsetsc.c +0 -91
  194. data/vendor/PDCurses/wincon/pdcurses.ico +0 -0
  195. data/vendor/PDCurses/wincon/pdcurses.rc +0 -28
  196. data/vendor/PDCurses/wincon/pdcutil.c +0 -41
  197. data/vendor/PDCurses/wincon/pdcwin.h +0 -31
  198. data/vendor/PDCurses/wingui/CMakeLists.txt +0 -27
  199. data/vendor/PDCurses/wingui/Makefile.bcc +0 -85
  200. data/vendor/PDCurses/wingui/Makefile.dmc +0 -259
  201. data/vendor/PDCurses/wingui/Makefile.lcc +0 -273
  202. data/vendor/PDCurses/wingui/Makefile.mng +0 -171
  203. data/vendor/PDCurses/wingui/Makefile.vc +0 -144
  204. data/vendor/PDCurses/wingui/Makefile.wcc +0 -51
  205. data/vendor/PDCurses/wingui/README.md +0 -93
  206. data/vendor/PDCurses/wingui/pdcclip.c +0 -174
  207. data/vendor/PDCurses/wingui/pdcdisp.c +0 -718
  208. data/vendor/PDCurses/wingui/pdcgetsc.c +0 -30
  209. data/vendor/PDCurses/wingui/pdckbd.c +0 -143
  210. data/vendor/PDCurses/wingui/pdcscrn.c +0 -2797
  211. data/vendor/PDCurses/wingui/pdcsetsc.c +0 -89
  212. data/vendor/PDCurses/wingui/pdcurses.ico +0 -0
  213. data/vendor/PDCurses/wingui/pdcurses.rc +0 -28
  214. data/vendor/PDCurses/wingui/pdcutil.c +0 -61
  215. data/vendor/PDCurses/wingui/pdcwin.h +0 -122
  216. data/vendor/PDCurses/x11/Makefile.in +0 -754
  217. data/vendor/PDCurses/x11/PDCurses.spec +0 -82
  218. data/vendor/PDCurses/x11/README.md +0 -62
  219. data/vendor/PDCurses/x11/ScrollBox.c +0 -319
  220. data/vendor/PDCurses/x11/ScrollBox.h +0 -51
  221. data/vendor/PDCurses/x11/ScrollBoxP.h +0 -70
  222. data/vendor/PDCurses/x11/aclocal.m4 +0 -994
  223. data/vendor/PDCurses/x11/big_icon.xbm +0 -46
  224. data/vendor/PDCurses/x11/compose.h +0 -201
  225. data/vendor/PDCurses/x11/config.guess +0 -1500
  226. data/vendor/PDCurses/x11/config.h.in +0 -100
  227. data/vendor/PDCurses/x11/config.sub +0 -1616
  228. data/vendor/PDCurses/x11/configure +0 -6700
  229. data/vendor/PDCurses/x11/configure.ac +0 -295
  230. data/vendor/PDCurses/x11/debian/changelog +0 -6
  231. data/vendor/PDCurses/x11/debian/compat +0 -1
  232. data/vendor/PDCurses/x11/debian/control +0 -11
  233. data/vendor/PDCurses/x11/debian/copyright +0 -27
  234. data/vendor/PDCurses/x11/debian/rules +0 -98
  235. data/vendor/PDCurses/x11/install-sh +0 -253
  236. data/vendor/PDCurses/x11/little_icon.xbm +0 -14
  237. data/vendor/PDCurses/x11/ncurses_cfg.h +0 -45
  238. data/vendor/PDCurses/x11/pdcclip.c +0 -173
  239. data/vendor/PDCurses/x11/pdcdisp.c +0 -85
  240. data/vendor/PDCurses/x11/pdcgetsc.c +0 -28
  241. data/vendor/PDCurses/x11/pdckbd.c +0 -104
  242. data/vendor/PDCurses/x11/pdcscrn.c +0 -258
  243. data/vendor/PDCurses/x11/pdcsetsc.c +0 -95
  244. data/vendor/PDCurses/x11/pdcutil.c +0 -52
  245. data/vendor/PDCurses/x11/pdcx11.c +0 -316
  246. data/vendor/PDCurses/x11/pdcx11.h +0 -191
  247. data/vendor/PDCurses/x11/sb.c +0 -155
  248. data/vendor/PDCurses/x11/x11.c +0 -3686
  249. data/vendor/PDCurses/x11/xcurses-config.in +0 -81
@@ -1,27 +0,0 @@
1
- /* Public Domain Curses */
2
-
3
- #include <curspriv.h>
4
-
5
- /* Deprecated functions. These should not be used, and will eventually
6
- be removed. They're here solely for the benefit of applications that
7
- linked to them in older versions of PDCurses. */
8
-
9
- bool PDC_check_bios_key(void)
10
- {
11
- return PDC_check_key();
12
- }
13
-
14
- int PDC_get_bios_key(void)
15
- {
16
- return PDC_get_key();
17
- }
18
-
19
- bool PDC_get_ctrl_break(void)
20
- {
21
- return !SP->raw_inp;
22
- }
23
-
24
- int PDC_set_ctrl_break(bool setting)
25
- {
26
- return setting ? noraw() : raw();
27
- }
@@ -1,417 +0,0 @@
1
- /* Public Domain Curses */
2
-
3
- #include <curspriv.h>
4
-
5
- /*man-start**************************************************************
6
-
7
- getch
8
- -----
9
-
10
- ### Synopsis
11
-
12
- int getch(void);
13
- int wgetch(WINDOW *win);
14
- int mvgetch(int y, int x);
15
- int mvwgetch(WINDOW *win, int y, int x);
16
- int ungetch(int ch);
17
- int flushinp(void);
18
-
19
- int get_wch(wint_t *wch);
20
- int wget_wch(WINDOW *win, wint_t *wch);
21
- int mvget_wch(int y, int x, wint_t *wch);
22
- int mvwget_wch(WINDOW *win, int y, int x, wint_t *wch);
23
- int unget_wch(const wchar_t wch);
24
-
25
- unsigned long PDC_get_key_modifiers(void);
26
- int PDC_save_key_modifiers(bool flag);
27
- int PDC_return_key_modifiers(bool flag);
28
-
29
- ### Description
30
-
31
- With the getch(), wgetch(), mvgetch(), and mvwgetch() functions,
32
- a character is read from the terminal associated with the window.
33
- In nodelay mode, if there is no input waiting, the value ERR is
34
- returned. In delay mode, the program will hang until the system
35
- passes text through to the program. Depending on the setting of
36
- cbreak(), this will be after one character or after the first
37
- newline. Unless noecho() has been set, the character will also
38
- be echoed into the designated window.
39
-
40
- If keypad() is TRUE, and a function key is pressed, the token for
41
- that function key will be returned instead of the raw characters.
42
- Possible function keys are defined in <curses.h> with integers
43
- beginning with 0401, whose names begin with KEY_.
44
-
45
- If nodelay(win, TRUE) has been called on the window and no input
46
- is waiting, the value ERR is returned.
47
-
48
- ungetch() places ch back onto the input queue to be returned by
49
- the next call to wgetch().
50
-
51
- flushinp() throws away any type-ahead that has been typed by the
52
- user and has not yet been read by the program.
53
-
54
- PDC_get_key_modifiers() returns the keyboard modifiers (shift,
55
- control, alt, numlock) effective at the time of the last getch()
56
- call, if PDC_save_key_modifiers(TRUE) has been called before the
57
- getch(). Use the macros PDC_KEY_MODIFIER_* to determine which
58
- modifier(s) were set. PDC_return_key_modifiers() tells getch()
59
- to return modifier keys pressed alone as keystrokes (KEY_ALT_L,
60
- etc.). These may not work on all platforms.
61
-
62
- NOTE: getch() and ungetch() are implemented as macros, to avoid
63
- conflict with many DOS compiler's runtime libraries.
64
-
65
- ### Return Value
66
-
67
- These functions return ERR or the value of the character, meta
68
- character or function key token.
69
-
70
- ### Portability
71
- X/Open BSD SYS V
72
- getch Y Y Y
73
- wgetch Y Y Y
74
- mvgetch Y Y Y
75
- mvwgetch Y Y Y
76
- ungetch Y Y Y
77
- flushinp Y Y Y
78
- get_wch Y
79
- wget_wch Y
80
- mvget_wch Y
81
- mvwget_wch Y
82
- unget_wch Y
83
- PDC_get_key_modifiers - - -
84
-
85
- **man-end****************************************************************/
86
-
87
- #define _INBUFSIZ 512 /* size of terminal input buffer */
88
- #define NUNGETCH 256 /* max # chars to ungetch() */
89
-
90
- static int c_pindex = 0; /* putter index */
91
- static int c_gindex = 1; /* getter index */
92
- static int c_ungind = 0; /* ungetch() push index */
93
- static int c_ungch[NUNGETCH]; /* array of ungotten chars */
94
-
95
- static int _mouse_key(WINDOW *win)
96
- {
97
- int i, key = KEY_MOUSE;
98
- unsigned long mbe = SP->_trap_mbe;
99
-
100
- /* Filter unwanted mouse events */
101
-
102
- for (i = 0; i < 3; i++)
103
- {
104
- if (pdc_mouse_status.changes & (1 << i))
105
- {
106
- int shf = i * 5;
107
- short button = pdc_mouse_status.button[i] & BUTTON_ACTION_MASK;
108
-
109
- if ( (!(mbe & (BUTTON1_PRESSED << shf)) &&
110
- (button == BUTTON_PRESSED))
111
-
112
- || (!(mbe & (BUTTON1_CLICKED << shf)) &&
113
- (button == BUTTON_CLICKED))
114
-
115
- || (!(mbe & (BUTTON1_DOUBLE_CLICKED << shf)) &&
116
- (button == BUTTON_DOUBLE_CLICKED))
117
-
118
- /* added triple clicks 2011 jun 4: BJG */
119
- || (!(mbe & (BUTTON1_TRIPLE_CLICKED << shf)) &&
120
- (button == BUTTON_TRIPLE_CLICKED))
121
-
122
- || (!(mbe & (BUTTON1_MOVED << shf)) &&
123
- (button == BUTTON_MOVED))
124
-
125
- || (!(mbe & (BUTTON1_RELEASED << shf)) &&
126
- (button == BUTTON_RELEASED))
127
- )
128
- pdc_mouse_status.changes ^= (1 << i);
129
- }
130
- }
131
-
132
- if (pdc_mouse_status.changes & PDC_MOUSE_MOVED)
133
- {
134
- if (!(mbe & (BUTTON1_MOVED|BUTTON2_MOVED|BUTTON3_MOVED | REPORT_MOUSE_POSITION)))
135
- pdc_mouse_status.changes ^= PDC_MOUSE_MOVED;
136
- }
137
-
138
- if (pdc_mouse_status.changes &
139
- (PDC_MOUSE_WHEEL_UP|PDC_MOUSE_WHEEL_DOWN))
140
- {
141
- if (!(mbe & MOUSE_WHEEL_SCROLL))
142
- pdc_mouse_status.changes &=
143
- ~(PDC_MOUSE_WHEEL_UP|PDC_MOUSE_WHEEL_DOWN);
144
- }
145
-
146
- if (!pdc_mouse_status.changes)
147
- return -1;
148
-
149
- /* Check for click in slk area */
150
-
151
- i = PDC_mouse_in_slk(pdc_mouse_status.y, pdc_mouse_status.x);
152
-
153
- if (i)
154
- {
155
- if (pdc_mouse_status.button[0] & (BUTTON_PRESSED|BUTTON_CLICKED))
156
- key = KEY_F(i);
157
- else
158
- key = -1;
159
- }
160
-
161
- return key;
162
- }
163
-
164
- int wgetch(WINDOW *win)
165
- {
166
- static int buffer[_INBUFSIZ]; /* character buffer */
167
- int key, waitcount;
168
-
169
- PDC_LOG(("wgetch() - called\n"));
170
-
171
- if (!win)
172
- return ERR;
173
-
174
- waitcount = 0;
175
-
176
- /* set the number of 1/20th second napms() calls */
177
-
178
- if (SP->delaytenths)
179
- waitcount = 2 * SP->delaytenths;
180
- else
181
- if (win->_delayms)
182
- {
183
- /* Can't really do millisecond intervals, so delay in
184
- 1/20ths of a second (50ms) */
185
-
186
- waitcount = win->_delayms / 50;
187
- if (!waitcount)
188
- waitcount = 1;
189
- }
190
-
191
- /* refresh window when wgetch is called if there have been changes
192
- to it and it is not a pad */
193
-
194
- if (!(win->_flags & _PAD) && ((!win->_leaveit &&
195
- (win->_begx + win->_curx != SP->curscol ||
196
- win->_begy + win->_cury != SP->cursrow)) || is_wintouched(win)))
197
- wrefresh(win);
198
-
199
- /* if ungotten char exists, remove and return it */
200
-
201
- if (c_ungind)
202
- return c_ungch[--c_ungind];
203
-
204
- /* if normal and data in buffer */
205
-
206
- if ((!SP->raw_inp && !SP->cbreak) && (c_gindex < c_pindex))
207
- return buffer[c_gindex++];
208
-
209
- /* prepare to buffer data */
210
-
211
- c_pindex = 0;
212
- c_gindex = 0;
213
-
214
- /* to get here, no keys are buffered. go and get one. */
215
-
216
- for (;;) /* loop for any buffering */
217
- {
218
- /* is there a keystroke ready? */
219
-
220
- if (!PDC_check_key())
221
- {
222
- /* if not, handle timeout() and halfdelay() */
223
-
224
- if (SP->delaytenths || win->_delayms)
225
- {
226
- if (!waitcount)
227
- return ERR;
228
-
229
- waitcount--;
230
- }
231
- else
232
- if (win->_nodelay)
233
- return ERR;
234
-
235
- napms(50); /* sleep for 1/20th second */
236
- continue; /* then check again */
237
- }
238
-
239
- /* if there is, fetch it */
240
-
241
- key = PDC_get_key();
242
-
243
- if (SP->key_code)
244
- {
245
- /* filter special keys if not in keypad mode */
246
-
247
- if (!win->_use_keypad)
248
- key = -1;
249
-
250
- /* filter mouse events; translate mouse clicks in the slk
251
- area to function keys */
252
-
253
- else if (key == KEY_MOUSE)
254
- key = _mouse_key(win);
255
- }
256
-
257
- /* unwanted key? loop back */
258
-
259
- if (key == -1)
260
- continue;
261
-
262
- /* translate CR */
263
-
264
- if (key == '\r' && SP->autocr && !SP->raw_inp)
265
- key = '\n';
266
-
267
- /* if echo is enabled */
268
-
269
- if (SP->echo && !SP->key_code)
270
- {
271
- waddch(win, key);
272
- wrefresh(win);
273
- }
274
-
275
- /* if no buffering */
276
-
277
- if (SP->raw_inp || SP->cbreak)
278
- return key;
279
-
280
- /* if no overflow, put data in buffer */
281
-
282
- if (key == '\b')
283
- {
284
- if (c_pindex > c_gindex)
285
- c_pindex--;
286
- }
287
- else
288
- if (c_pindex < _INBUFSIZ - 2)
289
- buffer[c_pindex++] = key;
290
-
291
- /* if we got a line */
292
-
293
- if (key == '\n' || key == '\r')
294
- return buffer[c_gindex++];
295
- }
296
- }
297
-
298
- int mvgetch(int y, int x)
299
- {
300
- PDC_LOG(("mvgetch() - called\n"));
301
-
302
- if (move(y, x) == ERR)
303
- return ERR;
304
-
305
- return wgetch(stdscr);
306
- }
307
-
308
- int mvwgetch(WINDOW *win, int y, int x)
309
- {
310
- PDC_LOG(("mvwgetch() - called\n"));
311
-
312
- if (wmove(win, y, x) == ERR)
313
- return ERR;
314
-
315
- return wgetch(win);
316
- }
317
-
318
- int PDC_ungetch(int ch)
319
- {
320
- PDC_LOG(("ungetch() - called\n"));
321
-
322
- if (c_ungind >= NUNGETCH) /* pushback stack full */
323
- return ERR;
324
-
325
- c_ungch[c_ungind++] = ch;
326
-
327
- return OK;
328
- }
329
-
330
- int flushinp(void)
331
- {
332
- PDC_LOG(("flushinp() - called\n"));
333
-
334
- PDC_flushinp();
335
-
336
- c_gindex = 1; /* set indices to kill buffer */
337
- c_pindex = 0;
338
- c_ungind = 0; /* clear c_ungch array */
339
-
340
- return OK;
341
- }
342
-
343
- unsigned long PDC_get_key_modifiers(void)
344
- {
345
- PDC_LOG(("PDC_get_key_modifiers() - called\n"));
346
-
347
- return pdc_key_modifiers;
348
- }
349
-
350
- int PDC_save_key_modifiers(bool flag)
351
- {
352
- PDC_LOG(("PDC_save_key_modifiers() - called\n"));
353
-
354
- SP->save_key_modifiers = flag;
355
- return OK;
356
- }
357
-
358
- int PDC_return_key_modifiers(bool flag)
359
- {
360
- PDC_LOG(("PDC_return_key_modifiers() - called\n"));
361
-
362
- SP->return_key_modifiers = flag;
363
- return PDC_modifiers_set();
364
- }
365
-
366
- #ifdef PDC_WIDE
367
- int wget_wch(WINDOW *win, wint_t *wch)
368
- {
369
- int key;
370
-
371
- PDC_LOG(("wget_wch() - called\n"));
372
-
373
- if (!wch)
374
- return ERR;
375
-
376
- key = wgetch(win);
377
-
378
- if (key == ERR)
379
- return ERR;
380
-
381
- *wch = key;
382
-
383
- return SP->key_code ? KEY_CODE_YES : OK;
384
- }
385
-
386
- int get_wch(wint_t *wch)
387
- {
388
- PDC_LOG(("get_wch() - called\n"));
389
-
390
- return wget_wch(stdscr, wch);
391
- }
392
-
393
- int mvget_wch(int y, int x, wint_t *wch)
394
- {
395
- PDC_LOG(("mvget_wch() - called\n"));
396
-
397
- if (move(y, x) == ERR)
398
- return ERR;
399
-
400
- return wget_wch(stdscr, wch);
401
- }
402
-
403
- int mvwget_wch(WINDOW *win, int y, int x, wint_t *wch)
404
- {
405
- PDC_LOG(("mvwget_wch() - called\n"));
406
-
407
- if (wmove(win, y, x) == ERR)
408
- return ERR;
409
-
410
- return wget_wch(win, wch);
411
- }
412
-
413
- int unget_wch(const wchar_t wch)
414
- {
415
- return PDC_ungetch(wch);
416
- }
417
- #endif