curses 1.2.6 → 1.4.0

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 (253) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/macos.yml +19 -0
  3. data/.github/workflows/ubuntu.yml +26 -0
  4. data/.github/workflows/windows.yml +28 -0
  5. data/.gitmodules +1 -1
  6. data/.travis.yml +6 -3
  7. data/History.md +40 -0
  8. data/README.md +4 -1
  9. data/Rakefile +0 -83
  10. data/curses.gemspec +2 -3
  11. data/ext/curses/curses.c +1271 -151
  12. data/ext/curses/extconf.rb +140 -17
  13. data/lib/curses.rb +5 -12
  14. data/sample/form.rb +52 -0
  15. data/sample/menu.rb +1 -1
  16. data/vendor/PDCurses/.gitignore +47 -0
  17. data/vendor/PDCurses/.travis.yml +49 -0
  18. data/vendor/PDCurses/CMakeLists.txt +68 -0
  19. data/vendor/PDCurses/HISTORY.md +2036 -0
  20. data/vendor/PDCurses/IMPLEMNT.md +327 -0
  21. data/vendor/PDCurses/README.md +77 -0
  22. data/vendor/PDCurses/acs_defs.h +265 -0
  23. data/vendor/PDCurses/appveyor.yml +218 -0
  24. data/vendor/PDCurses/cmake/README.md +71 -0
  25. data/vendor/PDCurses/cmake/build_dependencies.cmake +178 -0
  26. data/vendor/PDCurses/cmake/build_options.cmake +25 -0
  27. data/vendor/PDCurses/cmake/dll_version.cmake +26 -0
  28. data/vendor/PDCurses/cmake/gen_config_header.cmake +43 -0
  29. data/vendor/PDCurses/cmake/get_version.cmake +17 -0
  30. data/vendor/PDCurses/cmake/make_uninstall.cmake +19 -0
  31. data/vendor/PDCurses/cmake/project_common.cmake +121 -0
  32. data/vendor/PDCurses/cmake/resource.in.cmake +52 -0
  33. data/vendor/PDCurses/cmake/sdl2_ttf/CMakeLists.txt +83 -0
  34. data/vendor/PDCurses/cmake/target_arch.cmake +36 -0
  35. data/vendor/PDCurses/cmake/version.in.cmake +73 -0
  36. data/vendor/PDCurses/cmake/watcom_open_dos16_toolchain.cmake +96 -0
  37. data/vendor/PDCurses/cmake/watcom_open_dos32_toolchain.cmake +106 -0
  38. data/vendor/PDCurses/cmake/watcom_open_os2v2_toolchain.cmake +105 -0
  39. data/vendor/PDCurses/curses.h +1846 -0
  40. data/vendor/PDCurses/curspriv.h +134 -0
  41. data/vendor/PDCurses/demos/README.md +25 -0
  42. data/vendor/PDCurses/demos/firework.c +144 -0
  43. data/vendor/PDCurses/demos/newtest.c +581 -0
  44. data/vendor/PDCurses/demos/ozdemo.c +447 -0
  45. data/vendor/PDCurses/demos/ptest.c +283 -0
  46. data/vendor/PDCurses/demos/rain.c +157 -0
  47. data/vendor/PDCurses/demos/testcurs.c +1607 -0
  48. data/vendor/PDCurses/demos/tui.c +1048 -0
  49. data/vendor/PDCurses/demos/tui.h +65 -0
  50. data/vendor/PDCurses/demos/tuidemo.c +233 -0
  51. data/vendor/PDCurses/demos/version.c +61 -0
  52. data/vendor/PDCurses/demos/worm.c +432 -0
  53. data/vendor/PDCurses/demos/xmas.c +955 -0
  54. data/vendor/PDCurses/dos/CMakeLists.txt +47 -0
  55. data/vendor/PDCurses/dos/Makefile.bcc +83 -0
  56. data/vendor/PDCurses/dos/Makefile.dmc +257 -0
  57. data/vendor/PDCurses/dos/Makefile.msc +113 -0
  58. data/vendor/PDCurses/dos/Makefile.wcc +107 -0
  59. data/vendor/PDCurses/dos/README.md +51 -0
  60. data/vendor/PDCurses/dos/bccdos.lrf +9 -0
  61. data/vendor/PDCurses/dos/mscdos.lrf +50 -0
  62. data/vendor/PDCurses/dos/pdcclip.c +132 -0
  63. data/vendor/PDCurses/dos/pdcdisp.c +135 -0
  64. data/vendor/PDCurses/dos/pdcdos.h +194 -0
  65. data/vendor/PDCurses/dos/pdcgetsc.c +98 -0
  66. data/vendor/PDCurses/dos/pdckbd.c +513 -0
  67. data/vendor/PDCurses/dos/pdcscrn.c +785 -0
  68. data/vendor/PDCurses/dos/pdcsetsc.c +101 -0
  69. data/vendor/PDCurses/dos/pdcutil.c +212 -0
  70. data/vendor/PDCurses/libobjs.mif +26 -0
  71. data/vendor/PDCurses/makedist.mif +20 -0
  72. data/vendor/PDCurses/man/README.md +21 -0
  73. data/vendor/PDCurses/man/intro.md +361 -0
  74. data/vendor/PDCurses/man/manext.c +119 -0
  75. data/vendor/PDCurses/man/sdl.md +152 -0
  76. data/vendor/PDCurses/man/sdl2.md +58 -0
  77. data/vendor/PDCurses/man/x11.md +407 -0
  78. data/vendor/PDCurses/ncurses/CMakeLists.txt +66 -0
  79. data/vendor/PDCurses/ncurses/README.md +26 -0
  80. data/vendor/PDCurses/ncurses/makefile +29 -0
  81. data/vendor/PDCurses/os2/CMakeLists.txt +41 -0
  82. data/vendor/PDCurses/os2/Makefile.bcc +90 -0
  83. data/vendor/PDCurses/os2/Makefile.wcc +43 -0
  84. data/vendor/PDCurses/os2/README.md +43 -0
  85. data/vendor/PDCurses/os2/iccos2.lrf +50 -0
  86. data/vendor/PDCurses/os2/iccos2.mak +256 -0
  87. data/vendor/PDCurses/os2/pdcclip.c +188 -0
  88. data/vendor/PDCurses/os2/pdcdisp.c +93 -0
  89. data/vendor/PDCurses/os2/pdcgetsc.c +89 -0
  90. data/vendor/PDCurses/os2/pdckbd.c +521 -0
  91. data/vendor/PDCurses/os2/pdcos2.h +55 -0
  92. data/vendor/PDCurses/os2/pdcscrn.c +449 -0
  93. data/vendor/PDCurses/os2/pdcsetsc.c +112 -0
  94. data/vendor/PDCurses/os2/pdcutil.c +52 -0
  95. data/vendor/PDCurses/panel.h +56 -0
  96. data/vendor/PDCurses/pdcurses/README.md +25 -0
  97. data/vendor/PDCurses/pdcurses/addch.c +693 -0
  98. data/vendor/PDCurses/pdcurses/addchstr.c +245 -0
  99. data/vendor/PDCurses/pdcurses/addstr.c +240 -0
  100. data/vendor/PDCurses/pdcurses/attr.c +359 -0
  101. data/vendor/PDCurses/pdcurses/beep.c +68 -0
  102. data/vendor/PDCurses/pdcurses/bkgd.c +223 -0
  103. data/vendor/PDCurses/pdcurses/border.c +411 -0
  104. data/vendor/PDCurses/pdcurses/clear.c +159 -0
  105. data/vendor/PDCurses/pdcurses/color.c +298 -0
  106. data/vendor/PDCurses/pdcurses/debug.c +109 -0
  107. data/vendor/PDCurses/pdcurses/delch.c +96 -0
  108. data/vendor/PDCurses/pdcurses/deleteln.c +211 -0
  109. data/vendor/PDCurses/pdcurses/deprec.c +27 -0
  110. data/vendor/PDCurses/pdcurses/getch.c +417 -0
  111. data/vendor/PDCurses/pdcurses/getstr.c +474 -0
  112. data/vendor/PDCurses/pdcurses/getyx.c +139 -0
  113. data/vendor/PDCurses/pdcurses/inch.c +127 -0
  114. data/vendor/PDCurses/pdcurses/inchstr.c +214 -0
  115. data/vendor/PDCurses/pdcurses/initscr.c +367 -0
  116. data/vendor/PDCurses/pdcurses/inopts.c +324 -0
  117. data/vendor/PDCurses/pdcurses/insch.c +271 -0
  118. data/vendor/PDCurses/pdcurses/insstr.c +264 -0
  119. data/vendor/PDCurses/pdcurses/instr.c +246 -0
  120. data/vendor/PDCurses/pdcurses/kernel.c +259 -0
  121. data/vendor/PDCurses/pdcurses/keyname.c +157 -0
  122. data/vendor/PDCurses/pdcurses/mouse.c +438 -0
  123. data/vendor/PDCurses/pdcurses/move.c +57 -0
  124. data/vendor/PDCurses/pdcurses/outopts.c +159 -0
  125. data/vendor/PDCurses/pdcurses/overlay.c +214 -0
  126. data/vendor/PDCurses/pdcurses/pad.c +260 -0
  127. data/vendor/PDCurses/pdcurses/panel.c +633 -0
  128. data/vendor/PDCurses/pdcurses/printw.c +126 -0
  129. data/vendor/PDCurses/pdcurses/refresh.c +279 -0
  130. data/vendor/PDCurses/pdcurses/scanw.c +578 -0
  131. data/vendor/PDCurses/pdcurses/scr_dump.c +213 -0
  132. data/vendor/PDCurses/pdcurses/scroll.c +101 -0
  133. data/vendor/PDCurses/pdcurses/slk.c +591 -0
  134. data/vendor/PDCurses/pdcurses/termattr.c +182 -0
  135. data/vendor/PDCurses/pdcurses/terminfo.c +217 -0
  136. data/vendor/PDCurses/pdcurses/touch.c +163 -0
  137. data/vendor/PDCurses/pdcurses/util.c +312 -0
  138. data/vendor/PDCurses/pdcurses/window.c +569 -0
  139. data/vendor/PDCurses/sdl1/Makefile.mng +110 -0
  140. data/vendor/PDCurses/sdl1/README.md +31 -0
  141. data/vendor/PDCurses/sdl1/deffont.h +385 -0
  142. data/vendor/PDCurses/sdl1/deficon.h +23 -0
  143. data/vendor/PDCurses/sdl1/pdcclip.c +131 -0
  144. data/vendor/PDCurses/sdl1/pdcdisp.c +373 -0
  145. data/vendor/PDCurses/sdl1/pdcgetsc.c +30 -0
  146. data/vendor/PDCurses/sdl1/pdckbd.c +405 -0
  147. data/vendor/PDCurses/sdl1/pdcscrn.c +414 -0
  148. data/vendor/PDCurses/sdl1/pdcsdl.h +31 -0
  149. data/vendor/PDCurses/sdl1/pdcsetsc.c +64 -0
  150. data/vendor/PDCurses/sdl1/pdcutil.c +40 -0
  151. data/vendor/PDCurses/sdl1/sdltest.c +79 -0
  152. data/vendor/PDCurses/sdl2/CMakeLists.txt +76 -0
  153. data/vendor/PDCurses/sdl2/Makefile.vc +164 -0
  154. data/vendor/PDCurses/sdl2/README.md +34 -0
  155. data/vendor/PDCurses/sdl2/deffont.h +385 -0
  156. data/vendor/PDCurses/sdl2/deficon.h +23 -0
  157. data/vendor/PDCurses/sdl2/pdcclip.c +93 -0
  158. data/vendor/PDCurses/sdl2/pdcdisp.c +534 -0
  159. data/vendor/PDCurses/sdl2/pdcgetsc.c +30 -0
  160. data/vendor/PDCurses/sdl2/pdckbd.c +480 -0
  161. data/vendor/PDCurses/sdl2/pdcscrn.c +443 -0
  162. data/vendor/PDCurses/sdl2/pdcsdl.h +33 -0
  163. data/vendor/PDCurses/sdl2/pdcsetsc.c +67 -0
  164. data/vendor/PDCurses/sdl2/pdcutil.c +39 -0
  165. data/vendor/PDCurses/sdl2/sdltest.c +81 -0
  166. data/vendor/PDCurses/term.h +48 -0
  167. data/vendor/PDCurses/version.mif +7 -0
  168. data/vendor/PDCurses/vt/CMakeLists.txt +28 -0
  169. data/vendor/PDCurses/vt/Makefile.bcc +111 -0
  170. data/vendor/PDCurses/vt/Makefile.dmc +258 -0
  171. data/vendor/PDCurses/vt/Makefile.vc +144 -0
  172. data/vendor/PDCurses/vt/Makefile.wcc +107 -0
  173. data/vendor/PDCurses/vt/README.md +64 -0
  174. data/vendor/PDCurses/vt/pdcclip.c +20 -0
  175. data/vendor/PDCurses/vt/pdcdisp.c +284 -0
  176. data/vendor/PDCurses/vt/pdcgetsc.c +27 -0
  177. data/vendor/PDCurses/vt/pdckbd.c +394 -0
  178. data/vendor/PDCurses/vt/pdcscrn.c +434 -0
  179. data/vendor/PDCurses/vt/pdcsetsc.c +45 -0
  180. data/vendor/PDCurses/vt/pdcutil.c +43 -0
  181. data/vendor/PDCurses/vt/pdcvt.h +16 -0
  182. data/vendor/PDCurses/watcom.mif +68 -0
  183. data/vendor/PDCurses/wincon/CMakeLists.txt +27 -0
  184. data/vendor/PDCurses/wincon/Makefile.bcc +88 -0
  185. data/vendor/PDCurses/wincon/Makefile.dmc +256 -0
  186. data/vendor/PDCurses/wincon/Makefile.lcc +273 -0
  187. data/vendor/PDCurses/wincon/Makefile.mng +176 -0
  188. data/vendor/PDCurses/wincon/Makefile.vc +144 -0
  189. data/vendor/PDCurses/wincon/Makefile.wcc +51 -0
  190. data/vendor/PDCurses/wincon/README.md +85 -0
  191. data/vendor/PDCurses/wincon/pdcclip.c +174 -0
  192. data/vendor/PDCurses/wincon/pdcdisp.c +143 -0
  193. data/vendor/PDCurses/wincon/pdcgetsc.c +55 -0
  194. data/vendor/PDCurses/wincon/pdckbd.c +786 -0
  195. data/vendor/PDCurses/wincon/pdcscrn.c +717 -0
  196. data/vendor/PDCurses/wincon/pdcsetsc.c +91 -0
  197. data/vendor/PDCurses/wincon/pdcurses.ico +0 -0
  198. data/vendor/PDCurses/wincon/pdcurses.rc +28 -0
  199. data/vendor/PDCurses/wincon/pdcutil.c +41 -0
  200. data/vendor/PDCurses/wincon/pdcwin.h +31 -0
  201. data/vendor/PDCurses/wingui/CMakeLists.txt +27 -0
  202. data/vendor/PDCurses/wingui/Makefile.bcc +85 -0
  203. data/vendor/PDCurses/wingui/Makefile.dmc +259 -0
  204. data/vendor/PDCurses/wingui/Makefile.lcc +273 -0
  205. data/vendor/PDCurses/wingui/Makefile.mng +171 -0
  206. data/vendor/PDCurses/wingui/Makefile.vc +144 -0
  207. data/vendor/PDCurses/wingui/Makefile.wcc +51 -0
  208. data/vendor/PDCurses/wingui/README.md +93 -0
  209. data/vendor/PDCurses/wingui/pdcclip.c +174 -0
  210. data/vendor/PDCurses/wingui/pdcdisp.c +718 -0
  211. data/vendor/PDCurses/wingui/pdcgetsc.c +30 -0
  212. data/vendor/PDCurses/wingui/pdckbd.c +143 -0
  213. data/vendor/PDCurses/wingui/pdcscrn.c +2797 -0
  214. data/vendor/PDCurses/wingui/pdcsetsc.c +89 -0
  215. data/vendor/PDCurses/wingui/pdcurses.ico +0 -0
  216. data/vendor/PDCurses/wingui/pdcurses.rc +28 -0
  217. data/vendor/PDCurses/wingui/pdcutil.c +61 -0
  218. data/vendor/PDCurses/wingui/pdcwin.h +122 -0
  219. data/vendor/PDCurses/x11/Makefile.in +754 -0
  220. data/vendor/PDCurses/x11/PDCurses.spec +82 -0
  221. data/vendor/PDCurses/x11/README.md +62 -0
  222. data/vendor/PDCurses/x11/ScrollBox.c +319 -0
  223. data/vendor/PDCurses/x11/ScrollBox.h +51 -0
  224. data/vendor/PDCurses/x11/ScrollBoxP.h +70 -0
  225. data/vendor/PDCurses/x11/aclocal.m4 +994 -0
  226. data/vendor/PDCurses/x11/big_icon.xbm +46 -0
  227. data/vendor/PDCurses/x11/compose.h +201 -0
  228. data/vendor/PDCurses/x11/config.guess +1500 -0
  229. data/vendor/PDCurses/x11/config.h.in +100 -0
  230. data/vendor/PDCurses/x11/config.sub +1616 -0
  231. data/vendor/PDCurses/x11/configure +6700 -0
  232. data/vendor/PDCurses/x11/configure.ac +295 -0
  233. data/vendor/PDCurses/x11/debian/changelog +6 -0
  234. data/vendor/PDCurses/x11/debian/compat +1 -0
  235. data/vendor/PDCurses/x11/debian/control +11 -0
  236. data/vendor/PDCurses/x11/debian/copyright +27 -0
  237. data/vendor/PDCurses/x11/debian/rules +98 -0
  238. data/vendor/PDCurses/x11/install-sh +253 -0
  239. data/vendor/PDCurses/x11/little_icon.xbm +14 -0
  240. data/vendor/PDCurses/x11/ncurses_cfg.h +45 -0
  241. data/vendor/PDCurses/x11/pdcclip.c +173 -0
  242. data/vendor/PDCurses/x11/pdcdisp.c +85 -0
  243. data/vendor/PDCurses/x11/pdcgetsc.c +28 -0
  244. data/vendor/PDCurses/x11/pdckbd.c +104 -0
  245. data/vendor/PDCurses/x11/pdcscrn.c +258 -0
  246. data/vendor/PDCurses/x11/pdcsetsc.c +95 -0
  247. data/vendor/PDCurses/x11/pdcutil.c +52 -0
  248. data/vendor/PDCurses/x11/pdcx11.c +316 -0
  249. data/vendor/PDCurses/x11/pdcx11.h +191 -0
  250. data/vendor/PDCurses/x11/sb.c +155 -0
  251. data/vendor/PDCurses/x11/x11.c +3686 -0
  252. data/vendor/PDCurses/x11/xcurses-config.in +81 -0
  253. metadata +255 -21
