find . -type f |xargs perl -pi -e 's, *$,,' find . -type f |xargs perl -pi -e 's, *$,,' Change-Id: I62c2bc15b7c395a68b68422e701edf98b08e27c6 Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-on: http://review.coreboot.org/12399 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
		
			
				
	
	
		
			1926 lines
		
	
	
		
			72 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			1926 lines
		
	
	
		
			72 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| PDCurses 3.4 - 2008/09/08
 | |
| =========================
 | |
| 
 | |
| 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
 | |
| =========================
 | |
| 
 | |
| 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.
 | |
| 
 | |
| - Sped 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.
 | |
| 
 | |
| ------------------------------------------------------------------------
 | |
| 
 | |
| PDCurses 3.2 - 2007/06/06
 | |
| =========================
 | |
| 
 | |
| This release mainly covers changes to the build process, along with a
 | |
| few structural changes.
 | |
| 
 | |
| New features:
 | |
| 
 | |
| - The panel library has been folded into the main library. What this
 | |
|   means is that you no longer need to specify "-lpanel" or equivalent
 | |
|   when linking programs that use panel functionality with PDCurses;
 | |
|   however, panel.lib/.a is still provided (as a copy of pdcurses.lib/.a)
 | |
|   so that you can, optionally, build your projects with no changes. It
 | |
|   also means that panel functionality is available with the DLL or
 | |
|   shared library. Note that panel.h remains separate from curses.h.
 | |
| 
 | |
| - Setting the PDCURSES_SRCDIR environment variable is no longer required
 | |
|   before building, unless you want to build in a location other than the
 | |
|   platform directory. (See INSTALL.)
 | |
| 
 | |
| - MinGW and Cygwin makefiles support building DLLs, via the "DLL=Y"
 | |
|   option. Partly due to Timofei Shatrov.
 | |
| 
 | |
| - Support for the Digital Mars compiler.
 | |
| 
 | |
| - Watcom makefiles now use the "loaddll" feature.
 | |
| 
 | |
| Bug fixes and such:
 | |
| 
 | |
| - Eliminated the platform defines (DOS, WIN32, OS2, XCURSES) from
 | |
|   curses.h, except for X11-specific SCREEN elements and functions.
 | |
|   Dynamically-linked X11 apps built against an old version will have
 | |
|   their red and blue swapped until rebuilt. (You can define PDC_RGB to
 | |
|   build the library with the old color scheme, but it would also have to
 | |
|   be defined when building any new app.) Any app that depends on
 | |
|   PDCurses to determine the platform it's building on will have to make
 | |
|   other arrangements.
 | |
| 
 | |
| - Documentation cleanup -- added more details; removed some content that
 | |
|   didn't apply to PDCurses; moved the doc-building tool to the doc
 | |
|   directory; changed *.man to *.txt.
 | |
| 
 | |
| - The EMX makefile now accepts "DLL=Y", builds pdcurses.dll instead of
 | |
|   curses.dll, builds either the static library or the DLL (not both at
 | |
|   once), and links all the demos with the DLL when building it.
 | |
| 
 | |
| - In Win32, read the registry only when needed: when init_color() or
 | |
|   color_content() is called, instead of at startup.
 | |
| 
 | |
| - A few additional consts in declarations.
 | |
| 
 | |
| - The Win32 compilers that build DLLs now use common .def files.
 | |
| 
 | |
| - panel.h functions sorted by name, as with other .h files; curses.h is
 | |
|   no longer included by repeated inclusions of panel.h or term.h.
 | |
| 
 | |
| - Simplified Borland makefiles.
 | |
| 
 | |
| - Makefile.aix.in depended on a file, xcurses.exp, that was never there.
 | |
|   This problem was fixed as part of the change to common .def files;
 | |
|   however, I still haven't been able to test building on AIX.
 | |
| 
 | |
| ------------------------------------------------------------------------
 | |
| 
 | |
| PDCurses 3.1 - 2007/05/03
 | |
| =========================
 | |
| 
 | |
| Primarily clipboard-related fixes, and special UTF-8 support.
 | |
| 
 | |
| New features:
 | |
| 
 | |
| - "Force UTF-8" mode, a compile-time option to force the use of UTF-8
 | |
