Age | Commit message (Collapse) | Author | Files | Lines |
|
This release is designed to be upward compatible from ncurses 5.0
through 5.4; very few applications will require recompilation,
depending on the platform. These are the highlights from the
change-log since ncurses 5.4 release.
Interface changes:
* terminfo installs "xterm-new" as "xterm" entry rather than
"xterm-old" (aka xterm-r6).
* terminfo data is installed using the tic -x option (few systems
still use ncurses 4.2).
* modify C++ binding to work with newer C++ compilers by providing
initializers and using modern casts. Old-style header names are
still used in this release to allow compiling with not-so-old
compilers.
* modify parameter type in c++ binding for insch() and mvwinsch() to
be consistent with underlying ncurses library (was char, is
chtype).
* change NCursesWindow::err_handler() to a virtual function.
* form and menu libraries now work with wide-character data.
Applications which bypassed the form library and manipulated the
FIELD.buf data directly will not work properly with libformw,
since that no longer points to an array of char. The
set_field_buffer() and field_buffer() functions translate to/from
the actual field data.
* add symbol to curses.h which can be used to suppress include of
stdbool.h, e.g.,
#define NCURSES_ENABLE_STDBOOL_H 0
#include <curses.h>
* change SP->_current_attr to a pointer, adjust ifdef's to ensure
that libtinfo.so and libtinfow.so have the same ABI. The reason
for this is that the corresponding data which belongs to the
upper-level ncurses library has a different size in each model.
* winnstr() now returns multibyte character strings for the
wide-character configuration.
* assume_default_colors() no longer requires that
use_default_colors() be called first.
* data_ahead() now works with wide-characters.
* slk_set() and slk_wset() now accept and store multibyte or
multicolumn characters.
* start_color() now returns OK if colors have already been started.
start_color() also returns ERR if it cannot allocate memory.
* pair_content() now returns -1 for consistency with init_pair() if
it corresponds to the default-color.
* unctrl() now returns null if its parameter does not correspond to
an unsigned char.
New features and improvements:
* library
+ environment variable NCURSES_NO_UTF8_ACS supports
miscellaneous terminal emulators which ignore alternate
character set escape sequences when in UTF-8 mode.
+ modify initialization of key lookup table so that if an
extended capability (tic -x) string is defined, and its name
begins with 'k', ncurses will automatically treat it as a
key.
+ change GPM initialization, using dl library to load it
dynamically at runtime.
+ form, menu and panel libraries support debug-tracing.
* add NCURSES-Programming-HOWTO.html by Pradeep Padala (see
http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/).
* programs:
* infocmp:
+ The -i option now matches 8-bit controls against its table
entries, e.g., so it can analyze the xterm-8bit entry.
+ add "-x" option to infocmp like tic's "-x", for use in "-F"
comparisons. This modifies infocmp to only report extended
capabilities if the -x option is given, making this more
consistent with tic. Some scripts may break, since infocmp
previous gave this information without an option.
* tic:
+ modify termcap-parsing to retain 2-character aliases at the
beginning of an entry if the "-x" option is used in tic.
+ filter out long extended names when translating to termcap
format. Only two characters are permissible for termcap
capability names.
+ correct translation of "%%" in terminfo format to termcap,
e.g., using "tic -C".
+ modify the "-c -v" options to ignore delays when comparing
strings. Also modify it to ignore a canceled sgr string,
e.g., for terminals which cannot properly combine attributes
in one control sequence.
+ add a check for improperly ended strings, i.e., where a
following line begins in column 1.
+ add a check in tic for terminfo entries having an sgr0 but no
sgr string. This confuses Tru64 and HPUX curses when combined
with color, e.g., making them leave line-drawing characters
in odd places.
+ add check (with debug configuration) that provides about the
runtime changes that would be made to sgr0 for termcap
applications.
* tset:
+ add -c and -w options to allow user to suppress ncurses'
resizing of the terminal emulator window in the special case
where it is not able to detect the true size.
Major bug fixes:
* improve logic in tgetent() which adjusts the termcap "me" string
to work with ISO-2022 string used in xterm-new. This is a feature
that was incompletely implemented in ncurses 5.3. ncurses attempts
to provide termcap clients with the portion of the sgr0 (termcap
"me") string that does not reset line-drawing.
* cells in the WINDOW which are continuations of a multicolumn
character are encoded differently, making repainting more
reliable.
* amend change to setupterm() in ncurses 5.4 (20030405) which would
reuse the value of cur_term if the same output was selected. This
now reuses it only when setupterm() is called from tgetent(),
which has no notion of separate SCREENs. Note that tgetent() must
be called after initscr() or newterm() to use this feature.
* make setcchar() now works when its wchar_t* parameter is pointing
to a string which contains more data than can be converted.
* win_wchnstr() now works for more than one cell.
* resizeterm() now processes all levels of window hierarchy.
* disable GPM mouse support when $TERM happens to be prefixed with
"xterm". Gpm_Open() would otherwise assert that it can deal with
mouse events in this case.
* add SP->_screen_acs_map[], used to ensure that mapping of missing
line-drawing characters is handled properly. For example,
ACS_DARROW is absent from xterm-new, and it was coincidentally
displayed the same as ACS_BTEE.
Portability:
* configure script:
+ new options:
--enable-largefile
set compiler and linker flags to use largefile
support.
--enable-ext-colors
Allow encoding of 256 foreground and background
colors, e.g., with the xterm-256color or
xterm-88color terminfo entries. This requires ABI 6
because it changes the size of cchar_t.
--enable-ext-mouse
This defines NCURSES_MOUSE_VERSION 2, and modifies
the encoding of mouse events to support wheel mice,
which may transmit buttons 4 and 5. This works with
xterm and similar terminal emulators. This requires
ABI 6 because it changes the encoding of mouse
events.
--with-chtype
overriding of the non-LP64 model's use of chtype
--with-mmask-t
overriding of the non-LP64 model's use of mmask_t
--without-xterm-new
Installs "xterm-old" as the "xterm" entry of the
terminfo database.
+ The --with-termlib option now accepts a value which sets the
name of the terminfo library. This would allow a packager to
build libtinfow.so renamed to coincide with libtinfo.so
+ fixes/improvements for cross-compiling:
o suppress $suffix in misc/run_tic.sh when
cross-compiling. This allows cross-compiles to use the
host's tic program to handle the "make install.data"
step.
o correct BUILD_CPPFLAGS substitution in
ncurses/Makefile.in, to allow cross-compiling from a
separate directory tree.
* library:
+ add ifdef's for _LP64 in curses.h to avoid using wasteful
64-bits for chtype and mmask_t, but add configure option
--disable-lp64 in case anyone used that configuration.
+ modify C++ binding to use some C internal functions to make
it compile properly on Solaris (and other platforms).
+ remove check in newwin() that prevents allocating windows
that extend beyond the screen (Solaris does this).
+ check for nl_langinfo(CODESET), use it if available. This
replaces ad hoc tests of environment variables to check if
the terminal is setup for UTF-8 encoding. Applications which
do not call setlocale() should be corrected, to make them
work properly with UTF-8 encoding.
In particular, applications which assume (and do not call
setlocale()) that Latin-1 codes are printable will no longer
work in a UTF-8 locale since the ad hoc check of environment
variables to see if the locale was UTF-8 is not used when
nl_langinfo(CODESET) is available.
+ use setlocale() to query the program's current locale rather
than using getenv(). This supports applications which rely
upon legacy treatment of 8-bit characters when the locale is
not initialized.
|
|
|
|
this build with NetBSD make older than Dec 26 2003.
Problem was that ${FOO:$o=.lo} was not expanded as in GNU make
before that date; problem found by Thomas Dickey.
Remove USE_GNU_TOOLS+=make.
|
|
* Interface changes
* New features and improvements: library, programs
* Major bug fixes
(See ANNOUNCE for details)
|
|
(and manpages). This is in regards to my PR #23103.
I bumped PKGREVISION in Makefile but not in buildlink2.mk file.
The ncurses libraries and headers didn't change. No need to bump
PKGREVISIONs for all the packages that depend on libncurses.
|
|
|
|
Interface changes:
* change type for bool used in headers to NCURSES_BOOL, which usually is the same as the
compiler's definition for bool.
* add all but two functions for X/Open curses wide-character support. These are only
available if the library is configured using the --enable-widec option. Missing functions
are
* pecho_wchar()
* slk_wset()
* add environment variable $NCURSES_ASSUMED_COLORS to modify the assume_default_colors()
extension.
New features and improvements:
* Improved support for termcap applications:
* add logic to dump_entry.c to remove function-key definitions that do not fit into the
1023-byte limit for generated termcaps. This makes hds200 fit.
* modify tgetent() to check if exit_attribute_mode resets the alternate character set,
and if so, attempt to adjust the copy of the termcap "me" string which it will return
to eliminate that part. In particular, 'screen' would lose track of line-drawing
characters.
* add check/fix to comp_parse.c to suppress warning about missing acsc string. This
happens in configurations where raw termcap information is processed; tic already
does this and other checks.
* add tic -A option to suppress capabilities which are commented out when translating
to termcap.
* modify logic in lib_baudrate.c for ospeed, for FreeBSD to make it work properly for
termcap applications (patch by Andrey A Chernov).
* add a call to _nc_keypad() in keypad() to accommodate applications such as nvi, which use
curses for output but not for input (fixes Debian #131263, cf: 20011215).
* correct logic for COLORFGBG environment variable: if rxvt is compiled with xpm support,
the variable has three fields, making it slightly incompatible with itself. In either
case, the background color is the last field.
Major bug fixes:
* rewrote limit-checks in wscrl() and associated _nc_scroll_window(), to ensure that if the
parameter of wscrl() is larger than the size of the scrolling region, then the scrolling
region will be cleared.
* modify tset to restore original I/O modes if an error is encountered. Also modify to use
buffered stderr consistently rather than mixing with write().
* move calls to def_shell_mode() and def_prog_mode() before loop with callbacks in
lib_set_term.c, since the c++ demo otherwise initialized the tty modes before saving them.
* modified wresize() to ensure that a failed realloc will not corrupt the window structure,
and to make subwindows fit within the resized window.
* altered resizeterm() to avoid having it fail when a child window cannot be resized because
it would be larger than its parent.
* correct/improve logic to produce an exit status for errors in tput, which did not exit
with an error when told to put a string not in the current terminfo entry.
* modify behavior of can_clear_with() so that if an application is running in a non-bce
terminals with default colors enabled, it returns true, allowing the user to select/paste
text without picking up extraneous trailing blanks.
* add a check in relative_move() to guard against buffer overflow in the overwrite logic.
* add some limit/pointer checks to -S option of tputs.
* modify mvcur() to avoid emitting newline characters when nonl() mode is set. Normally this
is not a problem since the actual terminal mode is set to suppress nl/crlf translations,
however it is useful to allow the caller to manipulate the terminal mode to avoid
staircasing effects after spawning a process which writes messages (for lynx 2.8.4).
Portability:
* configure script:
* modify check in --disable-overwrite option so that it is used by default unless the
--prefix/$prefix value is not /usr, in attempt to work around packagers who do not
read the INSTALL notes.
* correct a typo in configure --enable-colorfgbg option, and move it to the
experimental section (cf: 20011208).
* modify configure script to allow building with termcap only, or with fallbacks only.
In this case, we do not build tic and toe.
* modify run_tic.sh to check if the build is a cross-compile. In that case, do not use
the build's tic to install the terminfo database.
* modify c++/Makefile.in to accommodate archive programs that are different for C++
than for C, and add cases for vendor's C++ compilers on Solaris and IRIX.
* add several configure script options to aid with cross-compiling: --with-build-cc,
--with-build-cflags, --with-build-ldflags, and --with-build-libs.
* add experimental --with-caps=XXX option to customize to similar terminfo database
formats such as AIX 4.x
* add configure option --with-ospeed to assist packagers in transition to 5.3 change to
ospeed type.
* library:
* implement a simple vsscanf() fallback function which uses the %n conversion to help
parse the input data.
* various fixes to build/work with different implementations of vsscanf().
* add/use macro to suppress sign-extension of char type on platforms where this is a
problem in ctype macros, e.g., Solaris.
* finish changes needed to build dll's on cygwin.
* add #undef's before possible redefinition of ERR and OK in curses.h
* programs:
* modify ifdef's in write_entry.c to allow use of symbolic links on platforms with no
hard links, e.g., BeOS.
* modify _nc_write_entry() to allow for the possibility that linking aliases on a
filesystem that ignores case would not succeed because the source and destination
differ only by case, e.g., NCR260VT300WPP0 on cygwin.
* modify logic in tic, toe, tput and tset which checks for basename of argv[0] to work
properly on systems such as OS/2 which have case-independent filenames and/or program
suffixes, e.g., ".ext".
|
|
and fix some package lists problems there.
|
|
buildlink2.mk files back into the main trunk. This provides sufficient
buildlink2 infrastructure to start merging other packages from the
buildlink2 branch that have already been converted to use the buildlink2
framework.
|
|
into LDFLAGS. This makes building of ncurses on a system already having
ncurses installed possible. This is just another chapter of the continuing
buildlink saga.
|
|
needed for the xerces-p package, but ended up not being necessary. By
removing this hack, we reduce the number of places in pkgsrc where we depend
upon libtool internals.
|
|
|
|
+ move the patch digest/checksum values from files/patch-sum to distinfo
|