Skip to content

Releases: Bill-Gray/PDCursesMod

PDCursesMod 4.4.0 - 2023 Nov 30

01 Dec 19:17
02a61c1
Compare
Choose a tag to compare

(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 and WINDOW structures are now opaque. 1167188 3259719

  • The WA_ flags are now distinct, in builds with 64-bit chtypes and attr_ts (the default). This led to considerable documentation changes and an attempt to make the distinction between WA_ macros (for use with wattr_t) and A_ macros (for use with chtype) clearer. Most implementations of curses have wattr_t == chtype, including PDCurses* and ncurses, but you can't really rely on it. 78658c9

  • The FILE arguments passed to newterm() 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

  • WinGUI keyboard responsiveness could be poor if it wasn't getting enough CPU share. 087c20c

  • Numeric keypad presses were duplicated on SDL2 and GL for Windows. 7c26ec9

  • The SDL2 makefile had a recursive definition of CC and PREFIX. ac96c55

PDCursesMod 4.3.7

17 Jun 23:33
8ef616a
Compare
Choose a tag to compare

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

12 Apr 13:42
b9d7b07
Compare
Choose a tag to compare

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

29 Nov 03:06
d3f6fe6
Compare
Choose a tag to compare

(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

29 Jul 22:20
3cc99c1
Compare
Choose a tag to compare

(See docs/HISTORY.md for more details, and/or the Git log for extreme detail.)

  • Files created by getwin() and putwin() 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-bit chtype 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

26 May 01:44
7a58c20
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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.