|   for multibyte strings, instead of the system locale. (Mainly for
 | |
|   Windows, where UTF-8 doesn't work well in the console.) See INSTALL.
 | |
| 
 | |
| - Multibyte string support in PDC_*clipboard() functions, and in Win32's
 | |
|   PDC_set_title().
 | |
| 
 | |
| - Added the global string "ttytype", per other curses implementations,
 | |
|   for compatibility with old BSD curses.
 | |
| 
 | |
| - Real functions for the "quasi-standard aliases" -- crmode(),
 | |
|   nocrmode(), draino(), resetterm(), fixterm() and saveterm().
 | |
|   (Corresponding macros removed.)
 | |
| 
 | |
| Bug fixes and such:
 | |
| 
 | |
| - In Win32, under NT-family OSes, the scrollback buffer would be
 | |
|   restored by endwin(), but would not be turned off again when resuming
 | |
|   curses after an endwin(). The result was an odd, partly-scrolled-up
 | |
|   display. Now, the buffer is toggled by PDC_reset_prog_mode() and
 | |
|   PDC_reset_shell_mode(), so it's properly turned off when returning
 | |
|   from an endwin().
 | |
| 
 | |
| - In 3.0, selection in X11 didn't work. (Well, the selecting worked, but
 | |
|   the pasting elsewhere didn't.) This was due to the attempted fix
 | |
|   "don't return selection start as a press event," so that's been
 | |
|   reverted for now.
 | |
| 
 | |
| - PDC_setclipboard() was locking up in X11. Reported by Mark Hessling.
 | |
| 
 | |
| - Missing underscore in the declaration of XC_say() prevented
 | |
|   compilation with PDCDEBUG defined.  Reported by M.H.
 | |
| 
 | |
| - Off-by-one error in copywin() -- the maximum coordinates for the
 | |
|   destination window should be inclusive. Reported by Tiago Dionizio.
 | |
| 
 | |
| - Start in echo mode, per X/Open. Reported by T.D.
 | |
| 
 | |
| - Strip leading and trailing spaces from slk labels, per a literal
 | |
|   reading of X/Open. Suggested by Alexey Miheev (about ncurses, but it
 | |
|   also applies here).
 | |
| 
 | |
| - The #endif for __PDCURSES__ needs to come _after_ the closing of the
 | |
|   extern "C". This has been broken since June 2005. Fortunately (?), it
 | |
|   only shows up if the file is included multiple times, and then only in
 | |
|   C++. Reported on the DOSBox forums.
 | |
| 
 | |
| - Use CF_OEMTEXT instead of CF_TEXT in the narrow versions of the
 | |
|   clipboard functions in Win32, to match the console.
 | |
| 
 | |
| - Changed the format of the string returned from longname().
 | |
| 
 | |
| - In the clipboard test in the testcurs demo, use a single mvprintw() to
 | |
|   display the return from PDC_getclipboard(), instead of a loop of
 | |
|   addch(), which was incompatible with multibyte strings.
 | |
| 
 | |
| - Moved has_key() into the keyname module, and documented it.
 | |
| 
 | |
| - Moved RIPPEDOFFLINE to curspriv.h.
 | |
| 
 | |
| - Typos in IMPLEMNT.
 | |
| 
 | |
| ------------------------------------------------------------------------
 | |
| 
 | |
| PDCurses 3.0 - 2007/04/01
 | |
| =========================
 | |
| 
 | |
| The focuses for this release are X/Open conformance, i18n, better color
 | |
| support, cleaner code, and more consistency across platforms.
 | |
| 
 | |
| This is only a brief summary of the changes. For more details, consult
 | |
| the CVS log.
 | |
| 
 | |
| New features:
 | |
| 
 | |
| - An almost complete implementation of X/Open curses, including the
 | |
|   wide-character and attr_t functions (but excluding terminfo). The
 | |
|   wide-character functions work only in Win32 and X11, for now, and
 | |
|   require building the library with the appropriate options (see
 | |
|   INSTALL). Note that this is a simplistic implementation, with exactly
 | |
|   one wchar_t per cchar_t; the only characters it handles properly are
 | |
|   those that are one column wide.
 | |
| 
 | |
| - Support for X Input Methods in the X11 port (see INSTALL). When built
 | |
|   this way, the internal compose key support is disabled in favor of
 | |
|   XIM's, which is a lot more complete, although you lose the box cursor.
 | |
| 
 | |
| - Multibyte character support in the non-wide string handling functions,
 | |
|   per X/Open. This only works when the library is built with wide-
 | |
|   character support enabled.
 | |
| 
 | |
| - Mouse support for DOS and OS/2. The DOS version includes untested
 | |
|   support for scroll wheels, via the "CuteMouse" driver.
 | |
| 
 | |
| - An ncurses-compatible mouse interface, which can work in parallel with
 | |
|   the traditional PDCurses mouse interface. See the man page (or
 | |
|   mouse.c) for details.
 | |
| 
 | |
| - DOS and OS/2 can now return modifiers as keys, as in Win32 and X11.
 | |
| 
 | |
| - COLORS, which had been fixed at 8, is now either 8 or 16, depending on
 | |
|   the terminal -- usually 16. When it's 8, blinking mode is enabled
 | |
|   (controlled as before by the A_BLINK attribute); when it's 16, bright
 | |
|   background colors are used instead. On platforms where it can be
 | |
|   changed, the mode is toggled by the new function PDC_set_blink().
 | |
|   PDCurses tries to set PDC_set_blink(FALSE) at startup. (In Win32, it's
 | |
|   always set to FALSE; in DOS, with other than an EGA or VGA card, it
 | |
|   can't be.) Also, COLORS is now set to 0 until start_color() is called.
 | |
| 
 | |
| - Corresponding to the change in COLORS, COLOR_PAIRS is now 256.
 | |
| 
 | |
| - Working init_color() and color_content(). The OS/2 version of
 | |
|   init_color() works only in a full-screen session; the Win32 version
 | |
|   works only in windowed mode, and only in NT-family OSes; the DOS
 | |
|   version works only with VGA adapters (real or simulated). The Win32
 | |
|   version is based mostly on James Brown's setconsoleinfo.c
 | |
|   (www.catch22.net).
 | |
| 
 | |
| - use_default_colors(), assume_default_colors(), and curses_version(),
 | |
|   after ncurses.
 | |
| 
 | |
| - Added global int TABSIZE, after ncurses and Solaris curses; removed
 | |
|   window-specific _tabsize.
 | |
| 
 | |
| - Logical extension to the wide-character slk_ funcs: slk_wlabel(), for
 | |
|   retrieving the label as a wide-character string.
 | |
| 
 | |
| - A non-macro implementation of ncurses' wresize().
 | |
| 
 | |
| - Working putwin(), getwin(), scr_dump() and scr_restore().
 | |
| 
 | |
| - A working acs_map[]. Characters from the ACS are now stored in window
 | |
|   structures as a regular character plus the A_ALTCHARSET attribute, and
 | |
|   rendered to the ACS only when displayed. (This allows, for example,
 | |
|   the correct display on one platform of windows saved from another.)
 | |
| 
 | |
| - In X11, allow selection and paste of UTF8_STRING.
 | |
| 
 | |
| - The testcurs demo now includes a color chart and init_color() test, a
 | |
|   wide character input test, a display of wide ACS characters with
 | |
|   sample Unicode text, a specific test of flash(), more info in the
 | |
|   resize test, and attempts to change the width as well as the height.
 | |
| 
 | |
| - Command-line option for MSVC to build DLLs (see INSTALL). Also, the
 | |
|   naming distinction for DLLs ("curses" vs. "pdcurses") is abandoned,
 | |
|   and either the static lib or DLL is built, not both at once (except
 | |
|   for X11).
 | |
| 
 | |
| - For backwards compatibility, a special module just for deprecated
 | |
|   functions -- currently PDC_check_bios_key(), PDC_get_bios_key(),
 | |
|   PDC_get_ctrl_break() and PDC_set_ctrl_break(). These shouldn't be used
 | |
|   in applications, but currently are... in fact, all the "private"
 | |
|   functions (in curspriv.h) are subject to change and should be avoided.
 | |
| 
 | |
| - A new document, IMPLEMNT, describing PDCurses' internal functions for
 | |
|   those wishing to port it to new platforms.
 | |
| 
 | |
| - Mark Hessling has released the X11 port to the public domain.
 | |
|   (However, x11/ScrollBox* retain their separate copyright and MIT-like
 | |
|   license.)
 | |
| 
 | |
| Bug fixes and such:
 | |
| 
 | |
| - Most of the macros have been removed (along with the NOMACROS ifdef).
 | |
|   The only remaining ones are those which have to be macros to work, and
 | |
|   those that are required by X/Open to be macros. There were numerous
 | |
|   problems with the macros, and no apparent reason to keep them, except
 | |
|   tradition -- although it was PCcurses 1.x that first omitted them.
 | |
| 
 | |
| - Clean separation of platform-specific code from the rest. Outside of
 | |
|   the platform directories, there remain only a few ifdefs in curses.h
 | |
|   and curspriv.h.
 | |
| 
 | |
| - General reorganization and simplification.
 | |
| 
 | |
| - Documentation revisions.
 | |
| 
 | |
| - When expanding control characters in addch() or insch(), retain the
 | |
|   attributes from the chtype.
 | |
| 
 | |
| - Preserve the A_ALTCHARSET attribute in addch() and insch().
 | |
| 
 | |
| - Per X/Open, beep() should always return OK.
 | |
| 
 | |
| - On platforms with a controlling terminal (i.e., not X11), curs_set(1)
 | |
|   now sets the cursor to the shape it had at the time of initscr(),
 | |
|   rather than always making it small. (Exception for DOS: If the video
 | |
|   mode has been changed by PDC_resize_screen(), curs_set(1) reverts to
 | |
|   line 6/7.) The shape is taken from SP->orig_cursor (the meaning of
 | |
|   which is platform-specific).
 | |
| 
 | |
| - Stop updating the cursor position when the cursor is invisible (this
 | |
|   gives a huge performance boost in Win 9x); update the cursor position
 | |
|   from curs_set() if changing from invisible to visible.
 | |
| 
 | |
| - Some tweaking of the behavior of def_prog_mode(), def_shell_mode(),
 | |
|   savetty(), reset_prog_mode(), reset_shell_mode() and resetty()...
 | |
|   still not quite right.
 | |
| 
 | |
| - flash() was not implemented for Win32 or X. A portable implementation
 | |
|   is now used for all platforms. Note that it's much slower than the
 | |
|   old (DOS and OS/2) version, but this is only apparent on an extremely
 | |
|   slow machine, such as an XT.
 | |
| 
 | |
| - In getstr(), backspacing on high-bit characters caused a double
 | |
|   backspace.
 | |
| 
 | |
| - hline() and vline() used an incorrect (off by one) interpretation of
 | |
|   _maxx and _maxy. If values of n greater than the max were specified,
 | |
|   these functions could access unallocated memory.
 | |
| 
 | |
| - innstr() is supposed to return the number of characters read, not just
 | |
|   OK or ERR. Reported by Mike Aubury.
 | |
| 
 | |
| - A proper implementation of insch() -- the PDC_chadd()-based version
 | |
|   wasn't handling the control characters correctly.
 | |
| 
 | |
| - Return ASCII and control key names from keyname() (problem revealed by
 | |
|   ncurses' movewindow test); also, per X/Open, return "UNKNOWN KEY" when
 | |
|   appropriate, rather than "NO KEY NAME".
 | |
| 
 | |
| - Turn off the cursor from leaveok(TRUE), even in X11; leaveok(FALSE)
 | |
|   now calls curs_set(1), regardless of the previous state of the cursor.
 | |
| 
 | |
| - In the slk area, BUTTON_CLICKED events now translate to function keys,
 | |
|   along with the previously recognized BUTTON_PRESSED events. Of course,
 | |
|   it should really be checking the events specified by map_button(),
 | |
|   which still doesn't work.
 | |
| 
 | |
| - napms(0) now returns immediately.
 | |
| 
 | |
| - A unified napms() implementation for DOS -- no longer throttles the
 | |
|   CPU when built with any compiler.
 | |
| 
 | |
| - Allow backspace editing of the nocbreak() buffer.
 | |
| 
 | |
| - pair_content(0, ...) is valid.
 | |
| 
 | |
| - There was no check to ensure that the pnoutrefresh() window fit within
 | |
|   the screen. It now returns an ERR if it doesn't.
 | |
| 
 | |
| - In X11, resize_term() must be called with parameters (0, 0), and only
 | |
|   when SP->resized is set, else it returns ERR.
 | |
| 
 | |
| - Copy _bkgd in resize_window(). Patch found on Frederic L. W. Meunier's
 | |
|   web site.
 | |
| 
 | |
| - slk_clear() now removes the buttons completely, as in ncurses.
 | |
| 
 | |
| - Use the current foreground color for the line attributes (underline,
 | |
|   left, right), unless PDC_set_line_color() is explicitly called. After
 | |
|   setting the line color, you can reset it to this mode via
 | |
|   "PDC_set_line_color(-1)".
 | |
| 
 | |
| - Removed non-macro implementations of COLOR_PAIR() and PAIR_NUMBER().
 | |
| 
 | |
| - Dispensed with PDC_chadd() and PDC_chins() -- waddch() and winsch()
 | |
|   are now (again) the core functions.
 | |
| 
 | |
| - Dropped or made static many obsolete, unused, and/or broken functions,
 | |
|   including PDC_chg_attrs(), PDC_cursor_on() and _off(),
 | |
|   PDC_fix_cursor(), PDC_get_attribute(), PDC_get_cur_col() and _row(),
 | |
|   PDC_set_80x25(), PDC_set_cursor_mode(), PDC_set_rows(),
 | |
|   PDC_wunderline(), PDC_wleftline(), PDC_wrightline(),
 | |
|   XCursesModifierPress() and XCurses_refresh_scrollbar().
 | |
| 
 | |
| - Obsolete/unused defines: _BCHAR, _GOCHAR, _STOPCHAR, _PRINTCHAR
 | |
|   _ENDLINE, _FULLWIN and _SCROLLWIN.
 | |
| 
 | |
| - Obsolete/unused elements of the WINDOW struct: _pmax*, _lastp*,
 | |
|   _lasts*.
 | |
| 
 | |
| - Obsolete/unused elements of the SCREEN struct: orgcbr, visible_cursor,
 | |
|   sizeable, shell, blank, cursor, orig_emulation, font, orig_font,
 | |
|   tahead, adapter, scrnmode, kbdinfo, direct_video, video_page,
 | |
|   video_seg, video_ofs, bogus_adapter. (Some of these persist outside
 | |
|   the SCREEN struct, in the platform directories.) Added mouse_wait and
 | |
|   key_code.
 | |
| 
 | |
| - Removed all the EMALLOC stuff. Straight malloc calls were used
 | |
|   elsewhere; it was undocumented outside of comments in curspriv.h; and
 | |
|   there are better ways to use a substitute malloc().
 | |
| 
 | |
| - Single mouse clicks are now reportable on all platforms (not just
 | |
|   double-clicks). And in general, mouse event reporting is more
 | |
|   consistent across platforms.
 | |
| 
 | |
| - The mouse cursor no longer appears in full-screen mode in Win32 unless
 | |
|   a nonzero mouse event mask is used.
 | |
| 
 | |
| - ALT-keypad input now works in Win32.
 | |
| 
 | |
| - In Win32, SetConsoleMode(ENABLE_WINDOW_INPUT) is not useful, and
 | |
|   appears to be the source of a four-year-old bug report (hanging in
 | |
|   THE) by Phil Smith.
 | |
| 
 | |
| - Removed the PDC_THREAD_BUILD stuff, which has never worked. For the
 | |
|   record: PDCurses is not thread-safe. Neither is ncurses; and the
 | |
|   X/Open curses spec explicitly makes it a non-requirement.
 | |
| 
 | |
| - With the internal compose key system in the X11 port, modifier keys
 | |
|   were breaking out of the compose state, making it impossible to type
 | |
|   accented capitals, etc. Also, Multi_key is now the default compose
 | |
|   key, instead of leaving it undefined by default; and a few more combos
 | |
|   are supported.
 | |
| 
 | |
| - In X11, the first reported mouse event after startup always read as a
 | |
|   double-click at position 0, 0. (This bug was introduced in 2.8.)
 | |
| 
 | |
| - In X11, don't return selection start as a press event. (Shift-click on
 | |
|   button 1 is still returned.)
 | |
| 
 | |
| - In X11, properly handle pasting of high-bit chars. (It was doing an
 | |
|   unwanted sign extension.)
 | |
| 
 | |
| - In X11, BUTTON_MOVED was never returned, although PDC_MOUSE_MOVED was
 | |
|   set.
 | |
| 
 | |
| - The fix in 2.8 for the scroll wheel in X11 wasn't very good -- it did
 | |
|   report the events as scroll wheel events, but it doubled them. Here's
 | |
|   a proper fix.
 | |
| 
 | |
| - Changed mouse handling in X11: Simpler translation table, with
 | |
|   XCursesPasteSelection() called from XCursesButton() instead of the
 | |
|   translation table; require shift with button 1 or 2 for select or
 | |
|   paste when mouse events are being reported (as with ncurses), allowing
 | |
|   passthrough of simple button 2 events. This fixes the previously
 | |
|   unreliable button 2 behavior.
 | |
| 
 | |
| - Modifier keys are now returned on key up in X11, as in Win32. And in
 | |
|   general, modifier key reporting is more consistent across platforms.
 | |
| 
 | |
| - Modifiers are not returned as keys when a mouse click has occurred
 | |
|   since the key press.
 | |
| 
 | |
| - In BIOS mode (in DOS), count successive identical output bytes, and
 | |
|   make only one BIOS call for all of them. This dramatically improves
 | |
|   performance.
 | |
| 
 | |
| - The cursor position was not always updated correctly in BIOS mode.
 | |
| 
 | |
| - In testcurs, the way the ACS test was written, it would really only
 | |
|   work with a) PDCurses (with any compiler), or b) gcc (with any
 | |
|   curses). Here's a more portable implementation.
 | |
