Skip to content

Releases: wmcbrine/PDCurses

PDCurses 2.8 - 2006-04-01

11 Apr 15:55
Compare
Choose a tag to compare

As with the previous version, you should assume that apps linked against
older dynamic versions of the library won't work with this one until
recompiled.

New features:

  • Simpler, faster.

  • Declarations for all supported, standard functions, per the X/Open
    Curses 4.2 spec, with the notable exception of getch() and ungetch().
    You can disable the use of the macro versions by defining NOMACROS
    before including curses.h (see xmas.c for an example). NOMACROS yields
    smaller but theoretically slower executables.

  • New functions: vwprintw(), vwscanw(), vw_printw() and vw_scanw(). This
    completes the list of X/Open 4.2 functions, except for those concerned
    with attr_t and wide characters. Some (especially the terminfo/termcap
    functions) aren't yet fully fleshed out, though.

  • Non-macro implementations for COLOR_PAIR(), PAIR_NUMBER(), getbkgd(),
    mvgetnstr(), mvwgetnstr(), mvhline(), mvvline(), mvwhline(), and
    mvwvline(). (The macros are still available, too.)

  • newterm() works now, in a limited way -- the parameters are ignored,
    and only the first invocation will work (i.e., only one SCREEN can be
    used).

  • start_color() works now -- which is to say, if you don't call it,
    you'll only get monochrome output. Also, without calling it, the
    terminal's default colors will be used, where supported (currently
    only in Win32). This is equivalent to the PDC_ORIGINAL_COLORS behavior
    introduced in 2.7, except that only the default colors will be used.
    (PDC_ORIGINAL_COLORS is still available, if you want to combine the
    use of specific colors and the default colors.)

  • New logic for termname() and longname(): termname() always returns
    "pdcurses"; longname() returns "PDCurses for [platform] [adapter]
    [COLOR/MONO]-YxX" (adapter is only defined for DOS and OS/2). This is
    the first time these functions return anything in Win32.

  • New installation method for XCurses: the header files are placed in a
    subdirectory "xcurses" within the include directory, rather than being
    renamed. (But the renamed xcurses.h and xpanel.h are also installed,
    for backwards compatibility.) curspriv.h and term.h are now available,
    and existing curses-based code need no longer be edited to use
    XCurses' curses.h. And with no more need for explicit XCursesExit()
    calls (see below), your code need not be changed at all to move from
    another curses implementation to XCurses. It can be as simple as "gcc
    -I/usr/local/include/xcurses -lXCurses -oprogname progname.c".

  • Combined readme.* into this HISTORY file, and incorporated the old 1.x
    (PCcurses) history.

  • New functionality for the testcurs demo: ACS character display; menu
    support for PgUp, PgDn, Home and End; centered menu; and it can now
    be resized in X.

  • Added modified versions of the rain and worm demos from ncurses.

