Skip to content

Releases: Bill-Gray/PDCursesMod

PDCursesMod 4.3.3

26 May 01:44
7a58c20

Choose a tag to compare

(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 some ncurses extensions for color manipulation) and calendar (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 in ncurses, 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

06 Feb 16:38
da3bdbd

Choose a tag to compare

(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 to endwin(). It makes no difference to PDCurses, but some other build processes relied on seeing an unmangled initscr().
  • 32-bit chtype, non-wide builds get 4096 color pairs and all twelve attribute bits that you'd get with 64-bit chtypes.
  • 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 shows A_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 exercise getcchar() and setcchar().
  • 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

01 Dec 16:41
bd8fa58

Choose a tag to compare

(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 and CHTYPE_LONG macros. You can still set CHTYPE_32 to get old-style 32-bit chtypes (and mmask_ts).
  • Added four ncurses demos.
  • Lots of bug fixes... again, see docs/HISTORY.md for more details.

PDCursesMod 4.3.0

25 Aug 22:28
c6fddd0

Choose a tag to compare

(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 asserts for NULL parameters. Many functions in curses allow you to pass a NULL 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

03 Oct 21:29

Choose a tag to compare

(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 to PDCursesMod, 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.

PDCurses 4.2.0 beta - 2020/05/2?

22 May 02:12

Choose a tag to compare

Pre-release

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-style init_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_RGB attribute 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 picsview demo (a ripoff/homage to Thomas E. Dickey's picsmap demo for ncurses). Similar to that program, picsview serves 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 ncurses behavior. (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() and noraw() now work correctly on WinGUI and VT. (They have never worked on X11, SDLn, or WinCon.)

PDCurses 4.1.0 - 2019/05/10

11 May 00:10

Choose a tag to compare

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

09 Sep 16:06

Choose a tag to compare

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 testcurs to test all these new features, and newtest added to test still more features.

  • Option to get detailed version information of the used PDCurses library at run time with new exported PDC_version as PDC_version_info structure.

  • 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. See acs_defs.h for the full list.

  • Cleaned up some makefiles for Win32 and Win32a.
    On both platforms, vcwin32.mak can now be used with the Intel(R) compiler, and mingwin32.mak can be used to cross-compile from Linux, or in command.com under 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

11 Sep 14:47

Choose a tag to compare

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

11 Sep 14:50

Choose a tag to compare

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 -pedantic option.

  • Merged latin-1.txt into x11.txt.

  • Updated config.guess and config.sub to more recent versions.