| 
 | |
| - Better reporting of mouse events in testcurs.
 | |
| 
 | |
| - Blank out buffer and num before the scanw() test in testcurs, in case
 | |
|   the user just hits enter or etc.; clear the screen after resizing.
 | |
| 
 | |
| - Allow tuidemo to use the last line.
 | |
| 
 | |
| - Separate left/right modifier keys are now reported properly in Win32.
 | |
|   (Everything was being reported as _R.)
 | |
| 
 | |
| - Attempts to redirect input in Win32 now cause program exit and an
 | |
|   error message, instead of hanging.
 | |
| 
 | |
| - Dropped support for the Microway NDP compiler.
 | |
| 
 | |
| - Some modules renamed, rearranged.
 | |
| 
 | |
| - Fixes for errors and warnings when building with Visual C++ 2005.
 | |
| 
 | |
| - In MSVC, the panel library didn't work with the DLL.
 | |
| 
 | |
| - Complete export lists for DLLs.
 | |
| 
 | |
| - Simplified makefiles; moved common elements to .mif files; better
 | |
|   optimization; strip demos when possible.
 | |
| 
 | |
| - Changed makefile targets of "pdcurses.a/lib" and "panel.a/lib" to
 | |
|   $(LIBCURSES) and $(LIBPANEL). Suggestion of Doug Kaufman.
 | |
| 
 | |
| - Changed "install" target in the makefile to a double-colon rule, to
 | |
|   get around a conflict with INSTALL on non-case-sensitive filesystems,
 | |
|   such as Mac OS X's HFS+. Reported by Douglas Godfrey et al.
 | |
| 
 | |
| - Make PDCurses.man dependent on manext. Suggestion of Tiziano Mueller.
 | |
| 
 | |
| - Set up configure.ac so autoheader works; removed some obsolescent
 | |