Bug fixes and such:

  • Big cleanup of dead and redundant code, including unneeded defines,
    ifdefs, and structure elements.

  • flushinp() was not implemented for Win32.

  • resetty() was not restoring LINES and COLS.

  • nonl() made '\n' print a line feed without carriage return. This was
    incorrect.

  • Removed bogus implementation of intrflush().

  • The line-breakout optimization system, disabled by default in 2.7, is
    removed in 2.8. It simply didn't work, and never has. (The typeahead()
    function remains, for compatibility, but does nothing.)

  • The declarations for the printw() and scanw() function families were
    erroneously ifdef'd.

  • Safer printw() calls on platforms that support vsnprintf().

  • Use the native vsscanf() in DJGPP, MinGW and Cygwin.

  • ACS_BLOCK now works in X.

  • Explicit calls to XCursesExit() are no longer needed.

  • XCURSES is now defined automatically if not DOS, OS2 or WIN32.

  • The default icon for XCurses wasn't working (had to remove the focus
    hint code to fix this). Also, the default title is now "XCurses"
    instead of "main".

  • Incorrect dimensions (undercounting by two in each direction) were
    shown while resizing in X.

  • Scroll wheel events were not always correctly reported in X.

  • 32 bits are enough for the "long" chtype, but 64 bits were used on a
    64-bit system, wasting memory. Now conditioned on _LP64. This could be
    faster, too.

  • The short, 16-bit chtype now works with XCurses.

  • Corrected return value for is_linetouched(), is_wintouched(),
    can_change_color() and isendwin() (bool instead of int).

  • timeout(), wtimeout(), idcok() and immedok() return void.

  • pair_content() takes a short.

  • Replaced incorrect usages of attr_t with chtype. attr_t is still
    typedef'd, for backwards compatibility. (It's supposed to be used for
    the WA_*-style functions, which PDCurses doesn't yet support.)

  • Added const where required by the spec, and in other appropriate
    places.

  • Removed PDC_usleep(). napms() is now the core delay routine.

  • Fixed poll() support in napms().

  • Various changes to the internal PDC_* functions -- don't depend on
    these, and don't use them unless you absolutely have to.

  • Some routines accessed window structures in their variable
    declarations, before checking for a NULL window pointer.

  • Dropped support for the undocumented PDC_FULL_DISPLAY, wtitle(), and
    PDC_print().

  • Cleaned up remaining warnings.

  • Reduced unnecessary #include directives -- speeds up compilation.

  • Fix for demos build in Borland/DOS -- the makefile in 2.7 didn't
    specify the memory model. Reported by Erwin Waterlander.

  • Simplified the makefiles; e.g., some now build each demo in a single
    step, and Watcom no longer uses demos.lnk. Also, the demo exes are now
    stripped when possible; maximum compression used for archives built
    by the makefiles; xcurses-config removed as part of "make distclean";
    and I tweaked optimization for some platforms.

  • Reverted to /usr/local/ as default installation directory for XCurses.

  • Upgraded to autoconf 2.59... instantly doubling the size of the
    configure script. Ah well. Otherwise, simplified the build system.

  • Dropped support for pre-ANSI compilers. (It hasn't worked since at
    least version 2.4, anyway.)

  • Revised and, I hope, clarified the boilerplate and other comments.

  • Simplified logging and RCS ids; added RCS ids where missing.

  • Consistent formatting for all code, approximately equivalent to
    "indent -kr -i8 -bl -bli0", with adjustments for 80 columns.

PDCurses 2.7 - 2005-12-30

11 Apr 15:59
Compare
Choose a tag to compare

INTRODUCTION:

Hello all. As of a few weeks ago, I'm the new maintainer for PDCurses.
Here's a brief summary of changes in this release. (More details are
available in the CVS log and trackers on SourceForge.)

NEW FEATURES:

  • Functions: delscreen(), getattrs(), has_key(), slk_color(),
    wcolor_set(), wtimeout().

  • Macros: color_set(), mvhline(), mvvline(), mvwgetnstr(), mvwhline(),
    mvwvline(), timeout(), wresize().

  • Stub implementations of terminfo functions (including a term.h).

  • More stubs for compatibility: filter(), getwin(), putwin(),
    noqiflush(), qiflush(), scr_dump(), scr_init(), scr_restore(),
    scr_set(), use_env(), vidattr(), vidputs().

  • The terminal's default colors are used as curses' default colors when
    the environment variable "PDC_ORIGINAL_COLORS" is set to any value
    (Win32 only at the moment).

  • Simplified build system.

  • Replaced PDC_STATIC_BUILD with its opposite, PDC_DLL_BUILD (see .mak
    files for more info).

  • Minimal implementation of color_content() -- no longer a stub.

  • Added the remaining ACS defines (ACS_S3, ACS_BBSS, etc.) for
    DOS/OS2/Win; "enhanced" versions of existing ACS characters used.

  • Support for scroll wheels.

  • Support for Pacific C.

