curses 1.4.4 → 1.4.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (258) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +6 -0
  3. data/.github/workflows/macos.yml +1 -1
  4. data/.github/workflows/push_gem.yml +48 -0
  5. data/.github/workflows/ubuntu.yml +2 -2
  6. data/.github/workflows/windows.yml +2 -2
  7. data/History.md +23 -0
  8. data/README.md +7 -0
  9. data/curses.gemspec +1 -1
  10. data/ext/curses/curses.c +7 -7
  11. data/sample/colors.rb +6 -1
  12. data/sample/form.rb +1 -1
  13. data/sample/menu.rb +2 -0
  14. metadata +9 -251
  15. data/vendor/PDCurses/.gitignore +0 -47
  16. data/vendor/PDCurses/.travis.yml +0 -49
  17. data/vendor/PDCurses/CMakeLists.txt +0 -68
  18. data/vendor/PDCurses/HISTORY.md +0 -2036
  19. data/vendor/PDCurses/IMPLEMNT.md +0 -327
  20. data/vendor/PDCurses/Makefile +0 -27
  21. data/vendor/PDCurses/README.md +0 -77
  22. data/vendor/PDCurses/acs_defs.h +0 -265
  23. data/vendor/PDCurses/appveyor.yml +0 -218
  24. data/vendor/PDCurses/cmake/README.md +0 -71
  25. data/vendor/PDCurses/cmake/build_dependencies.cmake +0 -178
  26. data/vendor/PDCurses/cmake/build_options.cmake +0 -25
  27. data/vendor/PDCurses/cmake/dll_version.cmake +0 -26
  28. data/vendor/PDCurses/cmake/gen_config_header.cmake +0 -43
  29. data/vendor/PDCurses/cmake/get_version.cmake +0 -17
  30. data/vendor/PDCurses/cmake/make_uninstall.cmake +0 -19
  31. data/vendor/PDCurses/cmake/project_common.cmake +0 -121
  32. data/vendor/PDCurses/cmake/resource.in.cmake +0 -52
  33. data/vendor/PDCurses/cmake/sdl2_ttf/CMakeLists.txt +0 -83
  34. data/vendor/PDCurses/cmake/target_arch.cmake +0 -36
  35. data/vendor/PDCurses/cmake/version.in.cmake +0 -73
  36. data/vendor/PDCurses/cmake/watcom_open_dos16_toolchain.cmake +0 -96
  37. data/vendor/PDCurses/cmake/watcom_open_dos32_toolchain.cmake +0 -106
  38. data/vendor/PDCurses/cmake/watcom_open_os2v2_toolchain.cmake +0 -105
  39. data/vendor/PDCurses/curses.h +0 -1846
  40. data/vendor/PDCurses/curspriv.h +0 -134
  41. data/vendor/PDCurses/demos/README.md +0 -25
  42. data/vendor/PDCurses/demos/firework.c +0 -144
  43. data/vendor/PDCurses/demos/newtest.c +0 -581
  44. data/vendor/PDCurses/demos/ozdemo.c +0 -447
  45. data/vendor/PDCurses/demos/ptest.c +0 -283
  46. data/vendor/PDCurses/demos/rain.c +0 -157
  47. data/vendor/PDCurses/demos/testcurs.c +0 -1607
  48. data/vendor/PDCurses/demos/tui.c +0 -1048
  49. data/vendor/PDCurses/demos/tui.h +0 -65
  50. data/vendor/PDCurses/demos/tuidemo.c +0 -233
  51. data/vendor/PDCurses/demos/version.c +0 -61
  52. data/vendor/PDCurses/demos/worm.c +0 -432
  53. data/vendor/PDCurses/demos/xmas.c +0 -955
  54. data/vendor/PDCurses/dos/CMakeLists.txt +0 -47
  55. data/vendor/PDCurses/dos/Makefile +0 -105
  56. data/vendor/PDCurses/dos/Makefile.bcc +0 -83
  57. data/vendor/PDCurses/dos/Makefile.dmc +0 -257
  58. data/vendor/PDCurses/dos/Makefile.msc +0 -113
  59. data/vendor/PDCurses/dos/Makefile.wcc +0 -107
  60. data/vendor/PDCurses/dos/README.md +0 -51
  61. data/vendor/PDCurses/dos/bccdos.lrf +0 -9
  62. data/vendor/PDCurses/dos/mscdos.lrf +0 -50
  63. data/vendor/PDCurses/dos/pdcclip.c +0 -132
  64. data/vendor/PDCurses/dos/pdcdisp.c +0 -135
  65. data/vendor/PDCurses/dos/pdcdos.h +0 -194
  66. data/vendor/PDCurses/dos/pdcgetsc.c +0 -98
  67. data/vendor/PDCurses/dos/pdckbd.c +0 -513
  68. data/vendor/PDCurses/dos/pdcscrn.c +0 -785
  69. data/vendor/PDCurses/dos/pdcsetsc.c +0 -101
  70. data/vendor/PDCurses/dos/pdcutil.c +0 -212
  71. data/vendor/PDCurses/libobjs.mif +0 -26
  72. data/vendor/PDCurses/makedist.mif +0 -20
  73. data/vendor/PDCurses/man/Makefile +0 -37
  74. data/vendor/PDCurses/man/README.md +0 -21
  75. data/vendor/PDCurses/man/intro.md +0 -361
  76. data/vendor/PDCurses/man/manext.c +0 -119
  77. data/vendor/PDCurses/man/sdl.md +0 -152
  78. data/vendor/PDCurses/man/sdl2.md +0 -58
  79. data/vendor/PDCurses/man/x11.md +0 -407
  80. data/vendor/PDCurses/ncurses/CMakeLists.txt +0 -66
  81. data/vendor/PDCurses/ncurses/README.md +0 -26
  82. data/vendor/PDCurses/ncurses/makefile +0 -29
  83. data/vendor/PDCurses/os2/CMakeLists.txt +0 -41
  84. data/vendor/PDCurses/os2/Makefile +0 -132
  85. data/vendor/PDCurses/os2/Makefile.bcc +0 -90
  86. data/vendor/PDCurses/os2/Makefile.wcc +0 -43
  87. data/vendor/PDCurses/os2/README.md +0 -43
  88. data/vendor/PDCurses/os2/iccos2.lrf +0 -50
  89. data/vendor/PDCurses/os2/iccos2.mak +0 -256
  90. data/vendor/PDCurses/os2/pdcclip.c +0 -188
  91. data/vendor/PDCurses/os2/pdcdisp.c +0 -93
  92. data/vendor/PDCurses/os2/pdcgetsc.c +0 -89
  93. data/vendor/PDCurses/os2/pdckbd.c +0 -521
  94. data/vendor/PDCurses/os2/pdcos2.h +0 -55
  95. data/vendor/PDCurses/os2/pdcscrn.c +0 -449
  96. data/vendor/PDCurses/os2/pdcsetsc.c +0 -112
  97. data/vendor/PDCurses/os2/pdcutil.c +0 -52
  98. data/vendor/PDCurses/panel.h +0 -56
  99. data/vendor/PDCurses/pdcurses/README.md +0 -25
  100. data/vendor/PDCurses/pdcurses/addch.c +0 -693
  101. data/vendor/PDCurses/pdcurses/addchstr.c +0 -245
  102. data/vendor/PDCurses/pdcurses/addstr.c +0 -240
  103. data/vendor/PDCurses/pdcurses/attr.c +0 -359
  104. data/vendor/PDCurses/pdcurses/beep.c +0 -68
  105. data/vendor/PDCurses/pdcurses/bkgd.c +0 -223
  106. data/vendor/PDCurses/pdcurses/border.c +0 -411
  107. data/vendor/PDCurses/pdcurses/clear.c +0 -159
  108. data/vendor/PDCurses/pdcurses/color.c +0 -298
  109. data/vendor/PDCurses/pdcurses/debug.c +0 -109
  110. data/vendor/PDCurses/pdcurses/delch.c +0 -96
  111. data/vendor/PDCurses/pdcurses/deleteln.c +0 -211
  112. data/vendor/PDCurses/pdcurses/deprec.c +0 -27
  113. data/vendor/PDCurses/pdcurses/getch.c +0 -417
  114. data/vendor/PDCurses/pdcurses/getstr.c +0 -474
  115. data/vendor/PDCurses/pdcurses/getyx.c +0 -139
  116. data/vendor/PDCurses/pdcurses/inch.c +0 -127
  117. data/vendor/PDCurses/pdcurses/inchstr.c +0 -214
  118. data/vendor/PDCurses/pdcurses/initscr.c +0 -367
  119. data/vendor/PDCurses/pdcurses/inopts.c +0 -324
  120. data/vendor/PDCurses/pdcurses/insch.c +0 -271
  121. data/vendor/PDCurses/pdcurses/insstr.c +0 -264
  122. data/vendor/PDCurses/pdcurses/instr.c +0 -246
  123. data/vendor/PDCurses/pdcurses/kernel.c +0 -259
  124. data/vendor/PDCurses/pdcurses/keyname.c +0 -157
  125. data/vendor/PDCurses/pdcurses/mouse.c +0 -438
  126. data/vendor/PDCurses/pdcurses/move.c +0 -57
  127. data/vendor/PDCurses/pdcurses/outopts.c +0 -159
  128. data/vendor/PDCurses/pdcurses/overlay.c +0 -214
  129. data/vendor/PDCurses/pdcurses/pad.c +0 -260
  130. data/vendor/PDCurses/pdcurses/panel.c +0 -633
  131. data/vendor/PDCurses/pdcurses/printw.c +0 -126
  132. data/vendor/PDCurses/pdcurses/refresh.c +0 -279
  133. data/vendor/PDCurses/pdcurses/scanw.c +0 -578
  134. data/vendor/PDCurses/pdcurses/scr_dump.c +0 -213
  135. data/vendor/PDCurses/pdcurses/scroll.c +0 -101
  136. data/vendor/PDCurses/pdcurses/slk.c +0 -591
  137. data/vendor/PDCurses/pdcurses/termattr.c +0 -182
  138. data/vendor/PDCurses/pdcurses/terminfo.c +0 -217
  139. data/vendor/PDCurses/pdcurses/touch.c +0 -163
  140. data/vendor/PDCurses/pdcurses/util.c +0 -312
  141. data/vendor/PDCurses/pdcurses/window.c +0 -569
  142. data/vendor/PDCurses/sdl1/Makefile +0 -129
  143. data/vendor/PDCurses/sdl1/Makefile.mng +0 -110
  144. data/vendor/PDCurses/sdl1/README.md +0 -31
  145. data/vendor/PDCurses/sdl1/deffont.h +0 -385
  146. data/vendor/PDCurses/sdl1/deficon.h +0 -23
  147. data/vendor/PDCurses/sdl1/pdcclip.c +0 -131
  148. data/vendor/PDCurses/sdl1/pdcdisp.c +0 -373
  149. data/vendor/PDCurses/sdl1/pdcgetsc.c +0 -30
  150. data/vendor/PDCurses/sdl1/pdckbd.c +0 -405
  151. data/vendor/PDCurses/sdl1/pdcscrn.c +0 -414
  152. data/vendor/PDCurses/sdl1/pdcsdl.h +0 -31
  153. data/vendor/PDCurses/sdl1/pdcsetsc.c +0 -64
  154. data/vendor/PDCurses/sdl1/pdcutil.c +0 -40
  155. data/vendor/PDCurses/sdl1/sdltest.c +0 -79
  156. data/vendor/PDCurses/sdl2/CMakeLists.txt +0 -76
  157. data/vendor/PDCurses/sdl2/Makefile +0 -135
  158. data/vendor/PDCurses/sdl2/Makefile.vc +0 -164
  159. data/vendor/PDCurses/sdl2/README.md +0 -34
  160. data/vendor/PDCurses/sdl2/deffont.h +0 -385
  161. data/vendor/PDCurses/sdl2/deficon.h +0 -23
  162. data/vendor/PDCurses/sdl2/pdcclip.c +0 -93
  163. data/vendor/PDCurses/sdl2/pdcdisp.c +0 -534
  164. data/vendor/PDCurses/sdl2/pdcgetsc.c +0 -30
  165. data/vendor/PDCurses/sdl2/pdckbd.c +0 -480
  166. data/vendor/PDCurses/sdl2/pdcscrn.c +0 -443
  167. data/vendor/PDCurses/sdl2/pdcsdl.h +0 -33
  168. data/vendor/PDCurses/sdl2/pdcsetsc.c +0 -67
  169. data/vendor/PDCurses/sdl2/pdcutil.c +0 -39
  170. data/vendor/PDCurses/sdl2/sdltest.c +0 -81
  171. data/vendor/PDCurses/term.h +0 -48
  172. data/vendor/PDCurses/version.mif +0 -7
  173. data/vendor/PDCurses/vt/CMakeLists.txt +0 -28
  174. data/vendor/PDCurses/vt/Makefile +0 -135
  175. data/vendor/PDCurses/vt/Makefile.bcc +0 -111
  176. data/vendor/PDCurses/vt/Makefile.dmc +0 -258
  177. data/vendor/PDCurses/vt/Makefile.vc +0 -144
  178. data/vendor/PDCurses/vt/Makefile.wcc +0 -107
  179. data/vendor/PDCurses/vt/README.md +0 -64
  180. data/vendor/PDCurses/vt/pdcclip.c +0 -20
  181. data/vendor/PDCurses/vt/pdcdisp.c +0 -284
  182. data/vendor/PDCurses/vt/pdcgetsc.c +0 -27
  183. data/vendor/PDCurses/vt/pdckbd.c +0 -394
  184. data/vendor/PDCurses/vt/pdcscrn.c +0 -434
  185. data/vendor/PDCurses/vt/pdcsetsc.c +0 -45
  186. data/vendor/PDCurses/vt/pdcutil.c +0 -43
  187. data/vendor/PDCurses/vt/pdcvt.h +0 -16
  188. data/vendor/PDCurses/watcom.mif +0 -68
  189. data/vendor/PDCurses/wincon/CMakeLists.txt +0 -27
  190. data/vendor/PDCurses/wincon/Makefile.bcc +0 -88
  191. data/vendor/PDCurses/wincon/Makefile.dmc +0 -256
  192. data/vendor/PDCurses/wincon/Makefile.lcc +0 -273
  193. data/vendor/PDCurses/wincon/Makefile.mng +0 -176
  194. data/vendor/PDCurses/wincon/Makefile.vc +0 -144
  195. data/vendor/PDCurses/wincon/Makefile.wcc +0 -51
  196. data/vendor/PDCurses/wincon/README.md +0 -85
  197. data/vendor/PDCurses/wincon/pdcclip.c +0 -174
  198. data/vendor/PDCurses/wincon/pdcdisp.c +0 -143
  199. data/vendor/PDCurses/wincon/pdcgetsc.c +0 -55
  200. data/vendor/PDCurses/wincon/pdckbd.c +0 -786
  201. data/vendor/PDCurses/wincon/pdcscrn.c +0 -717
  202. data/vendor/PDCurses/wincon/pdcsetsc.c +0 -91
  203. data/vendor/PDCurses/wincon/pdcurses.ico +0 -0
  204. data/vendor/PDCurses/wincon/pdcurses.rc +0 -28
  205. data/vendor/PDCurses/wincon/pdcutil.c +0 -41
  206. data/vendor/PDCurses/wincon/pdcwin.h +0 -31
  207. data/vendor/PDCurses/wingui/CMakeLists.txt +0 -27
  208. data/vendor/PDCurses/wingui/Makefile.bcc +0 -85
  209. data/vendor/PDCurses/wingui/Makefile.dmc +0 -259
  210. data/vendor/PDCurses/wingui/Makefile.lcc +0 -273
  211. data/vendor/PDCurses/wingui/Makefile.mng +0 -171
  212. data/vendor/PDCurses/wingui/Makefile.vc +0 -144
  213. data/vendor/PDCurses/wingui/Makefile.wcc +0 -51
  214. data/vendor/PDCurses/wingui/README.md +0 -93
  215. data/vendor/PDCurses/wingui/pdcclip.c +0 -174
  216. data/vendor/PDCurses/wingui/pdcdisp.c +0 -718
  217. data/vendor/PDCurses/wingui/pdcgetsc.c +0 -30
  218. data/vendor/PDCurses/wingui/pdckbd.c +0 -143
  219. data/vendor/PDCurses/wingui/pdcscrn.c +0 -2797
  220. data/vendor/PDCurses/wingui/pdcsetsc.c +0 -89
  221. data/vendor/PDCurses/wingui/pdcurses.ico +0 -0
  222. data/vendor/PDCurses/wingui/pdcurses.rc +0 -28
  223. data/vendor/PDCurses/wingui/pdcutil.c +0 -61
  224. data/vendor/PDCurses/wingui/pdcwin.h +0 -122
  225. data/vendor/PDCurses/x11/Makefile.in +0 -754
  226. data/vendor/PDCurses/x11/PDCurses.spec +0 -82
  227. data/vendor/PDCurses/x11/README.md +0 -62
  228. data/vendor/PDCurses/x11/ScrollBox.c +0 -319
  229. data/vendor/PDCurses/x11/ScrollBox.h +0 -51
  230. data/vendor/PDCurses/x11/ScrollBoxP.h +0 -70
  231. data/vendor/PDCurses/x11/aclocal.m4 +0 -994
  232. data/vendor/PDCurses/x11/big_icon.xbm +0 -46
  233. data/vendor/PDCurses/x11/compose.h +0 -201
  234. data/vendor/PDCurses/x11/config.guess +0 -1500
  235. data/vendor/PDCurses/x11/config.h.in +0 -100
  236. data/vendor/PDCurses/x11/config.sub +0 -1616
  237. data/vendor/PDCurses/x11/configure +0 -6700
  238. data/vendor/PDCurses/x11/configure.ac +0 -295
  239. data/vendor/PDCurses/x11/debian/changelog +0 -6
  240. data/vendor/PDCurses/x11/debian/compat +0 -1
  241. data/vendor/PDCurses/x11/debian/control +0 -11
  242. data/vendor/PDCurses/x11/debian/copyright +0 -27
  243. data/vendor/PDCurses/x11/debian/rules +0 -98
  244. data/vendor/PDCurses/x11/install-sh +0 -253
  245. data/vendor/PDCurses/x11/little_icon.xbm +0 -14
  246. data/vendor/PDCurses/x11/ncurses_cfg.h +0 -45
  247. data/vendor/PDCurses/x11/pdcclip.c +0 -173
  248. data/vendor/PDCurses/x11/pdcdisp.c +0 -85
  249. data/vendor/PDCurses/x11/pdcgetsc.c +0 -28
  250. data/vendor/PDCurses/x11/pdckbd.c +0 -104
  251. data/vendor/PDCurses/x11/pdcscrn.c +0 -258
  252. data/vendor/PDCurses/x11/pdcsetsc.c +0 -95
  253. data/vendor/PDCurses/x11/pdcutil.c +0 -52
  254. data/vendor/PDCurses/x11/pdcx11.c +0 -316
  255. data/vendor/PDCurses/x11/pdcx11.h +0 -191
  256. data/vendor/PDCurses/x11/sb.c +0 -155
  257. data/vendor/PDCurses/x11/x11.c +0 -3686
  258. 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