(See docs/HISTORY.md
for more details, and/or the Git log for extreme detail.)
Major new features
-
Added an OS/2 GUI port, provided by chasonr. 23b1fbe 267f92a
-
The ncurses 'menu' library can be compiled and used with PDCursesMod,
and the ncurses program 'demo_menus' built to test it out. (The
'forms' library can be built in 8-bit character mode -- it currently
uses ncurses internals for wide mode -- but doesn't appear to
actually work yet.) 07bc4ac 1ad9562
Minor new features
-
The DRM and Linux framebuffer port now allows for screen rotation.
Hit Alt-/ for a 90-degree rotation. This should pave the way for
support on phones and other rotatable displays (and already helps if
you have a monitor in portrait mode). 0e41ba5 1b7b432 -
Added
is_cbreak()
,is_echo()
,is_nl()
,is_raw()
functions to
access members of the non-opaqueSCREEN
struct. The first two
replacePDC_getcbreak()
andPDC_getecho()
. 98b6969 -
Windows can be created, moved, and resized that go off the right
and bottom edges of the screen, a la ncurses. (I think this was
an acknowledgment of the fact that after resizing a screen, windows
might go over those edges anyway.) Windows still cannot go off the
left or top edges. bc51d18 -
Added a new 'test' program for the issues mentioned above with
scrolling andwinsertln()
,wdeleteln()
,winsdelln()
. 98c7405 -
Three new small test programs to investigate various aspects of
how curses works (or doesn't work). 5cef1e3 -
The 'tests' programs can now be built, on some platforms, with
'make -f Makefile tests'. 200b548 e611673 63138ea
80fdfe7 218aa8c -
Switched from defaulting to ncurses-6.4 tests to ncurses-6.5.
-
WinGUI now defaults to resizable windows, similar to SDLn, WinCon,
and X11. 58807ea -
winsnstr()
handled 513 bytes from the input, instead of the clearly
intended 513wchar_t
s. This worked, but was an unnecessarily low
limitation. It is now fixed, and the function can now handle
arbitrarily long strings via recursion. Added some code to test this
in 'show_col.c'. 3f8dfa9 18ef78d -
PDC_wcwidth( )
updated from Unicode 14.0.0 to 16.0.0 93e32ef a5f13c2
Bug fixes
-
In rare cases, blinking on the framebuffer port could be disabled
due to an integer rollover. eaee2a6 -
In WinGUI, we could potentially read memory out of bounds. From
slipher. 70d2724 -
In WinGUI, theoretically 'monospaced' fonts were not necessarily
monospaced. Reverted to drawing each character separately. b99fed1 -
In WinGUI, when redrawing a string of characters, the preceding and
subsequent glyphs were also redrawn. This was apparently needed at
one time to avoid stray pixels, but appears to be unnecessary now.
8466f73 -
In WinGUI and WinCon,
PDC_clearclipboard()
would fail if the clipboard
was not open. From Mark Hessling. a071130 -
If
napms()
was called with a negative value, it would lock. 65dfa7e -
Framebuffer/DRM port didn't redraw upon changing fonts if the new font
was the same size as the old one. c714cd9 -
wsetscrreg()
required the cursor for the window to be positioned
between the 'top' and 'bottom' of the new scroll region. 5a0d5be -
wdeleteln()
would delete the line currently under the cursor, then
bring up lines down to the end of the current scroll region, inserting
a blank line there. It really should delete all the way to the bottom
of the window. See also wmcbrine/PDCurses/issues/165. b02f94f -
The 'picsview' demo had a possible buffer overrun error. Reported and
fix proposed by Michael Knap. fcd2dd0 -
Plan9 port ran into a compile error due to different timekeeping
functions. Also was missing a few demos and term.h. 1e8472c -
Removed an
assert()
inmvwin()
when the window was moved outside the
screen area. Some programs (including 'test_pan') assume they can try
moving a window, then check the return value to see if it was actually
on screen. c801354 -
PDC_set_box_type()
has been removed, because it's an unneeded redundancy.
You can get double-lined or thick-lined boxes, and/or rounded corners,
via the standard Curseswborder_set()
function, and it'll work with
ncurses and other libraries. 'test_pan' revised to provide an example
of how that's done. f8d87ed549 099fa28 -
printw()
overflowed a buffer when asked to output more than 512 bytes.
ddf80d0 -
napms()
rounded up to the nearest clock tick on DOS and DOSVGA; it now
rounds to the nearest clock tick (with at least one tick being used).
Modified the documentation to reflect this. 785113f -
PDC_wcstombs()
could overflow a buffer in the UTF8 decoding. 7d704dd -
DOS and DOSVGA builds failed on Digital Mars. Several small fixes were
required. 981893b d22725b 32f2266 fd1ddf8 -
Fixes for Borland Turbo C compilation. a59f452 26128c2
d6b7e99 -
panel_hidden()
is now portable, returning TRUE (1) and FALSE (0) instead
ofOK
(0) andERR
(-1) This may break existing applications, so you possibly
want to check for the PDCursesMod build (PDC_BUILD < 4500
). Or see
demos/testpan.c
for a solution portable to ncurses and PDCurses.