curses 1.4.6 → 1.5.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 (254) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/push_gem.yml +6 -4
  3. data/README.md +8 -1
  4. data/curses.gemspec +2 -2
  5. data/ext/curses/curses.c +188 -12
  6. data/ext/curses/extconf.rb +3 -2
  7. data/lib/curses.rb +7 -0
  8. data/sample/attr_demo.rb +4 -2
  9. data/sample/screen.rb +9 -0
  10. data/vendor/PDCurses/.gitignore +47 -0
  11. data/vendor/PDCurses/.travis.yml +49 -0
  12. data/vendor/PDCurses/CMakeLists.txt +68 -0
  13. data/vendor/PDCurses/HISTORY.md +2036 -0
  14. data/vendor/PDCurses/IMPLEMNT.md +327 -0
  15. data/vendor/PDCurses/Makefile +27 -0
  16. data/vendor/PDCurses/README.md +77 -0
  17. data/vendor/PDCurses/acs_defs.h +265 -0
  18. data/vendor/PDCurses/appveyor.yml +218 -0
  19. data/vendor/PDCurses/cmake/README.md +71 -0
  20. data/vendor/PDCurses/cmake/build_dependencies.cmake +178 -0
  21. data/vendor/PDCurses/cmake/build_options.cmake +25 -0
  22. data/vendor/PDCurses/cmake/dll_version.cmake +26 -0
  23. data/vendor/PDCurses/cmake/gen_config_header.cmake +43 -0
  24. data/vendor/PDCurses/cmake/get_version.cmake +17 -0
  25. data/vendor/PDCurses/cmake/make_uninstall.cmake +19 -0
  26. data/vendor/PDCurses/cmake/project_common.cmake +121 -0
  27. data/vendor/PDCurses/cmake/resource.in.cmake +52 -0
  28. data/vendor/PDCurses/cmake/sdl2_ttf/CMakeLists.txt +83 -0
  29. data/vendor/PDCurses/cmake/target_arch.cmake +36 -0
  30. data/vendor/PDCurses/cmake/version.in.cmake +73 -0
  31. data/vendor/PDCurses/cmake/watcom_open_dos16_toolchain.cmake +96 -0
  32. data/vendor/PDCurses/cmake/watcom_open_dos32_toolchain.cmake +106 -0
  33. data/vendor/PDCurses/cmake/watcom_open_os2v2_toolchain.cmake +105 -0
  34. data/vendor/PDCurses/curses.h +1846 -0
  35. data/vendor/PDCurses/curspriv.h +134 -0
  36. data/vendor/PDCurses/demos/README.md +25 -0
  37. data/vendor/PDCurses/demos/firework.c +144 -0
  38. data/vendor/PDCurses/demos/newtest.c +581 -0
  39. data/vendor/PDCurses/demos/ozdemo.c +447 -0
  40. data/vendor/PDCurses/demos/ptest.c +283 -0
  41. data/vendor/PDCurses/demos/rain.c +157 -0
  42. data/vendor/PDCurses/demos/testcurs.c +1607 -0
  43. data/vendor/PDCurses/demos/tui.c +1048 -0
  44. data/vendor/PDCurses/demos/tui.h +65 -0
  45. data/vendor/PDCurses/demos/tuidemo.c +233 -0
  46. data/vendor/PDCurses/demos/version.c +61 -0
  47. data/vendor/PDCurses/demos/worm.c +432 -0
  48. data/vendor/PDCurses/demos/xmas.c +955 -0
  49. data/vendor/PDCurses/dos/CMakeLists.txt +47 -0
  50. data/vendor/PDCurses/dos/Makefile +105 -0
  51. data/vendor/PDCurses/dos/Makefile.bcc +83 -0
  52. data/vendor/PDCurses/dos/Makefile.dmc +257 -0
  53. data/vendor/PDCurses/dos/Makefile.msc +113 -0
  54. data/vendor/PDCurses/dos/Makefile.wcc +107 -0
  55. data/vendor/PDCurses/dos/README.md +51 -0
  56. data/vendor/PDCurses/dos/bccdos.lrf +9 -0
  57. data/vendor/PDCurses/dos/mscdos.lrf +50 -0
  58. data/vendor/PDCurses/dos/pdcclip.c +132 -0
  59. data/vendor/PDCurses/dos/pdcdisp.c +135 -0
  60. data/vendor/PDCurses/dos/pdcdos.h +194 -0
  61. data/vendor/PDCurses/dos/pdcgetsc.c +98 -0
  62. data/vendor/PDCurses/dos/pdckbd.c +513 -0
  63. data/vendor/PDCurses/dos/pdcscrn.c +785 -0
  64. data/vendor/PDCurses/dos/pdcsetsc.c +101 -0
  65. data/vendor/PDCurses/dos/pdcutil.c +212 -0
  66. data/vendor/PDCurses/libobjs.mif +26 -0
  67. data/vendor/PDCurses/makedist.mif +20 -0
  68. data/vendor/PDCurses/man/Makefile +37 -0
  69. data/vendor/PDCurses/man/README.md +21 -0
  70. data/vendor/PDCurses/man/intro.md +361 -0
  71. data/vendor/PDCurses/man/manext.c +119 -0
  72. data/vendor/PDCurses/man/sdl.md +152 -0
  73. data/vendor/PDCurses/man/sdl2.md +58 -0
  74. data/vendor/PDCurses/man/x11.md +407 -0
  75. data/vendor/PDCurses/ncurses/CMakeLists.txt +66 -0
  76. data/vendor/PDCurses/ncurses/README.md +26 -0
  77. data/vendor/PDCurses/ncurses/makefile +29 -0
  78. data/vendor/PDCurses/os2/CMakeLists.txt +41 -0
  79. data/vendor/PDCurses/os2/Makefile +132 -0
  80. data/vendor/PDCurses/os2/Makefile.bcc +90 -0
  81. data/vendor/PDCurses/os2/Makefile.wcc +43 -0
  82. data/vendor/PDCurses/os2/README.md +43 -0
  83. data/vendor/PDCurses/os2/iccos2.lrf +50 -0
  84. data/vendor/PDCurses/os2/iccos2.mak +256 -0
  85. data/vendor/PDCurses/os2/pdcclip.c +188 -0
  86. data/vendor/PDCurses/os2/pdcdisp.c +93 -0
  87. data/vendor/PDCurses/os2/pdcgetsc.c +89 -0
  88. data/vendor/PDCurses/os2/pdckbd.c +521 -0
  89. data/vendor/PDCurses/os2/pdcos2.h +55 -0
  90. data/vendor/PDCurses/os2/pdcscrn.c +449 -0
  91. data/vendor/PDCurses/os2/pdcsetsc.c +112 -0
  92. data/vendor/PDCurses/os2/pdcutil.c +52 -0
  93. data/vendor/PDCurses/panel.h +56 -0
  94. data/vendor/PDCurses/pdcurses/README.md +25 -0
  95. data/vendor/PDCurses/pdcurses/addch.c +693 -0
  96. data/vendor/PDCurses/pdcurses/addchstr.c +245 -0
  97. data/vendor/PDCurses/pdcurses/addstr.c +240 -0
  98. data/vendor/PDCurses/pdcurses/attr.c +359 -0
  99. data/vendor/PDCurses/pdcurses/beep.c +68 -0
  100. data/vendor/PDCurses/pdcurses/bkgd.c +223 -0
  101. data/vendor/PDCurses/pdcurses/border.c +411 -0
  102. data/vendor/PDCurses/pdcurses/clear.c +159 -0
  103. data/vendor/PDCurses/pdcurses/color.c +298 -0
  104. data/vendor/PDCurses/pdcurses/debug.c +109 -0
  105. data/vendor/PDCurses/pdcurses/delch.c +96 -0
  106. data/vendor/PDCurses/pdcurses/deleteln.c +211 -0
  107. data/vendor/PDCurses/pdcurses/deprec.c +27 -0
  108. data/vendor/PDCurses/pdcurses/getch.c +417 -0
  109. data/vendor/PDCurses/pdcurses/getstr.c +474 -0
  110. data/vendor/PDCurses/pdcurses/getyx.c +139 -0
  111. data/vendor/PDCurses/pdcurses/inch.c +127 -0
  112. data/vendor/PDCurses/pdcurses/inchstr.c +214 -0
  113. data/vendor/PDCurses/pdcurses/initscr.c +367 -0
  114. data/vendor/PDCurses/pdcurses/inopts.c +324 -0
  115. data/vendor/PDCurses/pdcurses/insch.c +271 -0
  116. data/vendor/PDCurses/pdcurses/insstr.c +264 -0
  117. data/vendor/PDCurses/pdcurses/instr.c +246 -0
  118. data/vendor/PDCurses/pdcurses/kernel.c +259 -0
  119. data/vendor/PDCurses/pdcurses/keyname.c +157 -0
  120. data/vendor/PDCurses/pdcurses/mouse.c +438 -0
  121. data/vendor/PDCurses/pdcurses/move.c +57 -0
  122. data/vendor/PDCurses/pdcurses/outopts.c +159 -0
  123. data/vendor/PDCurses/pdcurses/overlay.c +214 -0
  124. data/vendor/PDCurses/pdcurses/pad.c +260 -0
  125. data/vendor/PDCurses/pdcurses/panel.c +633 -0
  126. data/vendor/PDCurses/pdcurses/printw.c +126 -0
  127. data/vendor/PDCurses/pdcurses/refresh.c +279 -0
  128. data/vendor/PDCurses/pdcurses/scanw.c +578 -0
  129. data/vendor/PDCurses/pdcurses/scr_dump.c +213 -0
  130. data/vendor/PDCurses/pdcurses/scroll.c +101 -0
  131. data/vendor/PDCurses/pdcurses/slk.c +591 -0
  132. data/vendor/PDCurses/pdcurses/termattr.c +182 -0
  133. data/vendor/PDCurses/pdcurses/terminfo.c +217 -0
  134. data/vendor/PDCurses/pdcurses/touch.c +163 -0
  135. data/vendor/PDCurses/pdcurses/util.c +312 -0
  136. data/vendor/PDCurses/pdcurses/window.c +569 -0
  137. data/vendor/PDCurses/sdl1/Makefile +129 -0
  138. data/vendor/PDCurses/sdl1/Makefile.mng +110 -0
  139. data/vendor/PDCurses/sdl1/README.md +31 -0
  140. data/vendor/PDCurses/sdl1/deffont.h +385 -0
  141. data/vendor/PDCurses/sdl1/deficon.h +23 -0
  142. data/vendor/PDCurses/sdl1/pdcclip.c +131 -0
  143. data/vendor/PDCurses/sdl1/pdcdisp.c +373 -0
  144. data/vendor/PDCurses/sdl1/pdcgetsc.c +30 -0
  145. data/vendor/PDCurses/sdl1/pdckbd.c +405 -0
  146. data/vendor/PDCurses/sdl1/pdcscrn.c +414 -0
  147. data/vendor/PDCurses/sdl1/pdcsdl.h +31 -0
  148. data/vendor/PDCurses/sdl1/pdcsetsc.c +64 -0
  149. data/vendor/PDCurses/sdl1/pdcutil.c +40 -0
  150. data/vendor/PDCurses/sdl1/sdltest.c +79 -0
  151. data/vendor/PDCurses/sdl2/CMakeLists.txt +76 -0
  152. data/vendor/PDCurses/sdl2/Makefile +135 -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 +135 -0
  170. data/vendor/PDCurses/vt/Makefile.bcc +111 -0
  171. data/vendor/PDCurses/vt/Makefile.dmc +258 -0
  172. data/vendor/PDCurses/vt/Makefile.vc +144 -0
  173. data/vendor/PDCurses/vt/Makefile.wcc +107 -0
  174. data/vendor/PDCurses/vt/README.md +64 -0
  175. data/vendor/PDCurses/vt/pdcclip.c +20 -0
  176. data/vendor/PDCurses/vt/pdcdisp.c +284 -0
  177. data/vendor/PDCurses/vt/pdcgetsc.c +27 -0
  178. data/vendor/PDCurses/vt/pdckbd.c +394 -0
  179. data/vendor/PDCurses/vt/pdcscrn.c +434 -0
  180. data/vendor/PDCurses/vt/pdcsetsc.c +45 -0
  181. data/vendor/PDCurses/vt/pdcutil.c +43 -0
  182. data/vendor/PDCurses/vt/pdcvt.h +16 -0
  183. data/vendor/PDCurses/watcom.mif +68 -0
  184. data/vendor/PDCurses/wincon/CMakeLists.txt +27 -0
  185. data/vendor/PDCurses/wincon/Makefile.bcc +88 -0
  186. data/vendor/PDCurses/wincon/Makefile.dmc +256 -0
  187. data/vendor/PDCurses/wincon/Makefile.lcc +273 -0
  188. data/vendor/PDCurses/wincon/Makefile.mng +176 -0
  189. data/vendor/PDCurses/wincon/Makefile.vc +144 -0
  190. data/vendor/PDCurses/wincon/Makefile.wcc +51 -0
  191. data/vendor/PDCurses/wincon/README.md +85 -0
  192. data/vendor/PDCurses/wincon/pdcclip.c +174 -0
  193. data/vendor/PDCurses/wincon/pdcdisp.c +143 -0
  194. data/vendor/PDCurses/wincon/pdcgetsc.c +55 -0
  195. data/vendor/PDCurses/wincon/pdckbd.c +786 -0
  196. data/vendor/PDCurses/wincon/pdcscrn.c +717 -0
  197. data/vendor/PDCurses/wincon/pdcsetsc.c +91 -0
  198. data/vendor/PDCurses/wincon/pdcurses.ico +0 -0
  199. data/vendor/PDCurses/wincon/pdcurses.rc +28 -0
  200. data/vendor/PDCurses/wincon/pdcutil.c +41 -0
  201. data/vendor/PDCurses/wincon/pdcwin.h +31 -0
  202. data/vendor/PDCurses/wingui/CMakeLists.txt +27 -0
  203. data/vendor/PDCurses/wingui/Makefile.bcc +85 -0
  204. data/vendor/PDCurses/wingui/Makefile.dmc +259 -0
  205. data/vendor/PDCurses/wingui/Makefile.lcc +273 -0
  206. data/vendor/PDCurses/wingui/Makefile.mng +171 -0
  207. data/vendor/PDCurses/wingui/Makefile.vc +144 -0
  208. data/vendor/PDCurses/wingui/Makefile.wcc +51 -0
  209. data/vendor/PDCurses/wingui/README.md +93 -0
  210. data/vendor/PDCurses/wingui/pdcclip.c +174 -0
  211. data/vendor/PDCurses/wingui/pdcdisp.c +718 -0
  212. data/vendor/PDCurses/wingui/pdcgetsc.c +30 -0
  213. data/vendor/PDCurses/wingui/pdckbd.c +143 -0
  214. data/vendor/PDCurses/wingui/pdcscrn.c +2797 -0
  215. data/vendor/PDCurses/wingui/pdcsetsc.c +89 -0
  216. data/vendor/PDCurses/wingui/pdcurses.ico +0 -0
  217. data/vendor/PDCurses/wingui/pdcurses.rc +28 -0
  218. data/vendor/PDCurses/wingui/pdcutil.c +61 -0
  219. data/vendor/PDCurses/wingui/pdcwin.h +122 -0
  220. data/vendor/PDCurses/x11/Makefile.in +754 -0
  221. data/vendor/PDCurses/x11/PDCurses.spec +82 -0
  222. data/vendor/PDCurses/x11/README.md +62 -0
  223. data/vendor/PDCurses/x11/ScrollBox.c +319 -0
  224. data/vendor/PDCurses/x11/ScrollBox.h +51 -0
  225. data/vendor/PDCurses/x11/ScrollBoxP.h +70 -0
  226. data/vendor/PDCurses/x11/aclocal.m4 +994 -0
  227. data/vendor/PDCurses/x11/big_icon.xbm +46 -0
  228. data/vendor/PDCurses/x11/compose.h +201 -0
  229. data/vendor/PDCurses/x11/config.guess +1500 -0
  230. data/vendor/PDCurses/x11/config.h.in +100 -0
  231. data/vendor/PDCurses/x11/config.sub +1616 -0
  232. data/vendor/PDCurses/x11/configure +6700 -0
  233. data/vendor/PDCurses/x11/configure.ac +295 -0
  234. data/vendor/PDCurses/x11/debian/changelog +6 -0
  235. data/vendor/PDCurses/x11/debian/compat +1 -0
  236. data/vendor/PDCurses/x11/debian/control +11 -0
  237. data/vendor/PDCurses/x11/debian/copyright +27 -0
  238. data/vendor/PDCurses/x11/debian/rules +98 -0
  239. data/vendor/PDCurses/x11/install-sh +253 -0
  240. data/vendor/PDCurses/x11/little_icon.xbm +14 -0
  241. data/vendor/PDCurses/x11/ncurses_cfg.h +45 -0
  242. data/vendor/PDCurses/x11/pdcclip.c +173 -0
  243. data/vendor/PDCurses/x11/pdcdisp.c +85 -0
  244. data/vendor/PDCurses/x11/pdcgetsc.c +28 -0
  245. data/vendor/PDCurses/x11/pdckbd.c +104 -0
  246. data/vendor/PDCurses/x11/pdcscrn.c +258 -0
  247. data/vendor/PDCurses/x11/pdcsetsc.c +95 -0
  248. data/vendor/PDCurses/x11/pdcutil.c +52 -0
  249. data/vendor/PDCurses/x11/pdcx11.c +316 -0
  250. data/vendor/PDCurses/x11/pdcx11.h +191 -0
  251. data/vendor/PDCurses/x11/sb.c +155 -0
  252. data/vendor/PDCurses/x11/x11.c +3686 -0
  253. data/vendor/PDCurses/x11/xcurses-config.in +81 -0
  254. metadata +249 -8