|   macros. Partly the suggestion of T.M.
 | |
| 
 | |
| - The X11 port now builds in the x11 directory (including the demos), as
 | |
|   with other ports.
 | |
| 
 | |
| - The X11 port should now build on more 64-bit systems. Partly due to
 | |
|   M.H.
 | |
| 
 | |
| - The default window title and icons for the X11 port are now "PDCurses"
 | |
|   instead of "XCurses".
 | |
| 
 | |
| - Internal functions and variables made static where possible.
 | |
| 
 | |
| - Adopted a somewhat more consistent naming style: Internal functions
 | |
|   with external linkage, and only those, have the prefix "PDC_";
 | |
|   external variables that aren't part of the API use "pdc_"; static
 | |
|   functions use "_"; and "XC_" and "xc_" prefixes are used for functions
 | |
|   and variables, respectively, that are shared between both processes in
 | |
|   the X11 port. Also eliminated camel casing, where possible.
 | |
| 
 | |
| - Changed the encoding for non-ASCII characters in comments and
 | |
|   documentation from Latin-1 to UTF-8.
 | |
| 
 | |
| ------------------------------------------------------------------------
 | |
| 
 | |
| PDCurses 2.8 - 2006/04/01
 | |
| =========================
 | |
| 
 | |
| 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
 | |
| =========================
 | |
| 
 | |
| 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
 | |
| =========================
 | |
| 
 | |
| 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
 | |
| =========================
 | |
| 
 | |
| 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
 | |
| =========================
 | |
| 
 | |
| 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.
 | |
| 
 | |
| ------------------------------------------------------------------------
 | |
| 
 | |
| PDCurses 2.3 - 1998/07/09
 | |
| =========================
 | |
| 
 | |
| INTRODUCTION:
 | |
| 
 | |
|  This release of PDCurses includes the following changes:
 | |
| 
 | |
| - added more System V R4 functions
 | |
| 
 | |
| - added Win32 port
 | |
| 
 | |
| - the X11 port is now fully functional
 | |
| 
 | |
| - the MS Visual C++ Win32 port now includes a DLL
 | |
| 
 | |
| - both the X11 and Win32 ports support the mouse
 | |
| 
 | |
| - the slk..() functions are now functional
 | |
| 
 | |
| - support for scrollbars under X11 are experimental at this stage
 | |
| 
 | |
| - long chtype extended to non-Unix ports
 | |
| 
 | |
|  The name of the statically built library is pdcurses.lib (or
 | |
|  pdcurses.a). The name of the DLL import library (where applicable) is
 | |
|  curses.lib.
 | |
| 
 | |
| BUGS FIXED:
 | |
| 
 | |
| - some minor bugs were corrected in this release
 | |
| 
 | |
| NEW FUNCTIONS:
 | |
| 
 | |
| - slk..() functions
 | |
| 
 | |
| NEW COMPILER SUPPORT:
 | |
| 
 | |
| - MS Visual C++ under Win95/NT
 | |
| 
 | |
| - Watcom C++ under OS/2, Win32 and DOS
 | |
| 
 | |
| - two EMX ports have been provided:
 | |
|   - OS/2 only using OS/2 APIs
 | |
|   - OS/2 and DOS using EMX video support routines
 | |
| 
 | |
| EXTRA OPTIONS:
 | |
| 
 | |
|  PDCurses recognizes two environment variables which determines the
 | |
|  initialization and finalization behavior.  These environment variables
 | |
|  do not apply to the X11 port.
 | |
| 
 | |
|  PDC_PRESERVE_SCREEN
 | |
|  If this environment variable is set, PDCurses will not clear the screen
 | |
|  to the default white on black on startup.  This allows you to overlay
 | |
|  a window over the top of the existing screen background.
 | |
| 
 | |
|  PDC_RESTORE_SCREEN
 | |
|  If this environment variable is set, PDCurses will take a copy of the
 | |
|  contents of the screen at the time that PDCurses is started; initscr(),
 | |
|  and when endwin() is called, the screen will be restored.
 | |
| 
 | |
| 
 | |
| ACKNOWLEDGEMENTS: (for this release)
 | |
| 
 | |
|  Chris Szurgot for original Win32 port.
 | |
|  Gurusamy Sarathy for some updates to the Win32 port.
 | |
|  Kim Huron for the slk..() functions.
 | |
|  Florian Grosse Coosmann for some bug fixes.
 | |
|  Esa Peuha for reducing compiler warnings.
 | |
|  Augustin Martin Domingo for patches to X11 port to enable accented
 | |
|  characters.
 | |
| 
 | |
| ------------------------------------------------------------------------
 | |
| 
 | |
| PDCurses 2.2 - 1995/02/12
 | |
| =========================
 | |
| 
 | |
| INTRODUCTION:
 | |
| 
 | |
|  This release of PDCurses has includes a number of major changes:
 | |
| 
 | |
| - The portable library functions are now grouped together into single
 | |
|   files with the same arrangement as System V R4 curses.
 | |
| 
 | |
| - A panels library has been included. This panels library was written by
 | |
|   Warren Tucker.
 | |
| 
 | |
| - Quite a few more functions have been supplied by Wade Schauer and
 | |
|   incorporated into release 2.2. Wade also supplied the support for the
 | |
|   Microway NDP C/C++ 32 bit DOS compiler.
 | |
| 
 | |
| - The curses datatype has been changed from an unsigned int to a long.
 | |
|   This allows more attributes to be stored as well as increasing the
 | |
|   number of color-pairs from 32 to 64.
 | |
| 
 | |
| - Xwindows port (experimental at the moment).
 | |
| 
 | |
| BUGS FIXED:
 | |
| 
 | |
| - mvwin() checked the wrong coordinates
 | |
| 
 | |
| - removed DESQview shadow memory buffer checking bug in curses.h in
 | |
|   #define for wstandout()
 | |
| 
 | |
| - lots of others I can't remember
 | |
| 
 | |
| NEW FUNCTIONS:
 | |
| 
 | |
| - Too many to mention. See intro.man for a complete list of the
 | |
|   functions PDCurses now supports.
 | |
| 
 | |
| COMPILER SUPPORT:
 | |
| 
 | |
| - DJGPP 1.12 is now supported. The run-time error that caused programs
 | |
|   to crash has been removed.
 | |
| 
 | |
| - emx 0.9a is supported. A program compiled for OS/2 should also work
 | |
|   under DOS if you use the VID=EMX switch when compiling. See the
 | |
|   makefile for details.
 | |
| 
 | |
| - The Microway NDP C/C++ DOS compiler is now supported. Thanks to Wade
 | |
|   Schauer for this port.
 | |
| 
 | |
| - The Watcom C++ 10.0 DOS compiler is now supported. Thanks to Pieter
 | |
|   Kunst for this port.
 | |
| 
 | |
| - The library now has many functions grouped together to reduce the size
 | |
|   of the library and to improve the speed of compilation.
 | |
| 
 | |
| - The "names" of a couple of the compilers in the makefile has changed;
 | |
|   CSET2 is now ICC and GO32 is now GCC.
 | |
| 
 | |
| EXTRA OPTIONS:
 | |
| 
 | |
|  One difference between the behavior of PDCurses and Unix curses is the
 | |
|  attributes that are displayed when a character is cleared. Under Unix
 | |
|  curses, no attributes are displayed, so the result is always black.
 | |
|  Under PDCurses, these functions clear with the current attributes in
 | |
|  effect at the time. With the introduction of the bkgd functions, by
 | |
|  default, PDCurses clears using the value set by (w)bkgd(). To have
 | |
|  PDCurses behave the same way as it did before release 2.2, compile with
 | |
|  -DPDCURSES_WCLR
 | |
| 
 | |
| ACKNOWLEDGEMENTS: (for this release)
 | |
| 
 | |
|  Pieter Kunst, David Nugent, Warren Tucker, Darin Haugen, Stefan Strack,
 | |
|  Wade Schauer and others who either alerted me to bugs or supplied
 | |
|  fixes.
 | |
| 
 | |
| ------------------------------------------------------------------------
 | |
| 
 | |
| PDCurses 2.1 - 1993/06/20
 | |