@@ -0,0 +1,67 @@
1
+ /* Public Domain Curses */
2
+
3
+ #include "pdcsdl.h"
4
+
5
+ /*man-start**************************************************************
6
+
7
+ pdcsetsc
8
+ --------
9
+
10
+ ### Synopsis
11
+
12
+ int PDC_set_blink(bool blinkon);
13
+ void PDC_set_title(const char *title);
14
+
15
+ ### Description
16
+
17
+ PDC_set_blink() toggles whether the A_BLINK attribute sets an
18
+ actual blink mode (TRUE), or sets the background color to high
19
+ intensity (FALSE). The default is platform-dependent (FALSE in
20
+ most cases). It returns OK if it could set the state to match
21
+ the given parameter, ERR otherwise. Current platforms also
22
+ adjust the value of COLORS according to this function -- 16 for
23
+ FALSE, and 8 for TRUE.
24
+
25
+ PDC_set_title() sets the title of the window in which the curses
26
+ program is running. This function may not do anything on some
27
+ platforms. (Currently it only works in Win32 and X11.)
28
+
29
+ ### Portability
30
+ X/Open BSD SYS V
31
+ PDC_set_blink - - -
32
+ PDC_set_title - - -
33
+
34
+ **man-end****************************************************************/
35
+
36
+ int PDC_curs_set(int visibility)
37
+ {
38
+ int ret_vis;
39
+
40
+ PDC_LOG(("PDC_curs_set() - called: visibility=%d\n", visibility));
41
+
42
+ ret_vis = SP->visibility;
43
+
44
+ SP->visibility = visibility;
45
+
46
+ PDC_gotoyx(SP->cursrow, SP->curscol);
47
+
48
+ return ret_vis;
49
+ }
50
+
51
+ void PDC_set_title(const char *title)
52
+ {
53
+ PDC_LOG(("PDC_set_title() - called:<%s>\n", title));
54
+
55
+ SDL_SetWindowTitle(pdc_window, title);
56
+ }
57
+
58
+ /* See comments in win32a/pdcsetsc.c or x11/pdcsetsc.c. This does
59
+ essentially the same thing. */
60
+
61
+ int PDC_set_blink(bool blinkon)
62
+ {
63
+ extern int PDC_really_blinking;
64
+
65
+ PDC_really_blinking = blinkon;
66
+ return OK;
67
+ }
@@ -0,0 +1,39 @@
1
+ /* Public Domain Curses */
2
+
3
+ #include "pdcsdl.h"
4
+
5
+ void PDC_beep(void)
6
+ {
7
+ PDC_LOG(("PDC_beep() - called\n"));
8
+ }
9
+
10
+ void PDC_napms(int ms)
11
+ {
12
+ PDC_LOG(("PDC_napms() - called: ms=%d\n", ms));
13
+
14
+ PDC_update_rects();
15
+ SDL_Delay(ms);
16
+ }
17
+
18
+ const char *PDC_sysname(void)
19
+ {
20
+ return "SDL2";
21
+ }
22
+
23
+ PDC_version_info PDC_version = { PDC_PORT_SDL2,
24
+ PDC_VER_MAJOR, PDC_VER_MINOR, PDC_VER_CHANGE,
25
+ sizeof( chtype),
26
+ /* note that thus far, 'wide' and 'UTF8' versions exist */
27
+ /* only for SDL2, X11, Win32, and Win32a; elsewhere, */
28
+ /* these will be FALSE */
29
+ #ifdef PDC_WIDE
30
+ TRUE,
31
+ #else
32
+ FALSE,
33
+ #endif
34
+ #ifdef PDC_FORCE_UTF8
35
+ TRUE,
36
+ #else
37
+ FALSE,
38
+ #endif
39
+ };
@@ -0,0 +1,81 @@
1
+ /* Here's a simple example of combining SDL and PDCurses functionality.
2
+ The top portion of the window is devoted to SDL, with a four-line
3
+ (assuming the default 8x16 font) stdscr at the bottom.
4
+ */
5
+
6
+ #include <SDL.h>
7
+ #include <curses.h>
8
+ #include <stdlib.h>
9
+ #include <time.h>
10
+
11
+ /* You could #include pdcsdl.h, or just add the relevant declarations
12
+ here: */
13
+
14
+ PDCEX SDL_Window *pdc_window;
15
+ PDCEX SDL_Surface *pdc_screen;
16
+ PDCEX int pdc_yoffset;
17
+
18
+ int main(int argc, char **argv)
19
+ {
20
+ char inp[60];
21
+ int i, j, seed;
22
+
23
+ seed = time((time_t *)0);
24
+ srand(seed);
25
+
26
+ /* Initialize SDL */
27
+
28
+ if (SDL_Init(SDL_INIT_VIDEO) < 0)
29
+ exit(1);
30
+
31
+ atexit(SDL_Quit);
32
+
33
+ pdc_window = SDL_CreateWindow("PDCurses for SDL", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, 0);
34
+ pdc_screen = SDL_GetWindowSurface(pdc_window);
35
+
36
+ /* Initialize PDCurses */
37
+
38
+ pdc_yoffset = 416; /* 480 - 4 * 16 */
39
+
40
+ initscr();
41
+ start_color();
42
+ scrollok(stdscr, TRUE);
43
+
44
+ PDC_set_title("PDCurses for SDL");
45
+
46
+ /* Do some SDL stuff */
47
+
48
+ for (i = 640, j = 416; j; i -= 2, j -= 2)
49
+ {
50
+ SDL_Rect dest;
51
+
52
+ dest.x = (640 - i) / 2;
53
+ dest.y = (416 - j) / 2;
54
+ dest.w = i;
55
+ dest.h = j;
56
+
57
+ SDL_FillRect(pdc_screen, &dest,
58
+ SDL_MapRGB(pdc_screen->format, rand() % 256,
59
+ rand() % 256, rand() % 256));
60
+ }
61
+
62
+ SDL_UpdateWindowSurface(pdc_window);
63
+
64
+ /* Do some curses stuff */
65
+
66
+ init_pair(1, COLOR_WHITE + 8, COLOR_BLUE);
67
+ bkgd(COLOR_PAIR(1));
68
+
69
+ addstr("This is a demo of ");
70
+ attron(A_UNDERLINE);
71
+ addstr("PDCurses for SDL");
72
+ attroff(A_UNDERLINE);
73
+ addstr(".\nYour comments here: ");
74
+ getnstr(inp, 59);
75
+ addstr("Press any key to exit.");
76
+
77
+ getch();
78
+ endwin();
79
+
80
+ return 0;
81
+ }
@@ -0,0 +1,48 @@
1
+ /* Public Domain Curses */
2
+
3
+ /* PDCurses doesn't operate with terminfo, but we need these functions for
4
+ compatibility, to allow some things (notably, interface libraries for
5
+ other languages) to be compiled. Anyone who tries to actually _use_
6
+ them will be disappointed, since they only return ERR. */
7
+
8
+ #ifndef __PDCURSES_TERM_H__
9
+ #define __PDCURSES_TERM_H__ 1
10
+
11
+ #include <curses.h>
12
+
13
+ #if defined(__cplusplus) || defined(__cplusplus__) || defined(__CPLUSPLUS)
14
+ extern "C"
15
+ {
16
+ #endif
17
+
18
+ typedef struct
19
+ {
20
+ const char *_termname;
21
+ } TERMINAL;
22
+
23
+ /* PDCEX is defined in curses.h */
24
+ PDCEX TERMINAL *cur_term;
25
+
26
+ int del_curterm(TERMINAL *);
27
+ int putp(const char *);
28
+ int restartterm(const char *, int, int *);
29
+ TERMINAL *set_curterm(TERMINAL *);
30
+ int setterm(const char *);
31
+ int setupterm(const char *, int, int *);
32
+ int tgetent(char *, const char *);
33
+ int tgetflag(const char *);
34
+ int tgetnum(const char *);
35
+ char *tgetstr(const char *, char **);
36
+ char *tgoto(const char *, int, int);
37
+ int tigetflag(const char *);
38
+ int tigetnum(const char *);
39
+ char *tigetstr(const char *);
40
+ char *tparm(const char *, long, long, long, long, long,
41
+ long, long, long, long);
42
+ int tputs(const char *, int, int (*)(int));
43
+
44
+ #if defined(__cplusplus) || defined(__cplusplus__) || defined(__CPLUSPLUS)
45
+ }
46
+ #endif
47
+
48
+ #endif /* __PDCURSES_TERM_H__ */
@@ -0,0 +1,7 @@
1
+ # Version number macros for inclusion from makefiles
2
+
3
+ VER = 40
4
+ VERDOT = 4.0
5
+ ABI_MAJOR = 4
6
+ ABI_MINOR = 0
7
+ ABI = $(ABI_MAJOR).$(ABI_MINOR)
@@ -0,0 +1,28 @@
1
+ cmake_minimum_required(VERSION 3.11)
2
+
3
+ if(NOT CMAKE_BUILD_TYPE)
4
+ set(CMAKE_BUILD_TYPE "MinSizeRel" CACHE STRING "Choose the type of build, options are: Debug, Release, or MinSizeRel." FORCE)
5
+ message(STATUS "No build type specified, defaulting to MinSizeRel.")
6
+ endif()
7
+
8
+ PROJECT(vt VERSION "${PROJECT_VERSION}" LANGUAGES C)
9
+
10
+ INCLUDE(project_common)
11
+
12
+
13
+ demo_app(../demos firework)
14
+ demo_app(../demos ozdemo)
15
+ demo_app(../demos newtest)
16
+ demo_app(../demos ptest)
17
+ demo_app(../demos rain)
18
+ demo_app(../demos testcurs)
19
+ demo_app(../demos tuidemo)
20
+ demo_app(../demos worm)
21
+ demo_app(../demos xmas)
22
+
23
+
24
+ IF(WIN32)
25
+ SET_TARGET_PROPERTIES(${PROJECT_NAME}_newtest PROPERTIES LINK_FLAGS "/SUBSYSTEM:WINDOWS")
26
+ ENDIF(WIN32)
27
+
28
+ SET(CPACK_COMPONENTS_ALL applications)
@@ -0,0 +1,111 @@
1
+ # Borland MAKE Makefile for PDCurses library - Windows console BC++ 7.0+
2
+ #
3
+ # Usage: make -f [path\]Makefile.bcc [DEBUG=] [WIDE=] [UTF8=]
4
+ # [INFOEX=N] [target]
5
+ #
6
+ # where target can be any of:
7
+ # [all|demos|pdcurses.lib|testcurs.exe...]
8
+
9
+ O = obj
10
+ E = .exe
11
+ RM = del
12
+
13
+ !ifndef PDCURSES_SRCDIR
14
+ PDCURSES_SRCDIR = ..
15
+ !endif
16
+
17
+ !include $(PDCURSES_SRCDIR)\version.mif
18
+ !include $(PDCURSES_SRCDIR)\libobjs.mif
19
+
20
+ osdir = $(PDCURSES_SRCDIR)\vt
21
+
22
+ !ifdef OLD_BCC
23
+ CC = bcc32 -q -DNO_STDINT_H
24
+ !else
25
+ CC = bcc32c -q -Xdriver -Wno-deprecated-declarations
26
+ !endif
27
+
28
+ !ifdef DEBUG
29
+ CFLAGS = -N -v -y -DPDCDEBUG
30
+ !else
31
+ CFLAGS = -O -DCHTYPE_32
32
+ !endif
33
+
34
+ !ifdef CHTYPE_32
35
+ CFLAGS = $(CFLAGS) -DCHTYPE_32
36
+ !endif
37
+
38
+ !ifdef CHTYPE_16
39
+ CFLAGS = $(CFLAGS) -DCHTYPE_16
40
+ !endif
41
+
42
+ !ifdef WIDE
43
+ WIDEOPT = -DPDC_WIDE
44
+ !endif
45
+
46
+ !ifdef UTF8
47
+ UTF8OPT = -DPDC_FORCE_UTF8
48
+ !endif
49
+
50
+ !ifdef INFOEX
51
+ INFOPT = -DHAVE_NO_INFOEX
52
+ !endif
53
+
54
+ !ifdef OLD_BCC
55
+ BUILD = $(CC) -I$(PDCURSES_SRCDIR) -c -Tpe $(CFLAGS) \
56
+ -w32 -w-par \
57
+ $(WIDEOPT) $(UTF8OPT) $(INFOPT)
58
+ !else
59
+ BUILD = $(CC) -I$(PDCURSES_SRCDIR) -c -Tpe $(CFLAGS) \
60
+ $(WIDEOPT) $(UTF8OPT)
61
+ !endif
62
+
63
+ LIBEXE = tlib /C /E /0 /a
64
+
65
+ LIBCURSES = pdcurses.lib
66
+
67
+ all: $(LIBCURSES)
68
+
69
+ clean:
70
+ -$(RM) *.obj
71
+ -$(RM) *.lib
72
+ -$(RM) *.tds
73
+ -$(RM) *.exe
74
+
75
+ demos: $(DEMOS)
76
+
77
+ $(LIBCURSES) : $(LIBOBJS) $(PDCOBJS)
78
+ -$(RM) $@
79
+ $(LIBEXE) $@ $(LIBOBJS) $(PDCOBJS)
80
+
81
+ .autodepend
82
+
83
+ {$(srcdir)\}.c.obj:
84
+ $(BUILD) $<
85
+
86
+ {$(osdir)\}.c.obj:
87
+ $(BUILD) $<
88
+
89
+ {$(demodir)\}.c.obj:
90
+ $(BUILD) $<
91
+
92
+ .c.obj:
93
+ $(BUILD) $<
94
+
95
+ .obj.exe:
96
+ $(CC) -e$@ $** $(LIBCURSES)
97
+
98
+ tuidemo.exe: tuidemo.obj tui.obj $(LIBCURSES)
99
+ $(CC) -e$@ $**
100
+
101
+ tui.obj: $(demodir)\tui.c $(demodir)\tui.h $(PDCURSES_CURSES_H)
102
+ $(BUILD) -I$(demodir) $(demodir)\tui.c
103
+
104
+ tuidemo.obj: $(demodir)\tuidemo.c $(PDCURSES_CURSES_H)
105
+ $(BUILD) -I$(demodir) $(demodir)\tuidemo.c
106
+
107
+ PLATFORM1 = Borland C++ Wincon
108
+ PLATFORM2 = Borland C/C++ 7.2 for Windows console
109
+ ARCNAME = pdc$(VER)_bcc_vt
110
+
111
+ !include $(PDCURSES_SRCDIR)\makedist.mif
@@ -0,0 +1,258 @@
1
+ # Makefile for PDCurses library - DOS Digital Mars
2
+ #
3
+ # Usage: make -f Makefile.dmc [target]
4
+ #
5
+ # where target can be any of:
6
+ # [all|demos|pdcurses.lib|testcurs.exe...]
7
+
8
+ PDCURSES_SRCDIR = ..
9
+
10
+ PDCURSES_CURSES_H = $(PDCURSES_SRCDIR)\curses.h
11
+ PDCURSES_CURSPRIV_H = $(PDCURSES_SRCDIR)\curspriv.h
12
+ PDCURSES_HEADERS = $(PDCURSES_CURSES_H) $(PDCURSES_CURSPRIV_H)
13
+
14
+ PANEL_HEADER = $(PDCURSES_SRCDIR)\panel.h
15
+ TERM_HEADER = $(PDCURSES_SRCDIR)\term.h
16
+
17
+ srcdir = $(PDCURSES_SRCDIR)\pdcurses
18
+ osdir = $(PDCURSES_SRCDIR)\vt
19
+ demodir = $(PDCURSES_SRCDIR)\demos
20
+
21
+ PDCURSES_VT_H = $(osdir)\pdcvt.h
22
+
23
+ CC = dmc
24
+
25
+ CHTYPE = -DCHTYPE_32
26
+
27
+ CFLAGS = -c -o+space -Nc -mx -DDOS
28
+ # CFLAGS = -c -o+space -Nc -mld -DDOS
29
+
30
+ CPPFLAGS = -I$(PDCURSES_SRCDIR) -msd $(CHTYPE)
31
+
32
+ LINK = dmc
33
+ LIBEXE = lib
34
+
35
+ LIBCURSES = pdcurses.lib
36
+
37
+ BUILD = $(CC) $(CFLAGS) $(CPPFLAGS)
38
+
39
+ DEMOS = testcurs.exe ozdemo.exe newtest.exe xmas.exe \
40
+ tuidemo.exe firework.exe ptest.exe rain.exe worm.exe
41
+
42
+ all: $(LIBCURSES) $(DEMOS)
43
+
44
+ clean:
45
+ -del *.obj
46
+ -del *.lib
47
+ -del *.exe
48
+ -del *.map
49
+ -del advapi32.def
50
+
51
+ LIBOBJS = addch.obj addchstr.obj addstr.obj attr.obj beep.obj bkgd.obj \
52
+ border.obj clear.obj color.obj delch.obj deleteln.obj deprec.obj getch.obj \
53
+ getstr.obj getyx.obj inch.obj inchstr.obj initscr.obj inopts.obj \
54
+ insch.obj insstr.obj instr.obj kernel.obj keyname.obj mouse.obj move.obj \
55
+ outopts.obj overlay.obj pad.obj panel.obj printw.obj refresh.obj \
56
+ scanw.obj scr_dump.obj scroll.obj slk.obj termattr.obj terminfo.obj \
57
+ touch.obj util.obj window.obj debug.obj
58
+
59
+ PDCOBJS = pdcclip.obj pdcdisp.obj pdcgetsc.obj pdckbd.obj pdcscrn.obj \
60
+ pdcsetsc.obj pdcutil.obj
61
+
62
+ DEMOOBJS = testcurs.obj ozdemo.obj newtest.obj xmas.obj tuidemo.obj \
63
+ tui.obj firework.obj ptest.obj rain.obj worm.obj
64
+
65
+ $(LIBOBJS) $(PDCOBJS) : $(PDCURSES_HEADERS)
66
+ $(PDCOBJS) : $(PDCURSES_VT_H)
67
+ panel.obj ptest.obj: $(PANEL_HEADER)
68
+ terminfo.obj: $(TERM_HEADER)
69
+
70
+ $(DEMOOBJS) : $(PDCURSES_CURSES_H)
71
+ $(DEMOS) : $(LIBCURSES)
72
+
73
+ $(LIBCURSES) : $(LIBOBJS) $(PDCOBJS)
74
+ $(LIBEXE) -c $@ $(LIBOBJS) $(PDCOBJS)
75
+
76
+ SRCBUILD = $(BUILD) $(srcdir)\$*.c
77
+ OSBUILD = $(BUILD) $(osdir)\$*.c
78
+ DEMOBUILD = $(LINK) $(CPPFLAGS) -o+space $@ $**
79
+
80
+ addch.obj: $(srcdir)\addch.c
81
+ $(SRCBUILD)
82
+
83
+ addchstr.obj: $(srcdir)\addchstr.c
84
+ $(SRCBUILD)
85
+
86
+ addstr.obj: $(srcdir)\addstr.c
87
+ $(SRCBUILD)
88
+
89
+ attr.obj: $(srcdir)\attr.c
90
+ $(SRCBUILD)
91
+
92
+ beep.obj: $(srcdir)\beep.c
93
+ $(SRCBUILD)
94
+
95
+ bkgd.obj: $(srcdir)\bkgd.c
96
+ $(SRCBUILD)
97
+
98
+ border.obj: $(srcdir)\border.c
99
+ $(SRCBUILD)
100
+
101
+ clear.obj: $(srcdir)\clear.c
102
+ $(SRCBUILD)
103
+
104
+ color.obj: $(srcdir)\color.c
105
+ $(SRCBUILD)
106
+
107
+ delch.obj: $(srcdir)\delch.c
108
+ $(SRCBUILD)
109
+
110
+ deleteln.obj: $(srcdir)\deleteln.c
111
+ $(SRCBUILD)
112
+
113
+ deprec.obj: $(srcdir)\deprec.c
114
+ $(SRCBUILD)
115
+
116
+ getch.obj: $(srcdir)\getch.c
117
+ $(SRCBUILD)
118
+
119
+ getstr.obj: $(srcdir)\getstr.c
120
+ $(SRCBUILD)
121
+
122
+ getyx.obj: $(srcdir)\getyx.c
123
+ $(SRCBUILD)
124
+
125
+ inch.obj: $(srcdir)\inch.c
126
+ $(SRCBUILD)
127
+
128
+ inchstr.obj: $(srcdir)\inchstr.c
129
+ $(SRCBUILD)
130
+
131
+ initscr.obj: $(srcdir)\initscr.c
132
+ $(SRCBUILD)
133
+
134
+ inopts.obj: $(srcdir)\inopts.c
135
+ $(SRCBUILD)
136
+
137
+ insch.obj: $(srcdir)\insch.c
138
+ $(SRCBUILD)
139
+
140
+ insstr.obj: $(srcdir)\insstr.c
141
+ $(SRCBUILD)
142
+
143
+ instr.obj: $(srcdir)\instr.c
144
+ $(SRCBUILD)
145
+
146
+ kernel.obj: $(srcdir)\kernel.c
147
+ $(SRCBUILD)
148
+
149
+ keyname.obj: $(srcdir)\keyname.c
150
+ $(SRCBUILD)
151
+
152
+ mouse.obj: $(srcdir)\mouse.c
153
+ $(SRCBUILD)
154
+
155
+ move.obj: $(srcdir)\move.c
156
+ $(SRCBUILD)
157
+
158
+ outopts.obj: $(srcdir)\outopts.c
159
+ $(SRCBUILD)
160
+
161
+ overlay.obj: $(srcdir)\overlay.c
162
+ $(SRCBUILD)
163
+
164
+ pad.obj: $(srcdir)\pad.c
165
+ $(SRCBUILD)
166
+
167
+ panel.obj: $(srcdir)\panel.c
168
+ $(SRCBUILD)
169
+
170
+ printw.obj: $(srcdir)\printw.c
171
+ $(SRCBUILD)
172
+
173
+ refresh.obj: $(srcdir)\refresh.c
174
+ $(SRCBUILD)
175
+
176
+ scanw.obj: $(srcdir)\scanw.c
177
+ $(SRCBUILD)
178
+
179
+ scr_dump.obj: $(srcdir)\scr_dump.c
180
+ $(SRCBUILD)
181
+
182
+ scroll.obj: $(srcdir)\scroll.c
183
+ $(SRCBUILD)
184
+
185
+ slk.obj: $(srcdir)\slk.c
186
+ $(SRCBUILD)
187
+
188
+ termattr.obj: $(srcdir)\termattr.c
189
+ $(SRCBUILD)
190
+
191
+ terminfo.obj: $(srcdir)\terminfo.c
192
+ $(SRCBUILD)
193
+
194
+ touch.obj: $(srcdir)\touch.c
195
+ $(SRCBUILD)
196
+
197
+ util.obj: $(srcdir)\util.c
198
+ $(SRCBUILD)
199
+
200
+ window.obj: $(srcdir)\window.c
201
+ $(SRCBUILD)
202
+
203
+ debug.obj: $(srcdir)\debug.c
204
+ $(SRCBUILD)
205
+
206
+ pdcclip.obj: $(osdir)\pdcclip.c
207
+ $(OSBUILD)
208
+
209
+ pdcdisp.obj: $(osdir)\pdcdisp.c
210
+ $(OSBUILD)
211
+
212
+ pdcgetsc.obj: $(osdir)\pdcgetsc.c
213
+ $(OSBUILD)
214
+
215
+ pdckbd.obj: $(osdir)\pdckbd.c
216
+ $(OSBUILD)
217
+
218
+ pdcscrn.obj: $(osdir)\pdcscrn.c
219
+ $(OSBUILD)
220
+
221
+ pdcsetsc.obj: $(osdir)\pdcsetsc.c
222
+ $(OSBUILD)
223
+
224
+ pdcutil.obj: $(osdir)\pdcutil.c
225
+ $(OSBUILD)
226
+
227
+ firework.exe: $(demodir)\firework.c
228
+ $(DEMOBUILD)
229
+
230
+ ozdemo.exe: $(demodir)\ozdemo.c
231
+ $(DEMOBUILD)
232
+
233
+ newtest.exe: $(demodir)\newtest.c
234
+ $(DEMOBUILD)
235
+
236
+ ptest.exe: $(demodir)\ptest.c
237
+ $(DEMOBUILD)
238
+
239
+ rain.exe: $(demodir)\rain.c
240
+ $(DEMOBUILD)
241
+
242
+ testcurs.exe: $(demodir)\testcurs.c
243
+ $(DEMOBUILD) advapi32.lib
244
+
245
+ tuidemo.exe: tuidemo.obj tui.obj
246
+ $(DEMOBUILD)
247
+
248
+ worm.exe: $(demodir)\worm.c
249
+ $(DEMOBUILD)
250
+
251
+ xmas.exe: $(demodir)\xmas.c
252
+ $(DEMOBUILD)
253
+
254
+ tui.obj: $(demodir)\tui.c $(demodir)\tui.h
255
+ $(BUILD) -I$(demodir) $(demodir)\$*.c
256
+
257
+ tuidemo.obj: $(demodir)\tuidemo.c
258
+ $(BUILD) -I$(demodir) $(demodir)\$*.c