Releases: Bill-Gray/PDCursesMod
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 somencursesextensions 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-bitchtypes. - 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.)
testcursshowsA_DIMtext, and supergradients where possible (not just for 64-bit builds).- Almost all
ncursesdemos 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
widetestdemo 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.mdfor 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_tnow 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_64andCHTYPE_LONGmacros. You can still setCHTYPE_32to get old-style 32-bitchtypes (andmmask_ts). - Added four
ncursesdemos. - Lots of bug fixes... again, see
docs/HISTORY.mdfor 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
ncursesextension 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
asserts forNULLparameters. Many functions in curses allow you to pass aNULLparameter, 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.mdfor 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
PDCursestoPDCursesMod, 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.mdfor more details.
PDCurses 4.2.0 beta - 2020/05/2?
Major new features :
-
Pulled in almost all of the upstream wmcbrine changes. That added the single-process X11 port (much simpler and less prone to bugs), common copy/paste code between platforms, some extended colors, and much other good work from wmcbrine over the last few years.
-
Added
ncurses-styleinit_extended_color(),init_extended_pair(),extended_color_content(),extended_pair_content()functions. The WinGUI and VT platforms can now access 220 = 1048576 color pairs and a palette of 28+224=16777472 colors. -
As a result of the newly extended colors, the
A_RGBattribute is no longer needed and has been removed. -
Automated builds again work and have been extended to new platforms.
-
Added chasonr's DOSVGA port.
Minor new features:
-
Added
picsviewdemo (a ripoff/homage to Thomas E. Dickey'spicsmapdemo forncurses). Similar to that program,picsviewserves to demonstrate/test the aforementioned "extended" color management functions. -
The VT port is much faster and will use SGR mouse commands if available. That enables correct (and non-crashing) mouse input with very wide windows.
Bug fixes :
-
Valgrind found three small memory leaks (which would apply to all platforms). Work remains to be done on eliminating leaks on other platforms.
-
Double-clicks on WinGUI previously resulted in a 'click' message followed by a double-click. You now just get the double-click, which matches the VT and
ncursesbehavior. (Other platforms do not, as yet, handle double-clicks; you just get two click messages.) -
Default background/foreground colors are now handled correctly in VT.
-
Mouse wheel events are returned with the correct mouse position reported, instead of that position being reset to (-1, -1).
-
The X11 port generated spurious resize events at startup and whenever the window was moved without resizing. It no longer does.
-
raw()andnoraw()now work correctly on WinGUI and VT. (They have never worked on X11, SDLn, or WinCon.)
PDCurses 4.1.0 - 2019/05/10
Major new features:
- New VT backend.
Minor new features:
- Many changes copied from upstream (wmcbrine) version (q.v.)
PDCurses 4.0.2 - 2017/09/12
Note - new maintainer: Bill Gray (based on PDCurses 3.4 from William McBrine)
This is only a brief summary of the changes. For more details, consult the VCS log.
Major new features:
-
New Win32a(Windows GUI) and SDL2 backends.
SDL1 is still supported, but may eventually go away. -
Bold, italic, underlined, overlined, dimmed, 'strikeout', blinking text, 256 colors and color pairs, and full RGB colors.
These are all supported in Win32a and mostly supported in X11, SDL1 and SDL2. -
In Win32a, one can choose a font, and both programmatic and user resizing are supported.
(Recompiling is necessary to change the font in X11.) -
(Win32a only) Support of SMP Unicode (points beyond 64K) and combining characters.
This may be extended to X11 and SDL2 eventually.
- Demos corrected to be buildable and testable with
ncurses.
Minor new features:
(note that not all of these are available on all backends)
-
Support for up to nine mouse buttons and wheel and tilt-wheel mice, and double and triple mouse clicks.
-
(X11, Win32a, Win32) Extended range of keys that are recognized.
This now includes most of the "oddball" keys such as 'browser back' and 'favorites' found on some keyboards. -
Blinking cursors in Win32a and X11 of various shapes (this could be extended to SDLx eventually).
-
In X11 and Win32a, one can call resize_term( ) before initscr( ) to set the initial window size.
-
Soft Label Keys (SLKs) are considerably more flexible, with the ability to set arbitrary numbers of keys and groupings.
See slk.c for details. This applies to all backends. -
Many changes to
testcursto test all these new features, andnewtestadded to test still more features. -
Option to get detailed version information of the used PDCurses library at run time with new exported
PDC_versionasPDC_version_infostructure. -
ACS_x and WACS_x #defines extended to include a lot of "alternative characters" that overlap in Unicode and CP-437: double-line box chars, card suits, vulgar fractions, etc.
This applies to all backends. Seeacs_defs.hfor the full list. -
Cleaned up some makefiles for Win32 and Win32a.
On both platforms,vcwin32.makcan now be used with the Intel(R) compiler, andmingwin32.makcan be used to cross-compile from Linux, or incommand.comunder Windows, or with Cygwin/MSYS.
Also added a makefile for Digital Mars for the DOS version. -
The "def" files that were needed before to create PDCurses on Windows are removed as they are no longer necessary.
PDCurses 3.4 - 2008/09/08
Nothing much new this time, but I've been sitting on some bug fixes for almost a year, so it's overdue. Apart from bugs, the main changes are in the documentation.
New features:
- setsyx() is now a function rather than a macro.
Bug fixes and such:
-
In x11, the xc_atrtab table size was under-calculated by half, resulting in crashes at (oddly) certain line counts. (It should've crashed a lot more.) Reported by Mark Hessling.
-
Test for moved cursor was omitting the window origin offset. Reported by Carey Evans.
-
Is DOS and OS/2, the value for max items in key_table was still wrong. Reported by C.E.
-
Changed isendwin() so it won't crash after delscreen().
-
Ensure zero-termination in PDC_mbstowcs() and PDC_wcstombs().
-
Disable QuickEdit Mode when enabling mouse input for the Win32
console; reported by "Zalapkrakna". -
Fix for building under Innotek C (I hope). Report by Elbert Pol, fix
courtesy of Paul Smedley. -
Unified exports list with no duplicates -- pdcurses.def is now built from components at compile time.
-
Don't install curspriv.h, and don't include it with binary distributions.
-
Building DLLs with LCC is no longer supported, due to the primitive nature of its make.exe.
-
Export the terminfo stub functions from the DLLs, too.
-
Added support for Apple's ".dylib" in configure. Suggested by Marc Vaillant (who says it's needed with OS 10.5.)
-
In sdl1/Makefile.mng, ensure that CC is set.
-
In the gcc makefiles, "$?" didn't really have the desired effect -- all the dependencies showed up on the command line, including curses.h, and pdcurses.a twice. And apparently, this can mess up some old version (?) of MinGW. So, revert to spelling out "tuidemo.o tui.o". Reported by "Howard L."
-
Extensive documentation revision and reorganizing. More to do here. For example, I moved the build instructions from INSTALL (which never really described installation) to the platform-specific READMEs.
-
New indentation standard: four spaces, no tabs.
PDCurses 3.3 - 2007/07/11
This release adds an SDL backend, refines the demos, and is faster in some cases.
New features:
-
SDL port. See INSTALL, doc/sdl.txt and sdl1/* for details.
-
Double-buffering -- minimize screen writes by checking, in doupdate() and wnoutrefresh(), whether the changes to curscr are really changes. In most cases, this makes no difference (writes were already limited to areas marked as changed), but it can greatly reduce the overhead from touchwin(). It also helps if you have small, separated updates on the same line.
-
The PDC_RGB colors can now be used, or not, with any platform (as long as the same options are used when compiling both the library and apps). This may help if you have apps that are hardwired to assume certain definitions.
-
Restored the use_default_colors() stuff from the ncurses versions of the rain and worm demos, to make them "transparent" (this is useful now, with the SDL port); added transparency to newdemo.
-
Added setlocale() to tuidemo, to make it easier to browse files with non-ASCII characters.
-
Speed up firework demo by replacing unneeded clear() and init_pair() calls.
-
Allow exit from ptest demo by typing 'q'.
-
New functions for implementors: PDC_pair_content() and PDC_init_pair() (the old pdc_atrtab stuff was arguably the last remnant of code in the pdcurses directory that was based on platform details).
Bug fixes and such:
-
Implicit wrefresh() needs to be called from wgetch() when the window's cursor position is changed, even if there are no other changes.
-
Set SP->audible on a per-platform basis, as was documented in IMPLEMNT, but not actually being done.
-
Minor tweaks for efficiency and readability, notably with wscrl().
-
tuidemo didn't work correctly on monochrome screens when A_COLOR was defined -- the color pair numbers appeared as the corresponding character; also, the input box was (I now realize) broken with ncurses since our 2.7, and broke more subtly with PDCurses' new implicit refresh handling; also, the path to the default file for the Browse function was a bit off.
-
Assume in the demos that curs_set() is always available -- there's no good test for this, and the existing tests were bogus.
-
Made the command-line parameter for ptest work. (If given an argument, it delays that number of milliseconds between changes, instead of waiting for a key, and automatically loops five times.)
-
Building the Win32 DLL with MinGW or Cygwin wouldn't work from outside the platform directory.
-
Building the X11 port with Cygwin required manually editing the Makefile after configuring; no longer. Reported by Warren W. Gay.
-
Minor tightening of configure and makefiles.
-
Bogus references to "ACS_BLCORNER" in the border man page. Reported by "Walrii".
-
slk_wlabel() was not documented.
-
Spelling cleanup.
-
Changed RCSIDs to not end with a semicolon -- avoids warnings when compiling with the
-pedanticoption. -
Merged latin-1.txt into x11.txt.
-
Updated config.guess and config.sub to more recent versions.