| =========================
 | |
| 
 | |
| INTRODUCTION:
 | |
| 
 | |
|  The current code contains bug fixes for the DOS and OS/2 releases and
 | |
|  also includes an alpha release for Unix. The Unix release uses another
 | |
|  public domain package (mytinfo) to handle the low-level screen writes.
 | |
|  mytinfo was posted to comp.sources.unix (or misc) in December 1992 or
 | |
|  January 1993. Unless you are a glutton for punishment I would recommend
 | |
|  you avoid the Unix port at this stage.
 | |
| 
 | |
|  The other major addition to PDCurses is the support for DJGPP (the DOS
 | |
|  port of GNU C++). Thanks to David Nugent <davidn@csource.oz.au>.
 | |
| 
 | |
|  Other additions are copywin() function, function debugging support and
 | |
|  getting the small and medium memory models to work. The testcurs.c demo
 | |
|  program has also been changed significantly and a new demo program,
 | |
|  tuidemo, has been added.
 | |
| 
 | |
|  Some people have suggested including information on where to get dmake
 | |
|  from. oak.oakland.edu in /pub/msdos/c
 | |
| 
 | |
| OTHER NOTES:
 | |
| 
 | |
|  Under DOS, by default, screen writes to a CGA monitor are done via the
 | |
|  video BIOS rather than by direct video memory writes. This is due to
 | |
|  the CGA "snow" problem. If you have a CGA monitor and do not suffer
 | |
|  from snow, you can compile private\_queryad.c with CGA_DIRECT defined.
 | |
|  This will then use cause PDCurses to write directly to the CGA video
 | |
|  memory.
 | |
| 
 | |
|  Function debugging: Firstly to get function debugging, you have to
 | |
|  compile the library with OPT=N in the makefile. This also turns on
 | |
|  compiler debugging. You can control when you want PDCurses to write to
 | |
|  the debug file (called trace in the current directory) by using the
 | |
|  functions traceon() and traceoff() in your program.
 | |
| 
 | |
|  Microsoft C 6.00 Users note:
 | |
|  ----------------------------
 | |
| 
 | |
|  With the addition of several new functions, using dmake to compile
 | |
|  PDCurses now causes the compiler to run "out of heap space in pass 2".
 | |
|  Using the 6.00AX version (DOS-Extended) to compile PDCurses fixes this
 | |
|  problem; hence the -EM switch.
 | |
| 
 | |
|  Functional changes
 | |
|  ------------------
 | |
| 
 | |
|  Added OS/2 DLL support.
 | |
| 
 | |
|  A few curses functions have been fixed to exhibit their correct
 | |
|  behavior and make them more functionally portable with System V
 | |
|  curses. The functions that have changed are overlay(), overwrite() and
 | |
|  typeahead.
 | |
| 
 | |
|  overlay() and overwrite()
 | |
| 
 | |
|  Both of theses functions in PDCurses 2.0 allowed for one window to be
 | |
|  effectively placed on top of another, and the characters in the first
 | |
|  window were overlaid or overwritten starting at 0,0 in both windows.
 | |
|  This behavior of these functions was not correct. These functions only
 | |
|  operate on windows that physically overlap with respect to the
 | |
|  displayed screen. To achieve the same functionality as before, use the
 | |
|  new function copywin(). See the manual page for further details.
 | |
| 
 | |
|  typeahead()
 | |
| 
 | |
|  This function in PDCurses 2.0 effectively checked to see if there were
 | |
|  any characters remaining in the keyboard buffer. This is not the
 | |
|  behavior exhibited by System V curses. This function is intended
 | |
|  purely to set a flag so that curses can check while updating the
 | |
|  physical screen if any keyboard input is pending. To achieve the same
 | |
|  effect with typeahead() under PDCurses 2.1 the following code should be
 | |
|  used.
 | |
| 
 | |
|  In place of...
 | |
| 
 | |
| 	while(!typeahead(stdin))
 | |
| 	 {
 | |
| 		/* do something until any key is pressed... */
 | |
| 	 }
 | |
| 
 | |
|  use...
 | |
| 
 | |
| 	/* getch() to return ERR if no key pending */
 | |
| 	nodelay(stdscr,TRUE);
 | |
| 	while(getch() == (ERR))
 | |
| 	 {
 | |
| 		/* do something until any key is pressed... */
 | |
| 	 }
 | |
| 
 | |
| 
 | |
| ACKNOWLEDGEMENTS: (in no particular order)
 | |
| 
 | |
|  Jason Shumate, Pieter Kunst, David Nugent, Andreas Otte, Pasi
 | |
|  Hamalainen, James McLennan, Duane Paulson, Ib Hojme
 | |
| 
 | |
|  Apologies to anyone I may have left out.
 | |
| 
 | |
| ------------------------------------------------------------------------
 | |
| 
 | |
| PDCurses 2.0 - 1992/11/23
 | |
| =========================
 | |
| 
 | |
| INTRODUCTION:
 | |
| 
 | |
|  Well, here it finally is; PDCurses v2.0.
 | |
| 
 | |
|  PDCurses v2.0 is an almost total rewrite of PCcurses 1.4 done by John
 | |
|  'Frotz' Fa'atuai, the previous maintainer. It adds support for OS/2 as
 | |
|  well as DOS.
 | |
| 
 | |
|  This version has been tested with Microsoft C v6.0, QuickC v2.0 and
 | |
|  Borland C++ 2.0 under DOS and Microsoft C v6.0 and TopSpeed c v3.02
 | |
|  under OS/2 2.0. Also the library has been compiled successfully with
 | |
|  emx 0.8e, C Set/2 and Watcom 9. Most testing was done with the large
 | |
|  memory model, where applicable. The large memory model is probably the
 | |
|  best model to use.
 | |
| 
 | |
|  The amount of testing has not been as extensive as I would have liked,
 | |
|  but demands on releasing a product have outweighed the product's
 | |
|  quality. Nothing new with that !! Hopefully with wider circulation,
 | |
|  more bugs will be fixed more quickly.
 | |
| 
 | |
|  I have included just 1 makefile which is suitable for dmake 3.8 for
 | |
|  both DOS and OS/2. The makefile does not rely on customization of the
 | |
|  dmake.ini file.
 | |
| 
 | |
|  If you discover bugs, and especially if you have fixes, please let me
 | |
|  know ASAP.
 | |
| 
 | |
|  The source to the library is distributed as a zip file made with zip
 | |
|  1.9. You will need Info-ZIP unzip 5.0 to unzip. Follow the directions
 | |
|  below to compile the library.
 | |
| 
 | |
| DIRECTIONS:
 | |
| 
 | |
|  1. Create a new directory in which to unzip pdcurs20.zip. This will
 | |
|     create a curses directory and a number of subdirectories containing
 | |
|     source code for the library and utilities and the documentation.
 | |
| 
 | |
|  2. Make changes to the makefile where necessary:
 | |
|     Change the MODEL or model macro to the appropriate value (if it
 | |
|     applies to your compiler). Use model for Borland compilers.
 | |
| 
 | |
|     Change any paths in the defined macros to be suitable for your
 | |
|     compiler.
 | |
| 
 | |
|  3. Invoke DMAKE [-e environment_options] [target]
 | |
| 
 | |
|     where environment_options are:
 | |
| 
 | |
| 	OS (host operating system)
 | |
| 	COMP (compiler)
 | |
| 	OPT (optimized version or debug version) - optional. default Y
 | |
| 	TOS (target operating system) - optional. default OS
 | |
| 
 | |
|     see the makefile for valid combinations
 | |
| 
 | |
|     targets: all, demos, lcursesd.lib, manual...
 | |
| 
 | |
|     NB. dmake is case sensitive with targets, so those environments that
 | |
|     use an upper case model value (eg MSC) MUST specify the library
 | |
|     target as for eg. Lcursesd.lib
 | |
| 
 | |
|     The makefile is by default set up for Borland C++. The use of -e
 | |
|     environment_options override these defaults. If you prefer, you can
 | |
|     just change the defaults in the makefile and invoke it without the
 | |
|     -e switch.
 | |
| 
 | |