@@ -0,0 +1,176 @@
1
+ # GNU MAKE Makefile for PDCurses library - Windows console MinGW GCC
2
+ #
3
+ # Usage: make -f [path\]Makefile.mng [DEBUG=Y] [DLL=Y] [WIDE=Y] [UTF8=Y] [target]
4
+ #
5
+ # where target can be any of:
6
+ # [all|demos|pdcurses.a|testcurs.exe...]
7
+
8
+ O = o
9
+
10
+ ifndef PDCURSES_SRCDIR
11
+ PDCURSES_SRCDIR = ..
12
+ endif
13
+
14
+ include $(PDCURSES_SRCDIR)/version.mif
15
+ include $(PDCURSES_SRCDIR)/libobjs.mif
16
+
17
+ uname_S := $(shell uname -s 2>/dev/null)
18
+
19
+ CAT = cat
20
+ PREFIX =
21
+ PATH_SEP = /
22
+ CP = cp
23
+ DELETE = rm -f
24
+
25
+ # It appears we have three cases: we're running in Cygwin/MSYS; or we're
26
+ # running in command.com on Windows with MinGW; or we're on Linux or BSD
27
+ # or similar system, cross-compiling with MinGW.
28
+
29
+ ifneq (,$(findstring CYGWIN,$(uname_S)))
30
+ # Insert Cygwin-specific changes here
31
+ ON_WINDOWS = 1
32
+ endif
33
+ ifneq (,$(findstring MINGW32_NT,$(uname_S)))
34
+ # Insert MINGW32-specific changes here
35
+ ON_WINDOWS = 1
36
+ endif
37
+ ifneq (,$(findstring MINGW64_NT,$(uname_S)))
38
+ # Insert MINGW64-specific changes here
39
+ ON_WINDOWS = 1
40
+ endif
41
+
42
+ ifeq ($(uname_S),)
43
+ CAT = type
44
+ PATH_SEP = \\
45
+ CP = -copy
46
+ DELETE = -del
47
+ ON_WINDOWS = 1
48
+ endif
49
+
50
+ # If we aren't on Windows, assume MinGW on a Linux-like host
51
+ # Only decision is: are we doing a 64-bit compile (_w64 defined)?
52
+
53
+ ifndef ON_WINDOWS
54
+ ifdef _w64
55
+ PREFIX = x86_64-w64-mingw32-
56
+ else
57
+ PREFIX = i686-w64-mingw32-
58
+ endif
59
+ endif
60
+
61
+ osdir = $(PDCURSES_SRCDIR)/wincon
62
+
63
+ PDCURSES_WIN_H = $(osdir)/pdcwin.h
64
+
65
+ CC = $(PREFIX)gcc
66
+
67
+ ifeq ($(DEBUG),Y)
68
+ CFLAGS = -g -Wall -DPDCDEBUG
69
+ LDFLAGS = -g
70
+ else
71
+ CFLAGS = -O4 -Wall -pedantic
72
+ LDFLAGS =
73
+ endif
74
+
75
+ CFLAGS += -I$(PDCURSES_SRCDIR)
76
+
77
+ ifdef CHTYPE_32
78
+ CFLAGS += -DCHTYPE_32
79
+ endif
80
+
81
+ ifdef CHTYPE_16
82
+ CFLAGS += -DCHTYPE_16
83
+ endif
84
+
85
+ ifeq ($(WIDE),Y)
86
+ CFLAGS += -DPDC_WIDE
87
+ endif
88
+
89
+ ifeq ($(UTF8),Y)
90
+ CFLAGS += -DPDC_FORCE_UTF8
91
+ endif
92
+
93
+ ifeq ($(INFOEX),N)
94
+ PDCCFLAGS += -DHAVE_NO_INFOEX
95
+ else
96
+ ifeq ($(INFOEX),Y)
97
+ PDCCFLAGS += -DHAVE_INFOEX
98
+ endif
99
+ endif
100
+
101
+ LINK = $(PREFIX)gcc
102
+
103
+ ifeq ($(DLL),Y)
104
+ CFLAGS += -DPDC_DLL_BUILD
105
+ LIBEXE = $(PREFIX)gcc
106
+ LIBFLAGS = -Wl,--out-implib,pdcurses.a -shared -o
107
+ LIBCURSES = pdcurses.dll
108
+ LIBDEPS = $(LIBOBJS) $(PDCOBJS)
109
+ LIBSADDED =
110
+ EXELIBS =
111
+ CLEAN = $(LIBCURSES) *.a
112
+ else
113
+ LIBEXE = $(PREFIX)ar
114
+ ifeq ($(PREFIX),)
115
+ LIBFLAGS = rcv
116
+ else
117
+ LIBFLAGS = rv
118
+ endif
119
+ LIBCURSES = pdcurses.a
120
+ LIBDEPS = $(LIBOBJS) $(PDCOBJS)
121
+ LIBSADDED =
122
+ EXELIBS =
123
+ CLEAN = *.a
124
+ endif
125
+
126
+ .PHONY: all libs clean demos dist
127
+
128
+ all: libs demos
129
+
130
+ libs: $(LIBCURSES)
131
+
132
+ clean:
133
+ $(DELETE) *.o
134
+ $(DELETE) *.exe
135
+ $(DELETE) *.dll
136
+ $(DELETE) $(CLEAN)
137
+
138
+ demos: $(DEMOS)
139
+ ifneq ($(DEBUG),Y)
140
+ strip *.exe
141
+ endif
142
+
143
+ $(LIBCURSES) : $(LIBDEPS)
144
+ $(LIBEXE) $(LIBFLAGS) $@ $? $(LIBSADDED)
145
+ $(CP) pdcurses.a panel.a
146
+
147
+ $(LIBOBJS) $(PDCOBJS) : $(PDCURSES_HEADERS)
148
+ $(PDCOBJS) : $(PDCURSES_WIN_H)
149
+ $(DEMOS) : $(PDCURSES_CURSES_H) $(LIBCURSES)
150
+ panel.o : $(PANEL_HEADER)
151
+ terminfo.o: $(TERM_HEADER)
152
+
153
+ $(LIBOBJS) : %.o: $(srcdir)/%.c
154
+ $(CC) -c $(CFLAGS) $<
155
+
156
+ $(PDCOBJS) : %.o: $(osdir)/%.c
157
+ $(CC) -c $(CFLAGS) $(PDCCFLAGS) $<
158
+
159
+ firework.exe ozdemo.exe newtest.exe ptest.exe rain.exe testcurs.exe \
160
+ version.exe worm.exe xmas.exe: %.exe: $(demodir)/%.c
161
+ $(CC) $(CFLAGS) -o$@ $< $(LIBCURSES) $(EXELIBS)
162
+
163
+ tuidemo.exe: tuidemo.o tui.o
164
+ $(LINK) $(LDFLAGS) -o$@ tuidemo.o tui.o $(LIBCURSES) $(EXELIBS)
165
+
166
+ tui.o: $(demodir)/tui.c $(demodir)/tui.h $(PDCURSES_CURSES_H)
167
+ $(CC) -c $(CFLAGS) -I$(demodir) -o$@ $<
168
+
169
+ tuidemo.o: $(demodir)/tuidemo.c $(PDCURSES_CURSES_H)
170
+ $(CC) -c $(CFLAGS) -I$(demodir) -o$@ $<
171
+
172
+ PLATFORM1 = MinGW WinCon
173
+ PLATFORM2 = MinGW for WinCon
174
+ ARCNAME = pdc$(VER)_ming_wcon
175
+
176
+ include $(PDCURSES_SRCDIR)/makedist.mif
@@ -0,0 +1,144 @@
1
+ # Visual C++ & Intel(R) NMakefile for PDCurses library - Windows console VC++ 2.0+
2
+ #
3
+ # Usage: nmake -f [path\]Makefile.vc [DEBUG=] [DLL=] [WIDE=] [UTF8=]
4
+ # [ICC=] [CHTYPE_32=] [IX86=] [CHTYPE_16=] [target]
5
+ #
6
+ # where target can be any of:
7
+ # [all|demos|pdcurses.lib|testcurs.exe...]
8
+ # CHTYPE_## is used to override the default 64-bit chtypes in favor
9
+ # of "traditional" 32- or 16-bit chtypes. (Untested for Windows console)
10
+ # IX86 is used to build 32-bit code instead of 64-bit
11
+ # ICC is used to invoke Intel (R) tools icl.exe and xilink.exe, instead of
12
+ # MS tools cl.exe and link.exe
13
+
14
+ O = obj
15
+
16
+ !ifndef PDCURSES_SRCDIR
17
+ PDCURSES_SRCDIR = ..
18
+ !endif
19
+
20
+ !ifdef IX86
21
+ PLATFORM=IX86
22
+ !else
23
+ PLATFORM=X64
24
+ !endif
25
+
26
+ !include $(PDCURSES_SRCDIR)\version.mif
27
+ !include $(PDCURSES_SRCDIR)\libobjs.mif
28
+
29
+ osdir = $(PDCURSES_SRCDIR)\wincon
30
+
31
+ PDCURSES_WIN_H = $(osdir)\pdcwin.h
32
+
33
+ !ifdef ICC
34
+ CC = icl.exe -nologo
35
+ LINK = xilink.exe -nologo
36
+ !else
37
+ CC = cl.exe -nologo
38
+ LINK = link.exe -nologo
39
+ !endif
40
+
41
+ !ifdef DEBUG
42
+ CFLAGS = -Z7 -DPDCDEBUG
43
+ LDFLAGS = -debug -pdb:none
44
+ !else
45
+ CFLAGS = -O1
46
+ LDFLAGS =
47
+ !endif
48
+
49
+ !ifdef WIDE
50
+ WIDEOPT = -DPDC_WIDE
51
+ !endif
52
+
53
+ !ifdef UTF8
54
+ UTF8OPT = -DPDC_FORCE_UTF8
55
+ !endif
56
+
57
+ !ifdef CHTYPE_32
58
+ CHTYPE_FLAGS= -DCHTYPE_32
59
+ !endif
60
+
61
+ !ifdef CHTYPE_16
62
+ CHTYPE_FLAGS= -DCHTYPE_16
63
+ !endif
64
+
65
+ SHL_LD = link $(LDFLAGS) /NOLOGO /DLL /MACHINE:$(PLATFORM) /OUT:pdcurses.dll
66
+
67
+ CCLIBS = user32.lib advapi32.lib
68
+ # may need to add msvcrt.lib for VC 2.x, VC 5.0 doesn't want it
69
+ #CCLIBS = msvcrt.lib user32.lib advapi32.lib
70
+
71
+ LIBEXE = lib -nologo
72
+
73
+ LIBCURSES = pdcurses.lib
74
+ CURSESDLL = pdcurses.dll
75
+
76
+ !ifdef DLL
77
+ DLLOPT = -DPDC_DLL_BUILD
78
+ PDCLIBS = $(CURSESDLL)
79
+ !else
80
+ PDCLIBS = $(LIBCURSES)
81
+ !endif
82
+
83
+ BUILD = $(CC) -I$(PDCURSES_SRCDIR) -c $(CFLAGS) $(CHTYPE_FLAGS) $(DLLOPT) \
84
+ $(WIDEOPT) $(UTF8OPT)
85
+
86
+ all: $(PDCLIBS)
87
+
88
+ clean:
89
+ -del *.obj
90
+ -del *.lib
91
+ -del *.exe
92
+ -del *.dll
93
+ -del *.exp
94
+ -del *.res
95
+
96
+ demos: $(DEMOS)
97
+
98
+ DEMOOBJS = $(DEMOS:.exe=.obj) tui.obj
99
+
100
+ $(LIBOBJS) $(PDCOBJS) : $(PDCURSES_HEADERS)
101
+ $(PDCOBJS) : $(PDCURSES_WIN_H)
102
+ $(DEMOOBJS) : $(PDCURSES_CURSES_H)
103
+ $(DEMOS) : $(LIBCURSES)
104
+ panel.obj : $(PANEL_HEADER)
105
+ terminfo.obj: $(TERM_HEADER)
106
+
107
+ !ifndef DLL
108
+ $(LIBCURSES) : $(LIBOBJS) $(PDCOBJS)
109
+ $(LIBEXE) -out:$@ $(LIBOBJS) $(PDCOBJS)
110
+ !endif
111
+
112
+ $(CURSESDLL) : $(LIBOBJS) $(PDCOBJS) pdcurses.obj
113
+ $(SHL_LD) $(LIBOBJS) $(PDCOBJS) pdcurses.obj $(CCLIBS)
114
+
115
+ pdcurses.res pdcurses.obj: $(osdir)\pdcurses.rc $(osdir)\pdcurses.ico
116
+ rc /r /fopdcurses.res $(osdir)\pdcurses.rc
117
+ cvtres /MACHINE:$(PLATFORM) /NOLOGO /OUT:pdcurses.obj pdcurses.res
118
+
119
+ {$(srcdir)\}.c{}.obj::
120
+ $(BUILD) $<
121
+
122
+ {$(osdir)\}.c{}.obj::
123
+ $(BUILD) $<
124
+
125
+ {$(demodir)\}.c{}.obj::
126
+ $(BUILD) $<
127
+
128
+ .obj.exe:
129
+ $(LINK) $(LDFLAGS) $< $(LIBCURSES) $(CCLIBS)
130
+
131
+ tuidemo.exe: tuidemo.obj tui.obj
132
+ $(LINK) $(LDFLAGS) $*.obj tui.obj $(LIBCURSES) $(CCLIBS)
133
+
134
+ tui.obj: $(demodir)\tui.c $(demodir)\tui.h
135
+ $(BUILD) -I$(demodir) $(demodir)\tui.c
136
+
137
+ tuidemo.obj: $(demodir)\tuidemo.c
138
+ $(BUILD) -I$(demodir) $(demodir)\tuidemo.c
139
+
140
+ PLATFORM1 = Visual C++
141
+ PLATFORM2 = Microsoft Visual C/C++ for Windows console
142
+ ARCNAME = pdc$(VER)_vc_wincon
143
+
144
+ !include $(PDCURSES_SRCDIR)\makedist.mif
@@ -0,0 +1,51 @@
1
+ # Watcom WMAKE Makefile for PDCurses library - Windows console Watcom C/C++ 10.6+
2
+ #
3
+ # Usage: wmake -f [wincon\]Makefile.wcc [DEBUG=Y] [WIDE=Y] [UTF8=Y] [target]
4
+ #
5
+ # where target can be any of:
6
+ # [all|demos|pdcurses.lib|testcurs.exe...]
7
+
8
+ !ifdef %PDCURSES_SRCDIR
9
+ PDCURSES_SRCDIR = $(%PDCURSES_SRCDIR)
10
+ !else
11
+ PDCURSES_SRCDIR = ..
12
+ !endif
13
+
14
+ !include $(PDCURSES_SRCDIR)\version.mif
15
+
16
+ osdir = $(PDCURSES_SRCDIR)\wincon
17
+
18
+ CC = wcc386
19
+ TARGET = nt
20
+
21
+ CFLAGS = /ei /zq /wx /i=$(PDCURSES_SRCDIR)
22
+
23
+ !ifeq DEBUG Y
24
+ CFLAGS += /d2 /DPDCDEBUG
25
+ LDFLAGS = D W A op q sys $(TARGET)
26
+ !else
27
+ CFLAGS += /oneatx
28
+ LDFLAGS = op q sys $(TARGET)
29
+ !endif
30
+
31
+ !ifeq WIDE Y
32
+ CFLAGS += /DPDC_WIDE
33
+ !endif
34
+
35
+ !ifeq UTF8 Y
36
+ CFLAGS += /DPDC_FORCE_UTF8
37
+ !endif
38
+
39
+ LIBEXE = wlib /q /n /t
40
+
41
+ !include $(PDCURSES_SRCDIR)\watcom.mif
42
+
43
+ $(LIBCURSES) : $(LIBOBJS) $(PDCOBJS)
44
+ $(LIBEXE) $@ $(LIBOBJS) $(PDCOBJS)
45
+ -copy $(LIBCURSES) panel.lib
46
+
47
+ PLATFORM1 = Watcom C++ WinCon
48
+ PLATFORM2 = Open Watcom 1.6 for Windows console
49
+ ARCNAME = pdc$(VER)_wcc_w32
50
+
51
+ !include $(PDCURSES_SRCDIR)\makedist.mif
@@ -0,0 +1,85 @@
1
+ PDCurses for Win32
2
+ ==================
3
+
4
+ This directory contains PDCurses source code files specific to Win32
5
+ console mode (Win95 and all subsequent forks of Windows).
6
+
7
+ Building
8
+ --------
9
+
10
+ (Note that the following is almost identical to the instructions
11
+ for the Win32a GUI flavor of PDCurses.)
12
+
13
+ - Choose the appropriate makefile for your compiler:
14
+
15
+ Makefile.bcc - Borland C++ 4.0.2+
16
+ Makefile.dmc - Digital Mars
17
+ Makefile.lcc - LCC-Win32
18
+ Makefile.mng - MinGW, Cygnus GNU Compiler
19
+ Makefile.vc - Microsoft Visual C++ 2.0+ or later & Intel(R) compiler
20
+ Makefile.wcc - Open Watcom 1.8+
21
+
22
+ - Optionally, you can build in a different directory than the platform
23
+ directory by setting PDCURSES_SRCDIR to point to the directory where
24
+ you unpacked PDCurses, and changing to your target directory:
25
+
26
+ set PDCURSES_SRCDIR=c:\pdcurses
27
+
28
+ This won't work with the LCC or Digital Mars makefiles, nor will the
29
+ options described below.
30
+
31
+ - Build it:
32
+
33
+ make -f makefilename
34
+
35
+ (For Watcom, use "wmake" instead of "make"; for MSVC, "nmake".) You'll
36
+ get the libraries (pdcurses.lib or .a, depending on your compiler; and
37
+ panel.lib or .a), the demos (*.exe), and a lot of object files. Note
38
+ that the panel library is just a copy of the main library, provided
39
+ for convenience; both panel and curses functions are in the main
40
+ library.
41
+
42
+ You can also give the optional parameter "WIDE=Y", to build the
43
+ library with wide-character (Unicode) support:
44
+
45
+ make -f Makefile.mng WIDE=Y
46
+
47
+ When built this way, the library is not compatible with Windows 9x,
48
+ unless you also link with the Microsoft Layer for Unicode (not
49
+ tested).
50
+
51
+ For the Intel(R) compiler, use Makefile.vc and add ICC=Y.
52
+
53
+ By default, Makefile.vc results in 64-bit code for both VC and Intel(R).
54
+ Add IX86=Y to generate 32-bit code. (Other builds are 32-bit only.)
55
+
56
+ Another option, "UTF8=Y", makes PDCurses ignore the system locale, and
57
+ treat all narrow-character strings as UTF-8. This option has no effect
58
+ unless WIDE=Y is also set. Use it to get around the poor support for
59
+ UTF-8 in the Win32 console:
60
+
61
+ make -f Makefile.mng WIDE=Y UTF8=Y
62
+
63
+ You can also use the optional parameter "DLL=Y" with Visual C++,
64
+ MinGW or Cygwin, to build the library as a DLL:
65
+
66
+ nmake -f Makefile.vc WIDE=Y DLL=Y
67
+
68
+ When you build the library as a Windows DLL, you must always define
69
+ PDC_DLL_BUILD when linking against it. (Or, if you only want to use
70
+ the DLL, you could add this definition to your curses.h.)
71
+
72
+ If cross-compiling from Linux, add the parameter `_w64=1` to get
73
+ 64-bit code (default will be 32-bit).
74
+
75
+ make -f Makefile.mng _w64=1 [WIDE=Y UTF8=Y DLL=Y]
76
+
77
+ Distribution Status
78
+ -------------------
79
+
80
+ The files in this directory are released to the Public Domain.
81
+
82
+ Acknowledgements
83
+ ----------------
84
+
85
+ Generic Win32 port was provided by Chris Szurgot <szurgot@itribe.net>
@@ -0,0 +1,174 @@
1
+ /* Public Domain Curses */
2
+
3
+ #include "pdcwin.h"
4
+
5
+ /*man-start**************************************************************
6
+
7
+ clipboard
8
+ ---------
9
+
10
+ ### Synopsis
11
+
12
+ int PDC_getclipboard(char **contents, long *length);
13
+ int PDC_setclipboard(const char *contents, long length);
14
+ int PDC_freeclipboard(char *contents);
15
+ int PDC_clearclipboard(void);
16
+
17
+ ### Description
18
+
19
+ PDC_getclipboard() gets the textual contents of the system's
20
+ clipboard. This function returns the contents of the clipboard
21
+ in the contents argument. It is the responsibility of the
22
+ caller to free the memory returned, via PDC_freeclipboard().
23
+ The length of the clipboard contents is returned in the length
24
+ argument.
25
+
26
+ PDC_setclipboard copies the supplied text into the system's
27
+ clipboard, emptying the clipboard prior to the copy.
28
+
29
+ PDC_clearclipboard() clears the internal clipboard.
30
+
31
+ ### Return Values
32
+
33
+ indicator of success/failure of call.
34
+ PDC_CLIP_SUCCESS the call was successful
35
+ PDC_CLIP_MEMORY_ERROR unable to allocate sufficient memory for
36
+ the clipboard contents
37
+ PDC_CLIP_EMPTY the clipboard contains no text
38
+ PDC_CLIP_ACCESS_ERROR no clipboard support
39
+
40
+ ### Portability
41
+ X/Open BSD SYS V
42
+ PDC_getclipboard - - -
43
+ PDC_setclipboard - - -
44
+ PDC_freeclipboard - - -
45
+ PDC_clearclipboard - - -
46
+
47
+ **man-end****************************************************************/
48
+
49
+ #ifdef PDC_WIDE
50
+ # define PDC_TEXT CF_UNICODETEXT
51
+ #else
52
+ # define PDC_TEXT CF_OEMTEXT
53
+ #endif
54
+
55
+ int PDC_getclipboard_handle( HANDLE *handle)
56
+ {
57
+ PDC_LOG(("PDC_getclipboard() - called\n"));
58
+
59
+ if (!OpenClipboard(NULL))
60
+ {
61
+ return PDC_CLIP_ACCESS_ERROR;
62
+ }
63
+
64
+ if ((*handle = GetClipboardData(PDC_TEXT)) == NULL)
65
+ {
66
+ CloseClipboard();
67
+ return PDC_CLIP_EMPTY;
68
+ }
69
+
70
+ return PDC_CLIP_SUCCESS;
71
+ }
72
+
73
+ int PDC_getclipboard(char **contents, long *length)
74
+ {
75
+ HANDLE handle;
76
+ int rval = PDC_getclipboard_handle( &handle);
77
+
78
+ if( rval == PDC_CLIP_SUCCESS)
79
+ {
80
+ void *tptr = GlobalLock( handle);
81
+
82
+ if( tptr)
83
+ {
84
+ #ifdef PDC_WIDE
85
+ size_t len = wcslen((wchar_t *)tptr) * 3;
86
+ #else
87
+ size_t len = strlen( tptr);
88
+ #endif
89
+
90
+ *contents = (char *)GlobalAlloc( GMEM_FIXED, len + 1);
91
+
92
+ if( !*contents)
93
+ rval = PDC_CLIP_MEMORY_ERROR;
94
+ else
95
+ {
96
+ #ifdef PDC_WIDE
97
+ len = PDC_wcstombs( (char *)*contents, tptr, len);
98
+ #else
99
+ strcpy((char *)*contents, tptr);
100
+ #endif
101
+ }
102
+ *length = (long)len;
103
+ GlobalUnlock( handle);
104
+ }
105
+ else
106
+ rval = PDC_CLIP_MEMORY_ERROR;
107
+ CloseClipboard();
108
+ }
109
+ return rval;
110
+ }
111
+
112
+ int PDC_setclipboard_raw( const char *contents, long length,
113
+ const bool translate_multibyte_to_wide_char)
114
+ {
115
+ HGLOBAL handle;
116
+ LPTSTR buff;
117
+
118
+ PDC_LOG(("PDC_setclipboard() - called\n"));
119
+
120
+ if (!OpenClipboard(NULL))
121
+ return PDC_CLIP_ACCESS_ERROR;
122
+
123
+ handle = GlobalAlloc(GMEM_MOVEABLE|GMEM_DDESHARE,
124
+ (length + 1) * sizeof(TCHAR));
125
+
126
+ if (!handle)
127
+ return PDC_CLIP_MEMORY_ERROR;
128
+
129
+ buff = GlobalLock(handle);
130
+
131
+ #ifdef PDC_WIDE
132
+ if( translate_multibyte_to_wide_char)
133
+ PDC_mbstowcs((wchar_t *)buff, contents, length);
134
+ else
135
+ memcpy((char *)buff, contents, (length + 1) * sizeof( wchar_t));
136
+ #else
137
+ memcpy((char *)buff, contents, length);
138
+ buff[length] = 0; /* ensure null termination */
139
+ #endif
140
+ GlobalUnlock(handle);
141
+ EmptyClipboard();
142
+
143
+ if( !SetClipboardData(PDC_TEXT, handle))
144
+ {
145
+ GlobalFree(handle);
146
+ return PDC_CLIP_ACCESS_ERROR;
147
+ }
148
+
149
+ CloseClipboard();
150
+
151
+ return PDC_CLIP_SUCCESS;
152
+ }
153
+
154
+ int PDC_setclipboard(const char *contents, long length)
155
+ {
156
+ return( PDC_setclipboard_raw( contents, length, TRUE));
157
+ }
158
+
159
+ int PDC_freeclipboard(char *contents)
160
+ {
161
+ PDC_LOG(("PDC_freeclipboard() - called\n"));
162
+
163
+ GlobalFree(contents);
164
+ return PDC_CLIP_SUCCESS;
165
+ }
166
+
167
+ int PDC_clearclipboard(void)
168
+ {
169
+ PDC_LOG(("PDC_clearclipboard() - called\n"));
170
+
171
+ EmptyClipboard();
172
+
173
+ return PDC_CLIP_SUCCESS;
174
+ }