- * prevent recursion in wgetch() via wgetnstr() if the connection
- cannot be switched between cooked/raw modes because it is not a
- TTY.
- * correct a case in _nc_remove_string(), used by define_key(), to
- avoid infinite loop if the given string happens to be a substring
- of other strings which are assigned to keys.
- * modify logic of acsc to use the original character if no mapping
- is defined, rather than a null.
- * several improvements for handling multi-cell display of wide
- characters.
- + modify setcchar() to allow converting control characters to
- complex characters.
- + correct handling of multibyte characters in waddch_literal()
- which force wrapping because they are started too late on the
- line.
- + modify setcchar() to allow for wchar_t input strings that
- have more than one spacing character.
- * other fixes for wide-character support:
- + 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.
- + 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.
- + corrections to lib_get_wstr.c:
- o null-terminate buffer passed to setcchar(), which
- occasionally failed.
- o 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.
- * modify setupterm() to check if the terminfo and terminal-modes
- have already been read. This ensures that it does not reinvoke
- def_prog_mode() when an application calls more than one function,
- such as tgetent() and initscr().
- * 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.
- * correct keybound(), which reported definitions in the wrong table,
- i.e., the list of definitions which are disabled by keyok().
- * fixes related to safe_sprintf.c:
- + correct an allocation size in safe_sprintf.c for the "*"
- format code.
- + correct safe_sprintf.c to not return a null pointer if the
- format happens to be an empty string.
- + make return value from _nc_printf_string() consistent.
- Before, depending on whether --enable-safe-sprintf was used,
- it might not be cached for reallocating.
- * other low-level improvements to the optimization code include:
- + 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.
- + modify lib_getch.c to avoid recursion via wgetnstr() when the
- input is not a tty and consequently mode-changes do not work.
- + fix several places in tack/pad.c which tested and used the
- parameter- and parameterless strings inconsistently.
- + change several tputs() calls in scrolling code to use putp(),
- to enable padding which may be needed for some terminals.
- + 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.
- + 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.
- * correct line/column reference in adjust_window(), needed to make
- special windows such as curscr track properly when resizing.
- * fix a potential recursion between napms() and _nc_timed_wait()
- * rewrote lib_insch.c, combining it with lib_insstr.c so both handle
- tab and other control characters consistently.
- * do not try to open gpm mouse driver if standard output is not a
- tty; the gpm library does not make this check.
+ * 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.