curses 1.4.5 → 1.4.6

Sign up to get free protection for your applications and to get access to all the features.
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,394 +0,0 @@
1
- #include <stdio.h>
2
- #include <string.h>
3
- #include <assert.h>
4
- #if defined( _WIN32) || defined( DOS)
5
- #include <conio.h>
6
- #define USE_CONIO
7
- #else
8
- #include <sys/select.h>
9
- #include <unistd.h>
10
- #endif
11
- #include "curspriv.h"
12
-
13
- #if defined( __BORLANDC__) || defined( DOS)
14
- #define WINDOWS_VERSION_OF_KBHIT kbhit
15
- #else
16
- #define WINDOWS_VERSION_OF_KBHIT _kbhit
17
- #endif
18
-
19
- /* Modified from the accepted answer at
20
-
21
- https://stackoverflow.com/questions/33025599/move-the-cursor-in-a-c-program
22
-
23
- _kbhit( ) returns -1 if no key has been hit, and the keycode if one
24
- has been hit. You can just loop on it until the return value is >= 0.
25
- Hitting a function or arrow or similar key will cause 27 (escape) to
26
- be returned, followed by cryptic codes that depend on what terminal
27
- emulation is in place.
28
-
29
- Further info on VT100/ANSI control sequences is at
30
-
31
- https://www.gnu.org/software/screen/manual/html_node/Control-Sequences.html
32
- */
33
-
34
- extern bool PDC_resize_occurred;
35
-
36
- static bool check_key( int *c)
37
- {
38
- bool rval;
39
- #ifndef USE_CONIO
40
- const int STDIN = 0;
41
- struct timeval timeout;
42
- fd_set rdset;
43
-
44
- if( PDC_resize_occurred)
45
- return( TRUE);
46
- FD_ZERO( &rdset);
47
- FD_SET( STDIN, &rdset);
48
- timeout.tv_sec = 0;
49
- timeout.tv_usec = 0;
50
- if( select( STDIN + 1, &rdset, NULL, NULL, &timeout) > 0)
51
- {
52
- rval = TRUE;
53
- if( c)
54
- *c = getchar( );
55
- }
56
- else
57
- rval = FALSE;
58
- #else
59
- if( WINDOWS_VERSION_OF_KBHIT( ))
60
- {
61
- rval = TRUE;
62
- if( c)
63
- *c = _getch( );
64
- }
65
- else
66
- rval = FALSE;
67
- #endif
68
- return( rval);
69
- }
70
-
71
- bool PDC_check_key( void)
72
- {
73
- return( check_key( NULL));
74
- }
75
-
76
- void PDC_flushinp( void)
77
- {
78
- int thrown_away_char;
79
-
80
- while( check_key( &thrown_away_char))
81
- ;
82
- }
83
-
84
- #ifdef USE_CONIO
85
- static int xlate_vt_codes_for_dos( const int key1, const int key2)
86
- {
87
- static const int tbl[] = {
88
- KEY_UP, 72,
89
- KEY_DOWN, 80,
90
- KEY_LEFT, 75,
91
- KEY_RIGHT, 77,
92
- KEY_F(11), 133,
93
- KEY_F(12), 134,
94
- KEY_IC, 82,
95
- KEY_DC, 83,
96
- KEY_PPAGE, 73,
97
- KEY_NPAGE, 81,
98
- KEY_HOME, 2, '[', 'H',
99
- KEY_END, 2, 'O', 'F',
100
-
101
- KEY_F(1), 59,
102
- KEY_F(2), 60,
103
- KEY_F(3), 61,
104
- KEY_F(4), 62,
105
- KEY_F(5), 63,
106
- KEY_F(6), 64,
107
- KEY_F(7), 65,
108
- KEY_F(8), 66,
109
- KEY_F(9), 67,
110
- KEY_F(10), 68,
111
- 0, 0 };
112
- int i, rval = 0;
113
-
114
- for( i = 0; tbl[i] && !rval; i += 2)
115
- if( key2 == tbl[i + 1])
116
- rval = tbl[i];
117
- return( rval);
118
- }
119
-
120
- #endif
121
- /* Mouse events include six bytes. First three are
122
-
123
- ESC [ M
124
-
125
- Next byte is 96 for mouse wheel up, 97 for down, or (for more
126
- "traditional" mouse events) 32 plus :
127
-
128
- 0 for button 1
129
- 1 for button 2
130
- 2 for button 3
131
- 3 for release
132
- 4 if Shift is pressed
133
- 8 if Alt (Meta) is pressed
134
- 16 if Ctrl is pressed
135
-
136
- Note that 'release' doesn't tell you _which_ is released. If only
137
- one has been pressed (the usual case), it's presumably the one you
138
- released. If two or more buttons are pressed simultaneously, the
139
- "releases" are reported in the numerical order of the buttons, not
140
- the order in which they're actually released (which we don't know).
141
-
142
- My tilt mouse reports 'tilt left' as a left button (1) and 'tilt right'
143
- as a middle button press. Wheel events get shift, alt, ctrl added in
144
- (but that doesn't seem to be getting through in PDCurses... to be fixed).
145
- Button events only get Ctrl (though I think you might get the other events
146
- on some terminals).
147
-
148
- "Correct" mouse handling will require that we detect a button-down,
149
- then hold off for SP->mouse_wait to see if we get a release event. */
150
-
151
- static int xlate_vt_codes( const int *c, const int count)
152
- {
153
- static const int tbl[] = {
154
- KEY_UP, 2, '[', 'A',
155
- KEY_DOWN, 2, '[', 'B',
156
- KEY_LEFT, 2, '[', 'D',
157
- KEY_RIGHT,2, '[', 'C',
158
- KEY_HOME, 2, 'O', 'H',
159
- KEY_HOME, 2, '[', 'H',
160
- KEY_END, 2, 'O', 'F',
161
- KEY_END, 2, '[', 'F',
162
- KEY_B2, 2, '[', 'E',
163
- KEY_IC, 3, '[', '2', '~',
164
- KEY_DC, 3, '[', '3', '~',
165
- KEY_PPAGE, 3, '[', '5', '~',
166
- KEY_NPAGE, 3, '[', '6', '~',
167
-
168
- CTL_LEFT, 5, '[', '1', ';', '5', 'D',
169
- CTL_RIGHT, 5, '[', '1', ';', '5', 'C',
170
- CTL_UP, 5, '[', '1', ';', '5', 'A',
171
- CTL_DOWN, 5, '[', '1', ';', '5', 'B',
172
-
173
- ALT_PGUP, 5, '[', '5', ';', '3', '~',
174
- ALT_PGDN, 5, '[', '6', ';', '3', '~',
175
-
176
- KEY_F(1), 3, '[', '[', 'A', /* Linux console */
177
- KEY_F(2), 3, '[', '[', 'B',
178
- KEY_F(3), 3, '[', '[', 'C',
179
- KEY_F(4), 3, '[', '[', 'D',
180
- KEY_F(5), 3, '[', '[', 'E',
181
- KEY_END, 3, '[', '4', '~',
182
- KEY_HOME, 3, '[', '1', '~',
183
-
184
- KEY_F(1), 2, 'O', 'P',
185
- KEY_F(1), 4, '[', '1', '1', '~',
186
- KEY_F(2), 2, 'O', 'Q',
187
- KEY_F(2), 4, '[', '1', '2', '~',
188
- KEY_F(3), 2, 'O', 'R',
189
- KEY_F(3), 4, '[', '1', '3', '~',
190
- KEY_F(4), 2, 'O', 'S',
191
- KEY_F(4), 4, '[', '1', '4', '~',
192
- KEY_F(5), 4, '[', '1', '5', '~',
193
- KEY_F(6), 4, '[', '1', '7', '~',
194
- KEY_F(7), 4, '[', '1', '8', '~',
195
- KEY_F(8), 4, '[', '1', '9', '~',
196
- KEY_F(9), 4, '[', '2', '0', '~',
197
- KEY_F(10), 4, '[', '2', '1', '~',
198
- KEY_F(11), 4, '[', '2', '3', '~',
199
- KEY_F(12), 4, '[', '2', '4', '~',
200
- KEY_F(13), 5, '[', '1', ';', '2', 'P', /* shift-f1 */
201
- KEY_F(14), 5, '[', '1', ';', '2', 'Q',
202
- KEY_F(15), 5, '[', '1', ';', '2', 'R',
203
- KEY_F(16), 5, '[', '1', ';', '2', 'S',
204
- KEY_F(17), 6, '[', '1', '5', ';', '2', '~', /* shift-f5 */
205
- KEY_F(18), 6, '[', '1', '7', ';', '2', '~',
206
- KEY_F(19), 6, '[', '1', '8', ';', '2', '~',
207
- KEY_F(20), 6, '[', '1', '9', ';', '2', '~',
208
- KEY_F(21), 6, '[', '2', '0', ';', '2', '~',
209
- KEY_F(22), 6, '[', '2', '1', ';', '2', '~',
210
- KEY_F(23), 6, '[', '2', '3', ';', '2', '~', /* shift-f11 */
211
- KEY_F(24), 6, '[', '2', '4', ';', '2', '~',
212
- 27, 0,
213
- 0 };
214
- int i, rval = -1;
215
- const int *tptr;
216
-
217
- if( count == 1)
218
- {
219
- if( c[0] >= 'a' && c[0] <= 'z')
220
- rval = ALT_A + c[0] - 'a';
221
- if( c[0] >= '0' && c[0] <= '9')
222
- rval = ALT_0 + c[0] - '0';
223
- }
224
- else if( count == 5 && c[0] == '[' && c[1] == 'M')
225
- rval = KEY_MOUSE;
226
- for( tptr = tbl; rval == -1 && *tptr; tptr += 2 + tptr[1])
227
- if( count == tptr[1])
228
- {
229
- i = 0;
230
- while( tptr[i + 2] == c[i] && i < count)
231
- i++;
232
- if( i == count)
233
- rval = tptr[0];
234
- }
235
- return( rval);
236
- }
237
-
238
- int PDC_get_key( void)
239
- {
240
- int rval = -1;
241
-
242
- if( PDC_resize_occurred)
243
- {
244
- PDC_resize_occurred = FALSE;
245
- return( KEY_RESIZE);
246
- }
247
- if( check_key( &rval))
248
- {
249
- int c[13];
250
-
251
- #ifdef USE_CONIO
252
- SP->key_code = (rval == 0 || rval == 224);
253
- if( SP->key_code)
254
- {
255
- int key2;
256
-
257
- while( !check_key( &key2))
258
- ;
259
- rval = xlate_vt_codes_for_dos( rval, key2);
260
- return( rval);
261
- }
262
-
263
- #endif
264
- SP->key_code = (rval == 27);
265
- if( rval == 27)
266
- {
267
- int count = 0;
268
-
269
- while( count < 6 && check_key( &c[count])
270
- && (rval = xlate_vt_codes( c, count + 1)) == -1)
271
- count++;
272
- if( rval == KEY_MOUSE)
273
- {
274
- int idx = (c[2] & 3), flags = 0, i;
275
- const bool release = (idx == 3);
276
- static int held = 0;
277
-
278
- if( c[2] & 4)
279
- flags |= PDC_BUTTON_SHIFT;
280
- if( c[2] & 8)
281
- flags |= PDC_BUTTON_ALT;
282
- if( c[2] & 16)
283
- flags |= PDC_BUTTON_CONTROL;
284
- if( (c[2] & 0x60) == 0x40) /* mouse move */
285
- {
286
- int report_event = 0;
287
-
288
- if( idx == 0 && (SP->_trap_mbe & BUTTON1_MOVED))
289
- report_event |= 1;
290
- if( idx == 1 && (SP->_trap_mbe & BUTTON2_MOVED))
291
- report_event |= 2;
292
- if( idx == 2 && (SP->_trap_mbe & BUTTON3_MOVED))
293
- report_event |= 4;
294
- if( report_event)
295
- report_event |= PDC_MOUSE_MOVED;
296
- else if( SP->_trap_mbe & REPORT_MOUSE_POSITION)
297
- report_event = PDC_MOUSE_POSITION;
298
- pdc_mouse_status.changes = report_event;
299
- for( i = 0; i < 3; i++)
300
- pdc_mouse_status.button[i] = (i == idx ? BUTTON_MOVED : 0);
301
- idx = 3;
302
- }
303
- else if( idx == 3) /* it's a release */
304
- {
305
- idx = 0;
306
- while( idx < 3 && !((held >> idx) & 1))
307
- idx++;
308
- held ^= (1 << idx);
309
- }
310
- if( idx < 3)
311
- {
312
- memset(&pdc_mouse_status, 0, sizeof(MOUSE_STATUS));
313
- pdc_mouse_status.button[idx] =
314
- (release ? BUTTON_RELEASED : BUTTON_PRESSED);
315
- if( (c[2] & 0x60) == 0x60) /* actually mouse wheel event */
316
- pdc_mouse_status.changes =
317
- (idx ? PDC_MOUSE_WHEEL_DOWN : PDC_MOUSE_WHEEL_UP);
318
- else /* "normal" mouse button */
319
- pdc_mouse_status.changes = (1 << idx);
320
- if( !release && !(c[2] & 64)) /* wait for a possible release */
321
- {
322
- int n_events = 0;
323
-
324
- while( n_events < 5)
325
- {
326
- PDC_napms( SP->mouse_wait);
327
- if( check_key( c))
328
- {
329
- count = 0;
330
- while( count < 5 && check_key( &c[count]))
331
- count++;
332
- n_events++;
333
- }
334
- else
335
- break;
336
- }
337
- if( !n_events) /* just a click, no release(s) */
338
- held ^= (1 << idx);
339
- else if( n_events == 1)
340
- pdc_mouse_status.button[idx] = BUTTON_CLICKED;
341
- else if( n_events <= 3)
342
- pdc_mouse_status.button[idx] = BUTTON_DOUBLE_CLICKED;
343
- else if( n_events <= 5)
344
- pdc_mouse_status.button[idx] = BUTTON_TRIPLE_CLICKED;
345
- }
346
- }
347
- for( i = 0; i < 3; i++)
348
- pdc_mouse_status.button[i] |= flags;
349
- pdc_mouse_status.x = (unsigned char)( c[3] - ' ' - 1);
350
- pdc_mouse_status.y = (unsigned char)( c[4] - ' ' - 1);
351
- }
352
- }
353
- else if( (rval & 0xc0) == 0xc0) /* start of UTF-8 */
354
- {
355
- check_key( &c[0]);
356
- assert( (c[0] & 0xc0) == 0x80);
357
- c[0] &= 0x3f;
358
- if( !(rval & 0x20)) /* two-byte : U+0080 to U+07ff */
359
- rval = c[0] | ((rval & 0x1f) << 6);
360
- else if( !(rval & 0x10)) /* three-byte : U+0800 - U+ffff */
361
- {
362
- check_key( &c[1]);
363
- assert( (c[1] & 0xc0) == 0x80);
364
- c[1] &= 0x3f;
365
- rval = (c[1] | (c[0] << 6) | ((rval & 0xf) << 12));
366
- }
367
- /* Else... four-byte SMP char */
368
- }
369
- else if( rval == 127)
370
- rval = 8;
371
- }
372
- return( rval);
373
- }
374
-
375
- int PDC_modifiers_set( void)
376
- {
377
- return( OK);
378
- }
379
-
380
- int PDC_mouse_set( void)
381
- {
382
- return( OK);
383
- }
384
-
385
- void PDC_set_keyboard_binary( bool on)
386
- {
387
- return;
388
- }
389
-
390
- unsigned long PDC_get_input_fd( void)
391
- {
392
- return( 0);
393
- }
394
-