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,107 @@
1
+ # Watcom WMAKE Makefile for PDCurses library - DOS (16 bit) or DOS/4GW Watcom C/C++ 10.6+
2
+ #
3
+ # Usage: wmake -f [path/]Makefile.wcc [DEBUG=Y] [MODEL=c|h|l|m|s|f]
4
+ # [CROSS=Y|N] [CHTYPE=[-DCHTYPE_16|-DCHTYPE_32]] [target]
5
+ #
6
+ # where target can be any of:
7
+ # [all|demos|pdcurses.lib|testcurs.exe...]
8
+ #
9
+ # and MODEL specifies the memory model (16-bit compact/huge/large/medium/
10
+ # small, or 32-bit flat)
11
+ #
12
+ # and CROSS=Y (CROSS=N) means to assume we are (are not) cross-compiling
13
+ # (default is to auto-detect)
14
+ #
15
+ # and CHTYPE is an optional compiler flag to set the size of chtype (default
16
+ # is 64 bits)
17
+
18
+ # Change the memory MODEL here, if desired
19
+ !ifndef MODEL
20
+ MODEL = l
21
+ !endif
22
+
23
+ !ifdef %PDCURSES_SRCDIR
24
+ PDCURSES_SRCDIR = $(%PDCURSES_SRCDIR)
25
+ !else
26
+ PDCURSES_SRCDIR = ..
27
+ !endif
28
+
29
+ !include $(PDCURSES_SRCDIR)/version.mif
30
+
31
+ !ifndef CROSS
32
+ !ifeq %SHELL /bin/bash
33
+ # assume we are cross-compiling
34
+ CROSS = Y
35
+ !endif
36
+ !ifeq %SHELL /bin/sh
37
+ CROSS = Y
38
+ !endif
39
+ !ifeq %SHELL /bin/csh
40
+ CROSS = Y
41
+ !endif
42
+ !ifeq %SHELL /bin/dash
43
+ CROSS = Y
44
+ !endif
45
+ !endif
46
+
47
+ osdir = $(PDCURSES_SRCDIR)/dos
48
+ # Open Watcom README strongly recommends setting WATCOM environment variable...
49
+ !ifeq CROSS Y
50
+ !ifdef %WATCOM
51
+ watcomdir = $(%WATCOM)
52
+ !else
53
+ watcomdir = "`which wcc | xargs realpath | xargs dirname`"/..
54
+ !endif
55
+ !endif
56
+
57
+ !ifneq MODEL f
58
+ CC = wcc
59
+ TARGET = dos
60
+ !else
61
+ CC = wcc386
62
+ TARGET = dos4g
63
+ !endif
64
+
65
+ CFLAGS = -bt=$(TARGET) -zq -wx -m$(MODEL) -i=$(PDCURSES_SRCDIR)
66
+ CFLAGS += $(CHTYPE)
67
+ # the README also recommends setting INCLUDE; if absent, we need an extra -i=
68
+ !ifndef %INCLUDE
69
+ CFLAGS += -i=$(watcomdir)/h
70
+ !endif
71
+
72
+ !ifeq DEBUG Y
73
+ CFLAGS += -d2 -DPDCDEBUG
74
+ LDFLAGS = D W A op q sys $(TARGET)
75
+ !else
76
+ CFLAGS += -oneatx
77
+ LDFLAGS = op q sys $(TARGET)
78
+ !ifeq CROSS Y
79
+ !ifneq MODEL f
80
+ LDFLAGS += libp $(watcomdir)/lib286/dos\;$(watcomdir)/lib286
81
+ !else
82
+ LDFLAGS += libp $(watcomdir)/lib386/dos\;$(watcomdir)/lib386
83
+ !endif
84
+ !endif
85
+ !endif
86
+
87
+ LIBEXE = wlib -q -n -t
88
+
89
+ !include $(PDCURSES_SRCDIR)/watcom.mif
90
+
91
+ $(LIBCURSES) : $(LIBOBJS) $(PDCOBJS)
92
+ %write wccdos.lrf $(LIBOBJS) $(PDCOBJS)
93
+ $(LIBEXE) $@ @wccdos.lrf
94
+ -$(DEL) wccdos.lrf
95
+ -$(COPY) $(LIBCURSES) panel.lib
96
+
97
+ !ifneq MODEL f
98
+ PLATFORM1 = Watcom C++ 16-bit DOS
99
+ PLATFORM2 = Open Watcom 1.6 for 16-bit DOS
100
+ ARCNAME = pdc$(VER)16w
101
+ !else
102
+ PLATFORM1 = Watcom C++ 32-bit DOS
103
+ PLATFORM2 = Open Watcom 1.6 for 32-bit DOS
104
+ ARCNAME = pdc$(VER)32w
105
+ !endif
106
+
107
+ !include $(PDCURSES_SRCDIR)/makedist.mif
@@ -0,0 +1,51 @@
1
+ PDCurses for DOS
2
+ ================
3
+
4
+ This directory contains PDCurses source code files specific to DOS.
5
+
6
+
7
+ Building
8
+ --------
9
+
10
+ - Choose the appropriate makefile for your compiler:
11
+
12
+ Makefile - DJGPP V2
13
+ Makefile.bcc - Borland C++ 3.0+
14
+ Makefile.wcc - Open Watcom 1.8+ (16-bit or 32-bit)
15
+ Makefile.dmc - Digital Mars
16
+ Makefile.msc - Microsoft C
17
+
18
+ - For 16-bit compilers, you can change the memory MODEL in the makefile.
19
+ (Large model is the default, and recommended.)
20
+
21
+ (For Open Watcom, pass MODEL=f (flat model) to "wmake" in order to use
22
+ the 32-bit compiler. Selcting a 16-bit MODEL (e.g. MODEL=l) will
23
+ invoke the 16-bit compiler.)
24
+
25
+ - Optionally, you can build in a different directory than the platform
26
+ directory by setting PDCURSES_SRCDIR to point to the directory where
27
+ you unpacked PDCurses, and changing to your target directory:
28
+
29
+ set PDCURSES_SRCDIR=c:\pdcurses
30
+
31
+ - Build it:
32
+
33
+ make -f makefile
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.
38
+
39
+
40
+ Distribution Status
41
+ -------------------
42
+
43
+ The files in this directory are released to the Public Domain.
44
+
45
+
46
+ Acknowledgements
47
+ ----------------
48
+
49
+ Watcom C port was provided by Pieter Kunst <kunst@prl.philips.nl>
50
+
51
+ DJGPP 1.x port was provided by David Nugent <davidn@csource.oz.au>
@@ -0,0 +1,9 @@
1
+ +addch.obj +addchstr.obj +addstr.obj +attr.obj +beep.obj +bkgd.obj &
2
+ +border.obj +clear.obj +color.obj +delch.obj +deleteln.obj +deprec.obj &
3
+ +getch.obj +getstr.obj +getyx.obj +inch.obj +inchstr.obj +initscr.obj &
4
+ +inopts.obj +insch.obj +insstr.obj +instr.obj +kernel.obj +keyname.obj &
5
+ +mouse.obj +move.obj +outopts.obj +overlay.obj +pad.obj +panel.obj &
6
+ +printw.obj +refresh.obj +scanw.obj +scr_dump.obj +scroll.obj +slk.obj &
7
+ +termattr.obj +terminfo.obj +touch.obj +util.obj +window.obj +debug.obj &
8
+ +pdcclip.obj +pdcdisp.obj +pdcgetsc.obj +pdckbd.obj +pdcscrn.obj &
9
+ +pdcsetsc.obj +pdcutil.obj ,lib.map
@@ -0,0 +1,50 @@
1
+ -+addch.obj &
2
+ -+addchstr.obj &
3
+ -+addstr.obj &
4
+ -+attr.obj &
5
+ -+beep.obj &
6
+ -+bkgd.obj &
7
+ -+border.obj &
8
+ -+clear.obj &
9
+ -+color.obj &
10
+ -+delch.obj &
11
+ -+deleteln.obj &
12
+ -+deprec.obj &
13
+ -+getch.obj &
14
+ -+getstr.obj &
15
+ -+getyx.obj &
16
+ -+inch.obj &
17
+ -+inchstr.obj &
18
+ -+initscr.obj &
19
+ -+inopts.obj &
20
+ -+insch.obj &
21
+ -+insstr.obj &
22
+ -+instr.obj &
23
+ -+kernel.obj &
24
+ -+keyname.obj &
25
+ -+mouse.obj &
26
+ -+move.obj &
27
+ -+outopts.obj &
28
+ -+overlay.obj &
29
+ -+pad.obj &
30
+ -+panel.obj &
31
+ -+printw.obj &
32
+ -+refresh.obj &
33
+ -+scanw.obj &
34
+ -+scr_dump.obj &
35
+ -+scroll.obj &
36
+ -+slk.obj &
37
+ -+termattr.obj &
38
+ -+terminfo.obj &
39
+ -+touch.obj &
40
+ -+util.obj &
41
+ -+window.obj &
42
+ -+debug.obj &
43
+ -+pdcclip.obj &
44
+ -+pdcdisp.obj &
45
+ -+pdcgetsc.obj &
46
+ -+pdckbd.obj &
47
+ -+pdcscrn.obj &
48
+ -+pdcsetsc.obj &
49
+ -+pdcutil.obj &
50
+ ,lib.map;
@@ -0,0 +1,132 @@
1
+ /* Public Domain Curses */
2
+
3
+ #include "pdcdos.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_DOS_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_DOS_clipboard)
62
+ return PDC_CLIP_EMPTY;
63
+
64
+ len = strlen(pdc_DOS_clipboard);
65
+ if ((*contents = malloc(len + 1)) == NULL)
66
+ return PDC_CLIP_MEMORY_ERROR;
67
+
68
+ strcpy(*contents, pdc_DOS_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_DOS_clipboard)
79
+ {
80
+ free(pdc_DOS_clipboard);
81
+ pdc_DOS_clipboard = NULL;
82
+ }
83
+
84
+ if (contents)
85
+ {
86
+ if ((pdc_DOS_clipboard = malloc(length + 1)) == NULL)
87
+ return PDC_CLIP_MEMORY_ERROR;
88
+
89
+ strcpy(pdc_DOS_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
+
104
+ /* NOTE: We free the memory, but we can not set caller's pointer
105
+ to NULL, so if caller calls again then will try to access
106
+ free'd memory. We 1st overwrite memory with a string so if
107
+ caller tries to use free memory they won't get what they
108
+ expect & hopefully notice. */
109
+
110
+ /* memset(contents, 0xFD, strlen(contents)); */
111
+
112
+ if (strlen(contents) >= strlen("PDCURSES"))
113
+ strcpy(contents, "PDCURSES");
114
+
115
+ free(contents);
116
+ }
117
+
118
+ return PDC_CLIP_SUCCESS;
119
+ }
120
+
121
+ int PDC_clearclipboard(void)
122
+ {
123
+ PDC_LOG(("PDC_clearclipboard() - called\n"));
124
+
125
+ if (pdc_DOS_clipboard)
126
+ {
127
+ free(pdc_DOS_clipboard);
128
+ pdc_DOS_clipboard = NULL;
129
+ }
130
+
131
+ return PDC_CLIP_SUCCESS;
132
+ }
@@ -0,0 +1,135 @@
1
+ /* Public Domain Curses */
2
+
3
+ #include "pdcdos.h"
4
+
5
+ /* ACS definitions originally by jshumate@wrdis01.robins.af.mil -- these
6
+ match code page 437 and compatible pages (CP850, CP852, etc.) */
7
+
8
+ #ifdef CHTYPE_LONG
9
+ #define USE_UNICODE_ACS_CHARS 0
10
+ #include "acs_defs.h"
11
+ #endif
12
+
13
+ #ifdef __PACIFIC__
14
+ void movedata(unsigned sseg, unsigned soff, unsigned dseg,
15
+ unsigned doff, unsigned n)
16
+ {
17
+ far char *src = MK_FP(sseg, soff);
18
+ far char *dst = MK_FP(dseg, doff);
19
+
20
+ while (n--)
21
+ *dst++ = *src++;
22
+ }
23
+ #endif
24
+
25
+ /* position hardware cursor at (y, x) */
26
+
27
+ void PDC_gotoyx(int row, int col)
28
+ {
29
+ PDCREGS regs;
30
+
31
+ PDC_LOG(("PDC_gotoyx() - called: row %d col %d\n", row, col));
32
+
33
+ regs.h.ah = 0x02;
34
+ regs.h.bh = 0;
35
+ regs.h.dh = (unsigned char) row;
36
+ regs.h.dl = (unsigned char) col;
37
+ PDCINT(0x10, regs);
38
+ }
39
+
40
+ /* update the given physical line to look like the corresponding line in
41
+ curscr */
42
+
43
+ /* NOTE: the original indexing into pdc_atrtab[] relied on three or five
44
+ attribute bits in 'chtype' being adjacent to the color bits. Such is
45
+ not the case for 64-bit chtypes (CHTYPE_LONG == 2), so we have to do
46
+ additional bit-fiddling for that situation. Code is similar in Win32
47
+ and DOS flavors. (BJG) */
48
+
49
+ void PDC_transform_line(int lineno, int x, int len, const chtype *srcp)
50
+ {
51
+ int j;
52
+
53
+ PDC_LOG(("PDC_transform_line() - called: line %d\n", lineno));
54
+
55
+ if (pdc_direct_video)
56
+ {
57
+ #if SMALL || MEDIUM
58
+ # ifndef __PACIFIC__
59
+ struct SREGS segregs;
60
+ # endif
61
+ int ds;
62
+ #endif
63
+ /* this should be enough for the maximum width of a screen */
64
+
65
+ struct {unsigned char text, attr;} temp_line[256];
66
+
67
+ /* replace the attribute part of the chtype with the actual
68
+ color value for each chtype in the line */
69
+
70
+ for (j = 0; j < len; j++)
71
+ {
72
+ chtype ch = srcp[j];
73
+
74
+ #if defined( CHTYPE_LONG) && (CHTYPE_LONG >= 2)
75
+ temp_line[j].attr = pdc_atrtab[((ch >> PDC_ATTR_SHIFT) & 0x1f)
76
+ | (((ch >> PDC_COLOR_SHIFT) & 0xff) << 5)];
77
+ #else
78
+ temp_line[j].attr = pdc_atrtab[ch >> PDC_ATTR_SHIFT];
79
+ #endif
80
+
81
+ #ifdef CHTYPE_LONG
82
+ if (ch & A_ALTCHARSET && !(ch & 0xff80))
83
+ ch = acs_map[ch & 0x7f];
84
+ #endif
85
+ temp_line[j].text = ch & 0xff;
86
+ }
87
+
88
+ #ifdef __DJGPP__
89
+ dosmemput(temp_line, len * 2,
90
+ (unsigned long)_FAR_POINTER(pdc_video_seg,
91
+ pdc_video_ofs + (lineno * curscr->_maxx + x) * 2));
92
+ #else
93
+ # if SMALL || MEDIUM
94
+ # ifdef __PACIFIC__
95
+ ds = FP_SEG((void far *) temp_line);
96
+ # else
97
+ segread(&segregs);
98
+ ds = segregs.ds;
99
+ # endif
100
+ movedata(ds, (int)temp_line, pdc_video_seg,
101
+ pdc_video_ofs + (lineno * curscr->_maxx + x) * 2, len * 2);
102
+ # else
103
+ memcpy((void *)_FAR_POINTER(pdc_video_seg,
104
+ pdc_video_ofs + (lineno * curscr->_maxx + x) * 2),
105
+ temp_line, len * 2);
106
+ # endif
107
+ #endif
108
+
109
+ }
110
+ else
111
+ for (j = 0; j < len;)
112
+ {
113
+ PDCREGS regs;
114
+ unsigned short count = 1;
115
+ chtype ch = srcp[j];
116
+
117
+ while ((j + count < len) && (ch == srcp[j + count]))
118
+ count++;
119
+
120
+ PDC_gotoyx(lineno, j + x);
121
+
122
+ regs.h.ah = 0x09;
123
+ regs.W.bx = pdc_atrtab[ch >> PDC_ATTR_SHIFT];
124
+ regs.W.cx = count;
125
+ #ifdef CHTYPE_LONG
126
+ if (ch & A_ALTCHARSET && !(ch & 0xff80))
127
+ ch = acs_map[ch & 0x7f];
128
+ #endif
129
+ regs.h.al = (unsigned char) (ch & 0xff);
130
+
131
+ PDCINT(0x10, regs);
132
+
133
+ j += count;
134
+ }
135
+ }