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,2036 @@
1
+ PDCurses 4.0.4 - 2019 Jan 20
2
+ =========================
3
+ Major new feature:
4
+ -------------------
5
+
6
+ - New VT backend. Works within an xterm or xterm-based terminal and some
7
+ other terminals. Mostly works in the Linux console, and on Win10
8
+ directly and on Win9x/DOS if ANSI.SYS (or NANSI or NNANSI .SYS or .COM)
9
+ are installed.
10
+
11
+ Minor new features:
12
+ -------------------
13
+
14
+ - SDL2 variant: dimmed, bold, blinking, and RGB text are handled, as is
15
+ window resizing.
16
+
17
+ - DOS variant: cross-compilation from GNU/Linux works with both DJGPP and
18
+ Watcom C/C++; and, 16-bit and 32-bit Watcom makefiles have been combined
19
+ into one
20
+
21
+ - Many modifications (and some bug fixes) taken from William McBrine's
22
+ branch. An effort has been made to narrow the gap between the forks
23
+ where possible. But both forks are moving targets with different
24
+ design choices and priorities.
25
+
26
+ - Demos improved to show version info
27
+
28
+ Bug fixes
29
+ -------------------
30
+ - compilation warnings/errors with some compilers in some variants #53, #57, #58, #65, ...
31
+
32
+ - newtest sample was broken in all widw variants #60
33
+
34
+ - the paste button printed debug output #62
35
+
36
+ - some corner cases (midnight crossing, atomicity of tick count reads) in
37
+ DOS version of napms() were not handled well
38
+
39
+ PDCurses 4.0.2 - 2017 Sep 12
40
+ =========================
41
+ Major new features:
42
+ -------------------
43
+
44
+ - New WinGUI (Windows GUI) and SDL2 backends.
45
+ SDL1 is still supported, but may eventually go away.
46
+
47
+ - Bold, italic, underlined, overlined, dimmed, 'strikeout', blinking text,
48
+ 256 colors and color pairs, and full RGB colors.
49
+ These are all supported in WinGUI and mostly supported in X11, SDL1 and SDL2.
50
+
51
+ - In WinGUI, one can choose a font, and both programmatic and user resizing
52
+ are supported.
53
+ (Recompiling is necessary to change the font in X11.)
54
+
55
+ - (WinGUI only) Support of SMP Unicode (points beyond 64K) and combining
56
+ characters.
57
+ This may be extended to X11 and SDL2 eventually.
58
+
59
+ - Demos corrected to be buildable and testable with `ncurses`.
60
+
61
+ Minor new features
62
+ -------------------
63
+ (note that not all of these are available on all backends)
64
+
65
+ - Support for up to nine mouse buttons and wheel and tilt-wheel mice, and
66
+ double and triple mouse clicks
67
+
68
+ - (X11, WinGUI, Win32) Extended range of keys that are recognized. This
69
+ now includes most of the "oddball" keys such as 'browser back' and
70
+ 'favorites' found on some keyboards.
71
+
72
+ - Blinking cursors in WinGUI and X11 of various shapes (this could be
73
+ extended to SDLx eventually).
74
+
75
+ - In X11 and WinGUI, one can call resize_term( ) before initscr( ) to set
76
+ the initial window size.
77
+
78
+ - Soft Label Keys (SLKs) are considerably more flexible, with the ability
79
+ to set arbitrary numbers of keys and groupings.
80
+ See slk.c for details. This applies to all backends.
81
+
82
+ - Many changes to `testcurs` to test all these new features, and `newtest`
83
+ added to test still more features.
84
+
85
+ - Option to get detailed version information of the used PDCurses library
86
+ at run time with new exported `PDC_version` as `PDC_version_info` structure.
87
+
88
+ - ACS_x and WACS_x #defines extended to include a lot of "alternative
89
+ characters" that overlap in Unicode and CP-437: double-line box chars,
90
+ card suits, vulgar fractions, etc.
91
+ This applies to all backends. See `acs_defs.h` for the full list.
92
+
93
+ - Cleaned up some makefiles for Win32 and WinGUI.
94
+ On both platforms, `vcwin32.mak` can now be used with the Intel(R) compiler,
95
+ and `mingwin32.mak` can be used to cross-compile from Linux, or in
96
+ `command.com` under Windows, or with Cygwin/MSYS.
97
+ Also added a makefile for Digital Mars for the DOS version.
98
+
99
+ - The "def" files that were needed before to create PDCurses on Windows
100
+ are removed as they are no longer necessary.
101
+
102
+ PDCurses 3.4 - 2008/09/08
103
+ =========================
104
+
105
+ Nothing much new this time, but I've been sitting on some bug fixes for
106
+ almost a year, so it's overdue. Apart from bugs, the main changes are in
107
+ the documentation.
108
+
109
+ New features:
110
+ -------------------
111
+
112
+ - setsyx() is now a function rather than a macro.
113
+
114
+ Bug fixes and such:
115
+ -------------------
116
+
117
+ - In x11, the xc_atrtab table size was under-calculated by half,
118
+ resulting in crashes at (oddly) certain line counts. (It should've
119
+ crashed a lot more.) Reported by Mark Hessling.
120
+
121
+ - Test for moved cursor was omitting the window origin offset. Reported
122
+ by Carey Evans.
123
+
124
+ - Is DOS and OS/2, the value for max items in key_table was still wrong.
125
+ Reported by C.E.
126
+
127
+ - Changed isendwin() so it won't crash after delscreen().
128
+
129
+ - Ensure zero-termination in PDC_mbstowcs() and PDC_wcstombs().
130
+
131
+ - Disable QuickEdit Mode when enabling mouse input for the Win32
132
+ console; reported by "Zalapkrakna".
133
+
134
+ - Fix for building under Innotek C (I hope). Report by Elbert Pol, fix
135
+ courtesy of Paul Smedley.
136
+
137
+ - Unified exports list with no duplicates -- pdcurses.def is now built
138
+ from components at compile time.
139
+
140
+ - Don't install curspriv.h, and don't include it with binary
141
+ distributions.
142
+
143
+ - Building DLLs with LCC is no longer supported, due to the primitive
144
+ nature of its make.exe.
145
+
146
+ - Export the terminfo stub functions from the DLLs, too.
147
+
148
+ - Added support for Apple's ".dylib" in configure. Suggested by Marc
149
+ Vaillant (who says it's needed with OS 10.5.)
150
+
151
+ - In sdl1/Makefile.mng, ensure that CC is set.
152
+
153
+ - In the gcc makefiles, "$?" didn't really have the desired effect --
154
+ _all_ the dependencies showed up on the command line, including
155
+ curses.h, and pdcurses.a twice. And apparently, this can mess up some
156
+ old version (?) of MinGW. So, revert to spelling out "tuidemo.o
157
+ tui.o". Reported by "Howard L."
158
+
159
+ - Extensive documentation revision and reorganizing. More to do here.
160
+ For example, I moved the build instructions from INSTALL (which never
161
+ really described installation) to the platform-specific READMEs.
162
+
163
+ - New indentation standard: four spaces, no tabs.
164
+
165
+ ------------------------------------------------------------------------
166
+
167
+ PDCurses 3.3 - 2007/07/11
168
+ =========================
169
+
170
+ This release adds an SDL backend, refines the demos, and is faster in
171
+ some cases.
172
+
173
+ New features:
174
+ -------------------
175
+
176
+ - SDL port. See INSTALL, doc/sdl.txt and sdl1/* for details.
177
+
178
+ - Double-buffering -- minimize screen writes by checking, in doupdate()
179
+ and wnoutrefresh(), whether the changes to curscr are really changes.
180
+ In most cases, this makes no difference (writes were already limited
181
+ to areas marked as changed), but it can greatly reduce the overhead
182
+ from touchwin(). It also helps if you have small, separated updates on
183
+ the same line.
184
+
185
+ - The PDC_RGB colors can now be used, or not, with any platform (as long
186
+ as the same options are used when compiling both the library and
187
+ apps). This may help if you have apps that are hardwired to assume
188
+ certain definitions.
189
+
190
+ - Restored the use_default_colors() stuff from the ncurses versions of
191
+ the rain and worm demos, to make them "transparent" (this is useful
192
+ now, with the SDL port); added transparency to newdemo.
193
+
194
+ - Added setlocale() to tuidemo, to make it easier to browse files with
195
+ non-ASCII characters.
196
+
197
+ - Sped up firework demo by replacing unneeded clear() and init_pair()
198
+ calls.
199
+
200
+ - Allow exit from ptest demo by typing 'q'.
201
+
202
+ - New functions for implementors: PDC_pair_content() and PDC_init_pair()
203
+ (the old pdc_atrtab stuff was arguably the last remnant of code in the
204
+ pdcurses directory that was based on platform details).
205
+
206
+ Bug fixes and such:
207
+ -------------------
208
+
209
+ - Implicit wrefresh() needs to be called from wgetch() when the window's
210
+ cursor position is changed, even if there are no other changes.
211
+
212
+ - Set SP->audible on a per-platform basis, as was documented in
213
+ IMPLEMNT, but not actually being done.
214
+
215
+ - Minor tweaks for efficiency and readability, notably with wscrl().
216
+
217
+ - tuidemo didn't work correctly on monochrome screens when A_COLOR was
218
+ defined -- the color pair numbers appeared as the corresponding
219
+ character; also, the input box was (I now realize) broken with ncurses
220
+ since our 2.7, and broke more subtly with PDCurses' new implicit
221
+ refresh handling; also, the path to the default file for the Browse
222
+ function was a bit off.
223
+
224
+ - Assume in the demos that curs_set() is always available -- there's no
225
+ good test for this, and the existing tests were bogus.
226
+
227
+ - Made the command-line parameter for ptest work. (If given an argument,
228
+ it delays that number of milliseconds between changes, instead of
229
+ waiting for a key, and automatically loops five times.)
230
+
231
+ - Building the Win32 DLL with MinGW or Cygwin wouldn't work from outside
232
+ the platform directory.
233
+
234
+ - Building the X11 port with Cygwin required manually editing the
235
+ Makefile after configuring; no longer. Reported by Warren W. Gay.
236
+
237
+ - Minor tightening of configure and makefiles.
238
+
239
+ - Bogus references to "ACS_BLCORNER" in the border man page. Reported by
240
+ "Walrii".
241
+
242
+ - slk_wlabel() was not documented.
243
+
244
+ - Spelling cleanup.
245
+
246
+ - Changed RCSIDs to not end with a semicolon -- avoids warnings when
247
+ compiling with the -pedantic option.
248
+
249
+ - Merged latin-1.txt into x11.txt.
250
+
251
+ - Updated config.guess and config.sub to more recent versions.
252
+
253
+ ------------------------------------------------------------------------
254
+
255
+ PDCurses 3.2 - 2007/06/06
256
+ =========================
257
+
258
+ This release mainly covers changes to the build process, along with a
259
+ few structural changes.
260
+
261
+ New features:
262
+ -------------------
263
+
264
+ - The panel library has been folded into the main library. What this
265
+ means is that you no longer need to specify "-lpanel" or equivalent
266
+ when linking programs that use panel functionality with PDCurses;
267
+ however, panel.lib/.a is still provided (as a copy of pdcurses.lib/.a)
268
+ so that you can, optionally, build your projects with no changes. It
269
+ also means that panel functionality is available with the DLL or
270
+ shared library. Note that panel.h remains separate from curses.h.
271
+
272
+ - Setting the PDCURSES_SRCDIR environment variable is no longer required
273
+ before building, unless you want to build in a location other than the
274
+ platform directory. (See INSTALL.)
275
+
276
+ - MinGW and Cygwin makefiles support building DLLs, via the "DLL=Y"
277
+ option. Partly due to Timofei Shatrov.
278
+
279
+ - Support for the Digital Mars compiler.
280
+
281
+ - Watcom makefiles now use the "loaddll" feature.
282
+
283
+ Bug fixes and such:
284
+ -------------------
285
+
286
+ - Eliminated the platform defines (DOS, WIN32, OS2, XCURSES) from
287
+ curses.h, except for X11-specific SCREEN elements and functions.
288
+ Dynamically-linked X11 apps built against an old version will have
289
+ their red and blue swapped until rebuilt. (You can define PDC_RGB to
290
+ build the library with the old color scheme, but it would also have to
291
+ be defined when building any new app.) Any app that depends on
292
+ PDCurses to determine the platform it's building on will have to make
293
+ other arrangements.
294
+
295
+ - Documentation cleanup -- added more details; removed some content that
296
+ didn't apply to PDCurses; moved the doc-building tool to the doc
297
+ directory; changed *.man to *.txt.
298
+
299
+ - The EMX makefile now accepts "DLL=Y", builds pdcurses.dll instead of
300
+ curses.dll, builds either the static library or the DLL (not both at
301
+ once), and links all the demos with the DLL when building it.
302
+
303
+ - In Win32, read the registry only when needed: when init_color() or
304
+ color_content() is called, instead of at startup.
305
+
306
+ - A few additional consts in declarations.
307
+
308
+ - The Win32 compilers that build DLLs now use common .def files.
309
+
310
+ - panel.h functions sorted by name, as with other .h files; curses.h is
311
+ no longer included by repeated inclusions of panel.h or term.h.
312
+
313
+ - Simplified Borland makefiles.
314
+
315
+ - Makefile.aix.in depended on a file, xcurses.exp, that was never there.
316
+ This problem was fixed as part of the change to common .def files;
317
+ however, I still haven't been able to test building on AIX.
318
+
319
+ ------------------------------------------------------------------------
320
+
321
+ PDCurses 3.1 - 2007/05/03
322
+ =========================
323
+
324
+ Primarily clipboard-related fixes, and special UTF-8 support.
325
+
326
+ New features:
327
+ -------------------
328
+
329
+ - "Force UTF-8" mode, a compile-time option to force the use of UTF-8
330
+ for multibyte strings, instead of the system locale. (Mainly for
331
+ Windows, where UTF-8 doesn't work well in the console.) See INSTALL.
332
+
333
+ - Multibyte string support in PDC_*clipboard() functions, and in Win32's
334
+ PDC_set_title().
335
+
336
+ - Added the global string "ttytype", per other curses implementations,
337
+ for compatibility with old BSD curses.
338
+
339
+ - Real functions for the "quasi-standard aliases" -- crmode(),
340
+ nocrmode(), draino(), resetterm(), fixterm() and saveterm().
341
+ (Corresponding macros removed.)
342
+
343
+ Bug fixes and such:
344
+ -------------------
345
+
346
+ - In Win32, under NT-family OSes, the scrollback buffer would be
347
+ restored by endwin(), but would not be turned off again when resuming
348
+ curses after an endwin(). The result was an odd, partly-scrolled-up
349
+ display. Now, the buffer is toggled by PDC_reset_prog_mode() and
350
+ PDC_reset_shell_mode(), so it's properly turned off when returning
351
+ from an endwin().
352
+
353
+ - In 3.0, selection in X11 didn't work. (Well, the selecting worked, but
354
+ the pasting elsewhere didn't.) This was due to the attempted fix
355
+ "don't return selection start as a press event," so that's been
356
+ reverted for now.
357
+
358
+ - PDC_setclipboard() was locking up in X11. Reported by Mark Hessling.
359
+
360
+ - Missing underscore in the declaration of XC_say() prevented
361
+ compilation with PDCDEBUG defined. Reported by M.H.
362
+
363
+ - Off-by-one error in copywin() -- the maximum coordinates for the
364
+ destination window should be inclusive. Reported by Tiago Dionizio.
365
+
366
+ - Start in echo mode, per X/Open. Reported by T.D.
367
+
368
+ - Strip leading and trailing spaces from slk labels, per a literal
369
+ reading of X/Open. Suggested by Alexey Miheev (about ncurses, but it
370
+ also applies here).
371
+
372
+ - The #endif for __PDCURSES__ needs to come _after_ the closing of the
373
+ extern "C". This has been broken since June 2005. Fortunately (?), it
374
+ only shows up if the file is included multiple times, and then only in
375
+ C++. Reported on the DOSBox forums.
376
+
377
+ - Use CF_OEMTEXT instead of CF_TEXT in the narrow versions of the
378
+ clipboard functions in Win32, to match the console.
379
+
380
+ - Changed the format of the string returned from longname().
381
+
382
+ - In the clipboard test in the testcurs demo, use a single mvprintw() to
383
+ display the return from PDC_getclipboard(), instead of a loop of
384
+ addch(), which was incompatible with multibyte strings.
385
+
386
+ - Moved has_key() into the keyname module, and documented it.
387
+
388
+ - Moved RIPPEDOFFLINE to curspriv.h.
389
+
390
+ - Typos in IMPLEMNT.
391
+
392
+ ------------------------------------------------------------------------
393
+
394
+ PDCurses 3.0 - 2007/04/01
395
+ =========================
396
+
397
+ The focuses for this release are X/Open conformance, i18n, better color
398
+ support, cleaner code, and more consistency across platforms.
399
+
400
+ This is only a brief summary of the changes. For more details, consult
401
+ the CVS log.
402
+
403
+ New features:
404
+ -------------------
405
+
406
+ - An almost complete implementation of X/Open curses, including the
407
+ wide-character and attr_t functions (but excluding terminfo). The
408
+ wide-character functions work only in Win32 and X11, for now, and
409
+ require building the library with the appropriate options (see
410
+ INSTALL). Note that this is a simplistic implementation, with exactly
411
+ one wchar_t per cchar_t; the only characters it handles properly are
412
+ those that are one column wide.
413
+
414
+ - Support for X Input Methods in the X11 port (see INSTALL). When built
415
+ this way, the internal compose key support is disabled in favor of
416
+ XIM's, which is a lot more complete, although you lose the box cursor.
417
+
418
+ - Multibyte character support in the non-wide string handling functions,
419
+ per X/Open. This only works when the library is built with wide-
420
+ character support enabled.
421
+
422
+ - Mouse support for DOS and OS/2. The DOS version includes untested
423
+ support for scroll wheels, via the "CuteMouse" driver.
424
+
425
+ - An ncurses-compatible mouse interface, which can work in parallel with
426
+ the traditional PDCurses mouse interface. See the man page (or
427
+ mouse.c) for details.
428
+
429
+ - DOS and OS/2 can now return modifiers as keys, as in Win32 and X11.
430
+
431
+ - COLORS, which had been fixed at 8, is now either 8 or 16, depending on
432
+ the terminal -- usually 16. When it's 8, blinking mode is enabled
433
+ (controlled as before by the A_BLINK attribute); when it's 16, bright
434
+ background colors are used instead. On platforms where it can be
435
+ changed, the mode is toggled by the new function PDC_set_blink().
436
+ PDCurses tries to set PDC_set_blink(FALSE) at startup. (In Win32, it's
437
+ always set to FALSE; in DOS, with other than an EGA or VGA card, it
438
+ can't be.) Also, COLORS is now set to 0 until start_color() is called.
439
+
440
+ - Corresponding to the change in COLORS, COLOR_PAIRS is now 256.
441
+
442
+ - Working init_color() and color_content(). The OS/2 version of
443
+ init_color() works only in a full-screen session; the Win32 version
444
+ works only in windowed mode, and only in NT-family OSes; the DOS
445
+ version works only with VGA adapters (real or simulated). The Win32
446
+ version is based mostly on James Brown's setconsoleinfo.c
447
+ (www.catch22.net).
448
+
449
+ - use_default_colors(), assume_default_colors(), and curses_version(),
450
+ after ncurses.
451
+
452
+ - Added global int TABSIZE, after ncurses and Solaris curses; removed
453
+ window-specific _tabsize.
454
+
455
+ - Logical extension to the wide-character slk_ funcs: slk_wlabel(), for
456
+ retrieving the label as a wide-character string.
457
+
458
+ - A non-macro implementation of ncurses' wresize().
459
+
460
+ - Working putwin(), getwin(), scr_dump() and scr_restore().
461
+
462
+ - A working acs_map[]. Characters from the ACS are now stored in window
463
+ structures as a regular character plus the A_ALTCHARSET attribute, and
464
+ rendered to the ACS only when displayed. (This allows, for example,
465
+ the correct display on one platform of windows saved from another.)
466
+
467
+ - In X11, allow selection and paste of UTF8_STRING.
468
+
469
+ - The testcurs demo now includes a color chart and init_color() test, a
470
+ wide character input test, a display of wide ACS characters with
471
+ sample Unicode text, a specific test of flash(), more info in the
472
+ resize test, and attempts to change the width as well as the height.
473
+
474
+ - Command-line option for MSVC to build DLLs (see INSTALL). Also, the
475
+ naming distinction for DLLs ("curses" vs. "pdcurses") is abandoned,
476
+ and either the static lib or DLL is built, not both at once (except
477
+ for X11).
478
+
479
+ - For backwards compatibility, a special module just for deprecated
480
+ functions -- currently PDC_check_bios_key(), PDC_get_bios_key(),
481
+ PDC_get_ctrl_break() and PDC_set_ctrl_break(). These shouldn't be used
482
+ in applications, but currently are... in fact, all the "private"
483
+ functions (in curspriv.h) are subject to change and should be avoided.
484
+
485
+ - A new document, IMPLEMNT, describing PDCurses' internal functions for
486
+ those wishing to port it to new platforms.
487
+
488
+ - Mark Hessling has released the X11 port to the public domain.
489
+ (However, x11/ScrollBox* retain their separate copyright and MIT-like
490
+ license.)
491
+
492
+ Bug fixes and such:
493
+ -------------------
494
+
495
+ - Most of the macros have been removed (along with the NOMACROS ifdef).
496
+ The only remaining ones are those which have to be macros to work, and
497
+ those that are required by X/Open to be macros. There were numerous
498
+ problems with the macros, and no apparent reason to keep them, except
499
+ tradition -- although it was PCcurses 1.x that first omitted them.
500
+
501
+ - Clean separation of platform-specific code from the rest. Outside of
502
+ the platform directories, there remain only a few ifdefs in curses.h
503
+ and curspriv.h.
504
+
505
+ - General reorganization and simplification.
506
+
507
+ - Documentation revisions.
508
+
509
+ - When expanding control characters in addch() or insch(), retain the
510
+ attributes from the chtype.
511
+
512
+ - Preserve the A_ALTCHARSET attribute in addch() and insch().
513
+
514
+ - Per X/Open, beep() should always return OK.
515
+
516
+ - On platforms with a controlling terminal (i.e., not X11), curs_set(1)
517
+ now sets the cursor to the shape it had at the time of initscr(),
518
+ rather than always making it small. (Exception for DOS: If the video
519
+ mode has been changed by PDC_resize_screen(), curs_set(1) reverts to
520
+ line 6/7.) The shape is taken from SP->orig_cursor (the meaning of
521
+ which is platform-specific).
522
+
523
+ - Stop updating the cursor position when the cursor is invisible (this
524
+ gives a huge performance boost in Win 9x); update the cursor position
525
+ from curs_set() if changing from invisible to visible.
526
+
527
+ - Some tweaking of the behavior of def_prog_mode(), def_shell_mode(),
528
+ savetty(), reset_prog_mode(), reset_shell_mode() and resetty()...
529
+ still not quite right.
530
+
531
+ - flash() was not implemented for Win32 or X. A portable implementation
532
+ is now used for all platforms. Note that it's much slower than the
533
+ old (DOS and OS/2) version, but this is only apparent on an extremely
534
+ slow machine, such as an XT.
535
+
536
+ - In getstr(), backspacing on high-bit characters caused a double
537
+ backspace.
538
+
539
+ - hline() and vline() used an incorrect (off by one) interpretation of
540
+ _maxx and _maxy. If values of n greater than the max were specified,
541
+ these functions could access unallocated memory.
542
+
543
+ - innstr() is supposed to return the number of characters read, not just
544
+ OK or ERR. Reported by Mike Aubury.
545
+
546
+ - A proper implementation of insch() -- the PDC_chadd()-based version
547
+ wasn't handling the control characters correctly.
548
+
549
+ - Return ASCII and control key names from keyname() (problem revealed by
550
+ ncurses' movewindow test); also, per X/Open, return "UNKNOWN KEY" when
551
+ appropriate, rather than "NO KEY NAME".
552
+
553
+ - Turn off the cursor from leaveok(TRUE), even in X11; leaveok(FALSE)
554
+ now calls curs_set(1), regardless of the previous state of the cursor.
555
+
556
+ - In the slk area, BUTTON_CLICKED events now translate to function keys,
557
+ along with the previously recognized BUTTON_PRESSED events. Of course,
558
+ it should really be checking the events specified by map_button(),
559
+ which still doesn't work.
560
+
561
+ - napms(0) now returns immediately.
562
+
563
+ - A unified napms() implementation for DOS -- no longer throttles the
564
+ CPU when built with any compiler.
565
+
566
+ - Allow backspace editing of the nocbreak() buffer.
567
+
568
+ - pair_content(0, ...) is valid.
569
+
570
+ - There was no check to ensure that the pnoutrefresh() window fit within
571
+ the screen. It now returns an ERR if it doesn't.
572
+
573
+ - In X11, resize_term() must be called with parameters (0, 0), and only
574
+ when SP->resized is set, else it returns ERR.
575
+
576
+ - Copy _bkgd in resize_window(). Patch found on Frederic L. W. Meunier's
577
+ web site.
578
+
579
+ - slk_clear() now removes the buttons completely, as in ncurses.
580
+
581
+ - Use the current foreground color for the line attributes (underline,
582
+ left, right), unless PDC_set_line_color() is explicitly called. After
583
+ setting the line color, you can reset it to this mode via
584
+ "PDC_set_line_color(-1)".
585
+
586
+ - Removed non-macro implementations of COLOR_PAIR() and PAIR_NUMBER().
587
+
588
+ - Dispensed with PDC_chadd() and PDC_chins() -- waddch() and winsch()
589
+ are now (again) the core functions.
590
+
591
+ - Dropped or made static many obsolete, unused, and/or broken functions,
592
+ including PDC_chg_attrs(), PDC_cursor_on() and _off(),
593
+ PDC_fix_cursor(), PDC_get_attribute(), PDC_get_cur_col() and _row(),
594
+ PDC_set_80x25(), PDC_set_cursor_mode(), PDC_set_rows(),
595
+ PDC_wunderline(), PDC_wleftline(), PDC_wrightline(),
596
+ XCursesModifierPress() and XCurses_refresh_scrollbar().
597
+
598
+ - Obsolete/unused defines: _BCHAR, _GOCHAR, _STOPCHAR, _PRINTCHAR
599
+ _ENDLINE, _FULLWIN and _SCROLLWIN.
600
+
601
+ - Obsolete/unused elements of the WINDOW struct: _pmax*, _lastp*,
602
+ _lasts*.
603
+
604
+ - Obsolete/unused elements of the SCREEN struct: orgcbr, visible_cursor,
605
+ sizeable, shell, blank, cursor, orig_emulation, font, orig_font,
606
+ tahead, adapter, scrnmode, kbdinfo, direct_video, video_page,
607
+ video_seg, video_ofs, bogus_adapter. (Some of these persist outside
608
+ the SCREEN struct, in the platform directories.) Added mouse_wait and
609
+ key_code.
610
+
611
+ - Removed all the EMALLOC stuff. Straight malloc calls were used
612
+ elsewhere; it was undocumented outside of comments in curspriv.h; and
613
+ there are better ways to use a substitute malloc().
614
+
615
+ - Single mouse clicks are now reportable on all platforms (not just
616
+ double-clicks). And in general, mouse event reporting is more
617
+ consistent across platforms.
618
+
619
+ - The mouse cursor no longer appears in full-screen mode in Win32 unless
620
+ a nonzero mouse event mask is used.
621
+
622
+ - ALT-keypad input now works in Win32.
623
+
624
+ - In Win32, SetConsoleMode(ENABLE_WINDOW_INPUT) is not useful, and
625
+ appears to be the source of a four-year-old bug report (hanging in
626
+ THE) by Phil Smith.
627
+
628
+ - Removed the PDC_THREAD_BUILD stuff, which has never worked. For the
629
+ record: PDCurses is not thread-safe. Neither is ncurses; and the
630
+ X/Open curses spec explicitly makes it a non-requirement.
631
+
632
+ - With the internal compose key system in the X11 port, modifier keys
633
+ were breaking out of the compose state, making it impossible to type
634
+ accented capitals, etc. Also, Multi_key is now the default compose
635
+ key, instead of leaving it undefined by default; and a few more combos
636
+ are supported.
637
+
638
+ - In X11, the first reported mouse event after startup always read as a
639
+ double-click at position 0, 0. (This bug was introduced in 2.8.)
640
+
641
+ - In X11, don't return selection start as a press event. (Shift-click on
642
+ button 1 is still returned.)
643
+
644
+ - In X11, properly handle pasting of high-bit chars. (It was doing an
645
+ unwanted sign extension.)
646
+
647
+ - In X11, BUTTON_MOVED was never returned, although PDC_MOUSE_MOVED was
648
+ set.
649
+
650
+ - The fix in 2.8 for the scroll wheel in X11 wasn't very good -- it did
651
+ report the events as scroll wheel events, but it doubled them. Here's
652
+ a proper fix.
653
+
654
+ - Changed mouse handling in X11: Simpler translation table, with
655
+ XCursesPasteSelection() called from XCursesButton() instead of the
656
+ translation table; require shift with button 1 or 2 for select or
657
+ paste when mouse events are being reported (as with ncurses), allowing
658
+ passthrough of simple button 2 events. This fixes the previously
659
+ unreliable button 2 behavior.
660
+
661
+ - Modifier keys are now returned on key up in X11, as in Win32. And in
662
+ general, modifier key reporting is more consistent across platforms.
663
+
664
+ - Modifiers are not returned as keys when a mouse click has occurred
665
+ since the key press.
666
+
667
+ - In BIOS mode (in DOS), count successive identical output bytes, and
668
+ make only one BIOS call for all of them. This dramatically improves
669
+ performance.
670
+
671
+ - The cursor position was not always updated correctly in BIOS mode.
672
+
673
+ - In testcurs, the way the ACS test was written, it would really only
674
+ work with a) PDCurses (with any compiler), or b) gcc (with any
675
+ curses). Here's a more portable implementation.
676
+
677
+ - Better reporting of mouse events in testcurs.
678
+
679
+ - Blank out buffer and num before the scanw() test in testcurs, in case
680
+ the user just hits enter or etc.; clear the screen after resizing.
681
+
682
+ - Allow tuidemo to use the last line.
683
+
684
+ - Separate left/right modifier keys are now reported properly in Win32.
685
+ (Everything was being reported as _R.)
686
+
687
+ - Attempts to redirect input in Win32 now cause program exit and an
688
+ error message, instead of hanging.
689
+
690
+ - Dropped support for the Microway NDP compiler.
691
+
692
+ - Some modules renamed, rearranged.
693
+
694
+ - Fixes for errors and warnings when building with Visual C++ 2005.
695
+
696
+ - In MSVC, the panel library didn't work with the DLL.
697
+
698
+ - Complete export lists for DLLs.
699
+
700
+ - Simplified makefiles; moved common elements to .mif files; better
701
+ optimization; strip demos when possible.
702
+
703
+ - Changed makefile targets of "pdcurses.a/lib" and "panel.a/lib" to
704
+ $(LIBCURSES) and $(LIBPANEL). Suggestion of Doug Kaufman.
705
+
706
+ - Changed "install" target in the makefile to a double-colon rule, to
707
+ get around a conflict with INSTALL on non-case-sensitive filesystems,
708
+ such as Mac OS X's HFS+. Reported by Douglas Godfrey et al.
709
+
710
+ - Make PDCurses.man dependent on manext. Suggestion of Tiziano Mueller.
711
+
712
+ - Set up configure.ac so autoheader works; removed some obsolescent
713
+ macros. Partly the suggestion of T.M.
714
+
715
+ - The X11 port now builds in the x11 directory (including the demos), as
716
+ with other ports.
717
+
718
+ - The X11 port should now build on more 64-bit systems. Partly due to
719
+ M.H.
720
+
721
+ - The default window title and icons for the X11 port are now "PDCurses"
722
+ instead of "XCurses".
723
+
724
+ - Internal functions and variables made static where possible.
725
+
726
+ - Adopted a somewhat more consistent naming style: Internal functions
727
+ with external linkage, and only those, have the prefix "PDC_";
728
+ external variables that aren't part of the API use "pdc_"; static
729
+ functions use "_"; and "XC_" and "xc_" prefixes are used for functions
730
+ and variables, respectively, that are shared between both processes in
731
+ the X11 port. Also eliminated camel casing, where possible.
732
+
733
+ - Changed the encoding for non-ASCII characters in comments and
734
+ documentation from Latin-1 to UTF-8.
735
+
736
+ ------------------------------------------------------------------------
737
+
738
+ PDCurses 2.8 - 2006/04/01
739
+ =========================
740
+
741
+ As with the previous version, you should assume that apps linked against
742
+ older dynamic versions of the library won't work with this one until
743
+ recompiled.
744
+
745
+ New features:
746
+
747
+ - Simpler, faster.
748
+
749
+ - Declarations for all supported, standard functions, per the X/Open
750
+ Curses 4.2 spec, with the notable exception of getch() and ungetch().
751
+ You can disable the use of the macro versions by defining NOMACROS
752
+ before including curses.h (see xmas.c for an example). NOMACROS yields
753
+ smaller but theoretically slower executables.
754
+
755
+ - New functions: vwprintw(), vwscanw(), vw_printw() and vw_scanw(). This
756
+ completes the list of X/Open 4.2 functions, except for those concerned
757
+ with attr_t and wide characters. Some (especially the terminfo/termcap
758
+ functions) aren't yet fully fleshed out, though.
759
+
760
+ - Non-macro implementations for COLOR_PAIR(), PAIR_NUMBER(), getbkgd(),
761
+ mvgetnstr(), mvwgetnstr(), mvhline(), mvvline(), mvwhline(), and
762
+ mvwvline(). (The macros are still available, too.)
763
+
764
+ - newterm() works now, in a limited way -- the parameters are ignored,
765
+ and only the first invocation will work (i.e., only one SCREEN can be
766
+ used).
767
+
768
+ - start_color() works now -- which is to say, if you _don't_ call it,
769
+ you'll only get monochrome output. Also, without calling it, the
770
+ terminal's default colors will be used, where supported (currently
771
+ only in Win32). This is equivalent to the PDC_ORIGINAL_COLORS behavior
772
+ introduced in 2.7, except that _only_ the default colors will be used.
773
+ (PDC_ORIGINAL_COLORS is still available, if you want to combine the
774
+ use of specific colors and the default colors.)
775
+
776
+ - New logic for termname() and longname(): termname() always returns
777
+ "pdcurses"; longname() returns "PDCurses for [platform] [adapter]
778
+ [COLOR/MONO]-YxX" (adapter is only defined for DOS and OS/2). This is
779
+ the first time these functions return _anything_ in Win32.
780
+
781
+ - New installation method for XCurses: the header files are placed in a
782
+ subdirectory "xcurses" within the include directory, rather than being
783
+ renamed. (But the renamed xcurses.h and xpanel.h are also installed,
784
+ for backwards compatibility.) curspriv.h and term.h are now available,
785
+ and existing curses-based code need no longer be edited to use
786
+ XCurses' curses.h. And with no more need for explicit XCursesExit()
787
+ calls (see below), your code need not be changed at all to move from
788
+ another curses implementation to XCurses. It can be as simple as "gcc
789
+ -I/usr/local/include/xcurses -lXCurses -oprogname progname.c".
790
+
791
+ - Combined readme.* into this HISTORY file, and incorporated the old 1.x
792
+ (PCcurses) history.
793
+
794
+ - New functionality for the testcurs demo: ACS character display; menu
795
+ support for PgUp, PgDn, Home and End; centered menu; and it can now
796
+ be resized in X.
797
+
798
+ - Added modified versions of the rain and worm demos from ncurses.
799
+
800
+ Bug fixes and such:
801
+
802
+ - Big cleanup of dead and redundant code, including unneeded defines,
803
+ ifdefs, and structure elements.
804
+
805
+ - flushinp() was not implemented for Win32.
806
+
807
+ - resetty() was not restoring LINES and COLS.
808
+
809
+ - nonl() made '\n' print a line feed without carriage return. This was
810
+ incorrect.
811
+
812
+ - Removed bogus implementation of intrflush().
813
+
814
+ - The line-breakout optimization system, disabled by default in 2.7, is
815
+ removed in 2.8. It simply didn't work, and never has. (The typeahead()
816
+ function remains, for compatibility, but does nothing.)
817
+
818
+ - The declarations for the printw() and scanw() function families were
819
+ erroneously ifdef'd.
820
+
821
+ - Safer printw() calls on platforms that support vsnprintf().
822
+
823
+ - Use the native vsscanf() in DJGPP, MinGW and Cygwin.
824
+
825
+ - ACS_BLOCK now works in X.
826
+
827
+ - Explicit calls to XCursesExit() are no longer needed.
828
+
829
+ - XCURSES is now defined automatically if not DOS, OS2 or WIN32.
830
+
831
+ - The default icon for XCurses wasn't working (had to remove the focus
832
+ hint code to fix this). Also, the default title is now "XCurses"
833
+ instead of "main".
834
+
835
+ - Incorrect dimensions (undercounting by two in each direction) were
836
+ shown while resizing in X.
837
+
838
+ - Scroll wheel events were not always correctly reported in X.
839
+
840
+ - 32 bits are enough for the "long" chtype, but 64 bits were used on a
841
+ 64-bit system, wasting memory. Now conditioned on _LP64. This could be
842
+ faster, too.
843
+
844
+ - The short, 16-bit chtype now works with XCurses.
845
+
846
+ - Corrected return value for is_linetouched(), is_wintouched(),
847
+ can_change_color() and isendwin() (bool instead of int).
848
+
849
+ - timeout(), wtimeout(), idcok() and immedok() return void.
850
+
851
+ - pair_content() takes a short.
852
+
853
+ - Replaced incorrect usages of attr_t with chtype. attr_t is still
854
+ typedef'd, for backwards compatibility. (It's supposed to be used for
855
+ the WA_*-style functions, which PDCurses doesn't yet support.)
856
+
857
+ - Added const where required by the spec, and in other appropriate
858
+ places.
859
+
860
+ - Removed PDC_usleep(). napms() is now the core delay routine.
861
+
862
+ - Fixed poll() support in napms().
863
+
864
+ - Various changes to the internal PDC_* functions -- don't depend on
865
+ these, and don't use them unless you absolutely have to.
866
+
867
+ - Some routines accessed window structures in their variable
868
+ declarations, _before_ checking for a NULL window pointer.
869
+
870
+ - Dropped support for the undocumented PDC_FULL_DISPLAY, wtitle(), and
871
+ PDC_print().
872
+
873
+ - Cleaned up remaining warnings.
874
+
875
+ - Reduced unnecessary #include directives -- speeds up compilation.
876
+
877
+ - Fix for demos build in Borland/DOS -- the makefile in 2.7 didn't
878
+ specify the memory model. Reported by Erwin Waterlander.
879
+
880
+ - Simplified the makefiles; e.g., some now build each demo in a single
881
+ step, and Watcom no longer uses demos.lnk. Also, the demo exes are now
882
+ stripped when possible; maximum compression used for archives built
883
+ by the makefiles; xcurses-config removed as part of "make distclean";
884
+ and I tweaked optimization for some platforms.
885
+
886
+ - Reverted to /usr/local/ as default installation directory for XCurses.
887
+
888
+ - Upgraded to autoconf 2.59... instantly doubling the size of the
889
+ configure script. Ah well. Otherwise, simplified the build system.
890
+
891
+ - Dropped support for pre-ANSI compilers. (It hasn't worked since at
892
+ least version 2.4, anyway.)
893
+
894
+ - Revised and, I hope, clarified the boilerplate and other comments.
895
+
896
+ - Simplified logging and RCS ids; added RCS ids where missing.
897
+
898
+ - Consistent formatting for all code, approximately equivalent to
899
+ "indent -kr -i8 -bl -bli0", with adjustments for 80 columns.
900
+
901
+ ------------------------------------------------------------------------
902
+
903
+ PDCurses 2.7 - 2005/12/30
904
+ =========================
905
+
906
+ INTRODUCTION:
907
+
908
+ Hello all. As of a few weeks ago, I'm the new maintainer for PDCurses.
909
+ Here's a brief summary of changes in this release. (More details are
910
+ available in the CVS log and trackers on SourceForge.)
911
+
912
+ NEW FEATURES:
913
+
914
+ - Functions: delscreen(), getattrs(), has_key(), slk_color(),
915
+ wcolor_set(), wtimeout().
916
+
917
+ - Macros: color_set(), mvhline(), mvvline(), mvwgetnstr(), mvwhline(),
918
+ mvwvline(), timeout(), wresize().
919
+
920
+ - Stub implementations of terminfo functions (including a term.h).
921
+
922
+ - More stubs for compatibility: filter(), getwin(), putwin(),
923
+ noqiflush(), qiflush(), scr_dump(), scr_init(), scr_restore(),
924
+ scr_set(), use_env(), vidattr(), vidputs().
925
+
926
+ - The terminal's default colors are used as curses' default colors when
927
+ the environment variable "PDC_ORIGINAL_COLORS" is set to any value
928
+ (Win32 only at the moment).
929
+
930
+ - Simplified build system.
931
+
932
+ - Replaced PDC_STATIC_BUILD with its opposite, PDC_DLL_BUILD (see .mak
933
+ files for more info).
934
+
935
+ - Minimal implementation of color_content() -- no longer a stub.
936
+
937
+ - Added the remaining ACS defines (ACS_S3, ACS_BBSS, etc.) for
938
+ DOS/OS2/Win; "enhanced" versions of existing ACS characters used.
939
+
940
+ - Support for scroll wheels.
941
+
942
+ - Support for Pacific C.
943
+
944
+ BUGS FIXED:
945
+
946
+ - Builds correctly (including demos) on all tested platforms (see
947
+ below); nearly all compiler warnings have been cleaned up; the ptest
948
+ demo is built on all platforms; "clean" targets are improved.
949
+
950
+ - The ability to build ncurses_tests has been restored (see demos dir).
951
+
952
+ - Line-breakout optimization now defaults to off (equivalent to
953
+ "typeahead(-1)"), so output is not interrupted by keystrokes (it's
954
+ supposed to resume on the next refresh(), which wasn't working).
955
+
956
+ - Implicit wrefresh() in wgetch() was not being invoked in nodelay mode.
957
+
958
+ - subpad() was erroneously offsetting from the origin coordinates of the
959
+ parent pad (which are always -1,-1).
960
+
961
+ - In wborder(), whline(), and wvline(), the current (wattrset) attribute
962
+ was being used, but not the current background (wbkgd).
963
+
964
+ - Allow Russian 'r' character ASCII 0xe0 to be returned.
965
+
966
+ - termattrs() now also returns A_UNDERLINE, A_REVERSE.
967
+
968
+ - In Win32, with large scrollback buffers set, there was an unwanted
969
+ "scrollup" effect on startup.
970
+
971
+ - Revamped keyboard handling for Win32.
972
+
973
+ - New screen resize method for Win32.
974
+
975
+ - napms(), delay_output(), etc. now work with Cygwin.
976
+
977
+ - curs_set(0) wasn't working in Win32 in full-screen (ALT-ENTER) mode --
978
+ the cursor stayed on.
979
+
980
+ - The A_REVERSE attribute was broken in XCurses.
981
+
982
+ - On 64-bit systems, XCurses was ignoring every other keystroke.
983
+
984
+ - Added focus hints for XCurses.
985
+
986
+ - Demos (except for tuidemo) once again have their proper titles in
987
+ XCurses (using Xinitscr() instead of the obsolete XCursesProgramName).
988
+
989
+ - The 16-bit chtype is a working option again (by removing #define
990
+ CHTYPE_LONG from curses.h), except in XCurses. It's not recommended;
991
+ but if your needs are limited, it still works.
992
+
993
+ - Reset screen size in resetty() under DOS, as in Win32 and OS/2.
994
+
995
+ - Changes for cursor size under DOS.
996
+
997
+ - Automatic setting of BIOS mode for CGA under DOS now works.
998
+
999
+ - The cursor is now always updated in PDC_gotoxy(); this fixes the
1000
+ problem of missing characters in BIOS mode.
1001
+
1002
+ - Macros nocbreak(), cbreak(), nocrmode(), crmode(), nodelay(),
1003
+ nl() and nonl() now return OK.
1004
+
1005
+ - ERR and OK are now defined as -1 and 0, respectively, for
1006
+ compatibility with other curses implementations -- note that this
1007
+ change is not binary compatible; you'll have to rebuild programs that
1008
+ use shared/dynamic libraries.
1009
+
1010
+ - Added "const" to prototypes where appropriate.
1011
+
1012
+ - Miscellaneous code cleanup.
1013
+
1014
+ ACKNOWLEDGEMENTS:
1015
+
1016
+ - Walter Briscoe
1017
+ - Jean-Pierre Demailly
1018
+ - Ruslan Fedyarov
1019
+ - Warren Gay
1020
+ - Florian Grosse-Coosmann
1021
+ - Vladimir Kokovic
1022
+ - Matt Maloy
1023
+ - K.H. Man
1024
+ - Michael Ryazanov
1025
+ - Ron Thibodeau
1026
+ - Alexandr Zamaraev
1027
+
1028
+ and of course, MARK HESSLING, for his over 13 years of service as the
1029
+ maintainer of PDCurses. Plus, thanks to all who've reported bugs or
1030
+ requested features. Apologies to anyone I've forgotten.
1031
+
1032
+ I've tested this version on Turbo C++ 3.0 and Borland C++ 3.1 for DOS;
1033
+ DJGPP 2.X; Open Watcom 1.3 for DOS (16 and 32-bit), Windows and OS/2;
1034
+ EMX 0.9d and the "newgcc" version of EMX; Borland C++ 5.5 for Windows;
1035
+ recent versions of MinGW, Cygwin, LCC-Win32 and Microsoft Visual C++;
1036
+ and gcc under several flavors of Linux, Mac OS X, *BSD and Solaris.
1037
+
1038
+ -- William McBrine
1039
+
1040
+ ------------------------------------------------------------------------
1041
+
1042
+ PDCurses 2.6 - 2003/01/08
1043
+ =========================
1044
+
1045
+ INTRODUCTION:
1046
+
1047
+ This release of PDCurses includes the following changes:
1048
+
1049
+ BUGS FIXED:
1050
+
1051
+ - Allow accented characters on Win32 platform when run on non-English
1052
+ keyboards.
1053
+
1054
+ - Allow "special" characters like Ctrl-S, Ctrl-Q under OS/2 to be returned.
1055
+
1056
+ - Some bugs with halfdelay() fixed by William McBrine.
1057
+
1058
+ - pechochar() should now work correctly.
1059
+
1060
+ - redrawwin() macro in curses.h was incorrect - fixed by Alberto Ornaghi
1061
+
1062
+ - Don't include "special" characters like KEY_SHIFT_L to be returned in
1063
+ getnstr() family. Bug 542913
1064
+
1065
+ - Entering TAB in wgetnstr() no longer exceeds requested buffer size.
1066
+ Bug 489233
1067
+
1068
+ - Fixed bug 550066, scrollok() and pads.
1069
+ Also beep() called when buffer exceeded. Bug 562041.
1070
+
1071
+ - Reverse video of X11 selection reinstated. Pablo Garcia Abio??
1072
+
1073
+ - Right Alt modifier now works like left Alt modifier under Win32
1074
+
1075
+ - Add support for all libXaw replacement libraries with Scrollbar bug.
1076
+ Note that for this to work, you still have to change the libXaw
1077
+ replacement libraries to fix the bug :-(
1078
+
1079
+ - Don't trap signals in XCurses if calling application has ignored them.
1080
+ Change by Frank Heckenbach.
1081
+
1082
+ - Bug reports from Warren W. Gay:
1083
+ - Fix termattrs() to return A_REVERSE and A_BLINK on all platforms.
1084
+ - Fix definition of getsyx() and setsyx() to be consistent with
1085
+ ncurses. Bug 624424.
1086
+ - Fix definition of echo() and noecho(). Bug 625001.
1087
+ - Fix definition of keypad() and leaveok(). Bug 632653.
1088
+ - Missing panel_hidden() prototype. Bug 649320.
1089
+
1090
+ - Fixed bug with calling def_prog_mode(), resize_term(),
1091
+ reset_prog_mode(); the resize details were being lost.
1092
+
1093
+ NEW FEATURES:
1094
+
1095
+ - Clipboard support now available on DOS platform, but handled
1096
+ internally to the currently running process.
1097
+
1098
+ - New X11 resource: textCursor, allows the text cursor to be specified
1099
+ as a vertical bar, or the standard horizontal bar. Thanks to Frank
1100
+ Heckenbach for the suggestion.
1101
+
1102
+ NEW COMPILER SUPPORT:
1103
+
1104
+ - lcc-win32 now works correctly
1105
+
1106
+ ------------------------------------------------------------------------
1107
+
1108
+ PDCurses 2.5 - 2001/11/26
1109
+ =========================
1110
+
1111
+ INTRODUCTION:
1112
+
1113
+ This release of PDCurses includes the following changes:
1114
+
1115
+ - Set BASE address for Win32 DLL
1116
+
1117
+ - Add KEY_SUP and KEY_SDOWN.
1118
+
1119
+ - Add PDC_set_line_color()
1120
+
1121
+ - Add blink support as bold background
1122
+
1123
+ - Add bold colors
1124
+
1125
+ - Add getbkgd() macro
1126
+
1127
+ - Add new PDC functions for adding underline, overline, leftline and
1128
+ rightline
1129
+
1130
+ - Add support for shifted keypad keys.
1131
+
1132
+ - Allow more keypad keys to work under Win32
1133
+
1134
+ - Change Win32 and OS/2 DLL name to curses.dll
1135
+
1136
+ - Change example resources to allow overriding from the command line
1137
+
1138
+ - Changes for building cleanly on OS/2
1139
+
1140
+ - Changes to handle building XCurses under AIX
1141
+
1142
+ - Check if prefresh() and pnoutrefresh() parameters are valid.
1143
+
1144
+ - Ensure build/install works from any directory
1145
+
1146
+ - Handle platforms where X11 headers do not typedef XPointer.
1147
+
1148
+ - Mention that Flexos is likely out-of-date.
1149
+
1150
+ - Pass delaytenths to XCurses_rawgetch()
1151
+
1152
+ - Remove boldFont
1153
+
1154
+ - Updates for cursor blinking and italic.
1155
+
1156
+ BUGS FIXED:
1157
+
1158
+ - Fix bug with getting Win32 clipboard contents. Added new
1159
+ PDC_freeclipboard() function.
1160
+
1161
+ - Fix bug with halfdelay()
1162
+
1163
+ - Fix bug with mouse interrupting programs that are not trapping mouse
1164
+ events under Win32.
1165
+
1166
+ - Fix return value from curs_set()
1167
+
1168
+ - Reverse the left and right pointing bars in ALT_CHARSET
1169
+
1170
+ NEW COMPILER SUPPORT:
1171
+
1172
+ - Add QNX-RTP port
1173
+
1174
+ ------------------------------------------------------------------------
1175
+
1176
+ PDCurses 2.4 - 2000/01/17
1177
+ =========================
1178
+
1179
+ INTRODUCTION:
1180
+
1181
+ This release of PDCurses includes the following changes:
1182
+
1183
+ - full support of X11 selection handling
1184
+
1185
+ - removed the need for the cursos2.h file
1186
+
1187
+ - enabled the "shifted" key on the numeric keypad
1188
+
1189
+ - added native clipboard support for X11, Win32 and OS/2
1190
+
1191
+ - added extra functions for obtaining internal PDCurses status
1192
+
1193
+ - added clipboard and key modifier tests in testcurs.c
1194
+
1195
+ - fixes for panel library
1196
+
1197
+ - key modifiers pressed by themselves are now returned as keys:
1198
+ KEY_SHIFT_L KEY_SHIFT_R KEY_CONTROL_L KEY_CONTROL_R KEY_ALT_L KEY_ALT_R
1199
+ This works on Win32 and X11 ports only
1200
+
1201
+ - Added X11 shared library support
1202
+
1203
+ - Added extra slk formats supported by ncurses
1204
+
1205
+ - Fixed bug with resizing the terminal when slk were on.
1206
+
1207
+ - Changed behavior of slk_attrset(), slk_attron() slk_attroff()
1208
+ functions to work more like ncurses.
1209
+
1210
+ BUGS FIXED:
1211
+
1212
+ - some minor bug and portability fixes were included in this release
1213
+
1214
+ NEW FUNCTIONS:
1215
+
1216
+ - PDC_getclipboard() and PDC_setclipboard() for accessing the native
1217
+ clipboard (X11, Win32 and OS/2)
1218
+
1219
+ - PDC_set_title() for setting the title of the window (X11 and Win32
1220
+ only)
1221
+
1222
+ - PDC_get_input_fd() for getting the file handle of the PDCurses input
1223
+
1224
+ - PDC_get_key_modifiers() for getting the keyboard modifier settings at
1225
+ the time of the last (w)getch()
1226
+
1227
+ - Xinitscr() (only for X11 port) which allows standard X11 switches to
1228
+ be passed to the application
1229
+
1230
+ NEW COMPILER SUPPORT:
1231
+
1232
+ - MingW32 GNU compiler under Win95/NT
1233
+
1234
+ - Cygnus Win32 GNU compiler under Win95/NT
1235
+
1236
+ - Borland C++ for OS/2 1.0+
1237
+
1238
+ - lcc-win32 compiler under Win95/NT
1239
+
1240
+ ACKNOWLEDGEMENTS: (for this release)
1241
+
1242
+ - Georg Fuchs for various changes.
1243
+ - Juan David Palomar for pointing out getnstr() was not implemented.
1244
+ - William McBrine for fix to allow black/black as valid color pair.
1245
+ - Peter Preus for pointing out the missing bccos2.mak file.
1246
+ - Laura Michaels for a couple of bug fixes and changes required to
1247
+ support Mingw32 compiler.
1248
+ - Frank Heckenbach for PDC_get_input_fd() and some portability fixes and
1249
+ the fixes for panel library.
1250
+ - Matthias Burian for the lcc-win32 compiler support.
1251
+
1252
+ ------------------------------------------------------------------------
1253
+
1254
+ PDCurses 2.3 - 1998/07/09
1255
+ =========================
1256
+
1257
+ INTRODUCTION:
1258
+
1259
+ This release of PDCurses includes the following changes:
1260
+
1261
+ - added more System V R4 functions
1262
+
1263
+ - added Win32 port
1264
+
1265
+ - the X11 port is now fully functional
1266
+
1267
+ - the MS Visual C++ Win32 port now includes a DLL
1268
+
1269
+ - both the X11 and Win32 ports support the mouse
1270
+
1271
+ - the slk..() functions are now functional
1272
+
1273
+ - support for scrollbars under X11 are experimental at this stage
1274
+
1275
+ - long chtype extended to non-Unix ports
1276
+
1277
+ The name of the statically built library is pdcurses.lib (or
1278
+ pdcurses.a). The name of the DLL import library (where applicable) is
1279
+ curses.lib.
1280
+
1281
+ BUGS FIXED:
1282
+
1283
+ - some minor bugs were corrected in this release
1284
+
1285
+ NEW FUNCTIONS:
1286
+
1287
+ - slk..() functions
1288
+
1289
+ NEW COMPILER SUPPORT:
1290
+
1291
+ - MS Visual C++ under Win95/NT
1292
+
1293
+ - Watcom C++ under OS/2, Win32 and DOS
1294
+
1295
+ - two EMX ports have been provided:
1296
+ - OS/2 only using OS/2 APIs
1297
+ - OS/2 and DOS using EMX video support routines
1298
+
1299
+ EXTRA OPTIONS:
1300
+
1301
+ PDCurses recognizes two environment variables which determines the
1302
+ initialization and finalization behavior. These environment variables
1303
+ do not apply to the X11 port.
1304
+
1305
+ PDC_PRESERVE_SCREEN -
1306
+ If this environment variable is set, PDCurses will not clear the screen
1307
+ to the default white on black on startup. This allows you to overlay
1308
+ a window over the top of the existing screen background.
1309
+
1310
+ PDC_RESTORE_SCREEN -
1311
+ If this environment variable is set, PDCurses will take a copy of the
1312
+ contents of the screen at the time that PDCurses is started; initscr(),
1313
+ and when endwin() is called, the screen will be restored.
1314
+
1315
+
1316
+ ACKNOWLEDGEMENTS: (for this release)
1317
+
1318
+ - Chris Szurgot for original Win32 port.
1319
+ - Gurusamy Sarathy for some updates to the Win32 port.
1320
+ - Kim Huron for the slk..() functions.
1321
+ - Florian Grosse Coosmann for some bug fixes.
1322
+ - Esa Peuha for reducing compiler warnings.
1323
+ - Augustin Martin Domingo for patches to X11 port to enable accented
1324
+ characters.
1325
+
1326
+ ------------------------------------------------------------------------
1327
+
1328
+ PDCurses 2.2 - 1995/02/12
1329
+ =========================
1330
+
1331
+ INTRODUCTION:
1332
+
1333
+ This release of PDCurses has includes a number of major changes:
1334
+
1335
+ - The portable library functions are now grouped together into single
1336
+ files with the same arrangement as System V R4 curses.
1337
+
1338
+ - A panels library has been included. This panels library was written by
1339
+ Warren Tucker.
1340
+
1341
+ - Quite a few more functions have been supplied by Wade Schauer and
1342
+ incorporated into release 2.2. Wade also supplied the support for the
1343
+ Microway NDP C/C++ 32 bit DOS compiler.
1344
+
1345
+ - The curses datatype has been changed from an unsigned int to a long.
1346
+ This allows more attributes to be stored as well as increasing the
1347
+ number of color-pairs from 32 to 64.
1348
+
1349
+ - Xwindows port (experimental at the moment).
1350
+
1351
+ BUGS FIXED:
1352
+
1353
+ - mvwin() checked the wrong coordinates
1354
+
1355
+ - removed DESQview shadow memory buffer checking bug in curses.h in
1356
+ \#define for wstandout()
1357
+
1358
+ - lots of others I can't remember
1359
+
1360
+ NEW FUNCTIONS:
1361
+
1362
+ - Too many to mention. See intro.man for a complete list of the
1363
+ functions PDCurses now supports.
1364
+
1365
+ COMPILER SUPPORT:
1366
+
1367
+ - DJGPP 1.12 is now supported. The run-time error that caused programs
1368
+ to crash has been removed.
1369
+
1370
+ - emx 0.9a is supported. A program compiled for OS/2 should also work
1371
+ under DOS if you use the VID=EMX switch when compiling. See the
1372
+ makefile for details.
1373
+
1374
+ - The Microway NDP C/C++ DOS compiler is now supported. Thanks to Wade
1375
+ Schauer for this port.
1376
+
1377
+ - The Watcom C++ 10.0 DOS compiler is now supported. Thanks to Pieter
1378
+ Kunst for this port.
1379
+
1380
+ - The library now has many functions grouped together to reduce the size
1381
+ of the library and to improve the speed of compilation.
1382
+
1383
+ - The "names" of a couple of the compilers in the makefile has changed;
1384
+ CSET2 is now ICC and GO32 is now GCC.
1385
+
1386
+ EXTRA OPTIONS:
1387
+
1388
+ One difference between the behavior of PDCurses and Unix curses is the
1389
+ attributes that are displayed when a character is cleared. Under Unix
1390
+ curses, no attributes are displayed, so the result is always black.
1391
+ Under PDCurses, these functions clear with the current attributes in
1392
+ effect at the time. With the introduction of the bkgd functions, by
1393
+ default, PDCurses clears using the value set by (w)bkgd(). To have
1394
+ PDCurses behave the same way as it did before release 2.2, compile with
1395
+ -DPDCURSES_WCLR
1396
+
1397
+ ACKNOWLEDGEMENTS: (for this release)
1398
+
1399
+ Pieter Kunst, David Nugent, Warren Tucker, Darin Haugen, Stefan Strack,
1400
+ Wade Schauer and others who either alerted me to bugs or supplied
1401
+ fixes.
1402
+
1403
+ ------------------------------------------------------------------------
1404
+
1405
+ PDCurses 2.1 - 1993/06/20
1406
+ =========================
1407
+
1408
+ INTRODUCTION:
1409
+
1410
+ The current code contains bug fixes for the DOS and OS/2 releases and
1411
+ also includes an alpha release for Unix. The Unix release uses another
1412
+ public domain package (mytinfo) to handle the low-level screen writes.
1413
+ mytinfo was posted to comp.sources.unix (or misc) in December 1992 or
1414
+ January 1993. Unless you are a glutton for punishment I would recommend
1415
+ you avoid the Unix port at this stage.
1416
+
1417
+ The other major addition to PDCurses is the support for DJGPP (the DOS
1418
+ port of GNU C++). Thanks to David Nugent <davidn@csource.oz.au>.
1419
+
1420
+ Other additions are copywin() function, function debugging support and
1421
+ getting the small and medium memory models to work. The testcurs.c demo
1422
+ program has also been changed significantly and a new demo program,
1423
+ tuidemo, has been added.
1424
+
1425
+ Some people have suggested including information on where to get dmake
1426
+ from. oak.oakland.edu in /pub/msdos/c
1427
+
1428
+ OTHER NOTES:
1429
+
1430
+ Under DOS, by default, screen writes to a CGA monitor are done via the
1431
+ video BIOS rather than by direct video memory writes. This is due to
1432
+ the CGA "snow" problem. If you have a CGA monitor and do not suffer
1433
+ from snow, you can compile private\_queryad.c with CGA_DIRECT defined.
1434
+ This will then use cause PDCurses to write directly to the CGA video
1435
+ memory.
1436
+
1437
+ Function debugging: Firstly to get function debugging, you have to
1438
+ compile the library with OPT=N in the makefile. This also turns on
1439
+ compiler debugging. You can control when you want PDCurses to write to
1440
+ the debug file (called trace in the current directory) by using the
1441
+ functions traceon() and traceoff() in your program.
1442
+
1443
+ Microsoft C 6.00 Users note:
1444
+ ----------------------------
1445
+
1446
+ With the addition of several new functions, using dmake to compile
1447
+ PDCurses now causes the compiler to run "out of heap space in pass 2".
1448
+ Using the 6.00AX version (DOS-Extended) to compile PDCurses fixes this
1449
+ problem; hence the -EM switch.
1450
+
1451
+ Functional changes
1452
+ ------------------
1453
+
1454
+ Added OS/2 DLL support.
1455
+
1456
+ A few curses functions have been fixed to exhibit their correct
1457
+ behavior and make them more functionally portable with System V
1458
+ curses. The functions that have changed are overlay(), overwrite() and
1459
+ typeahead.
1460
+
1461
+ overlay() and overwrite()
1462
+
1463
+ Both of theses functions in PDCurses 2.0 allowed for one window to be
1464
+ effectively placed on top of another, and the characters in the first
1465
+ window were overlaid or overwritten starting at 0,0 in both windows.
1466
+ This behavior of these functions was not correct. These functions only
1467
+ operate on windows that physically overlap with respect to the
1468
+ displayed screen. To achieve the same functionality as before, use the
1469
+ new function copywin(). See the manual page for further details.
1470
+
1471
+ typeahead()
1472
+
1473
+ This function in PDCurses 2.0 effectively checked to see if there were
1474
+ any characters remaining in the keyboard buffer. This is not the
1475
+ behavior exhibited by System V curses. This function is intended
1476
+ purely to set a flag so that curses can check while updating the
1477
+ physical screen if any keyboard input is pending. To achieve the same
1478
+ effect with typeahead() under PDCurses 2.1 the following code should be
1479
+ used.
1480
+
1481
+ In place of...
1482
+
1483
+ while(!typeahead(stdin))
1484
+ {
1485
+ /* do something until any key is pressed... */
1486
+ }
1487
+
1488
+ use...
1489
+
1490
+ /* getch() to return ERR if no key pending */
1491
+ nodelay(stdscr,TRUE);
1492
+ while(getch() == (ERR))
1493
+ {
1494
+ /* do something until any key is pressed... */
1495
+ }
1496
+
1497
+
1498
+ ACKNOWLEDGEMENTS: (in no particular order)
1499
+
1500
+ Jason Shumate, Pieter Kunst, David Nugent, Andreas Otte, Pasi
1501
+ Hamalainen, James McLennan, Duane Paulson, Ib Hojme
1502
+
1503
+ Apologies to anyone I may have left out.
1504
+
1505
+ ------------------------------------------------------------------------
1506
+
1507
+ PDCurses 2.0 - 1992/11/23
1508
+ =========================
1509
+
1510
+ INTRODUCTION:
1511
+
1512
+ Well, here it finally is; PDCurses v2.0.
1513
+
1514
+ PDCurses v2.0 is an almost total rewrite of PCcurses 1.4 done by John
1515
+ 'Frotz' Fa'atuai, the previous maintainer. It adds support for OS/2 as
1516
+ well as DOS.
1517
+
1518
+ This version has been tested with Microsoft C v6.0, QuickC v2.0 and
1519
+ Borland C++ 2.0 under DOS and Microsoft C v6.0 and TopSpeed c v3.02
1520
+ under OS/2 2.0. Also the library has been compiled successfully with
1521
+ emx 0.8e, C Set/2 and Watcom 9. Most testing was done with the large
1522
+ memory model, where applicable. The large memory model is probably the
1523
+ best model to use.
1524
+
1525
+ The amount of testing has not been as extensive as I would have liked,
1526
+ but demands on releasing a product have outweighed the product's
1527
+ quality. Nothing new with that !! Hopefully with wider circulation,
1528
+ more bugs will be fixed more quickly.
1529
+
1530
+ I have included just 1 makefile which is suitable for dmake 3.8 for
1531
+ both DOS and OS/2. The makefile does not rely on customization of the
1532
+ dmake.ini file.
1533
+
1534
+ If you discover bugs, and especially if you have fixes, please let me
1535
+ know ASAP.
1536
+
1537
+ The source to the library is distributed as a zip file made with zip
1538
+ 1.9. You will need Info-ZIP unzip 5.0 to unzip. Follow the directions
1539
+ below to compile the library.
1540
+
1541
+ DIRECTIONS:
1542
+
1543
+ 1. Create a new directory in which to unzip pdcurs20.zip. This will
1544
+ create a curses directory and a number of subdirectories containing
1545
+ source code for the library and utilities and the documentation.
1546
+
1547
+ 2. Make changes to the makefile where necessary:
1548
+ Change the MODEL or model macro to the appropriate value (if it
1549
+ applies to your compiler). Use model for Borland compilers.
1550
+
1551
+ Change any paths in the defined macros to be suitable for your
1552
+ compiler.
1553
+
1554
+ 3. Invoke DMAKE [-e environment_options] [target]
1555
+
1556
+ where environment_options are:
1557
+
1558
+ OS (host operating system)
1559
+ COMP (compiler)
1560
+ OPT (optimized version or debug version) - optional. default Y
1561
+ TOS (target operating system) - optional. default OS
1562
+
1563
+ see the makefile for valid combinations
1564
+
1565
+ targets: all, demos, lcursesd.lib, manual...
1566
+
1567
+ NB. dmake is case sensitive with targets, so those environments that
1568
+ use an upper case model value (eg MSC) MUST specify the library
1569
+ target as for eg. Lcursesd.lib
1570
+
1571
+ The makefile is by default set up for Borland C++. The use of -e
1572
+ environment_options override these defaults. If you prefer, you can
1573
+ just change the defaults in the makefile and invoke it without the
1574
+ -e switch.
1575
+
1576
+ OTHER NOTES:
1577
+
1578
+ The documentation for the library is built into each source file, a
1579
+ couple of specific doc files and the header files. A program is
1580
+ supplied (manext) to build the manual. This program gets compiled when
1581
+ you build the documentation.
1582
+
1583
+ To generate the library response file correctly, I had to write a quick
1584
+ and dirty program (buildlrf) to achieve this. Originally the makefiles
1585
+ just had statements like: "echo -+$(OBJ)\$* & >> $(LRF)" which appended
1586
+ a suitable line to the response file. Unfortunately under some
1587
+ combinations of makefiles and command processors (eg. nmake and 4DOS)
1588
+ the & would get treated as stderr and the echo command would fail.
1589
+
1590
+ The original source for PDCurses that I received from the previous
1591
+ maintainer contained support for the FLEXOS operating system. Not
1592
+ having access to it, I could not test the changes I made so its support
1593
+ has fallen by the wayside. If you really need to have PDCurses running
1594
+ under FLEXOS, contact me and I will see what can be arranged.
1595
+
1596
+ Under DOS, by default, screen writes to a CGA monitor are done via the
1597
+ video BIOS rather than by direct video memory writes. This is due to
1598
+ the CGA "snow" problem. If you have a CGA monitor and do not suffer
1599
+ from snow, you can compile private\_queryad.c with CGA_DIRECT defined.
1600
+ This will then use cause PDCurses to write directly to the CGA video
1601
+ memory.
1602
+
1603
+ Added System V color support.
1604
+
1605
+ COMPILER-SPECIFIC NOTES:
1606
+
1607
+ Microsoft C
1608
+ -----------
1609
+
1610
+ It is possible with MSC 6.0 to build the OS/2 libraries and demo
1611
+ programs from within DOS. This is the only case where it is possible to
1612
+ specify the value of TOS on the command line to be OS2 and the value of
1613
+ OS be DOS.
1614
+
1615
+ C Set/2
1616
+ -------
1617
+
1618
+ I have only tested the library using the migration libraries. I doubt
1619
+ that the demo programs will work without them.
1620
+
1621
+ emx
1622
+ ---
1623
+
1624
+ Testing has been done with 0.8e of emx together with the 16_to_32
1625
+ libraries. The emx\lib directory should include the vio32.lib and
1626
+ kbd32.lib libraries from the 16_to_32 package.
1627
+
1628
+ BUGS and UNFINISHED BUSINESS:
1629
+
1630
+ - PDC_set_ctrl_break() function does not work under OS/2.
1631
+
1632
+ - win_print() and PDC_print() do not work under OS/2.
1633
+
1634
+ - The file todo.man in the doc directory also lists those functions of
1635
+ System V 3.2 curses not yet implemented. Any volunteers?
1636
+
1637
+ ACKNOWLEDGEMENTS:
1638
+
1639
+ - John 'Frotz' Fa'atuai, the previous maintainer for providing an
1640
+ excellent base for further development.
1641
+ - John Burnell <johnb@kea.am.dsir.govt.nz>, for the OS/2 port.
1642
+ - John Steele, Jason (finally NOT a John) Shumate....
1643
+ for various fixes and suggestions.
1644
+ - Eberhardt Mattes (author of emx) for allowing code based on his
1645
+ C library to be included with PDCurses.
1646
+ - Several others for their support, moral and actual.
1647
+
1648
+ -- Mark Hessling
1649
+
1650
+ ------------------------------------------------------------------------
1651
+
1652
+ PDCurses 2.0Beta - 1991/12/21
1653
+ =============================
1654
+
1655
+ Changed back from short to int. (int is the correct size for the default
1656
+ platform. Short might be too short on some platforms. This is more
1657
+ portable. I, also, made this mistake.)
1658
+
1659
+ Many functions are now macros. If you want the real thing, #undef the
1660
+ macro. (X/Open requirement.)
1661
+
1662
+ Merged many sources into current release.
1663
+
1664
+ Added many X/Open routines (not quite all yet).
1665
+
1666
+ Added internal documentation to all routines.
1667
+
1668
+ Added a HISTORY file to the environment.
1669
+
1670
+ Added a CONTRIB file to the environment.
1671
+
1672
+ ------------------------------------------------------------------------
1673
+
1674
+ PDCurses 1.5Beta - 1990/07/14
1675
+ =============================
1676
+
1677
+ Added many levels of compiler support. Added mixed prototypes for all
1678
+ "internal" routines. Removed all assembly language. Added EGA/VGA
1679
+ support. Converted all #ifdef to #if in all modules except CURSES.H and
1680
+ CURSPRIV.H. Always include ASSERT.H. Added support for an external
1681
+ malloc(), calloc() and free(). Added support for FAST_VIDEO
1682
+ (direct-memory writes). Added various memory model support (for
1683
+ FAST_VIDEO). Added much of the December 1988 X/Open Curses
1684
+ specification.
1685
+
1686
+ -- John 'Frotz' Fa'atuai
1687
+
1688
+ ------------------------------------------------------------------------
1689
+
1690
+ PCcurses 1.4 - 1990/01/14
1691
+ =========================
1692
+
1693
+ In PCcurses v.1.4, both portability improvements and bugfixes have
1694
+ been made. The files have been changed to allow lint-free compilation
1695
+ with Microsoft C v.5.1, and with Turbo C v.2.0. The source should still
1696
+ compile without problems on older compilers, although this has not been
1697
+ verified.
1698
+
1699
+ The makefiles have been changed to suit both the public release and
1700
+ the author, who maintains a special kind of libraries for himself. In
1701
+ the case of Microsoft C, changes were done in the makefile to lower the
1702
+ warning level to 2 (was 3). This was to avoid ANSI warnings which are
1703
+ abundant because PCcurses does not attempt to follow strict ANSI C
1704
+ standard.
1705
+
1706
+ BUG FIXES FROM V.1.3 TO V.1.4:
1707
+
1708
+ !!!IMPORTANT CHANGE!!!
1709
+
1710
+ The definitions for OK and ERR in curses.h were exchanged. This was
1711
+ done to be more consistent with UNIX versions. Also, it permits
1712
+ functions like newwin() and subwin() to return 0 (=NULL) when they fail
1713
+ due to memory shortage. This incompatibility with UNIX curses was
1714
+ pointed out by Fred C. Smith. If you have tested success/failure by
1715
+ comparisons to anything other than ERR and OK, your applications will
1716
+ need to be be changed on that point. Sorry... but presumably most of you
1717
+ used the symbolic constants?
1718
+
1719
+ (END OF IMPORTANT CHANGE)
1720
+
1721
+ Fred also pointed out a bug in the file update.c. The bug caused the
1722
+ first character printed after 'unauthorized' screen changes (like during
1723
+ a shell escape, for example) to be placed at the wrong screen position.
1724
+ This happened even if the normal precautions (clear / touch / refresh)
1725
+ were taken. The problem has now been fixed.
1726
+
1727
+ PCcurses is currently also being used on a 68000 system with
1728
+ hard-coded ESCape sequences for ANSI terminals. However, ints used by
1729
+ the 68000 C compiler are 32 bits. Therefore ints have been turned into
1730
+ shorts wherever possible in the code (otherwise all window structures
1731
+ occupy twice as much space as required on the 68000). This does not
1732
+ affect PC versions since normally both ints and shorts are 16 bits for
1733
+ PC C compilers.
1734
+
1735
+ At some places in the source code there are references made to the
1736
+ 68000 version. There are also a makefile, a curses68.c file, and a
1737
+ curses68.cmd file. These are for making, low-level I/O, and linking
1738
+ commands when building the 68000 version. These files are probably
1739
+ useful to no-one but the author, since it is very specific for its
1740
+ special hardware environment. Still in an effort to keep all
1741
+ curses-related sources in one place they are included. Note however that
1742
+ PCcurses will not officially support a non-PC environment.
1743
+
1744
+ The file cursesio.c, which was included in the package at revision
1745
+ level 1.2, and which was to be an alternative to the cursesio.asm file,
1746
+ has been verified to behave incorrectly in the function _curseskeytst().
1747
+ The problem was that the value of 'cflag' does not contain the proper
1748
+ data for the test that is attempted. Furthermore, neither Turbo C or
1749
+ Microsoft C allows any way to return the data that is needed, and
1750
+ consequently you should not use cursesio.c. The best solution is to
1751
+ simply use the ASM version. In v.1.2 and v.1.3, the user could edit the
1752
+ makefile to select which version he wanted to use. The makefiles in
1753
+ v.1.4 have removed this possibility forcing the use of the ASM file, and
1754
+ cursesio.c has been dropped from the distribution.
1755
+
1756
+ A bug in the wgetstr() function caused PCcurses to echo characters
1757
+ when reading a keyboard string, even if the echo had been turned off.
1758
+ Thanks to Per Foreby at Lund University, Sweden, for this. Per also
1759
+ reported bugs concerning the handling of characters with bit 8 set.
1760
+ Their ASCII code were considered as lower than 32, so they were erased
1761
+ etc. like control characters, i.e. erasing two character positions. The
1762
+ control character test was changed to cope with this.
1763
+
1764
+ The overlay() and overwrite() functions were changed so that the
1765
+ overlaying window is positioned at its 'own' coordinates inside the
1766
+ underlying window (it used to be at the underlying window's [0,0]
1767
+ position). There is some controversy about this - the documentation for
1768
+ different curses versions say different things. I think the choice made
1769
+ is the most reasonable.
1770
+
1771
+ The border() and wborder() functions were changed to actually draw a
1772
+ border, since this seems to be the correct behavior of these functions.
1773
+ They used to just set the border characters to be used by box(). These
1774
+ functions are not present in standard BSD UNIX curses.
1775
+
1776
+ The subwin() function previously did not allow the subwindow to be as
1777
+ big as the original window in which it was created. This has now been
1778
+ fixed. There was also the problem that the default size (set by
1779
+ specifying numlines or numcols (or both) as 0 made the resulting actual
1780
+ size 1 line/column too small.
1781
+
1782
+ There were a few spelling errors in function names, both in the
1783
+ function declarations and in curses.h. This was reported by Carlos
1784
+ Amaral at INESC in Portugal. Thanks! There was also an unnecessary (but
1785
+ harmless) parameter in a function call at one place.
1786
+
1787
+ ------------------------------------------------------------------------
1788
+
1789
+ PCcurses 1.3 - 1988/10/05
1790
+ =========================
1791
+
1792
+ The file 'border.c' is now included. It allows you to explicitly
1793
+ specify what characters should be used as box borders when the box()
1794
+ functions are called. If the new border characters are non-0, they
1795
+ override the border characters specified in the box() call. In my
1796
+ understanding, this functionality is required for AT&T UNIX sV.3
1797
+ compatibility. Thanks for this goes to Tony L. Hansen
1798
+ (hansen@pegasus.UUCP) for posting an article about it on Usenet
1799
+ (newsgroup comp.unix.questions; his posting was not related at all to
1800
+ PCcurses).
1801
+
1802
+ The only other difference between v.1.2 and v.1.3 is that the latter
1803
+ has been changed to avoid warning diagnostics if the source files are
1804
+ compiled with warning switches on (for Microsoft this means '-W3', for
1805
+ Turbo C it means '-w -w-pro'). Of these, the Turbo C warning check is
1806
+ clearly to be used rather than Microsoft, even if neither of them comes
1807
+ even close to a real UNIX 'lint'. Some of the warnings in fact indicated
1808
+ real bugs, mostly functions that did not return correct return values or
1809
+ types.
1810
+
1811
+ The makefiles for both MSC and TRC have been modified to produce
1812
+ warning messages as part of normal compilation.
1813
+
1814
+ ------------------------------------------------------------------------
1815
+
1816
+ PCcurses 1.2 - 1988/10/02
1817
+ =========================
1818
+
1819
+ The changes from v.1.1 to v.1.2 are minor. The biggest change is that
1820
+ there was a bug related to limiting the cursor movement if the
1821
+ application tried to move it outside the screen (something that should
1822
+ not be done anyway). Such erroneous application behavior is now handled
1823
+ appropriately.
1824
+
1825
+ All modules have been changed to have a revision string in them, which
1826
+ makes it easier to determine what version is linked into a program (or
1827
+ what library version you have).
1828
+
1829
+ There is now a 'cursesio.c' file. That file does the same as
1830
+ 'cursesio.asm' (i.e. it provides the interface to the lower-level system
1831
+ I/O routines). It is written in C and thus it is (possibly) more
1832
+ portable than the assembler version (but still not so portable since it
1833
+ uses 8086 INT XX calls directly). When one creates new curses libraries,
1834
+ one chooses whether to use the assembler or the C version of cursesio.
1835
+ The choice is made by commenting out the appropriate dependencies for
1836
+ cursesio.obj, near the end of the makefiles.
1837
+
1838
+ There is now a 'setmode.c' file. That file contains functions that
1839
+ save and restore terminal modes. They do it into other variables than do
1840
+ savetty() and resetty(), so one should probably use either
1841
+ savetty()/resetty() or the new functions only - and not mix the both
1842
+ ways unless one really knows what one does.
1843
+
1844
+ Diff lists vs v.1.0 are no longer included in the distribution. The
1845
+ make utility still is. PCcurses v.1.2 still compiles with Microsoft C
1846
+ v.4.0, and with Borland Turbo C v.1.0. There is as far as I know no
1847
+ reason to believe that it does not compile under Microsoft C v.3.0 and
1848
+ 5.x, or Turbo C v.1.5, but this has not been tested.
1849
+
1850
+ There are two makefiles included, one for Microsoft C, one for Turbo
1851
+ C. They are both copies of my personal makefiles, and as such they
1852
+ reflect the directory structure on my own computer. This will have to be
1853
+ changed before you run make. Check $(INCDIR) and $(LIBDIR) in
1854
+ particular, and make the choice of ASM or C cursesio version as
1855
+ mentioned above (the distribution version uses the C version of
1856
+ cursesio).
1857
+
1858
+ The manual file (curses.man) has been changed at appropriate places.
1859
+
1860
+ I would like to thank the following persons for their help:
1861
+
1862
+ Brandon S. Allbery (alberry@ncoast.UUCP)
1863
+ for running comp.binaries.ibm.pc (at that time)
1864
+ and comp.source.misc.
1865
+
1866
+ Steve Balogh (Steve@cit5.cit.oz.AU)
1867
+ for writing a set of manual pages and posting
1868
+ them to the net.
1869
+
1870
+ Torbjorn Lindh
1871
+ for finding bugs and suggesting raw
1872
+ character output routines.
1873
+
1874
+ Nathan Glasser (nathan@eddie.mit.edu)
1875
+ for finding and reporting bugs.
1876
+
1877
+ Ingvar Olafsson (...enea!hafro!ingvar)
1878
+ for finding and reporting bugs.
1879
+
1880
+ Eric Rosco (...enea!ipmoea!ericr)
1881
+ for finding and reporting bugs.
1882
+
1883
+ Steve Creps (creps@silver.bacs.indiana.edu)
1884
+ for doing a lot of work - among others
1885
+ posting bug fixes to the net, and writing
1886
+ the new cursesio.c module.
1887
+
1888
+ N. Dean Pentcheff (dean@violet.berkeley.edu)
1889
+ for finding bugs and rewriting cursesio.asm
1890
+ for Turbo 'C' 1.5.
1891
+
1892
+ Finally, Jeff Dean (parcvax,hplabs}!cdp!jeff)
1893
+ (jeff@ads.arpa)
1894
+ has had a shareware version of curses deliverable since
1895
+ about half a year before I released PCcurses 1.0 on Use-
1896
+ Net. He is very concerned about confusion between the two
1897
+ packages, and therefore any references on the network
1898
+ should make clear whether they reference Dean's PCcurses
1899
+ or Larsson's PCcurses.
1900
+
1901
+ ------------------------------------------------------------------------
1902
+
1903
+ PCcurses 1.1 - 1988/03/06
1904
+ =========================
1905
+
1906
+ The changes from v.1.0 to v.1.1 are minor. There are a few bug fixes,
1907
+ and new (non-portable) functions for verbatim IBM character font display
1908
+ have been added (in charadd.c and charins.c). The manual file
1909
+ (curses.man) has been changed at appropriate places.
1910
+
1911
+ In the file v10tov11.dif there are listings of the differences between
1912
+ version 1.0 and 1.1. The diff listings are in UNIX diff(1) format.
1913
+
1914
+ Version 1.1 compiles with Turbo C v.1.0, as well as Microsoft C v.3.0
1915
+ and v.4.0. On the release disk there is a make.exe utility which is very
1916
+ similar to UNIX make (If the package was mailed to you, the make utility
1917
+ will be in uuencoded format - in make.uu - and must be uudecoded first).
1918
+ It is much more powerful than Microsoft's different MAKEs; the latter
1919
+ ones will NOT generate libraries properly if used with the PCcurses
1920
+ makefiles.
1921
+
1922
+ There are three makefiles:
1923
+
1924
+ makefile generic MSC 3.0 makefile
1925
+ makefile.ms MSC 4.0 makefile
1926
+ makefile.tc Turbo C 1.0 makefile
1927
+
1928
+ To make a library with for example Turbo C, make directories to hold
1929
+ .H and .LIB files (these directories are the 'standard places'), edit
1930
+ makefile.tc for this, and type
1931
+
1932
+ make -f makefile.tc all
1933
+
1934
+ and libraries for all memory models will be created in the .LIB
1935
+ directory, while the include files will end up in the .H directory. Also
1936
+ read what is said about installation below!
1937
+
1938
+ ------------------------------------------------------------------------
1939
+
1940
+ PCcurses 1.0 - 1987/08/24
1941
+ =========================
1942
+
1943
+ This is the release notes for the PCcurses v.1.0 cursor/window control
1944
+ package. PCcurses offers the functionality of UNIX curses, plus some
1945
+ extras. Normally it should be possible to port curses-based programs
1946
+ from UNIX curses to PCcurses on the IBM PC without changes. PCcurses is
1947
+ a port/ rewrite of Pavel Curtis' public domain 'ncurses' package. All
1948
+ the code has been re-written - it is not just an edit of ncurses (or
1949
+ UNIX curses). I mention this to clarify any copyright violation claims.
1950
+ The data structures and ideas are very similar to ncurses. As for UNIX
1951
+ curses, I have not even seen any sources for it.
1952
+
1953
+ For an introduction to the use of 'curses' and its derivatives, you
1954
+ should read 'Screen Updating and Cursor Movement Optimization: A Library
1955
+ Package' by Kenneth C. R. C. Arnold, which describes the original
1956
+ Berkeley UNIX version of curses. It is available as part of the UNIX
1957
+ manuals. The other source of information is 'The Ncurses Reference
1958
+ Manual' by Pavel Curtis. The latter is part of Curtis' ncurses package.
1959
+
1960
+ The only other documentation provided is a 'man' page which describes
1961
+ all the included functions in a very terse way. In the sources, each
1962
+ function is preceded by a rather thorough description of what the
1963
+ function does. I didn't have time to write a nice manual/tutorial -
1964
+ sorry.
1965
+
1966
+ PCcurses is released as a number of source files, a man page, and a
1967
+ make file. A uuencoded copy of a 'make' utility, and a manpage for the
1968
+ 'make' is also provided to make it easier to put together PCcurses
1969
+ libraries. Even if you are not interested in PCcurses, it may be
1970
+ worthwhile to grab the make.
1971
+
1972
+ The makefile assumes the presence of the Microsoft C compiler (3.0 or
1973
+ 4.0), Microsoft MASM and LIB, plus some MS-DOS utilities. The reason for
1974
+ supplying MAKE.EXE is that the Microsoft 'MAKE:s' are much inferior to a
1975
+ real UNIX make. The supplied make is a port of a public domain make,
1976
+ published on Usenet. It is almost completely compatible with UNIX make.
1977
+ When generating the curses libraries, the makefile will direct make to
1978
+ do some directory creating and file copying, and then re-invoke itself
1979
+ with new targets. The workings of the makefile are not absolutely
1980
+ crystal clear at first sight... just start it and see what it does.
1981
+
1982
+ For portability, the curses libraries depend on one assembler file for
1983
+ access to the BIOS routines. There is no support for the EGA, but both
1984
+ CGA, MGA, and the HGA can be used. The libraries are originally for
1985
+ Microsoft C, but all C modules should be portable right away. In the
1986
+ assembler file, segment names probably need to be changed, and possibly
1987
+ the parameter passing scheme. I think Turbo C will work right away - as
1988
+ far as I understand, all its conventions are compatible with Microsoft
1989
+ C.
1990
+
1991
+ There are some parts left out between ncurses and PCcurses. One is the
1992
+ support for multiple terminals - not very interesting on a PC anyway.
1993
+ Because we KNOW what terminal we have, there is no need for a termcap or
1994
+ terminfo library. PCcurses also has some things that neither curses nor
1995
+ ncurses have. Compared to the original UNIX curses, PCcurses has lots of
1996
+ extras.
1997
+
1998
+ The BIOS routines are used directly, which gives fast screen updates.
1999
+ PCcurses does not do direct writes to screen RAM - in my opinion it is
2000
+ a bit ugly to rely that much on hardware compatibility. Anyone could fix
2001
+ that, of course...
2002
+
2003
+ One of the more serious problems with PCcurses is the way in which
2004
+ normal, cbreak, and raw input modes are done. All those details are in
2005
+ the 'charget' module - I do raw I/O via the BIOS, and perform any
2006
+ buffering myself. If an application program uses PCcurses, it should do
2007
+ ALL its I/O via PCcurses calls, otherwise the mix of normal and
2008
+ PCcurses I/O may mess up the display. I think my code is reasonable...
2009
+ comments are welcome, provided you express them nicely...
2010
+
2011
+ To install, copy all files to a work directory, edit 'makefile' to
2012
+ define the standard include and library file directory names of your
2013
+ choice (these directories must exist already, and their path names must
2014
+ be relative to the root directory, not to the current one). You must
2015
+ also run uudecode on make.uu, to generate MAKE.EXE. You can do that on
2016
+ your PC, if you have uudecode there, otherwise you can do it under UNIX
2017
+ and do a binary transfer to the PC. When you have MAKE.EXE in your work
2018
+ directory (or in your /bin directory), type make.
2019
+
2020
+ Make will now create 4 sub-directories (one for each memory model),
2021
+ copy some assembler include files into them, copy two include files to
2022
+ your include directory, CHDIR to each sub-directory and re-invoke itself
2023
+ with other make targets to compile and assemble all the source files
2024
+ into the appropriate directories. Then the library manager is run to
2025
+ create the library files in your desired library directory. Presto!
2026
+
2027
+ If you only want to generate a library for one memory model, type
2028
+ 'make small', 'make large', etc. The name of the memory model must be in
2029
+ lower case, like in the makefile.
2030
+
2031
+ I think the package is fairly well debugged - but then again, that's
2032
+ what I always think. It was completed in May-87, and no problems found
2033
+ yet. Now it's your turn... Comments, suggestions and bug reports and
2034
+ fixes (no flames please) to
2035
+
2036
+ -- Bjorn Larsson