| OTHER NOTES:
 | |
| 
 | |
|  The documentation for the library is built into each source file, a
 | |
|  couple of specific doc files and the header files. A program is
 | |
|  supplied (manext) to build the manual. This program gets compiled when
 | |
|  you build the documentation.
 | |
| 
 | |
|  To generate the library response file correctly, I had to write a quick
 | |
|  and dirty program (buildlrf) to achieve this. Originally the makefiles
 | |
|  just had statements like: "echo -+$(OBJ)\$* & >> $(LRF)" which appended
 | |
|  a suitable line to the response file. Unfortunately under some
 | |
|  combinations of makefiles and command processors (eg. nmake and 4DOS)
 | |
|  the & would get treated as stderr and the echo command would fail.
 | |
| 
 | |
|  The original source for PDCurses that I received from the previous
 | |
|  maintainer contained support for the FLEXOS operating system. Not
 | |
|  having access to it, I could not test the changes I made so its support
 | |
|  has fallen by the wayside. If you really need to have PDCurses running
 | |
|  under FLEXOS, contact me and I will see what can be arranged.
 | |
| 
 | |
|  Under DOS, by default, screen writes to a CGA monitor are done via the
 | |
|  video BIOS rather than by direct video memory writes. This is due to
 | |
|  the CGA "snow" problem. If you have a CGA monitor and do not suffer
 | |
|  from snow, you can compile private\_queryad.c with CGA_DIRECT defined.
 | |
|  This will then use cause PDCurses to write directly to the CGA video
 | |
|  memory.
 | |
| 
 | |
|  Added System V color support.
 | |
| 
 | |
| COMPILER-SPECIFIC NOTES:
 | |
| 
 | |
|  Microsoft C
 | |
|  -----------
 | |
| 
 | |
|  It is possible with MSC 6.0 to build the OS/2 libraries and demo
 | |
|  programs from within DOS. This is the only case where it is possible to
 | |
|  specify the value of TOS on the command line to be OS2 and the value of
 | |
|  OS be DOS.
 | |
| 
 | |
|  C Set/2
 | |
|  -------
 | |
| 
 | |
|  I have only tested the library using the migration libraries. I doubt
 | |
|  that the demo programs will work without them.
 | |
| 
 | |
|  emx
 | |
|  ---
 | |
| 
 | |
|  Testing has been done with 0.8e of emx together with the 16_to_32
 | |
|  libraries. The emx\lib directory should include the vio32.lib and
 | |
|  kbd32.lib libraries from the 16_to_32 package.
 | |
| 
 | |
| BUGS and UNFINISHED BUSINESS:
 | |
| 
 | |
| - PDC_set_ctrl_break() function does not work under OS/2.
 | |
| 
 | |
| - win_print() and PDC_print() do not work under OS/2.
 | |
| 
 | |
| - The file todo.man in the doc directory also lists those functions of
 | |
|   System V 3.2 curses not yet implemented. Any volunteers?
 | |
| 
 | |
| ACKNOWLEDGEMENTS:
 | |
| 
 | |
|  John 'Frotz' Fa'atuai, the previous maintainer for providing an
 | |
|  excellent base for further development.
 | |
|  John Burnell <johnb@kea.am.dsir.govt.nz>, for the OS/2 port.
 | |
|  John Steele, Jason (finally NOT a John) Shumate....
 | |
|  for various fixes and suggestions.
 | |
|  Eberhardt Mattes (author of emx) for allowing code based on his
 | |
|  C library to be included with PDCurses.
 | |
|  Several others for their support, moral and actual.
 | |
| 
 | |
| -- Mark Hessling
 | |
| 
 | |
| ------------------------------------------------------------------------
 | |
| 
 | |
| PDCurses 2.0Beta - 1991/12/21
 | |
| =============================
 | |
| 
 | |
| Changed back from short to int. (int is the correct size for the default
 | |
| platform. Short might be too short on some platforms. This is more
 | |
| portable. I, also, made this mistake.)
 | |
| 
 | |
| Many functions are now macros.  If you want the real thing, #undef the
 | |
| macro. (X/Open requirement.)
 | |
| 
 | |
| Merged many sources into current release.
 | |
| 
 | |
| Added many X/Open routines (not quite all yet).
 | |
| 
 | |
| Added internal documentation to all routines.
 | |
| 
 | |
| Added a HISTORY file to the environment.
 | |
| 
 | |
| Added a CONTRIB file to the environment.
 | |
| 
 | |
| ------------------------------------------------------------------------
 | |
| 
 | |
| PDCurses 1.5Beta - 1990/07/14
 | |
| =============================
 | |
| 
 | |
| Added many levels of compiler support. Added mixed prototypes for all
 | |
| "internal" routines. Removed all assembly language.  Added EGA/VGA
 | |
| support.  Converted all #ifdef to #if in all modules except CURSES.H and
 | |
| CURSPRIV.H. Always include ASSERT.H.  Added support for an external
 | |
| malloc(), calloc() and free(). Added support for FAST_VIDEO
 | |
| (direct-memory writes). Added various memory model support (for
 | |
| FAST_VIDEO). Added much of the December 1988 X/Open Curses
 | |
| specification.
 | |
| 
 | |
| -- John 'Frotz' Fa'atuai
 | |
| 
 | |
| ------------------------------------------------------------------------
 | |
| 
 | |
| PCcurses 1.4 - 1990/01/14
 | |
| =========================
 | |
| 
 | |
|   In PCcurses v.1.4, both portability improvements and bugfixes have
 | |
| been made. The files have been changed to allow lint-free compilation
 | |
| with Microsoft C v.5.1, and with Turbo C v.2.0. The source should still
 | |
| compile without problems on older compilers, although this has not been
 | |
| verified.
 | |
| 
 | |
|   The makefiles have been changed to suit both the public release and
 | |
| the author, who maintains a special kind of libraries for himself. In
 | |
| the case of Microsoft C, changes were done in the makefile to lower the
 | |
| warning level to 2 (was 3). This was to avoid ANSI warnings which are
 | |
| abundant because PCcurses does not attempt to follow strict ANSI C
 | |
| standard.
 | |
| 
 | |
|   BUG FIXES FROM V.1.3 TO V.1.4:
 | |
| 
 | |
|   !!!IMPORTANT CHANGE!!!
 | |
| 
 | |
|   The definitions for OK and ERR in curses.h were exchanged. This was
 | |
| done to be more consistent with UNIX versions. Also, it permits
 | |
| functions like newwin() and subwin() to return 0 (=NULL) when they fail
 | |
| due to memory shortage. This incompatibility with UNIX curses was
 | |
| pointed out by Fred C. Smith. If you have tested success/failure by
 | |
| comparisons to anything other than ERR and OK, your applications will
 | |
| need to be be changed on that point. Sorry... but presumably most of you
 | |
| used the symbolic constants?
 | |
| 
 | |
|   (END OF IMPORTANT CHANGE)
 | |
| 
 | |
|   Fred also pointed out a bug in the file update.c. The bug caused the
 | |
| first character printed after 'unauthorized' screen changes (like during
 | |
| a shell escape, for example) to be placed at the wrong screen position.
 | |
| This happened even if the normal precautions (clear / touch / refresh)
 | |
| were taken. The problem has now been fixed.
 | |
| 
 | |
|   PCcurses is currently also being used on a 68000 system with
 | |
| hard-coded ESCape sequences for ANSI terminals. However, ints used by
 | |
| the 68000 C compiler are 32 bits. Therefore ints have been turned into
 | |
| shorts wherever possible in the code (otherwise all window structures
 | |
| occupy twice as much space as required on the 68000). This does not
 | |
| affect PC versions since normally both ints and shorts are 16 bits for
 | |
| PC C compilers.
 | |
| 
 | |
|   At some places in the source code there are references made to the
 | |
| 68000 version. There are also a makefile, a curses68.c file, and a
 | |
| curses68.cmd file. These are for making, low-level I/O, and linking
 | |
| commands when building the 68000 version. These files are probably
 | |
| useful to no-one but the author, since it is very specific for its
 | |
| special hardware environment. Still in an effort to keep all
 | |