BUGS FIXED:

  • Builds correctly (including demos) on all tested platforms (see
    below); nearly all compiler warnings have been cleaned up; the ptest
    demo is built on all platforms; "clean" targets are improved.

  • The ability to build ncurses_tests has been restored (see demos dir).

  • Line-breakout optimization now defaults to off (equivalent to
    "typeahead(-1)"), so output is not interrupted by keystrokes (it's
    supposed to resume on the next refresh(), which wasn't working).

  • Implicit wrefresh() in wgetch() was not being invoked in nodelay mode.

  • subpad() was erroneously offsetting from the origin coordinates of the
    parent pad (which are always -1,-1).

  • In wborder(), whline(), and wvline(), the current (wattrset) attribute
    was being used, but not the current background (wbkgd).

  • Allow Russian 'r' character ASCII 0xe0 to be returned.

  • termattrs() now also returns A_UNDERLINE, A_REVERSE.

  • In Win32, with large scrollback buffers set, there was an unwanted
    "scrollup" effect on startup.

  • Revamped keyboard handling for Win32.

  • New screen resize method for Win32.

  • napms(), delay_output(), etc. now work with Cygwin.

  • curs_set(0) wasn't working in Win32 in full-screen (ALT-ENTER) mode --
    the cursor stayed on.

  • The A_REVERSE attribute was broken in XCurses.

  • On 64-bit systems, XCurses was ignoring every other keystroke.

  • Added focus hints for XCurses.

  • Demos (except for tuidemo) once again have their proper titles in
    XCurses (using Xinitscr() instead of the obsolete XCursesProgramName).

  • The 16-bit chtype is a working option again (by removing #define
    CHTYPE_LONG from curses.h), except in XCurses. It's not recommended;
    but if your needs are limited, it still works.

  • Reset screen size in resetty() under DOS, as in Win32 and OS/2.

  • Changes for cursor size under DOS.

  • Automatic setting of BIOS mode for CGA under DOS now works.

  • The cursor is now always updated in PDC_gotoxy(); this fixes the
    problem of missing characters in BIOS mode.

  • Macros nocbreak(), cbreak(), nocrmode(), crmode(), nodelay(),
    nl() and nonl() now return OK.

  • ERR and OK are now defined as -1 and 0, respectively, for
    compatibility with other curses implementations -- note that this
    change is not binary compatible; you'll have to rebuild programs that
    use shared/dynamic libraries.

  • Added "const" to prototypes where appropriate.

  • Miscellaneous code cleanup.

ACKNOWLEDGEMENTS:

  • Walter Briscoe
  • Jean-Pierre Demailly
  • Ruslan Fedyarov
  • Warren Gay
  • Florian Grosse-Coosmann
  • Vladimir Kokovic
  • Matt Maloy
  • K.H. Man
  • Michael Ryazanov
  • Ron Thibodeau
  • Alexandr Zamaraev

and of course, MARK HESSLING, for his over 13 years of service as the
maintainer of PDCurses. Plus, thanks to all who've reported bugs or
requested features. Apologies to anyone I've forgotten.

I've tested this version on Turbo C++ 3.0 and Borland C++ 3.1 for DOS;
DJGPP 2.X; Open Watcom 1.3 for DOS (16 and 32-bit), Windows and OS/2;
EMX 0.9d and the "newgcc" version of EMX; Borland C++ 5.5 for Windows;
recent versions of MinGW, Cygwin, LCC-Win32 and Microsoft Visual C++;
and gcc under several flavors of Linux, Mac OS X, *BSD and Solaris.

-- William McBrine

PDCurses 2.6 - 2003-01-08

11 Apr 16:01
Compare
Choose a tag to compare

INTRODUCTION:

This release of PDCurses includes the following changes:

BUGS FIXED:

  • Allow accented characters on Win32 platform when run on non-English
    keyboards.

  • Allow "special" characters like Ctrl-S, Ctrl-Q under OS/2 to be returned.

  • Some bugs with halfdelay() fixed by William McBrine.

  • pechochar() should now work correctly.

  • redrawwin() macro in curses.h was incorrect - fixed by Alberto Ornaghi

  • Don't include "special" characters like KEY_SHIFT_L to be returned in
    getnstr() family. Bug 542913

  • Entering TAB in wgetnstr() no longer exceeds requested buffer size.
    Bug 489233

  • Fixed bug 550066, scrollok() and pads.
    Also beep() called when buffer exceeded. Bug 562041.

  • Reverse video of X11 selection reinstated. Pablo Garcia Abio??

  • Right Alt modifier now works like left Alt modifier under Win32

  • Add support for all libXaw replacement libraries with Scrollbar bug.
    Note that for this to work, you still have to change the libXaw
    replacement libraries to fix the bug :-(

  • Don't trap signals in XCurses if calling application has ignored them.
    Change by Frank Heckenbach.

  • Bug reports from Warren W. Gay:

    • Fix termattrs() to return A_REVERSE and A_BLINK on all platforms.
    • Fix definition of getsyx() and setsyx() to be consistent with
      ncurses. Bug 624424.
    • Fix definition of echo() and noecho(). Bug 625001.
    • Fix definition of keypad() and leaveok(). Bug 632653.
    • Missing panel_hidden() prototype. Bug 649320.
  • Fixed bug with calling def_prog_mode(), resize_term(),
    reset_prog_mode(); the resize details were being lost.

NEW FEATURES:

  • Clipboard support now available on DOS platform, but handled
    internally to the currently running process.

  • New X11 resource: textCursor, allows the text cursor to be specified
    as a vertical bar, or the standard horizontal bar. Thanks to Frank
    Heckenbach for the suggestion.

NEW COMPILER SUPPORT:

  • lcc-win32 now works correctly

PDCurses 2.5 - 2001-11-26

11 Apr 16:03
Compare
Choose a tag to compare

INTRODUCTION:

This release of PDCurses includes the following changes:

  • Set BASE address for Win32 DLL

  • Add KEY_SUP and KEY_SDOWN.

  • Add PDC_set_line_color()

  • Add blink support as bold background

  • Add bold colors

  • Add getbkgd() macro

  • Add new PDC functions for adding underline, overline, leftline and
    rightline

  • Add support for shifted keypad keys.

  • Allow more keypad keys to work under Win32

  • Change Win32 and OS/2 DLL name to curses.dll

  • Change example resources to allow overriding from the command line

  • Changes for building cleanly on OS/2

  • Changes to handle building XCurses under AIX

  • Check if prefresh() and pnoutrefresh() parameters are valid.

  • Ensure build/install works from any directory

  • Handle platforms where X11 headers do not typedef XPointer.

  • Mention that Flexos is likely out-of-date.

  • Pass delaytenths to XCurses_rawgetch()

  • Remove boldFont

  • Updates for cursor blinking and italic.

BUGS FIXED:

  • Fix bug with getting Win32 clipboard contents. Added new
    PDC_freeclipboard() function.

  • Fix bug with halfdelay()

  • Fix bug with mouse interrupting programs that are not trapping mouse
    events under Win32.

  • Fix return value from curs_set()

  • Reverse the left and right pointing bars in ALT_CHARSET

NEW COMPILER SUPPORT:

  • Add QNX-RTP port

PDCurses 2.4 - 2000-01-17

11 Apr 16:06
Compare
Choose a tag to compare

INTRODUCTION:

This release of PDCurses includes the following changes:

  • full support of X11 selection handling

  • removed the need for the cursos2.h file

  • enabled the "shifted" key on the numeric keypad

  • added native clipboard support for X11, Win32 and OS/2

  • added extra functions for obtaining internal PDCurses status

  • added clipboard and key modifier tests in testcurs.c

  • fixes for panel library

  • key modifiers pressed by themselves are now returned as keys:
    KEY_SHIFT_L KEY_SHIFT_R KEY_CONTROL_L KEY_CONTROL_R KEY_ALT_L KEY_ALT_R
    This works on Win32 and X11 ports only

  • Added X11 shared library support

  • Added extra slk formats supported by ncurses

  • Fixed bug with resizing the terminal when slk were on.

  • Changed behavior of slk_attrset(), slk_attron() slk_attroff()
    functions to work more like ncurses.

BUGS FIXED:

  • some minor bug and portability fixes were included in this release

NEW FUNCTIONS:

  • PDC_getclipboard() and PDC_setclipboard() for accessing the native
    clipboard (X11, Win32 and OS/2)

  • PDC_set_title() for setting the title of the window (X11 and Win32
    only)

  • PDC_get_input_fd() for getting the file handle of the PDCurses input

  • PDC_get_key_modifiers() for getting the keyboard modifier settings at
    the time of the last (w)getch()

  • Xinitscr() (only for X11 port) which allows standard X11 switches to
    be passed to the application

NEW COMPILER SUPPORT:

  • MingW32 GNU compiler under Win95/NT

  • Cygnus Win32 GNU compiler under Win95/NT

  • Borland C++ for OS/2 1.0+

  • lcc-win32 compiler under Win95/NT

ACKNOWLEDGEMENTS: (for this release)

  • Georg Fuchs for various changes.
  • Juan David Palomar for pointing out getnstr() was not implemented.
  • William McBrine for fix to allow black/black as valid color pair.
  • Peter Preus for pointing out the missing bccos2.mak file.
  • Laura Michaels for a couple of bug fixes and changes required to
    support Mingw32 compiler.
  • Frank Heckenbach for PDC_get_input_fd() and some portability fixes and
    the fixes for panel library.
  • Matthias Burian for the lcc-win32 compiler support.