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,131 +0,0 @@
1
- /* Public Domain Curses */
2
-
3
- #include "pdcsdl.h"
4
-
5
- #include <stdlib.h>
6
-
7
- /*man-start**************************************************************
8
-
9
- clipboard
10
- ---------
11
-
12
- ### Synopsis
13
-
14
- int PDC_getclipboard(char **contents, long *length);
15
- int PDC_setclipboard(const char *contents, long length);
16
- int PDC_freeclipboard(char *contents);
17
- int PDC_clearclipboard(void);
18
-
19
- ### Description
20
-
21
- PDC_getclipboard() gets the textual contents of the system's
22
- clipboard. This function returns the contents of the clipboard
23
- in the contents argument. It is the responsibilitiy of the
24
- caller to free the memory returned, via PDC_freeclipboard().
25
- The length of the clipboard contents is returned in the length
26
- argument.
27
-
28
- PDC_setclipboard copies the supplied text into the system's
29
- clipboard, emptying the clipboard prior to the copy.
30
-
31
- PDC_clearclipboard() clears the internal clipboard.
32
-
33
- ### Return Values
34
-
35
- indicator of success/failure of call.
36
- PDC_CLIP_SUCCESS the call was successful
37
- PDC_CLIP_MEMORY_ERROR unable to allocate sufficient memory for
38
- the clipboard contents
39
- PDC_CLIP_EMPTY the clipboard contains no text
40
- PDC_CLIP_ACCESS_ERROR no clipboard support
41
-
42
- ### Portability
43
- X/Open BSD SYS V
44
- PDC_getclipboard - - -
45
- PDC_setclipboard - - -
46
- PDC_freeclipboard - - -
47
- PDC_clearclipboard - - -
48
-
49
- **man-end****************************************************************/
50
-
51
- /* global clipboard contents, should be NULL if none set */
52
-
53
- static char *pdc_SDL_clipboard = NULL;
54
-
55
- int PDC_getclipboard(char **contents, long *length)
56
- {
57
- int len;
58
-
59
- PDC_LOG(("PDC_getclipboard() - called\n"));
60
-
61
- if (!pdc_SDL_clipboard)
62
- return PDC_CLIP_EMPTY;
63
-
64
- len = strlen(pdc_SDL_clipboard);
65
- if ((*contents = malloc(len + 1)) == NULL)
66
- return PDC_CLIP_MEMORY_ERROR;
67
-
68
- strcpy(*contents, pdc_SDL_clipboard);
69
- *length = len;
70
-
71
- return PDC_CLIP_SUCCESS;
72
- }
73
-
74
- int PDC_setclipboard(const char *contents, long length)
75
- {
76
- PDC_LOG(("PDC_setclipboard() - called\n"));
77
-
78
- if (pdc_SDL_clipboard)
79
- {
80
- free(pdc_SDL_clipboard);
81
- pdc_SDL_clipboard = NULL;
82
- }
83
-
84
- if (contents)
85
- {
86
- if ((pdc_SDL_clipboard = malloc(length + 1)) == NULL)
87
- return PDC_CLIP_MEMORY_ERROR;
88
-
89
- strcpy(pdc_SDL_clipboard, contents);
90
- }
91
-
92
- return PDC_CLIP_SUCCESS;
93
- }
94
-
95
- int PDC_freeclipboard(char *contents)
96
- {
97
- PDC_LOG(("PDC_freeclipboard() - called\n"));
98
-
99
- /* should we also free empty the system clipboard? probably not */
100
-
101
- if (contents)
102
- {
103
- /* NOTE: We free the memory, but we can not set caller's pointer
104
- to NULL, so if caller calls again then will try to access
105
- free'd memory. We 1st overwrite memory with a string so if
106
- caller tries to use free memory they won't get what they
107
- expect & hopefully notice. */
108
-
109
- /* memset(contents, 0xFD, strlen(contents)); */
110
-
111
- if (strlen(contents) >= strlen("PDCURSES"))
112
- strcpy(contents, "PDCURSES");
113
-
114
- free(contents);
115
- }
116
-
117
- return PDC_CLIP_SUCCESS;
118
- }
119
-
120
- int PDC_clearclipboard(void)
121
- {
122
- PDC_LOG(("PDC_clearclipboard() - called\n"));
123
-
124
- if (pdc_SDL_clipboard)
125
- {
126
- free(pdc_SDL_clipboard);
127
- pdc_SDL_clipboard = NULL;
128
- }
129
-
130
- return PDC_CLIP_SUCCESS;
131
- }
@@ -1,373 +0,0 @@
1
- /* Public Domain Curses */
2
-
3
- #include "pdcsdl.h"
4
-
5
- #include <stdlib.h>
6
- #include <string.h>
7
-
8
- #ifdef CHTYPE_LONG
9
-
10
- #ifdef PDC_WIDE
11
- #define USE_UNICODE_ACS_CHARS 1
12
- #else
13
- #define USE_UNICODE_ACS_CHARS 0
14
- #endif
15
-
16
- #include "acs_defs.h"
17
-
18
- #endif
19
-
20
- Uint32 pdc_lastupdate = 0;
21
-
22
- #define MAXRECT 200 /* maximum number of rects to queue up before
23
- an update is forced; the number was chosen
24
- arbitrarily */
25
-
26
- static SDL_Rect uprect[MAXRECT]; /* table of rects to update */
27
- static chtype oldch = (chtype)(-1); /* current attribute */
28
- static int rectcount = 0; /* index into uprect */
29
- static short foregr = -2, backgr = -2; /* current foreground, background */
30
-
31
- /* do the real updates on a delay */
32
-
33
- void PDC_update_rects(void)
34
- {
35
- if (rectcount)
36
- {
37
- /* if the maximum number of rects has been reached, we're
38
- probably better off doing a full screen update */
39
-
40
- if (rectcount == MAXRECT)
41
- SDL_Flip(pdc_screen);
42
- else
43
- SDL_UpdateRects(pdc_screen, rectcount, uprect);
44
-
45
- pdc_lastupdate = SDL_GetTicks();
46
- rectcount = 0;
47
- }
48
- }
49
-
50
- /* set the font colors to match the chtype's attribute */
51
-
52
- static void _set_attr(chtype ch)
53
- {
54
- ch &= (A_COLOR|A_BOLD|A_BLINK|A_REVERSE);
55
-
56
- if (oldch != ch)
57
- {
58
- short newfg, newbg;
59
-
60
- if (SP->mono)
61
- return;
62
-
63
- PDC_pair_content(PAIR_NUMBER(ch), &newfg, &newbg);
64
-
65
- newfg |= (ch & A_BOLD) ? 8 : 0;
66
- newbg |= (ch & A_BLINK) ? 8 : 0;
67
-
68
- if (ch & A_REVERSE)
69
- {
70
- short tmp = newfg;
71
- newfg = newbg;
72
- newbg = tmp;
73
- }
74
-
75
- if (newfg != foregr)
76
- {
77
- #ifndef PDC_WIDE
78
- SDL_SetPalette(pdc_font, SDL_LOGPAL,
79
- pdc_color + newfg, pdc_flastc, 1);
80
- #endif
81
- foregr = newfg;
82
- }
83
-
84
- if (newbg != backgr)
85
- {
86
- #ifndef PDC_WIDE
87
- if (newbg == -1)
88
- SDL_SetColorKey(pdc_font, SDL_SRCCOLORKEY, 0);
89
- else
90
- {
91
- if (backgr == -1)
92
- SDL_SetColorKey(pdc_font, 0, 0);
93
-
94
- SDL_SetPalette(pdc_font, SDL_LOGPAL,
95
- pdc_color + newbg, 0, 1);
96
- }
97
- #endif
98
- backgr = newbg;
99
- }
100
-
101
- oldch = ch;
102
- }
103
- }
104
-
105
- /* draw a cursor at (y, x) */
106
-
107
- void PDC_gotoyx(int row, int col)
108
- {
109
- SDL_Rect src, dest;
110
- chtype ch;
111
- int oldrow, oldcol;
112
- #ifdef PDC_WIDE
113
- Uint16 chstr[2] = {0, 0};
114
- #endif
115
-
116
- PDC_LOG(("PDC_gotoyx() - called: row %d col %d from row %d col %d\n",
117
- row, col, SP->cursrow, SP->curscol));
118
-
119
- if (SP->mono)
120
- return;
121
-
122
- oldrow = SP->cursrow;
123
- oldcol = SP->curscol;
124
-
125
- /* clear the old cursor */
126
-
127
- PDC_transform_line(oldrow, oldcol, 1, curscr->_y[oldrow] + oldcol);
128
-
129
- if (!SP->visibility)
130
- return;
131
-
132
- /* draw a new cursor by overprinting the existing character in
133
- reverse, either the full cell (when visibility == 2) or the
134
- lowest quarter of it (when visibility == 1) */
135
-
136
- ch = curscr->_y[row][col] ^ A_REVERSE;
137
-
138
- _set_attr(ch);
139
-
140
- #ifdef CHTYPE_LONG
141
- if (ch & A_ALTCHARSET && !(ch & 0xff80))
142
- ch = acs_map[ch & 0x7f];
143
- #endif
144
- src.h = (SP->visibility == 1) ? pdc_fheight >> 2 : pdc_fheight;
145
- src.w = pdc_fwidth;
146
-
147
- dest.y = (row + 1) * pdc_fheight - src.h + pdc_yoffset;
148
- dest.x = col * pdc_fwidth + pdc_xoffset;
149
-
150
- #ifdef PDC_WIDE
151
- chstr[0] = ch & A_CHARTEXT;
152
-
153
- pdc_font = TTF_RenderUNICODE_Solid(pdc_ttffont, chstr, pdc_color[foregr]);
154
- if (pdc_font)
155
- {
156
- dest.h = src.h;
157
- dest.w = src.w;
158
- src.x = 0;
159
- src.y = 0;
160
- SDL_SetColorKey(pdc_font, 0, 0);
161
- SDL_SetPalette(pdc_font, SDL_LOGPAL, pdc_color + backgr, 0, 1);
162
- SDL_BlitSurface(pdc_font, &src, pdc_screen, &dest);
163
- SDL_FreeSurface(pdc_font);
164
- pdc_font = NULL;
165
- }
166
- #else
167
-
168
- src.x = (ch & 0xff) % 32 * pdc_fwidth;
169
- src.y = (ch & 0xff) / 32 * pdc_fheight + (pdc_fheight - src.h);
170
-
171
- SDL_BlitSurface(pdc_font, &src, pdc_screen, &dest);
172
- #endif
173
-
174
- if (oldrow != row || oldcol != col)
175
- {
176
- if (rectcount == MAXRECT)
177
- PDC_update_rects();
178
-
179
- uprect[rectcount++] = dest;
180
- }
181
- }
182
-
183
- /* handle the A_*LINE attributes */
184
-
185
- static void _highlight(SDL_Rect *src, SDL_Rect *dest, chtype ch)
186
- {
187
- short col = SP->line_color;
188
- #ifdef PDC_WIDE
189
- Uint16 chstr[2] = {'_', 0};
190
- #endif
191
-
192
- if (SP->mono)
193
- return;
194
-
195
- if (ch & (A_UNDERLINE | A_OVERLINE | A_STRIKEOUT))
196
- {
197
- #ifdef PDC_WIDE
198
- if (col == -1)
199
- col = foregr;
200
-
201
- pdc_font = TTF_RenderUNICODE_Solid(pdc_ttffont, chstr, pdc_color[col]);
202
- if (pdc_font)
203
- {
204
- src->x = 0;
205
- src->y = 0;
206
-
207
- if (backgr != -1)
208
- SDL_SetColorKey(pdc_font, SDL_SRCCOLORKEY, 0);
209
-
210
- if( ch & A_UNDERLINE)
211
- SDL_BlitSurface(pdc_font, src, pdc_screen, dest);
212
- if( ch & A_OVERLINE)
213
- {
214
- dest->y -= pdc_fheight - 1;
215
- SDL_BlitSurface(pdc_font, src, pdc_screen, dest);
216
- dest->y += pdc_fheight - 1;
217
- }
218
- if( ch & A_STRIKEOUT)
219
- {
220
- dest->y -= pdc_fheight / 2;
221
- SDL_BlitSurface(pdc_font, src, pdc_screen, dest);
222
- dest->y += pdc_fheight / 2;
223
- }
224
- SDL_FreeSurface(pdc_font);
225
- pdc_font = NULL;
226
- }
227
- #else
228
- if (col != -1)
229
- SDL_SetPalette(pdc_font, SDL_LOGPAL,
230
- pdc_color + col, pdc_flastc, 1);
231
-
232
- src->x = '_' % 32 * pdc_fwidth;
233
- src->y = '_' / 32 * pdc_fheight;
234
-
235
- if (backgr != -1)
236
- SDL_SetColorKey(pdc_font, SDL_SRCCOLORKEY, 0);
237
-
238
- if( ch & A_UNDERLINE)
239
- SDL_BlitSurface(pdc_font, src, pdc_screen, dest);
240
- if( ch & A_OVERLINE)
241
- {
242
- dest->y -= pdc_fheight - 1;
243
- SDL_BlitSurface(pdc_font, src, pdc_screen, dest);
244
- dest->y += pdc_fheight - 1;
245
- }
246
- if( ch & A_STRIKEOUT)
247
- {
248
- dest->y -= pdc_fheight / 2;
249
- SDL_BlitSurface(pdc_font, src, pdc_screen, dest);
250
- dest->y += pdc_fheight / 2;
251
- }
252
-
253
- if (backgr != -1)
254
- SDL_SetColorKey(pdc_font, 0, 0);
255
-
256
- if (col != -1)
257
- SDL_SetPalette(pdc_font, SDL_LOGPAL,
258
- pdc_color + foregr, pdc_flastc, 1);
259
- #endif
260
- }
261
-
262
- if (ch & (A_LEFTLINE|A_RIGHTLINE))
263
- {
264
- if (col == -1)
265
- col = foregr;
266
-
267
- dest->w = 1;
268
-
269
- if (ch & A_LEFTLINE)
270
- SDL_FillRect(pdc_screen, dest, pdc_mapped[col]);
271
-
272
- if (ch & A_RIGHTLINE)
273
- {
274
- dest->x += pdc_fwidth - 1;
275
- SDL_FillRect(pdc_screen, dest, pdc_mapped[col]);
276
- dest->x -= pdc_fwidth - 1;
277
- }
278
-
279
- dest->w = pdc_fwidth;
280
- }
281
- }
282
-
283
- /* update the given physical line to look like the corresponding line in
284
- curscr */
285
-
286
- void PDC_transform_line(int lineno, int x, int len, const chtype *srcp)
287
- {
288
- SDL_Rect src, dest, lastrect;
289
- int j;
290
- #ifdef PDC_WIDE
291
- Uint16 chstr[2] = {0, 0};
292
- #endif
293
-
294
- PDC_LOG(("PDC_transform_line() - called: lineno=%d\n", lineno));
295
-
296
- if (rectcount == MAXRECT)
297
- PDC_update_rects();
298
-
299
- src.h = pdc_fheight;
300
- src.w = pdc_fwidth;
301
-
302
- dest.y = pdc_fheight * lineno + pdc_yoffset;
303
- dest.x = pdc_fwidth * x + pdc_xoffset;
304
- dest.h = pdc_fheight;
305
- dest.w = pdc_fwidth * len;
306
-
307
- /* if the previous rect was just above this one, with the same width
308
- and horizontal position, then merge the new one with it instead
309
- of adding a new entry */
310
-
311
- if (rectcount)
312
- lastrect = uprect[rectcount - 1];
313
-
314
- if (rectcount && lastrect.x == dest.x && lastrect.w == dest.w)
315
- {
316
- if (lastrect.y + lastrect.h == dest.y)
317
- uprect[rectcount - 1].h = lastrect.h + pdc_fheight;
318
- else
319
- if (lastrect.y != dest.y)
320
- uprect[rectcount++] = dest;
321
- }
322
- else
323
- uprect[rectcount++] = dest;
324
-
325
- dest.w = pdc_fwidth;
326
-
327
- #ifdef PDC_WIDE
328
- src.x = 0;
329
- src.y = 0;
330
- #endif
331
-
332
- for (j = 0; j < len; j++)
333
- {
334
- chtype ch = srcp[j];
335
-
336
- _set_attr(ch);
337
- #ifdef CHTYPE_LONG
338
- if (ch & A_ALTCHARSET && !(ch & 0xff80))
339
- ch = (ch & (A_ATTRIBUTES ^ A_ALTCHARSET)) | acs_map[ch & 0x7f];
340
- #endif
341
- if (backgr == -1)
342
- SDL_LowerBlit(pdc_tileback, &dest, pdc_screen, &dest);
343
-
344
- #ifdef PDC_WIDE
345
- chstr[0] = ch & A_CHARTEXT;
346
- pdc_font = TTF_RenderUNICODE_Solid(pdc_ttffont, chstr,
347
- pdc_color[foregr]);
348
-
349
- if (pdc_font)
350
- {
351
- if (backgr != -1)
352
- {
353
- SDL_SetColorKey(pdc_font, 0, 0);
354
- SDL_SetPalette(pdc_font, SDL_LOGPAL,
355
- pdc_color + backgr, 0, 1);
356
- }
357
- SDL_BlitSurface(pdc_font, &src, pdc_screen, &dest);
358
- SDL_FreeSurface(pdc_font);
359
- pdc_font = NULL;
360
- }
361
- #else
362
- src.x = (ch & 0xff) % 32 * pdc_fwidth;
363
- src.y = (ch & 0xff) / 32 * pdc_fheight;
364
-
365
- SDL_LowerBlit(pdc_font, &src, pdc_screen, &dest);
366
- #endif
367
-
368
- if (ch & (A_UNDERLINE|A_LEFTLINE|A_RIGHTLINE|A_OVERLINE|A_STRIKEOUT))
369
- _highlight(&src, &dest, ch);
370
-
371
- dest.x += pdc_fwidth;
372
- }
373
- }
@@ -1,30 +0,0 @@
1
- /* Public Domain Curses */
2
-
3
- #include "pdcsdl.h"
4
-
5
- /* get the cursor size/shape */
6
-
7
- int PDC_get_cursor_mode(void)
8
- {
9
- PDC_LOG(("PDC_get_cursor_mode() - called\n"));
10
-
11
- return 0;
12
- }
13
-
14
- /* return number of screen rows */
15
-
16
- int PDC_get_rows(void)
17
- {
18
- PDC_LOG(("PDC_get_rows() - called\n"));
19
-
20
- return pdc_sheight / pdc_fheight;
21
- }
22
-
23
- /* return width of screen/viewport */
24
-
25
- int PDC_get_columns(void)
26
- {
27
- PDC_LOG(("PDC_get_columns() - called\n"));
28
-
29
- return pdc_swidth / pdc_fwidth;
30
- }