| curses-related sources in one place they are included. Note however that
 | |
| PCcurses will not officially support a non-PC environment.
 | |
| 
 | |
|   The file cursesio.c, which was included in the package at revision
 | |
| level 1.2, and which was to be an alternative to the cursesio.asm file,
 | |
| has been verified to behave incorrectly in the function _curseskeytst().
 | |
| The problem was that the value of 'cflag' does not contain the proper
 | |
| data for the test that is attempted. Furthermore, neither Turbo C or
 | |
| Microsoft C allows any way to return the data that is needed, and
 | |
| consequently you should not use cursesio.c. The best solution is to
 | |
| simply use the ASM version. In v.1.2 and v.1.3, the user could edit the
 | |
| makefile to select which version he wanted to use. The makefiles in
 | |
| v.1.4 have removed this possibility forcing the use of the ASM file, and
 | |
| cursesio.c has been dropped from the distribution.
 | |
| 
 | |
|   A bug in the wgetstr() function caused PCcurses to echo characters
 | |
| when reading a keyboard string, even if the echo had been turned off.
 | |
| Thanks to Per Foreby at Lund University, Sweden, for this. Per also
 | |
| reported bugs concerning the handling of characters with bit 8 set.
 | |
| Their ASCII code were considered as lower than 32, so they were erased
 | |
| etc. like control characters, i.e. erasing two character positions. The
 | |
| control character test was changed to cope with this.
 | |
| 
 | |
|   The overlay() and overwrite() functions were changed so that the
 | |
| overlaying window is positioned at its 'own' coordinates inside the
 | |
| underlying window (it used to be at the underlying window's [0,0]
 | |
| position). There is some controversy about this - the documentation for
 | |
| different curses versions say different things. I think the choice made
 | |
| is the most reasonable.
 | |
| 
 | |
|   The border() and wborder() functions were changed to actually draw a
 | |
| border, since this seems to be the correct behavior of these functions.
 | |
| They used to just set the border characters to be used by box(). These
 | |
| functions are not present in standard BSD UNIX curses.
 | |
| 
 | |
|   The subwin() function previously did not allow the subwindow to be as
 | |
| big as the original window in which it was created. This has now been
 | |
| fixed. There was also the problem that the default size (set by
 | |
| specifying numlines or numcols (or both) as 0 made the resulting actual
 | |
| size 1 line/column too small.
 | |
| 
 | |
|   There were a few spelling errors in function names, both in the
 | |
| function declarations and in curses.h. This was reported by Carlos
 | |
| Amaral at INESC in Portugal. Thanks! There was also an unnecessary (but
 | |
| harmless) parameter in a function call at one place.
 | |
| 
 | |
| ------------------------------------------------------------------------
 | |
| 
 | |
| PCcurses 1.3 - 1988/10/05
 | |
| =========================
 | |
| 
 | |
|   The file 'border.c' is now included. It allows you to explicitly
 | |
| specify what characters should be used as box borders when the box()
 | |
| functions are called. If the new border characters are non-0, they
 | |
| override the border characters specified in the box() call. In my
 | |
| understanding, this functionality is required for AT&T UNIX sV.3
 | |
| compatibility. Thanks for this goes to Tony L. Hansen
 | |
| (hansen@pegasus.UUCP) for posting an article about it on Usenet
 | |
| (newsgroup comp.unix.questions; his posting was not related at all to
 | |
| PCcurses).
 | |
| 
 | |
|   The only other difference between v.1.2 and v.1.3 is that the latter
 | |
| has been changed to avoid warning diagnostics if the source files are
 | |
| compiled with warning switches on (for Microsoft this means '-W3', for
 | |
| Turbo C it means '-w -w-pro'). Of these, the Turbo C warning check is
 | |
| clearly to be used rather than Microsoft, even if neither of them comes
 | |
| even close to a real UNIX 'lint'. Some of the warnings in fact indicated
 | |
| real bugs, mostly functions that did not return correct return values or
 | |
| types.
 | |
| 
 | |
|   The makefiles for both MSC and TRC have been modified to produce
 | |
| warning messages as part of normal compilation.
 | |
| 
 | |
| ------------------------------------------------------------------------
 | |
| 
 | |
| PCcurses 1.2 - 1988/10/02
 | |
| =========================
 | |
| 
 | |
|   The changes from v.1.1 to v.1.2 are minor. The biggest change is that
 | |
| there was a bug related to limiting the cursor movement if the
 | |
| application tried to move it outside the screen (something that should
 | |
| not be done anyway). Such erroneous application behavior is now handled
 | |
| appropriately.
 | |
| 
 | |
|   All modules have been changed to have a revision string in them, which
 | |
| makes it easier to determine what version is linked into a program (or
 | |
| what library version you have).
 | |
| 
 | |
|   There is now a 'cursesio.c' file. That file does the same as
 | |
| 'cursesio.asm' (i.e. it provides the interface to the lower-level system
 | |
| I/O routines). It is written in C and thus it is (possibly) more
 | |
| portable than the assembler version (but still not so portable since it
 | |
| uses 8086 INT XX calls directly). When one creates new curses libraries,
 | |
| one chooses whether to use the assembler or the C version of cursesio.
 | |
| The choice is made by commenting out the appropriate dependencies for
 | |
| cursesio.obj, near the end of the makefiles.
 | |
| 
 | |
|   There is now a 'setmode.c' file. That file contains functions that
 | |
| save and restore terminal modes. They do it into other variables than do
 | |
| savetty() and resetty(), so one should probably use either
 | |
| savetty()/resetty() or the new functions only - and not mix the both
 | |
| ways unless one really knows what one does.
 | |
| 
 | |
|   Diff lists vs v.1.0 are no longer included in the distribution. The
 | |
| make utility still is. PCcurses v.1.2 still compiles with Microsoft C
 | |
| v.4.0, and with Borland Turbo C v.1.0. There is as far as I know no
 | |
| reason to believe that it does not compile under Microsoft C v.3.0 and
 | |
| 5.x, or Turbo C v.1.5, but this has not been tested.
 | |
| 
 | |
|   There are two makefiles included, one for Microsoft C, one for Turbo
 | |
| C. They are both copies of my personal makefiles, and as such they
 | |
| reflect the directory structure on my own computer. This will have to be
 | |
| changed before you run make. Check $(INCDIR) and $(LIBDIR) in
 | |
| particular, and make the choice of ASM or C cursesio version as
 | |
| mentioned above (the distribution version uses the C version of
 | |
| cursesio).
 | |
| 
 | |
|   The manual file (curses.man) has been changed at appropriate places.
 | |
| 
 | |
|   I would like to thank the following persons for their help:
 | |
| 
 | |
|   	Brandon S. Allbery (alberry@ncoast.UUCP)
 | |
| 		for running comp.binaries.ibm.pc (at that time)
 | |
| 		and comp.source.misc.
 | |
| 
 | |
| 	Steve Balogh (Steve@cit5.cit.oz.AU)
 | |
|   		for writing a set of manual pages and posting
 | |
| 		them to the net.
 | |
| 
 | |
| 	Torbjorn Lindh
 | |
| 		for finding bugs and suggesting raw
 | |
| 		character output routines.
 | |
| 
 | |
| 	Nathan Glasser (nathan@eddie.mit.edu)
 | |
|   		for finding and reporting bugs.
 | |
| 
 | |
| 	Ingvar Olafsson (...enea!hafro!ingvar)
 | |
|   		for finding and reporting bugs.
 | |
| 
 | |
| 	Eric Rosco (...enea!ipmoea!ericr)
 | |
|   		for finding and reporting bugs.
 | |
| 
 | |
| 	Steve Creps (creps@silver.bacs.indiana.edu)
 | |
|   		for doing a lot of work - among others
 | |
| 		posting bug fixes to the net, and writing
 | |
| 		the new cursesio.c module.
 | |
| 
 | |
| 	N. Dean Pentcheff (dean@violet.berkeley.edu)
 | |
|   		for finding bugs and rewriting cursesio.asm
 | |
| 		for Turbo 'C' 1.5.
 | |
| 
 | |
|   Finally, Jeff Dean (parcvax,hplabs}!cdp!jeff)
 | |
