Skip to content
Choose a tag to compare

PDCurses 3.9 - 2019-09-04

@wmcbrine wmcbrine released this Sep 4, 2019
· 66 commits to master since this release
Choose a tag to compare

768 colors, single-process X11, copy-and-paste for all, and more.

New features

  • Single-process, single-thread version of the X11 port. Much, much
    faster than the two-process version. Needs more testing. This version
    omits translations.

  • A common copy-and-paste system for all platforms, based on the
    PDC_*clipboard() functions. (This is the first time copy-and-paste is
    available for the SDL ports, and it replaces the old X11-specific
    C&P.) Press and hold button 1 while selecting; paste with button 2.
    Add Shift if mouse events are activated in curses. You can also paste
    via Shift-Ctrl-V, and copy with Shift-Ctrl-C (although selecting
    already sets the buffer). Note that paste is implemented via
    ungetch(), and is currently limited to 256 characters at a time. (You
    can get more via PDC_getclipboard().) With some ports (e.g. Wincon),
    the existing terminal C&P mechanism may override PDCurses'. DOS and
    SDL1 can only C&P within the same app.

  • A new maximum of 768 colors, for Wincon, SDL and X11. COLOR_PAIRS is
    still limited to 256. The idea is that each pair can have a unique
    foreground and background, without having to redefine any of the first
    256 (predefined) colors. Colors 256-767 have no initial definitions,
    and are intended to be set via init_color(). An example has been added
    to testcurs (loosely based on part of newtest, by Bill Gray).

  • Wincon now allows redefinition of all 768 colors, and allows it even
    under ConEmu.

  • True italics for ConEmu. (It seems it should also support true bold,
    but I couldn't make that work.)

  • Added new functions from ncurses and/or NetBSD: has_mouse(),
    is_keypad(), is_leaveok(), is_pad(), set_tabsize(), touchoverlap(),
    underscore(), underend(), wunderscore(), and wunderend(). See the man
    pages for descriptions. Partly due to Karthik Kumar Viswanathan, and
    suggestions of Simon Sobisch.

Bug fixes and such

  • Check for standard C++ (>= 98), where native bool should exist, and use
    that; otherwise (pre-/non-standard C++) fall back to the old behavior.
    Satisfies clang, hopefully doesn't mess anything else up.

  • Recent versions of clang throw an error over "-install_name".

  • Most curses functions assumed a valid SP (i.e. that initscr() had
    already been called). Now, instead, they return ERR or other
    appropriate values. Suggestion of S.S.

  • Deprecated PDC_save_key_modifiers() -- there's no benefit to NOT
    saving them.

  • Hold back screen updates due to palette changes until paused; always
    do this update now (previously only in X11 and SDL, seems necessary in
    Windows 10 1903).

  • SDL2 windows were freezing on moving to another screen (reported by
    Mark Hessling). Still issues with moving between screens of different

  • Find the X libraries in some additional locations. After M.H.

  • Converted default X11 icons to XPM, fixing their non-display in Ubuntu.

  • Made XIM standard, removed "classic" X11 compose system.

  • Made wide-character build the default for X11 (--disable-widec for

  • Smoother resizing in X11, when not in scrollbar mode.

  • Dropped X11 options "borderWidth" (broken since at least 2.7) and
    "cursorColor" (now set automatically for contrast).

  • Correctly restore Insert mode and QuickEdit mode in Wincon's
    PDC_reset_shell_mode(). Patch by "vyv03354".

  • Add a WINDRES variable to wincon/Makefile for the sake of cross-
    compilers. Patch by Marc-Andre Lureau.

  • Suppress cursor movement during color tests in testcurs.

  • Added UTF-8-demo.txt for tuidemo to browse (by default, only in forced
    UTF-8 mode). File by Markus Kuhn.

  • Moved the doc files from "man" to "docs" -- the docs/man thing was too
    confusing. Streamlined the web page into two files.

  • Rewrote the "Portability" sections of the man pages to reflect current
    ncurses and NetBSD. The old charts weren't very accurate.

  • Document resolution of timeout() and napms(). Suggested by S.S.

  • Rewrote manext (again) in Awk.

  • Changed most dates to ISO format.

See the git log for more details.