Releases: Bill-Gray/PDCursesMod
PDCursesMod 4.4.0 - 2023 Nov 30
(See docs/HISTORY.md
for more details, and/or the Git log for extreme detail.)
Note that because of SCREEN
and WINDOW
now being opaque, the WA_
flags and some A_
flags changing, and KEY_MAX
being redefined, this is not binary compatible with 4.3.x. However, you'll get a link error if you get versions mixed up, so this shouldn't cause any real trouble.
Major new features
-
The
SCREEN
andWINDOW
structures are now opaque. 1167188 3259719 -
The
WA_
flags are now distinct, in builds with 64-bitchtype
s andattr_t
s (the default). This led to considerable documentation changes and an attempt to make the distinction betweenWA_
macros (for use withwattr_t
) andA_
macros (for use withchtype
) clearer. Most implementations of curses havewattr_t
==chtype
, including PDCurses* and ncurses, but you can't really rely on it. 78658c9 -
The
FILE
arguments passed tonewterm()
are now actually used on the VT platform. Changes by Pavel Stehule. 9c16db9
Minor new features
-
SDL1, SDL2, and GL support double and triple mouse clicks. Change provided by Lyle Tafoya.
a4e563d -
'panels' library almost completely rewritten. The new version is better at figuring out what parts need to be updated, and is generally easier to understand. 8830b71.
-
Added some small test programs for very specific feature/bug tests. e6a5ede
Bug fixes
PDCursesMod 4.3.7
PDCursesMod 4.3.7 - 2023 June 17
(See docs/HISTORY.md
for more details, and/or the Git log for extreme detail.)
Major new features
- SDL2 GL port, from Julius Ikkala. This is (on most systems) faster than the "traditional" SDL2 port. Many commits, starting at 4678131.
Minor new features
-
Support on Windows for Unicode input in the SMP (codepoints above 0xFFFF, for instance emojis.) 2050706 75b62ea
-
WinCon: supports full unicode output including SMP. 3ec63c9 7089b2e fac87bd
-
WinCon, WinGUI can be cross-compiled for Windows on Arm. 158e8ae
-
'newtest': extended the SLK testing. 'newtest' and 'testcurs' now use wget_wch( ) in wide builds, so the actual character is shown on input tests (instead of the multibyte stream). 'testcurs' gradient example (showing colors beyond 256 palette entries) is a little more logically set out. c744e3e 7089b57
-
WinCon can support a 'default' (transparent) background. 81cbefb
-
'curspriv.h' modified to allow C++ compilation. 52a2fdf
-
Clarified compatibility for ACS_ and WACS_ box characters, and added many missing aliases. From a suggestion by Simon Sobisch. e8f7b33
-
Fixed warnings with OpenWATCOM. We now compile with -we ("treat warnings as errors"). f27369e abbd8f5 89e3426
-
If you try to compile the DOS version with WIDE=Y, you get an error message explaining that wide characters don't work on that platform. d07b884
-
Now using ncurses-6.4 tests instead of 6.3.
Bug fixes
-
WinCon: Key modifiers were incorrectly cleared without a key event. 9229f08
-
VT: Ctrl-Alt-letter input was off by one. Hit, say, Ctrl-Alt-T, and you'd get Ctrl-Alt-U. 6556858
-
Fixed some casting issues with GetProcAddress( ) in Windows and a deprecation warning with MinGW, with considerable help from Arnold Trembley and Chuck Haatvedt. Further work may be required (it works, but pedantic compilation can get you warnings). bbae4bb 28cbcfc
-
CMake's list of demos is now up to date for DOS, DOSVGA, WinCon, WinGUI. Others to follow. 4f3dc96
-
Pasting text from the clipboard was done with a buffer lacking room for a null terminator, resulting in a memory overwrite. Reported by nhmall (issue #295). 0a4e1e9
-
realloc( ptr, 0); was assumed to free ptr and return NULL. This is usually true, but isn't guaranteed and isn't true on FreeBSD, and caused an assert to be triggered in endwin(). abbb6de
-
'terminfo' functions were not included in the DOSVGA builds, nor in WinCon when using the Microsoft VC makefile. Also, the WinCon Digital Mars makefile was broken. c51efbb
-
'picsview' and 'mbrot' demos now work correctly with ncurses. Some unnecessary distinctions between PDCurses* and ncurses were removed. 8972791
PDCursesMod 4.3.6
PDCursesMod 4.3.6 - 2023 April 12
(See docs/HISTORY.md
for more details, and/or the Git log for extreme detail.)
- SDL2 can now show Unicode past 0xffff (Supplemental Multilingual Planes). 602bc38
- VT port supports output redirection. a6618d9 6925d0f 65939aa
- WinGUI support DPI awareness, for better font display on high-res screens. 012e3d9
Bug fixes
- Partial fix so that getch( ) will return byte codes, expanding characters beyond 256 into multi-byte strings. bd50b2b
- Scrolling a window could result in a crash when the window was freed. 72521a1
- Decoding UTF8 was broken for SMP. ad7cd29
- Text selection & copying could cause memory corruption with 4 byte UTF-8
codepoints when WIDE=Y. bff53ab - Lots of small bug fixes and improvements... again, see
docs/HISTORY.md
and/or the git log for more details.
PDCursesMod 4.3.5
(See docs/HISTORY.md
for more details, and/or the Git log for extreme detail.)
- WinGUI is again single-threaded, resulting in considerably simpler code and fixing some resizing issues. See pull request #240. 6962ab6
- Framebuffer port can now use either the (deprecated) Linux framebuffer system or the DRM (Direct Rendering Manager) system. DRM is not supported on some older systems and the Linux framebuffer is not supported on newer ones. DRM also can be used with *BSD; the Linux framebuffer really is a Linux-only solution. e9bc09c
- delwin() now returns ERR if you attempt to delete a window with active subwindows, or a window that wasn't allocated by PDCursesMod or which has already been freed. c643c0d 3b14813
- delscreen() deletes all windows associated with a SCREEN. 26e473c
- Added ncurses extensions for opaque WINDOW structs, from Markus Uhlin. 7bb822b 22fecc1
- PDC_free_memory_allocations() (see below) was unnecessary; if we follow the specifications for delscreen(), as we now do, all that memory gets freed in the natural course of things. 0223039 60138ca
- Both SDLs could have problems in finding fonts on some Linuxes. Fixes from Mark Hessling. 1e4bcc9 9cf041e
- getch() and wget_wch() could return erroneous values in WinCon for values greater than 127. e54d03f e86d9c3
- Lots of small bug fixes and improvements... again, see
docs/HISTORY.md
for more details.
PDCurses 4.3.4
(See docs/HISTORY.md
for more details, and/or the Git log for extreme detail.)
- Files created by
getwin()
andputwin()
should now be usable between future versions of PDCursesMod, across most OSes and compilers, and (with limitations) even between wide/narrow and 32-bit/64-bitchtype
builds. endwin()
was not signal-safe. (Memory was freed and buffered file output was done; both are signal-unsafe.) See 'upstream' issue wmcbrine/PDCurses#134 for details.- We now use
wcwidth()
, instead of our own internal version, on Linux. This avoids some redundancy and may enable better results in non-Unicode environments, if any. - Also updated our
PDC_wcwidth()
from Unicode 5.0 to Unicode 14.0.0. - WinGUI could block if there was no key delay.
- Alternative character set glyphs were sometimes shown when they ought not to be, or vice versa.
- You can free all remaining internal memory with the new
PDC_free_memory_allocations()
function. This is not strictly necessary, since all memory is freed on exit anyway. But it can help when using Valgrind or similar memory diagnostic tools; you can eliminate any possible PDCursesMod leaks. - Lots of small bug fixes and improvements... again, see
docs/HISTORY.md
for more details.
PDCursesMod 4.3.3
(See docs/HISTORY.md
for more details, and/or the Git log for extreme detail.)
- The OS/2 code was replaced with William McBrine's version from "upstream" PDCurses, with a few modifications to accommodate changes that have occurred in PDCursesMod. This basically just means the OS/2 port works again (it was thoroughly broken).
- Two new demos,
mbrot
(lets you explore the Mandelbrot set in text mode, and tests out somencurses
extensions for color manipulation) andcalendar
(shows a calendar). - Fixed a problem with capturing/failing to capture Ctrls-C, Z, S, and Q on the VT and Linux framebuffer platforms.
- Screen resizing no longer requires a call to
resize_term(0,0)
. It's not needed inncurses
, and nobody remembered why it was required in PDCurses/PDCursesMod. (Note that it's still required in PDCurses.) - Clipboard handling in DOS, DOSVGA, VT, SDL1, framebuffer, and Plan9 is handled in a common manner. On those platforms, clipboard text is simply stored in a
malloc()
ed buffer and can be retrieved from it. Previously, the clipboard functions were dummy stubs on some of those platforms. - A few other fixes... as noted, see the Git log and/or HISTORY.md.
PDCursesMod 4.3.2
(See docs/HISTORY.md
for more details, and/or the Git log for extreme detail.)
- The "mangling" of
initscr()
to avoid versioning errors (see 'curses.h') is now done instead toendwin()
. It makes no difference to PDCurses, but some other build processes relied on seeing an unmangledinitscr()
. - 32-bit
chtype
, non-wide builds get 4096 color pairs and all twelve attribute bits that you'd get with 64-bitchtype
s. - Color pair management sped up immensely (note that this wasn't an issue anyway unless you had hundreds or thousands of color pairs in use.)
testcurs
showsA_DIM
text, and supergradients where possible (not just for 64-bit builds).- Almost all
ncurses
demos are built. - The default framebuffer font now contains all ACS and WACS glyphs.
- X11, VT, Linux framebuffer, and WinCon/WinGUI ports all compile without warnings with full warnings turned on.
- Added
widetest
demo to exercisegetcchar()
andsetcchar()
. PDC_set_function_key()
now works on most platforms, and the code is less messy/error-prone.- Lots of bug fixes... again, see
docs/HISTORY.md
for more details.
PDCursesMod 4.3.1
(See docs/HISTORY.md
for more details, and/or the Git log for extreme detail.)
- New 'fb' (Linux framebuffer) port. Should be useful on embedded systems and those not running X, or even necessarily a console.
mmask_t
now defaults to 64 bits. Fixes some problems with colliding triple-click and mouse-move masks and provides bits for future use.- Added safeguards against linking code compiled for one binary PDCursesMod API to a library built for another.
- Palette changes are updated immediately.
- Eliminated the now unnecessary
CHTYPE_64
andCHTYPE_LONG
macros. You can still setCHTYPE_32
to get old-style 32-bitchtype
s (andmmask_t
s). - Added four
ncurses
demos. - Lots of bug fixes... again, see
docs/HISTORY.md
for more details.
PDCursesMod 4.3.0
(See docs/HISTORY.md
for more details, and/or the Git log for extreme detail. This is a pretty big release.)
- X11 and both SDLs now support full colors and strikeout and underlined text, a la WinGUI and VT.
- Added many
ncurses
extension functions for color management, and demos to exercise them. - Added some GitHub® CI tests.
- Restored ability to build
ncurses_tests
(this had been broken for a long time). - SDLs and VT can be compiled as shared libraries and installed/uninstalled.
- Added a lot of
assert
s forNULL
parameters. Many functions in curses allow you to pass aNULL
parameter, but doing so usually means an error has occurred and (at least while debugging) such should not go silently ignored. - Many small improvements and bug fixes... again, see
docs/HISTORY.md
for more details.
PDCursesMod 4.2.0
(See docs/HISTORY.md
for more details, and/or the Git log for extreme detail. This is a pretty big release.)
- Note name change from
PDCurses
toPDCursesMod
, to reflect the (almost certainly) permanent nature of the forking. - Pulls in upstream improvements from PDCurses 3.8/3.9, such as single-process X11, common copy/paste, extended colors, with those further extended on VT and WinGUI platforms.
- Adds chasonr's DOSVGA port, Federico G. Benavento and Jens Staal's Plan 9 port.
- Adds checks to prevent linking a UTF8 or wide-char library with an 8-bit program, or vice versa.
- Several new demos (
picsview
,speed
,test_pan
). - Many small improvements and bug fixes... again, see
docs/HISTORY.md
for more details.