|   		     (jeff@ads.arpa)
 | |
| 	has had a shareware version of curses deliverable since
 | |
| 	about half a year before I released PCcurses 1.0 on Use-
 | |
| 	Net. He is very concerned about confusion between the two
 | |
| 	packages, and therefore any references on the network
 | |
| 	should make clear whether they reference Dean's PCcurses
 | |
| 	or Larsson's PCcurses.
 | |
| 
 | |
| ------------------------------------------------------------------------
 | |
| 
 | |
| PCcurses 1.1 - 1988/03/06
 | |
| =========================
 | |
| 
 | |
|   The changes from v.1.0 to v.1.1 are minor. There are a few bug fixes,
 | |
| and new (non-portable) functions for verbatim IBM character font display
 | |
| have been added (in charadd.c and charins.c). The manual file
 | |
| (curses.man) has been changed at appropriate places.
 | |
| 
 | |
|   In the file v10tov11.dif there are listings of the differences between
 | |
| version 1.0 and 1.1. The diff listings are in UNIX diff(1) format.
 | |
| 
 | |
|   Version 1.1 compiles with Turbo C v.1.0, as well as Microsoft C v.3.0
 | |
| and v.4.0. On the release disk there is a make.exe utility which is very
 | |
| similar to UNIX make (If the package was mailed to you, the make utility
 | |
| will be in uuencoded format - in make.uu - and must be uudecoded first).
 | |
| It is much more powerful than Microsoft's different MAKEs; the latter
 | |
| ones will NOT generate libraries properly if used with the PCcurses
 | |
| makefiles.
 | |
| 
 | |
|   There are three makefiles:
 | |
| 
 | |
| 	makefile		generic MSC 3.0 makefile
 | |
| 	makefile.ms		MSC 4.0 makefile
 | |
| 	makefile.tc		Turbo C 1.0 makefile
 | |
| 
 | |
|   To make a library with for example Turbo C, make directories to hold
 | |
| .H and .LIB files (these directories are the 'standard places'), edit
 | |
| makefile.tc for this, and type
 | |
| 
 | |
| 	make -f makefile.tc all
 | |
| 
 | |
| and libraries for all memory models will be created in the .LIB
 | |
| directory, while the include files will end up in the .H directory. Also
 | |
| read what is said about installation below!
 | |
| 
 | |
| ------------------------------------------------------------------------
 | |
| 
 | |
| PCcurses 1.0 - 1987/08/24
 | |
| =========================
 | |
| 
 | |
|   This is the release notes for the PCcurses v.1.0 cursor/window control
 | |
| package. PCcurses offers the functionality of UNIX curses, plus some
 | |
| extras. Normally it should be possible to port curses-based programs
 | |
| from UNIX curses to PCcurses on the IBM PC without changes. PCcurses is
 | |
| a port/ rewrite of Pavel Curtis' public domain 'ncurses' package. All
 | |
| the code has been re-written - it is not just an edit of ncurses (or
 | |
| UNIX curses). I mention this to clarify any copyright violation claims.
 | |
| The data structures and ideas are very similar to ncurses. As for UNIX
 | |
| curses, I have not even seen any sources for it.
 | |
| 
 | |
|   For an introduction to the use of 'curses' and its derivatives, you
 | |
| should read 'Screen Updating and Cursor Movement Optimization: A Library
 | |
| Package' by Kenneth C. R. C. Arnold, which describes the original
 | |
| Berkeley UNIX version of curses. It is available as part of the UNIX
 | |
| manuals. The other source of information is 'The Ncurses Reference
 | |
| Manual' by Pavel Curtis. The latter is part of Curtis' ncurses package.
 | |
| 
 | |
|   The only other documentation provided is a 'man' page which describes
 | |
| all the included functions in a very terse way. In the sources, each
 | |
| function is preceded by a rather thorough description of what the
 | |
| function does. I didn't have time to write a nice manual/tutorial -
 | |
| sorry.
 | |
| 
 | |
|   PCcurses is released as a number of source files, a man page, and a
 | |
| make file. A uuencoded copy of a 'make' utility, and a manpage for the
 | |
| 'make' is also provided to make it easier to put together PCcurses
 | |
| libraries. Even if you are not interested in PCcurses, it may be
 | |
| worthwhile to grab the make.
 | |
| 
 | |
|   The makefile assumes the presence of the Microsoft C compiler (3.0 or
 | |
| 4.0), Microsoft MASM and LIB, plus some MS-DOS utilities. The reason for
 | |
| supplying MAKE.EXE is that the Microsoft 'MAKE:s' are much inferior to a
 | |
| real UNIX make. The supplied make is a port of a public domain make,
 | |
| published on Usenet. It is almost completely compatible with UNIX make.
 | |
| When generating the curses libraries, the makefile will direct make to
 | |
| do some directory creating and file copying, and then re-invoke itself
 | |
| with new targets. The workings of the makefile are not absolutely
 | |
| crystal clear at first sight... just start it and see what it does.
 | |
| 
 | |
|   For portability, the curses libraries depend on one assembler file for
 | |
| access to the BIOS routines. There is no support for the EGA, but both
 | |
| CGA, MGA, and the HGA can be used. The libraries are originally for
 | |
| Microsoft C, but all C modules should be portable right away. In the
 | |
| assembler file, segment names probably need to be changed, and possibly
 | |
| the parameter passing scheme. I think Turbo C will work right away - as
 | |
| far as I understand, all its conventions are compatible with Microsoft
 | |
| C.
 | |
| 
 | |
|   There are some parts left out between ncurses and PCcurses. One is the
 | |
| support for multiple terminals - not very interesting on a PC anyway.
 | |
| Because we KNOW what terminal we have, there is no need for a termcap or
 | |
| terminfo library. PCcurses also has some things that neither curses nor
 | |
| ncurses have. Compared to the original UNIX curses, PCcurses has lots of
 | |
| extras.
 | |
| 
 | |
|   The BIOS routines are used directly, which gives fast screen updates.
 | |
| PCcurses does not do direct writes to screen RAM - in my opinion it is
 | |
| a bit ugly to rely that much on hardware compatibility. Anyone could fix
 | |
| that, of course...
 | |
| 
 | |
|   One of the more serious problems with PCcurses is the way in which
 | |
| normal, cbreak, and raw input modes are done. All those details are in
 | |
| the 'charget' module - I do raw I/O via the BIOS, and perform any
 | |
| buffering myself. If an application program uses PCcurses, it should do
 | |
| ALL its I/O via PCcurses calls, otherwise the mix of normal and
 | |
| PCcurses I/O may mess up the display. I think my code is reasonable...
 | |
| comments are welcome, provided you express them nicely...
 | |
| 
 | |
|   To install, copy all files to a work directory, edit 'makefile' to
 | |
| define the standard include and library file directory names of your
 | |
| choice (these directories must exist already, and their path names must
 | |
| be relative to the root directory, not to the current one). You must
 | |
| also run uudecode on make.uu, to generate MAKE.EXE. You can do that on
 | |
| your PC, if you have uudecode there, otherwise you can do it under UNIX
 | |
| and do a binary transfer to the PC. When you have MAKE.EXE in your work
 | |
| directory (or in your /bin directory), type make.
 | |
| 
 | |
|   Make will now create 4 sub-directories (one for each memory model),
 | |
| copy some assembler include files into them, copy two include files to
 | |
| your include directory, CHDIR to each sub-directory and re-invoke itself
 | |
| with other make targets to compile and assemble all the source files
 | |
| into the appropriate directories. Then the library manager is run to
 | |
| create the library files in your desired library directory. Presto!
 | |
| 
 | |
|   If you only want to generate a library for one memory model, type
 | |
| 'make small', 'make large', etc. The name of the memory model must be in
 | |
| lower case, like in the makefile.
 | |
| 
 | |
|   I think the package is fairly well debugged - but then again, that's
 | |
| what I always think. It was completed in May-87, and no problems found
 | |
| yet. Now it's your turn... Comments, suggestions and bug reports and
 | |
| fixes (no flames please) to
 | |
| 
 | |
| -- Bjorn Larsson
 |