- <li>modified infocmp -e, -E options to ensure that generated fallback.c
- type for Booleans agrees with term.h
-
- <li>documented a special case of incompatiblity between ncurses 4.2 and
- 5.0, added a section for this in INSTALL.
-
- <li>corrected tests for file-descriptors in OS/2 EMX mouse support. A
- negative value could be used by FD_SET, causing the select() call to
- wait indefinitely.
-
- <li>made 'tput flash' work properly for xterm by flushing output in
- delay_output() when using napms(), and modifying xterm's terminfo to
- specify no padding character. Otherwise, xterm's reported baud rate
- could mislead ncurses into producing too few padding characters.
-
- <li>modified lib_addch.c to allow repeated update to the lower-right
- corner, rather than displaying only the first character written until
- the cursor is moved. Recent versions of SVr4 curses can update the
- lower-right corner, and behave this way.
-
- <li>modified echo() behavior of getch() to match Solaris curses for
- carriage return and backspace (reported by Neil Zanella).
-
- <li>corrected offsets used for subwindows in <code>wresize()</code>
-
- <li>modified configure script so AC_MSG_ERROR is temporarily defined to
- a warning in AC_PROG_CXX to make it recover from a missing C++
- compiler without requiring user to add --without-cxx option
-
- <li>corrected logic in lib_twait.c as used by lib_mouse.c for GPM mouse
- support when poll() is used rather than select().
+ <li>prevent recursion in wgetch() via wgetnstr() if the connection
+ cannot be switched between cooked/raw modes because it is not a TTY.
+
+ <li>correct a case in _nc_remove_string(), used by
+ <code>define_key()</code>, to avoid infinite loop if the given string
+ happens to be a substring of other strings which are assigned to keys.
+
+ <li>modify logic of acsc to use the original character if no mapping is
+ defined, rather than a null.
+
+ <li>several improvements for handling multi-cell display of wide
+ characters.
+ <ul>
+ <li>modify setcchar() to allow converting control characters to complex
+ characters.
+ <li>correct handling of multibyte characters in waddch_literal() which
+ force wrapping because they are started too late on the line.
+ <li>modify setcchar() to allow for wchar_t input strings that have
+ more than one spacing character.
+ </ul>
+
+ <li>other fixes for wide-character support:
+ <ul>
+ <li>rewrote lib_acs.c to allow PutAttrChar() to decide how to render
+ alternate-characters, i.e., to work with Linux console and UTF-8
+ locale.
+ <li>implement a workaround so that line-drawing works with screen's
+ crippled UTF-8 support (tested with 3.9.13). This only works with
+ the wide-character support (--enable-widec); the normal library
+ will simply suppress line-drawing when running in a UTF-8 locale in
+ screen.
+ <li>corrections to lib_get_wstr.c:
+ <ul>
+ <li>null-terminate buffer passed to setcchar(), which occasionally
+ failed.
+ <li>map special characters such as erase- and kill-characters into
+ key-codes so those will work as expected even if they are not
+ mentioned in the terminfo.
+ </ul>
+ </ul>
+
+ <li>modify <code>setupterm()</code> to check if the terminfo and
+ terminal-modes have already been read. This ensures that it does not
+ reinvoke <code>def_prog_mode()</code> when an application calls more
+ than one function, such as <code>tgetent()</code> and
+ <code>initscr()</code>.
+
+ <li>fix form_driver() cases for REQ_CLR_EOF, REQ_CLR_EOL, REQ_DEL_CHAR,
+ REQ_DEL_PREV and REQ_NEW_LINE, which did not ensure the cursor was at
+ the editing position before making modifications.
+
+ <li>correct <code>keybound()</code>, which reported definitions in the
+ wrong table, i.e., the list of definitions which are disabled by
+ <code>keyok()</code>.
+
+ <li>fixes related to safe_sprintf.c:
+ <ul>
+ <li>correct an allocation size in safe_sprintf.c for the "*" format
+ code.
+ <li>correct safe_sprintf.c to not return a null pointer if the format
+ happens to be an empty string.
+ <li>make return value from _nc_printf_string() consistent. Before,
+ depending on whether --enable-safe-sprintf was used, it might not
+ be cached for reallocating.
+ </ul>
+
+ <li>other low-level improvements to the optimization code include:
+ <ul>
+ <li>if the output is a socket or other non-tty device, use 1
+ millisecond
+ for the cost in mvcur; previously it was 9 milliseconds because the
+ baudrate was not known.
+ <li>modify lib_getch.c to avoid recursion via wgetnstr() when the
+ input
+ is not a tty and consequently mode-changes do not work.
+ <li>fix several places in tack/pad.c which tested and used the
+ parameter- and parameterless strings inconsistently.
+ <li>change several tputs() calls in scrolling code to use putp(), to
+ enable padding which may be needed for some terminals.
+ <li>improve mvcur() by checking if it is safe to move when video
+ attributes are set (msgr), and if not, reset/restore attributes
+ within that function rather than doing it separately in the GoTo()
+ function in tty_update.c.
+ <li>use tputs() rather than putp() in a few cases in tty_update.c
+ since the corresponding delays are proportional to the number of
+ lines affected: repeat_char, clr_eos, change_scroll_region.
+ </ul>
+
+ <li>correct line/column reference in adjust_window(), needed to make
+ special windows such as curscr track properly when resizing.
+
+ <li>fix a potential recursion between napms() and _nc_timed_wait()
+
+ <li>rewrote lib_insch.c, combining it with lib_insstr.c so both handle
+ tab and other control characters consistently.
+
+ <li>do not try to open gpm mouse driver if standard output is not a
+ tty; the gpm library does not make this check.
+</ul>