From 349761f30e7fc0b4bf2718f7fc3da34e09ea6735 Mon Sep 17 00:00:00 2001 From: "Thomas E. Dickey" Date: Sun, 4 Oct 2020 01:30:03 +0000 Subject: [PATCH] ncurses 6.2 - patch 20201003 + remove output-related checks for nl/nonl (report by Leon Winter). + change tmux's kbs to ^? (report by Premysl Eric Janouch) + simplify mlterm initialization with DECSTR -TD + fix a typo in man/curs_terminfo.3 (Reuben Thomas). + add tmux-direct (tmux #2370) + add user-defined capabilities from mintty to Caps-ncurses, for checking consistency with tic. --- NEWS | 11 ++- VERSION | 2 +- dist.mk | 4 +- doc/html/man/adacurses6-config.1.html | 2 +- doc/html/man/captoinfo.1m.html | 2 +- doc/html/man/clear.1.html | 2 +- doc/html/man/curs_clear.3x.html | 32 ++++--- doc/html/man/curs_inopts.3x.html | 122 +++++++++++++++----------- doc/html/man/curs_outopts.3x.html | 82 ++++++++--------- doc/html/man/curs_terminfo.3x.html | 4 +- doc/html/man/form.3x.html | 2 +- doc/html/man/infocmp.1m.html | 2 +- doc/html/man/infotocap.1m.html | 2 +- doc/html/man/menu.3x.html | 2 +- doc/html/man/ncurses.3x.html | 21 +++-- doc/html/man/ncurses6-config.1.html | 2 +- doc/html/man/panel.3x.html | 2 +- doc/html/man/tabs.1.html | 2 +- doc/html/man/terminfo.5.html | 2 +- doc/html/man/tic.1m.html | 2 +- doc/html/man/toe.1m.html | 2 +- doc/html/man/tput.1.html | 2 +- doc/html/man/tset.1.html | 2 +- include/Caps-ncurses | 11 ++- man/curs_clear.3x | 28 ++++-- man/curs_inopts.3x | 66 ++++++++++---- man/curs_outopts.3x | 101 ++++++++++----------- man/curs_terminfo.3x | 4 +- man/ncurses.3x | 5 +- misc/terminfo.src | 24 +++-- ncurses/tty/lib_mvcur.c | 47 ++++------ package/debian-mingw/changelog | 4 +- package/debian-mingw64/changelog | 4 +- package/debian/changelog | 4 +- package/mingw-ncurses.nsi | 4 +- package/mingw-ncurses.spec | 2 +- package/ncurses.spec | 2 +- package/ncursest.spec | 2 +- 38 files changed, 344 insertions(+), 272 deletions(-) diff --git a/NEWS b/NEWS index 1f16ed0d..b2420cf4 100644 --- a/NEWS +++ b/NEWS @@ -26,7 +26,7 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: NEWS,v 1.3569 2020/09/26 23:50:37 tom Exp $ +-- $Id: NEWS,v 1.3572 2020/10/03 22:12:49 tom Exp $ ------------------------------------------------------------------------------- This is a log of changes that ncurses has gone through since Zeyd started @@ -46,6 +46,15 @@ See the AUTHORS file for the corresponding full names. Changes through 1.9.9e did not credit all contributions; it is not possible to add this information. +20201003 + + remove output-related checks for nl/nonl (report by Leon Winter). + + change tmux's kbs to ^? (report by Premysl Eric Janouch) + + simplify mlterm initialization with DECSTR -TD + + fix a typo in man/curs_terminfo.3 (Reuben Thomas). + + add tmux-direct (tmux #2370) + + add user-defined capabilities from mintty to Caps-ncurses, for + checking consistency with tic. + 20200926 + correct configure-check for gnurx library. + regenerate llib-* files. diff --git a/VERSION b/VERSION index 6f03b56f..1a850547 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -5:0:10 6.2 20200926 +5:0:10 6.2 20201003 diff --git a/dist.mk b/dist.mk index c0f20468..a6bb3a9f 100644 --- a/dist.mk +++ b/dist.mk @@ -26,7 +26,7 @@ # use or other dealings in this Software without prior written # # authorization. # ############################################################################## -# $Id: dist.mk,v 1.1378 2020/09/26 12:43:24 tom Exp $ +# $Id: dist.mk,v 1.1379 2020/10/03 12:29:29 tom Exp $ # Makefile for creating ncurses distributions. # # This only needs to be used directly as a makefile by developers, but @@ -38,7 +38,7 @@ SHELL = /bin/sh # These define the major/minor/patch versions of ncurses. NCURSES_MAJOR = 6 NCURSES_MINOR = 2 -NCURSES_PATCH = 20200926 +NCURSES_PATCH = 20201003 # We don't append the patch to the version, since this only applies to releases VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) diff --git a/doc/html/man/adacurses6-config.1.html b/doc/html/man/adacurses6-config.1.html index 0b2b6fd2..7273bdc1 100644 --- a/doc/html/man/adacurses6-config.1.html +++ b/doc/html/man/adacurses6-config.1.html @@ -126,7 +126,7 @@

SEE ALSO

        curses(3x)
 
-       This describes ncurses version 6.2 (patch 20200725).
+       This describes ncurses version 6.2 (patch 20201003).
 
 
 
diff --git a/doc/html/man/captoinfo.1m.html b/doc/html/man/captoinfo.1m.html
index c374a899..36cb4b38 100644
--- a/doc/html/man/captoinfo.1m.html
+++ b/doc/html/man/captoinfo.1m.html
@@ -199,7 +199,7 @@
 

SEE ALSO

        infocmp(1m), curses(3x), terminfo(5)
 
-       This describes ncurses version 6.2 (patch 20200725).
+       This describes ncurses version 6.2 (patch 20201003).
 
 
 

AUTHOR

diff --git a/doc/html/man/clear.1.html b/doc/html/man/clear.1.html
index 3e79087e..0cb8b7db 100644
--- a/doc/html/man/clear.1.html
+++ b/doc/html/man/clear.1.html
@@ -149,7 +149,7 @@
 

SEE ALSO

        tput(1), terminfo(5)
 
-       This describes ncurses version 6.2 (patch 20200725).
+       This describes ncurses version 6.2 (patch 20201003).
 
 
 
diff --git a/doc/html/man/curs_clear.3x.html b/doc/html/man/curs_clear.3x.html
index d48eeb2d..3a1236f8 100644
--- a/doc/html/man/curs_clear.3x.html
+++ b/doc/html/man/curs_clear.3x.html
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_clear.3x,v 1.17 2020/02/02 23:34:34 tom Exp @
+  * @Id: curs_clear.3x,v 1.19 2020/10/03 21:43:37 tom Exp @
 -->
 
 
@@ -52,14 +52,17 @@
 
 
 

SYNOPSIS

-       # include <curses.h>
+       #include <curses.h>
 
        int erase(void);
        int werase(WINDOW *win);
+
        int clear(void);
        int wclear(WINDOW *win);
+
        int clrtobot(void);
        int wclrtobot(WINDOW *win);
+
        int clrtoeol(void);
        int wclrtoeol(WINDOW *win);
 
@@ -85,12 +88,14 @@
 
 
 

RETURN VALUE

-       All routines return the integer OK on success and ERR on failure.   The
-       SVr4.0  manual  says "or a non-negative integer if immedok is set", but
-       this appears to be an error.
+       All routines return the integer OK on success and ERR on failure.
 
-       X/Open defines no error conditions.  In this implementation,  functions
-       using a window pointer parameter return an error if it is null.
+       X/Open defines no error conditions.  In this implementation,
+
+       o   functions using a window pointer parameter return an error if it is
+           null
+
+       o   wclrtoeol returns an error if the cursor position is about to wrap.
 
 
 

NOTES

@@ -103,17 +108,22 @@
        standard  specifies  that  they return ERR on failure, but specifies no
        error conditions.
 
-       Some historic curses implementations had, as an  undocumented  feature,
-       the  ability  to  do the equivalent of clearok(..., 1) by saying touch-
+       The SVr4.0 manual says that these functions could return  "a  non-nega-
+       tive  integer if immedok is set", referring to the return-value of wre-
+       fresh.  In that implementation, wrefresh would return a  count  of  the
+       number of characters written to the terminal.
+
+       Some  historic  curses implementations had, as an undocumented feature,
+       the ability to do the equivalent of clearok(..., 1)  by  saying  touch-
        win(stdscr) or clear(stdscr).  This will not work under ncurses.
 
        This implementation, and others such as Solaris, sets the current posi-
        tion to 0,0 after erasing via werase and wclear.  That fact is not doc-
-       umented in other implementations, and may not be  true  of  implementa-
+       umented  in  other  implementations, and may not be true of implementa-
        tions which were not derived from SVr4 source.
 
        Not obvious from the description, most implementations clear the screen
-       after wclear even for a subwindow or derived window.   If  you  do  not
+       after  wclear  even  for  a subwindow or derived window.  If you do not
        want to clear the screen during the next wrefresh, use werase instead.
 
 
diff --git a/doc/html/man/curs_inopts.3x.html b/doc/html/man/curs_inopts.3x.html
index 24f2ef96..a468d00a 100644
--- a/doc/html/man/curs_inopts.3x.html
+++ b/doc/html/man/curs_inopts.3x.html
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_inopts.3x,v 1.29 2020/02/02 23:34:34 tom Exp @
+  * @Id: curs_inopts.3x,v 1.31 2020/10/03 21:54:26 tom Exp @
 -->
 
 
@@ -47,9 +47,9 @@
 
 
 

NAME

-       cbreak, nocbreak, echo, noecho, halfdelay, intrflush, keypad, meta,
-       nodelay, notimeout, raw, noraw, noqiflush, qiflush, timeout, wtimeout,
-       typeahead - curses input options
+       cbreak, nocbreak, echo, noecho, halfdelay, intrflush, keypad, meta, nl,
+       nonl, nodelay, notimeout, raw, noraw, qiflush, noqiflush, timeout,
+       wtimeout, typeahead - curses input options
 
 
 

SYNOPSIS

@@ -57,20 +57,29 @@
 
        int cbreak(void);
        int nocbreak(void);
+
        int echo(void);
        int noecho(void);
-       int halfdelay(int tenths);
+
        int intrflush(WINDOW *win, bool bf);
        int keypad(WINDOW *win, bool bf);
        int meta(WINDOW *win, bool bf);
        int nodelay(WINDOW *win, bool bf);
+       int notimeout(WINDOW *win, bool bf);
+
+       int nl(void);
+       int nonl(void);
+
        int raw(void);
        int noraw(void);
-       void noqiflush(void);
+
        void qiflush(void);
-       int notimeout(WINDOW *win, bool bf);
+       void noqiflush(void);
+
+       int halfdelay(int tenths);
        void timeout(int delay);
        void wtimeout(WINDOW *win, int delay);
+
        int typeahead(int fd);
 
 
@@ -83,7 +92,7 @@
        behavior is needed.
 
 
-

cbreak

+

cbreak/nocbreak

        Normally, the tty driver buffers typed characters until  a  newline  or
        carriage  return  is typed.  The cbreak routine disables line buffering
        and erase/kill character-processing (interrupt and flow control charac-
@@ -153,73 +162,78 @@
        FALSE) is called.
 
 
-

nodelay

+

nl/nonl

+       The nl and nonl routines control whether the underlying display  device
+       translates the return key into newline on input.
+
+
+

nodelay/notimeout

        The nodelay option causes getch to be a non-blocking call.  If no input
-       is  ready,  getch  returns ERR.  If disabled (bf is FALSE), getch waits
+       is ready, getch returns ERR.  If disabled (bf is  FALSE),  getch  waits
        until a key is pressed.
 
-       While interpreting an input escape sequence, wgetch(3x)  sets  a  timer
-       while  waiting  for  the  next  character.   If notimeout(win, TRUE) is
-       called, then wgetch does not set a timer.  The purpose of  the  timeout
-       is  to differentiate between sequences received from a function key and
+       While  interpreting  an  input escape sequence, wgetch(3x) sets a timer
+       while waiting for the  next  character.   If  notimeout(win,  TRUE)  is
+       called,  then  wgetch does not set a timer.  The purpose of the timeout
+       is to differentiate between sequences received from a function key  and
        those typed by a user.
 
 
 

raw/noraw

-       The raw and noraw routines place the terminal into or out of raw  mode.
-       Raw  mode is similar to cbreak mode, in that characters typed are imme-
-       diately passed through to the user program.  The differences  are  that
-       in  raw mode, the interrupt, quit, suspend, and flow control characters
-       are all passed through uninterpreted, instead of generating  a  signal.
-       The  behavior  of the BREAK key depends on other bits in the tty driver
+       The  raw and noraw routines place the terminal into or out of raw mode.
+       Raw mode is similar to cbreak mode, in that characters typed are  imme-
+       diately  passed  through to the user program.  The differences are that
+       in raw mode, the interrupt, quit, suspend, and flow control  characters
+       are  all  passed through uninterpreted, instead of generating a signal.
+       The behavior of the BREAK key depends on other bits in the  tty  driver
        that are not set by curses.
 
 
-

noqiflush

-       When the noqiflush routine is used, normal flush of  input  and  output
-       queues  associated  with the INTR, QUIT and SUSP characters will not be
-       done [see termios(3)].  When qiflush is  called,  the  queues  will  be
-       flushed  when  these control characters are read.  You may want to call
-       noqiflush in a signal handler if you want output to continue as  though
+

qiflush/noqiflush

+       When  the  noqiflush  routine is used, normal flush of input and output
+       queues associated with the INTR, QUIT and SUSP characters will  not  be
+       done  [see  termios(3)].   When  qiflush  is called, the queues will be
+       flushed when these control characters are read.  You may want  to  call
+       noqiflush  in a signal handler if you want output to continue as though
        the interrupt had not occurred, after the handler exits.
 
 
 

timeout/wtimeout

        The timeout and wtimeout routines set blocking or non-blocking read for
-       a given window.  If delay is negative, blocking  read  is  used  (i.e.,
-       waits  indefinitely  for  input).   If delay is zero, then non-blocking
+       a  given  window.   If  delay is negative, blocking read is used (i.e.,
+       waits indefinitely for input).  If delay  is  zero,  then  non-blocking
        read is used (i.e., read returns ERR if no input is waiting).  If delay
-       is  positive,  then read blocks for delay milliseconds, and returns ERR
-       if there is still no input.  Hence, these  routines  provide  the  same
-       functionality  as nodelay, plus the additional capability of being able
+       is positive, then read blocks for delay milliseconds, and  returns  ERR
+       if  there  is  still  no input.  Hence, these routines provide the same
+       functionality as nodelay, plus the additional capability of being  able
        to block for only delay milliseconds (where delay is positive).
 
 
 

typeahead

        The curses library does "line-breakout optimization" by looking for ty-
        peahead periodically while updating the screen.  If input is found, and
-       it is coming from a tty, the current  update  is  postponed  until  re-
-       fresh(3x)  or doupdate is called again.  This allows faster response to
-       commands typed in advance.  Normally, the input FILE pointer passed  to
+       it  is  coming  from  a  tty, the current update is postponed until re-
+       fresh(3x) or doupdate is called again.  This allows faster response  to
+       commands  typed in advance.  Normally, the input FILE pointer passed to
        newterm, or stdin in the case that initscr was used, will be used to do
        this typeahead checking.  The typeahead routine specifies that the file
-       descriptor  fd  is to be used to check for typeahead instead.  If fd is
+       descriptor fd is to be used to check for typeahead instead.  If  fd  is
        -1, then no typeahead checking is done.
 
 
 

RETURN VALUE

-       All routines that return an integer return  ERR  upon  failure  and  OK
+       All  routines  that  return  an  integer return ERR upon failure and OK
        (SVr4 specifies only "an integer value other than ERR") upon successful
-       completion, unless otherwise noted in the  preceding  routine  descrip-
+       completion,  unless  otherwise  noted in the preceding routine descrip-
        tions.
 
-       X/Open  does  not define any error conditions.  In this implementation,
-       functions with a window parameter will return an error if it  is  null.
+       X/Open does not define any error conditions.  In  this  implementation,
+       functions  with  a window parameter will return an error if it is null.
        Any function will also return an error if the terminal was not initial-
        ized.  Also,
 
               halfdelay
-                   returns an error if its  parameter  is  outside  the  range
+                   returns  an  error  if  its  parameter is outside the range
                    1..255.
 
 
@@ -227,13 +241,20 @@
        These functions are described in the XSI Curses standard, Issue 4.
 
        The ncurses library obeys the XPG4 standard and the historical practice
-       of the AT&T curses implementations, in that the  echo  bit  is  cleared
-       when  curses  initializes the terminal state.  BSD curses differed from
-       this slightly; it left the echo bit on at initialization, but  the  BSD
-       raw  call  turned  it  off as a side-effect.  For best portability, set
-       echo or noecho explicitly just after initialization, even if your  pro-
+       of  the  AT&T  curses  implementations, in that the echo bit is cleared
+       when curses initializes the terminal state.  BSD curses  differed  from
+       this  slightly;  it left the echo bit on at initialization, but the BSD
+       raw call turned it off as a side-effect.   For  best  portability,  set
+       echo  or noecho explicitly just after initialization, even if your pro-
        gram remains in cooked mode.
 
+       The XSI Curses standard is ambiguous on the  question  of  whether  raw
+       should  disable  the  CRLF translations controlled by nl and nonl.  BSD
+       curses did turn off these translations; AT&T curses (at least  as  late
+       as  SVr1)  did not.  We chose to do so, on the theory that a programmer
+       requesting raw input wants a clean  (ideally  8-bit  clean)  connection
+       that the operating system will not alter.
+
        When keypad is first enabled, ncurses loads the key-definitions for the
        current terminal description.  If the terminal description includes ex-
        tended string capabilities, e.g., from using the -x option of tic, then
@@ -263,8 +284,8 @@
 
 
 

NOTES

-       Note that echo, noecho, halfdelay, intrflush, meta, nodelay, notimeout,
-       noqiflush, qiflush, timeout, and wtimeout may be macros.
+       Note that echo, noecho, halfdelay, intrflush, meta, nl, nonl,  nodelay,
+       notimeout, noqiflush, qiflush, timeout, and wtimeout may be macros.
 
        The  noraw  and  nocbreak calls follow historical practice in that they
        attempt to restore to normal ("cooked") mode from raw and cbreak  modes
@@ -287,15 +308,16 @@
 
  • SYNOPSIS
  • DESCRIPTION diff --git a/doc/html/man/curs_outopts.3x.html b/doc/html/man/curs_outopts.3x.html index 75175d19..a860b1bb 100644 --- a/doc/html/man/curs_outopts.3x.html +++ b/doc/html/man/curs_outopts.3x.html @@ -27,7 +27,7 @@ * sale, use or other dealings in this Software without prior written * * authorization. * **************************************************************************** - * @Id: curs_outopts.3x,v 1.30 2020/02/02 23:34:34 tom Exp @ + * @Id: curs_outopts.3x,v 1.33 2020/10/03 22:04:09 tom Exp @ --> @@ -48,7 +48,7 @@
  • NAME

            clearok, idlok, idcok, immedok, leaveok, setscrreg, wsetscrreg,
    -       scrollok, nl, nonl - curses output options
    +       scrollok - curses output options
     
     
     

    SYNOPSIS

    @@ -59,11 +59,10 @@
            void idcok(WINDOW *win, bool bf);
            void immedok(WINDOW *win, bool bf);
            int leaveok(WINDOW *win, bool bf);
    +       int scrollok(WINDOW *win, bool bf);
    +
            int setscrreg(int top, int bot);
            int wsetscrreg(WINDOW *win, int top, int bot);
    -       int scrollok(WINDOW *win, bool bf);
    -       int nl(void);
    -       int nonl(void);
     
     
     

    DESCRIPTION

    @@ -118,7 +117,17 @@
            cursor motions.
     
     
    -

    setscrreg

    +

    scrollok

    +       The scrollok option controls what happens when the cursor of  a  window
    +       is  moved  off  the edge of the window or scrolling region, either as a
    +       result of a newline action on the bottom line, or typing the last char-
    +       acter of the last line.  If disabled, (bf is FALSE), the cursor is left
    +       on the bottom line.  If enabled, (bf is TRUE), the window  is  scrolled
    +       up one line (Note that to get the physical scrolling effect on the ter-
    +       minal, it is also necessary to call idlok).
    +
    +
    +

    setscrreg/wsetscrreg

            The setscrreg and wsetscrreg routines allow the application  programmer
            to set a software scrolling region in a window.  The top and bot param-
            eters are the line  numbers  of  the  top  and  bottom  margin  of  the
    @@ -132,57 +141,37 @@
            line capability, they will probably be used by the output routines.)
     
     
    -

    scrollok

    -       The scrollok option controls what happens when the cursor of  a  window
    -       is  moved  off  the edge of the window or scrolling region, either as a
    -       result of a newline action on the bottom line, or typing the last char-
    -       acter of the last line.  If disabled, (bf is FALSE), the cursor is left
    -       on the bottom line.  If enabled, (bf is TRUE), the window  is  scrolled
    -       up one line (Note that to get the physical scrolling effect on the ter-
    -       minal, it is also necessary to call idlok).
    -
    -
    -

    nl, nonl

    -       The nl and nonl routines control whether the underlying display  device
    -       translates  the return key into newline on input, and whether it trans-
    -       lates newline into return and line-feed on output (in either case,  the
    -       call  addch('\n')  does  the  equivalent of return and line feed on the
    -       virtual screen).  Initially, these translations do occur.  If you  dis-
    -       able  them  using  nonl,  curses will be able to make better use of the
    -       line-feed capability, resulting in faster cursor motion.  Also,  curses
    -       will then be able to detect the return key.
    -
    -
     

    RETURN VALUE

    -       The  functions  setscrreg and wsetscrreg return OK upon success and ERR
    -       upon failure.  All other routines that return an integer always  return
    +       The functions setscrreg and wsetscrreg return OK upon success  and  ERR
    +       upon  failure.  All other routines that return an integer always return
            OK.
     
            X/Open Curses does not define any error conditions.
     
    -       In this implementation, those functions that have a window pointer will
    -       return an error if the window pointer is null.
    +       In this implementation,
     
    -              wclrtoeol
    -                   returns an error if the cursor position is about to wrap.
    +       o   those functions that have a window pointer will return an error  if
    +           the window pointer is null
     
    -              wsetscrreg
    -                   returns an error if the scrolling region limits extend out-
    -                   side the window.
    +       o   wsetscrreg  returns  an error if the scrolling region limits extend
    +           outside the window.
     
    -       X/Open  does  not define any error conditions.  This implementation re-
    +       X/Open does not define any error conditions.  This  implementation  re-
            turns an error if the window pointer is null.
     
     
     

    PORTABILITY

            These functions are described in the XSI Curses standard, Issue 4.
     
    -       The XSI Curses standard is ambiguous on the  question  of  whether  raw
    -       should  disable  the  CRLF translations controlled by nl and nonl.  BSD
    -       curses did turn off these translations; AT&T curses (at least  as  late
    -       as  SVr1) did not.  We choose to do so, on the theory that a programmer
    -       requesting raw input wants a clean  (ideally  8-bit  clean)  connection
    -       that the operating system will not alter.
    +       From the outset, ncurses used nl/nonl to control the conversion of new-
    +       lines to carriage return/line-feed on output as  well  as  input.   XSI
    +       Curses  documents only the use of these functions for input.  This dif-
    +       ference arose from converting the  pcurses  source  (which  used  ioctl
    +       calls  with  the sgttyb structure) to termios (i.e., the POSIX terminal
    +       interface).  In the former, both input and output were controlled via a
    +       single  option  CRMOD,  while the latter separates these features.  Be-
    +       cause that conversion interferes with output optimization, nl/nonl were
    +       amended after ncurses 6.2 to eliminate their effect on output.
     
            Some  historic  curses implementations had, as an undocumented feature,
            the ability to do the equivalent of clearok(..., 1)  by  saying  touch-
    @@ -201,8 +190,8 @@
     
     
     

    NOTES

    -       Note that clearok, leaveok, scrollok, idcok, nl, nonl and setscrreg may
    -       be macros.
    +       Note that clearok, leaveok,  scrollok,  idcok,  and  setscrreg  may  be
    +       macros.
     
            The immedok routine is useful for windows that are used as terminal em-
            ulators.
    @@ -227,9 +216,8 @@
     
  • idcok
  • immedok
  • leaveok
  • -
  • setscrreg
  • scrollok
  • -
  • nl, nonl
  • +
  • setscrreg/wsetscrreg
  • RETURN VALUE
  • diff --git a/doc/html/man/curs_terminfo.3x.html b/doc/html/man/curs_terminfo.3x.html index 4c4246b7..a59c2ffa 100644 --- a/doc/html/man/curs_terminfo.3x.html +++ b/doc/html/man/curs_terminfo.3x.html @@ -27,7 +27,7 @@ * sale, use or other dealings in this Software without prior written * * authorization. * **************************************************************************** - * @Id: curs_terminfo.3x,v 1.64 2020/02/02 23:34:34 tom Exp @ + * @Id: curs_terminfo.3x,v 1.65 2020/09/29 20:07:42 Rueben.Thomas Exp @ * *************************************************************************** * *************************************************************************** * *************************************************************************** @@ -325,7 +325,7 @@ o the short terminfo names ("codes"), - o the termcap names ("names", and + o the termcap names ("names"), and o the long terminfo names ("fnames") diff --git a/doc/html/man/form.3x.html b/doc/html/man/form.3x.html index a49dc865..edb8d24c 100644 --- a/doc/html/man/form.3x.html +++ b/doc/html/man/form.3x.html @@ -247,7 +247,7 @@ curses(3x) and related pages whose names begin "form_" for detailed descriptions of the entry points. - This describes ncurses version 6.2 (patch 20200725). + This describes ncurses version 6.2 (patch 20201003). diff --git a/doc/html/man/infocmp.1m.html b/doc/html/man/infocmp.1m.html index 84370a5a..eece92be 100644 --- a/doc/html/man/infocmp.1m.html +++ b/doc/html/man/infocmp.1m.html @@ -512,7 +512,7 @@ https://invisible-island.net/ncurses/tctest.html - This describes ncurses version 6.2 (patch 20200725). + This describes ncurses version 6.2 (patch 20201003).

    AUTHOR

    diff --git a/doc/html/man/infotocap.1m.html b/doc/html/man/infotocap.1m.html
    index 2599f221..85d358a5 100644
    --- a/doc/html/man/infotocap.1m.html
    +++ b/doc/html/man/infotocap.1m.html
    @@ -91,7 +91,7 @@
     

    SEE ALSO

            curses(3x), tic(1m), infocmp(1m), terminfo(5)
     
    -       This describes ncurses version 6.2 (patch 20200725).
    +       This describes ncurses version 6.2 (patch 20201003).
     
     
     

    AUTHOR

    diff --git a/doc/html/man/menu.3x.html b/doc/html/man/menu.3x.html
    index b18c5497..6306fdf2 100644
    --- a/doc/html/man/menu.3x.html
    +++ b/doc/html/man/menu.3x.html
    @@ -222,7 +222,7 @@
            curses(3x)  and  related  pages  whose names begin "menu_" for detailed
            descriptions of the entry points.
     
    -       This describes ncurses version 6.2 (patch 20200725).
    +       This describes ncurses version 6.2 (patch 20201003).
     
     
     
    diff --git a/doc/html/man/ncurses.3x.html b/doc/html/man/ncurses.3x.html
    index 3b6f4f52..1fc62427 100644
    --- a/doc/html/man/ncurses.3x.html
    +++ b/doc/html/man/ncurses.3x.html
    @@ -28,7 +28,7 @@
       * sale, use or other dealings in this Software without prior written       *
       * authorization.                                                           *
       ****************************************************************************
    -  * @Id: ncurses.3x,v 1.148 2020/06/13 23:25:50 tom Exp @
    +  * @Id: ncurses.3x,v 1.149 2020/10/03 20:15:52 tom Exp @
     -->
     
     
    @@ -60,7 +60,7 @@
            method of updating  character  screens  with  reasonable  optimization.
            This  implementation  is  "new  curses"  (ncurses)  and is the approved
            replacement for 4.4BSD classic curses,  which  has  been  discontinued.
    -       This describes ncurses version 6.2 (patch 20200725).
    +       This describes ncurses version 6.2 (patch 20201003).
     
            The  ncurses  library emulates the curses library of System V Release 4
            UNIX, and XPG4 (X/Open Portability Guide) curses  (also  known  as  XSI
    @@ -113,7 +113,6 @@
     
            Most programs would additionally use the sequence:
     
    -           nonl();
                intrflush(stdscr, FALSE);
                keypad(stdscr, TRUE);
     
    @@ -313,8 +312,8 @@
                         bkgrnd                   curs_bkgrnd(3x)
                         bkgrndset                curs_bkgrnd(3x)
                         border                   curs_border(3x)
    -
                         border_set               curs_border_set(3x)
    +
                         box                      curs_border(3x)
                         box_set                  curs_border_set(3x)
                         can_change_color         curs_color(3x)
    @@ -379,8 +378,8 @@
                         getnstr                  curs_getstr(3x)
                         getparx                  curs_legacy(3x)*
                         getpary                  curs_legacy(3x)*
    -
                         getparyx                 curs_getyx(3x)
    +
                         getstr                   curs_getstr(3x)
                         getsyx                   curs_kernel(3x)
                         getwin                   curs_util(3x)
    @@ -445,8 +444,8 @@
                         killchar                 curs_termattrs(3x)
                         killwchar                curs_termattrs(3x)
                         leaveok                  curs_outopts(3x)
    -
                         longname                 curs_termattrs(3x)
    +
                         mcprint                  curs_print(3x)*
                         meta                     curs_inopts(3x)
                         mouse_trafo              curs_mouse(3x)*
    @@ -511,8 +510,8 @@
                         mvwget_wstr              curs_get_wstr(3x)
                         mvwgetch                 curs_getch(3x)
                         mvwgetn_wstr             curs_get_wstr(3x)
    -
                         mvwgetnstr               curs_getstr(3x)
    +
                         mvwgetstr                curs_getstr(3x)
                         mvwhline                 curs_border(3x)
                         mvwhline_set             curs_border_set(3x)
    @@ -546,7 +545,7 @@
                         nodelay                  curs_inopts(3x)
                         noecho                   curs_inopts(3x)
                         nofilter                 curs_util(3x)*
    -                    nonl                     curs_outopts(3x)
    +                    nonl                     curs_inopts(3x)
                         noqiflush                curs_inopts(3x)
                         noraw                    curs_inopts(3x)
                         notimeout                curs_inopts(3x)
    @@ -577,8 +576,8 @@
                         scr_dump                 curs_scr_dump(3x)
                         scr_init                 curs_scr_dump(3x)
                         scr_restore              curs_scr_dump(3x)
    -
                         scr_set                  curs_scr_dump(3x)
    +
                         scrl                     curs_scroll(3x)
                         scroll                   curs_scroll(3x)
                         scrollok                 curs_outopts(3x)
    @@ -643,8 +642,8 @@
                         use_legacy_coding        legacy_coding(3x)*
                         use_tioctl               curs_util(3x)*
                         vid_attr                 curs_terminfo(3x)
    -
                         vid_puts                 curs_terminfo(3x)
    +
                         vidattr                  curs_terminfo(3x)
                         vidputs                  curs_terminfo(3x)
                         vline                    curs_border(3x)
    @@ -709,8 +708,8 @@
                         winnstr                  curs_instr(3x)
                         winnwstr                 curs_inwstr(3x)
                         wins_nwstr               curs_ins_wstr(3x)
    -
                         wins_wch                 curs_ins_wch(3x)
    +
                         wins_wstr                curs_ins_wstr(3x)
                         winsch                   curs_insch(3x)
                         winsdelln                curs_deleteln(3x)
    diff --git a/doc/html/man/ncurses6-config.1.html b/doc/html/man/ncurses6-config.1.html
    index bd5afa12..5b5a90bb 100644
    --- a/doc/html/man/ncurses6-config.1.html
    +++ b/doc/html/man/ncurses6-config.1.html
    @@ -113,7 +113,7 @@
     

    SEE ALSO

            curses(3x)
     
    -       This describes ncurses version 6.2 (patch 20200725).
    +       This describes ncurses version 6.2 (patch 20201003).
     
     
     
    diff --git a/doc/html/man/panel.3x.html b/doc/html/man/panel.3x.html
    index a083b1f4..550ab4d2 100644
    --- a/doc/html/man/panel.3x.html
    +++ b/doc/html/man/panel.3x.html
    @@ -281,7 +281,7 @@
     

    SEE ALSO

            curses(3x), curs_variables(3x),
     
    -       This describes ncurses version 6.2 (patch 20200725).
    +       This describes ncurses version 6.2 (patch 20201003).
     
     
     

    AUTHOR

    diff --git a/doc/html/man/tabs.1.html b/doc/html/man/tabs.1.html
    index 626ae357..8b24360f 100644
    --- a/doc/html/man/tabs.1.html
    +++ b/doc/html/man/tabs.1.html
    @@ -206,7 +206,7 @@
     

    SEE ALSO

            tset(1), infocmp(1m), curses(3x), terminfo(5).
     
    -       This describes ncurses version 6.2 (patch 20200725).
    +       This describes ncurses version 6.2 (patch 20201003).
     
     
     
    diff --git a/doc/html/man/terminfo.5.html b/doc/html/man/terminfo.5.html
    index 35f8a039..da1018ec 100644
    --- a/doc/html/man/terminfo.5.html
    +++ b/doc/html/man/terminfo.5.html
    @@ -105,7 +105,7 @@
            have, by specifying how to perform screen operations, and by specifying
            padding requirements and initialization sequences.
     
    -       This manual describes ncurses version 6.2 (patch 20200725).
    +       This manual describes ncurses version 6.2 (patch 20201003).
     
     
     

    Terminfo Entry Syntax

    diff --git a/doc/html/man/tic.1m.html b/doc/html/man/tic.1m.html
    index b715a207..83400358 100644
    --- a/doc/html/man/tic.1m.html
    +++ b/doc/html/man/tic.1m.html
    @@ -461,7 +461,7 @@
            infocmp(1m),   captoinfo(1m),   infotocap(1m),   toe(1m),   curses(3x),
            term(5).  terminfo(5).  user_caps(5).
     
    -       This describes ncurses version 6.2 (patch 20200725).
    +       This describes ncurses version 6.2 (patch 20201003).
     
     
     

    AUTHOR

    diff --git a/doc/html/man/toe.1m.html b/doc/html/man/toe.1m.html
    index e4617fc9..397ed527 100644
    --- a/doc/html/man/toe.1m.html
    +++ b/doc/html/man/toe.1m.html
    @@ -171,7 +171,7 @@
            tic(1m), infocmp(1m), captoinfo(1m),  infotocap(1m),  curses(3x),  ter-
            minfo(5).
     
    -       This describes ncurses version 6.2 (patch 20200725).
    +       This describes ncurses version 6.2 (patch 20201003).
     
     
     
    diff --git a/doc/html/man/tput.1.html b/doc/html/man/tput.1.html
    index f61b95cb..94486cdd 100644
    --- a/doc/html/man/tput.1.html
    +++ b/doc/html/man/tput.1.html
    @@ -523,7 +523,7 @@
     

    SEE ALSO

            clear(1), stty(1), tabs(1), tset(1), terminfo(5), curs_termcap(3x).
     
    -       This describes ncurses version 6.2 (patch 20200725).
    +       This describes ncurses version 6.2 (patch 20201003).
     
     
     
    diff --git a/doc/html/man/tset.1.html b/doc/html/man/tset.1.html
    index eb591936..be73ea67 100644
    --- a/doc/html/man/tset.1.html
    +++ b/doc/html/man/tset.1.html
    @@ -390,7 +390,7 @@
            csh(1),  sh(1),  stty(1),   curs_terminfo(3x),   tty(4),   terminfo(5),
            ttys(5), environ(7)
     
    -       This describes ncurses version 6.2 (patch 20200725).
    +       This describes ncurses version 6.2 (patch 20201003).
     
     
     
    diff --git a/include/Caps-ncurses b/include/Caps-ncurses
    index 48956d0e..d8c8baca 100644
    --- a/include/Caps-ncurses
    +++ b/include/Caps-ncurses
    @@ -28,7 +28,7 @@
     #
     # Author: Thomas E. Dickey
     #
    -# $Id: Caps-ncurses,v 1.9 2020/05/02 23:35:12 tom Exp $
    +# $Id: Caps-ncurses,v 1.10 2020/09/29 19:05:19 tom Exp $
     #
     #############################################################################
     #
    @@ -362,6 +362,15 @@ userdef	xm	str	nnnsnn	mouse response, p6 = x-ordinate starting region
     userdef	xm	str	nnnsnnn	mouse response, p7 = y-ordinate ending region
     userdef	xm	str	nnnsnnnn mouse response, p8 = x-ordinate ending region
     #
    +used_by mintty
    +userdef Rmol	str	-	remove overline-mode
    +userdef Smol	str	-	set overline-mode
    +userdef blink2	str	-	turn on rapid blinking
    +userdef norm	str	-	turn off bold and half-bright mode
    +userdef opaq	str	-	turn off blank mode
    +userdef	setal	str	n	set underline-color
    +userdef smul2	str	-	begin double underline mode
    +#
     used_by screen
     userdef	AN	bool	-	turn on autonuke.
     userdef	AX	bool	-	understands ANSI set default fg/bg color (\E[39m / \E[49m).
    diff --git a/man/curs_clear.3x b/man/curs_clear.3x
    index 2cce06ea..9d2872a3 100644
    --- a/man/curs_clear.3x
    +++ b/man/curs_clear.3x
    @@ -27,10 +27,14 @@
     .\" authorization.                                                           *
     .\"***************************************************************************
     .\"
    -.\" $Id: curs_clear.3x,v 1.17 2020/02/02 23:34:34 tom Exp $
    +.\" $Id: curs_clear.3x,v 1.19 2020/10/03 21:43:37 tom Exp $
     .TH curs_clear 3X ""
     .na
     .hy 0
    +.de bP
    +.ie n  .IP \(bu 4
    +.el    .IP \(bu 2
    +..
     .SH NAME
     \fBerase\fR,
     \fBwerase\fR,
    @@ -43,20 +47,20 @@
     .ad
     .hy
     .SH SYNOPSIS
    -\fB# include \fR
    +\fB#include \fR
     .sp
     \fBint erase(void);\fR
     .br
     \fBint werase(WINDOW *win);\fR
    -.br
    +.sp
     \fBint clear(void);\fR
     .br
     \fBint wclear(WINDOW *win);\fR
    -.br
    +.sp
     \fBint clrtobot(void);\fR
     .br
     \fBint wclrtobot(WINDOW *win);\fR
    -.br
    +.sp
     \fBint clrtoeol(void);\fR
     .br
     \fBint wclrtoeol(WINDOW *win);\fR
    @@ -82,12 +86,14 @@ Blanks created by erasure have the current background rendition (as set
     by \fBwbkgdset\fR) merged into them.
     .SH RETURN VALUE
     All routines return the integer \fBOK\fR on success and \fBERR\fP on failure.
    -The SVr4.0 manual says "or a
    -non-negative integer if \fBimmedok\fR is set", but this appears to be an error.
     .PP
     X/Open defines no error conditions.
     In this implementation,
    -functions using a window pointer parameter return an error if it is null.
    +.bP
    +functions using a window pointer parameter return an error if it is null
    +.bP
    +\fBwclrtoeol\fP returns an error
    +if the cursor position is about to wrap.
     .SH NOTES
     Note that \fBerase\fR, \fBwerase\fR, \fBclear\fR, \fBwclear\fR,
     \fBclrtobot\fR, and \fBclrtoeol\fR may be macros.
    @@ -97,6 +103,12 @@ The
     standard specifies that they return \fBERR\fR on failure, but specifies no
     error conditions.
     .PP
    +The SVr4.0 manual says that these functions could
    +return "a non-negative integer if \fBimmedok\fR is set",
    +referring to the return-value of \fBwrefresh\fP.
    +In that implementation, \fBwrefresh\fP would return a count of
    +the number of characters written to the terminal.
    +.PP
     Some historic curses implementations had, as an undocumented feature, the
     ability to do the equivalent of \fBclearok(..., 1)\fR by saying
     \fBtouchwin(stdscr)\fR or \fBclear(stdscr)\fR.
    diff --git a/man/curs_inopts.3x b/man/curs_inopts.3x
    index 3422c6b6..9670fe9e 100644
    --- a/man/curs_inopts.3x
    +++ b/man/curs_inopts.3x
    @@ -27,7 +27,7 @@
     .\" authorization.                                                           *
     .\"***************************************************************************
     .\"
    -.\" $Id: curs_inopts.3x,v 1.29 2020/02/02 23:34:34 tom Exp $
    +.\" $Id: curs_inopts.3x,v 1.31 2020/10/03 21:54:26 tom Exp $
     .TH curs_inopts 3X ""
     .ie \n(.g .ds `` \(lq
     .el       .ds `` ``
    @@ -44,12 +44,14 @@
     \fBintrflush\fR,
     \fBkeypad\fR,
     \fBmeta\fR,
    +\fBnl\fR,
    +\fBnonl\fR,
     \fBnodelay\fR,
     \fBnotimeout\fR,
     \fBraw\fR,
     \fBnoraw\fR,
    -\fBnoqiflush\fR,
     \fBqiflush\fR,
    +\fBnoqiflush\fR,
     \fBtimeout\fR,
     \fBwtimeout\fR,
     \fBtypeahead\fR \- \fBcurses\fR input options
    @@ -61,13 +63,11 @@
     \fBint cbreak(void);\fR
     .br
     \fBint nocbreak(void);\fR
    -.br
    +.sp
     \fBint echo(void);\fR
     .br
     \fBint noecho(void);\fR
    -.br
    -\fBint halfdelay(int tenths);\fR
    -.br
    +.sp
     \fBint intrflush(WINDOW *win, bool bf);\fR
     .br
     \fBint keypad(WINDOW *win, bool bf);\fR
    @@ -76,20 +76,26 @@
     .br
     \fBint nodelay(WINDOW *win, bool bf);\fR
     .br
    +\fBint notimeout(WINDOW *win, bool bf);\fR
    +.sp
    +\fBint nl(void);\fR
    +.br
    +\fBint nonl(void);\fR
    +.sp
     \fBint raw(void);\fR
     .br
     \fBint noraw(void);\fR
    -.br
    -\fBvoid noqiflush(void);\fR
    -.br
    +.sp
     \fBvoid qiflush(void);\fR
     .br
    -\fBint notimeout(WINDOW *win, bool bf);\fR
    +\fBvoid noqiflush(void);\fR
    +.sp
    +\fBint halfdelay(int tenths);\fR
     .br
     \fBvoid timeout(int delay);\fR
     .br
     \fBvoid wtimeout(WINDOW *win, int delay);\fR
    -.br
    +.sp
     \fBint typeahead(int fd);\fR
     .br
     .SH DESCRIPTION
    @@ -102,7 +108,7 @@ windows.
     An application must apply these to each window, if the same behavior
     is needed.
     .\"
    -.SS cbreak
    +.SS cbreak/nocbreak
     Normally, the tty driver buffers typed characters until a newline or carriage
     return is typed.
     The \fBcbreak\fR routine disables line buffering and
    @@ -194,7 +200,12 @@ If the terminfo capabilities \fBsmm\fR
     \fBTRUE\fR) is called and \fBrmm\fR is sent when \fBmeta\fR(\fIwin\fR,
     \fBFALSE\fR) is called.
     .\"
    -.SS nodelay
    +.SS nl/nonl
    +.PP
    +The \fBnl\fR and \fBnonl\fR routines control whether the underlying display
    +device translates the return key into newline on input.
    +.\"
    +.SS nodelay/notimeout
     .PP
     The \fBnodelay\fR option causes \fBgetch\fR to be a non-blocking call.
     If no input is ready, \fBgetch\fR returns \fBERR\fR.
    @@ -222,7 +233,7 @@ The behavior of
     the BREAK key depends on other bits in the tty driver that are not set by
     \fBcurses\fR.
     .\"
    -.SS noqiflush
    +.SS qiflush/noqiflush
     .PP
     When the \fBnoqiflush\fR routine is used, normal flush of input and
     output queues associated with the \fBINTR\fR, \fBQUIT\fR and
    @@ -292,9 +303,17 @@ initializes the terminal state.
     BSD curses differed from this slightly; it
     left the echo bit on at initialization, but the BSD \fBraw\fR call turned it
     off as a side-effect.
    -For best portability, set echo or noecho explicitly
    +For best portability, set \fBecho \fPor \fBnoecho\fP explicitly
     just after initialization, even if your program remains in cooked mode.
     .PP
    +The XSI Curses standard is ambiguous on the question of whether \fBraw\fR
    +should disable the CRLF translations controlled by \fBnl\fR and \fBnonl\fR.
    +BSD curses did turn off these translations; AT&T curses (at least as late as
    +SVr1) did not.
    +We chose to do so, on the theory that a programmer requesting
    +raw input wants a clean (ideally 8-bit clean) connection that the operating
    +system will not alter.
    +.PP
     When \fBkeypad\fP is first enabled,
     ncurses loads the key-definitions for the current terminal description.
     If the terminal description includes extended string capabilities,
    @@ -331,9 +350,20 @@ and if a capability's value is the same as a previously-loaded
     key definition,
     the later definition is the one used.
     .SH NOTES
    -Note that \fBecho\fR, \fBnoecho\fR, \fBhalfdelay\fR, \fBintrflush\fR,
    -\fBmeta\fR, \fBnodelay\fR, \fBnotimeout\fR, \fBnoqiflush\fR,
    -\fBqiflush\fR, \fBtimeout\fR, and \fBwtimeout\fR may be macros.
    +Note that
    +\fBecho\fR,
    +\fBnoecho\fR,
    +\fBhalfdelay\fR,
    +\fBintrflush\fR,
    +\fBmeta\fR,
    +\fBnl\fR,
    +\fBnonl\fR,
    +\fBnodelay\fR,
    +\fBnotimeout\fR,
    +\fBnoqiflush\fR,
    +\fBqiflush\fR,
    +\fBtimeout\fR, and
    +\fBwtimeout\fR may be macros.
     .PP
     The \fBnoraw\fR and \fBnocbreak\fR calls follow historical practice in that
     they attempt to restore to normal (\*(``cooked\*('') mode
    diff --git a/man/curs_outopts.3x b/man/curs_outopts.3x
    index b3e46088..e4e74213 100644
    --- a/man/curs_outopts.3x
    +++ b/man/curs_outopts.3x
    @@ -27,10 +27,14 @@
     .\" authorization.                                                           *
     .\"***************************************************************************
     .\"
    -.\" $Id: curs_outopts.3x,v 1.30 2020/02/02 23:34:34 tom Exp $
    +.\" $Id: curs_outopts.3x,v 1.33 2020/10/03 22:04:09 tom Exp $
     .TH curs_outopts 3X ""
     .na
     .hy 0
    +.de bP
    +.ie n  .IP \(bu 4
    +.el    .IP \(bu 2
    +..
     .SH NAME
     \fBclearok\fR,
     \fBidlok\fR,
    @@ -39,9 +43,7 @@
     \fBleaveok\fR,
     \fBsetscrreg\fR,
     \fBwsetscrreg\fR,
    -\fBscrollok\fR,
    -\fBnl\fR,
    -\fBnonl\fR \- \fBcurses\fR output options
    +\fBscrollok\fR \- \fBcurses\fR output options
     .ad
     .hy
     .SH SYNOPSIS
    @@ -57,17 +59,14 @@
     .br
     \fBint leaveok(WINDOW *\fP\fIwin\fP\fB, bool \fP\fIbf\fP\fB);\fR
     .br
    +\fBint scrollok(WINDOW *\fP\fIwin\fP\fB, bool \fP\fIbf\fP\fB);\fR
    +.sp
     \fBint setscrreg(int \fP\fItop\fP\fB, int \fP\fIbot\fP\fB);\fR
     .br
     \fBint wsetscrreg(WINDOW *\fP\fIwin\fP\fB, int \fP\fItop\fP\fB, int \fP\fIbot\fP\fB);\fR
     .br
    -\fBint scrollok(WINDOW *\fP\fIwin\fP\fB, bool \fP\fIbf\fP\fB);\fR
    -.br
    -\fBint nl(void);\fR
    -.br
    -\fBint nonl(void);\fR
    -.br
     .SH DESCRIPTION
    +.PP
     These routines set options that change the style of output within
     \fBcurses\fR.
     All options are initially \fBFALSE\fR, unless otherwise stated.
    @@ -121,7 +120,18 @@ The \fBleaveok\fR option allows the cursor to be left
     wherever the update happens to leave it.
     It is useful for applications where
     the cursor is not used, since it reduces the need for cursor motions.
    -.SS setscrreg
    +.SS scrollok
    +.PP
    +The \fBscrollok\fR option controls what happens when the cursor of a window is
    +moved off the edge of the window or scrolling region, either as a result of a
    +newline action on the bottom line, or typing the last character of the last
    +line.
    +If disabled, (\fIbf\fR is \fBFALSE\fR), the cursor is left on the bottom
    +line.
    +If enabled, (\fIbf\fR is \fBTRUE\fR), the window is scrolled up one line
    +(Note that to get the physical scrolling effect on the terminal, it is
    +also necessary to call \fBidlok\fR).
    +.SS  setscrreg/wsetscrreg
     .PP
     The \fBsetscrreg\fR and \fBwsetscrreg\fR routines allow the application
     programmer to set a software scrolling region in a window.
    @@ -140,30 +150,6 @@ terminal, like that in the VT100.
     If \fBidlok\fR is enabled and the terminal
     has either a scrolling region or insert/delete line capability, they will
     probably be used by the output routines.)
    -.SS scrollok
    -.PP
    -The \fBscrollok\fR option controls what happens when the cursor of a window is
    -moved off the edge of the window or scrolling region, either as a result of a
    -newline action on the bottom line, or typing the last character of the last
    -line.
    -If disabled, (\fIbf\fR is \fBFALSE\fR), the cursor is left on the bottom
    -line.
    -If enabled, (\fIbf\fR is \fBTRUE\fR), the window is scrolled up one line
    -(Note that to get the physical scrolling effect on the terminal, it is
    -also necessary to call \fBidlok\fR).
    -.SS nl, nonl
    -.PP
    -The \fBnl\fR and \fBnonl\fR routines control whether the underlying display
    -device translates the return key into newline on input, and whether it
    -translates newline into return and line-feed on output (in either case, the
    -call \fBaddch('\\n')\fR does the equivalent of return and line feed on the
    -\fIvirtual screen\fP).
    -Initially, these translations do occur.
    -If you disable them
    -using \fBnonl\fR, \fBcurses\fR will be able to make better use of the line-feed
    -capability, resulting in faster cursor motion.
    -Also, \fBcurses\fR will then be
    -able to detect the return key.
     .SH RETURN VALUE
     The functions \fBsetscrreg\fR and \fBwsetscrreg\fR return \fBOK\fR upon success
     and \fBERR\fR upon failure.
    @@ -172,15 +158,12 @@ return \fBOK\fR.
     .PP
     X/Open Curses does not define any error conditions.
     .PP
    -In this implementation, those functions that have a window pointer
    -will return an error if the window pointer is null.
    -.RS
    -.TP 5
    -.B wclrtoeol
    -returns an error
    -if the cursor position is about to wrap.
    -.TP 5
    -.B wsetscrreg
    +In this implementation,
    +.bP
    +those functions that have a window pointer
    +will return an error if the window pointer is null
    +.bP
    +\fBwsetscrreg\fP
     returns an error if the scrolling region limits extend outside the window.
     .RE
     .PP
    @@ -190,19 +173,23 @@ if the window pointer is null.
     .SH PORTABILITY
     These functions are described in the XSI Curses standard, Issue 4.
     .PP
    -The XSI Curses standard is ambiguous on the question of whether \fBraw\fR
    -should disable the CRLF translations controlled by \fBnl\fR and \fBnonl\fR.
    -BSD curses did turn off these translations; AT&T curses (at least as late as
    -SVr1) did not.
    -We choose to do so, on the theory that a programmer requesting
    -raw input wants a clean (ideally 8-bit clean) connection that the operating
    -system will not alter.
    +From the outset, ncurses used \fBnl\fP/\fBnonl\fP to control the conversion
    +of newlines to carriage return/line-feed on output as well as input.
    +XSI Curses documents only the use of these functions for input.
    +This difference arose from converting the \fIpcurses\fP source
    +(which used \fBioctl\fP calls with the \fBsgttyb\fP structure)
    +to termios (i.e., the POSIX terminal interface).
    +In the former, both input and output were controlled via a single
    +option \fBCRMOD\fP,
    +while the latter separates these features.
    +Because that conversion interferes with output optimization,
    +\fBnl\fP/\fBnonl\fP were amended after ncurses 6.2
    +to eliminate their effect on output.
     .PP
     Some historic curses implementations had, as an undocumented feature, the
     ability to do the equivalent of \fBclearok(..., 1)\fR by saying
     \fBtouchwin(stdscr)\fR or \fBclear(stdscr)\fR.
    -This will not work under
    -ncurses.
    +This will not work under ncurses.
     .PP
     Earlier System V curses implementations specified that with \fBscrollok\fR
     enabled, any window modification triggering a scroll also forced a physical
    @@ -216,8 +203,12 @@ made invisible as a side-effect of \fBleaveok\fR.
     SVr4 curses documentation does this, but the code does not.
     Use \fBcurs_set\fR to make the cursor invisible.
     .SH NOTES
    -Note that \fBclearok\fR, \fBleaveok\fR, \fBscrollok\fR, \fBidcok\fR, \fBnl\fR,
    -\fBnonl\fR and \fBsetscrreg\fR may be macros.
    +Note that
    +\fBclearok\fR,
    +\fBleaveok\fR,
    +\fBscrollok\fR,
    +\fBidcok\fR, and
    +\fBsetscrreg\fR may be macros.
     .PP
     The \fBimmedok\fR routine is useful for windows that are used as terminal
     emulators.
    diff --git a/man/curs_terminfo.3x b/man/curs_terminfo.3x
    index 041c58f0..54eb08a8 100644
    --- a/man/curs_terminfo.3x
    +++ b/man/curs_terminfo.3x
    @@ -27,7 +27,7 @@
     .\" authorization.                                                           *
     .\"***************************************************************************
     .\"
    -.\" $Id: curs_terminfo.3x,v 1.64 2020/02/02 23:34:34 tom Exp $
    +.\" $Id: curs_terminfo.3x,v 1.65 2020/09/29 20:07:42 Rueben.Thomas Exp $
     .TH curs_terminfo 3X ""
     .ie \n(.g .ds `` \(lq
     .el       .ds `` ``
    @@ -385,7 +385,7 @@ These null-terminated arrays contain
     .bP
     the short terminfo names (\*(``codes\*(''),
     .bP
    -the \fBtermcap\fR names (\*(``names\*('', and
    +the \fBtermcap\fR names (\*(``names\*(''), and
     .bP
     the long terminfo names (\*(``fnames\*('')
     .PP
    diff --git a/man/ncurses.3x b/man/ncurses.3x
    index 0ca125d6..5b8e708d 100644
    --- a/man/ncurses.3x
    +++ b/man/ncurses.3x
    @@ -28,7 +28,7 @@
     .\" authorization.                                                           *
     .\"***************************************************************************
     .\"
    -.\" $Id: ncurses.3x,v 1.148 2020/06/13 23:25:50 tom Exp $
    +.\" $Id: ncurses.3x,v 1.149 2020/10/03 20:15:52 tom Exp $
     .hy 0
     .TH ncurses 3X ""
     .ie \n(.g .ds `` \(lq
    @@ -127,7 +127,6 @@ sequence should be used:
     .PP
     Most programs would additionally use the sequence:
     .NS
    -\fBnonl();\fR
     \fBintrflush(stdscr, FALSE);\fR
     \fBkeypad(stdscr, TRUE);\fR
     .NE
    @@ -588,7 +587,7 @@ nocbreak/\fBcurs_inopts\fR(3X)
     nodelay/\fBcurs_inopts\fR(3X)
     noecho/\fBcurs_inopts\fR(3X)
     nofilter/\fBcurs_util\fR(3X)*
    -nonl/\fBcurs_outopts\fR(3X)
    +nonl/\fBcurs_inopts\fR(3X)
     noqiflush/\fBcurs_inopts\fR(3X)
     noraw/\fBcurs_inopts\fR(3X)
     notimeout/\fBcurs_inopts\fR(3X)
    diff --git a/misc/terminfo.src b/misc/terminfo.src
    index 91816307..ae28f143 100644
    --- a/misc/terminfo.src
    +++ b/misc/terminfo.src
    @@ -6,8 +6,8 @@
     # Report bugs and new terminal descriptions to
     #	bug-ncurses@gnu.org
     #
    -#	$Revision: 1.817 $
    -#	$Date: 2020/09/19 22:10:06 $
    +#	$Revision: 1.821 $
    +#	$Date: 2020/09/30 00:00:44 $
     #
     # The original header is preserved below for reference.  It is noted that there
     # is a "newer" version which differs in some cosmetic details (but actually
    @@ -5942,7 +5942,7 @@ konsole-256color|KDE console window with xterm 256-colors,
     	use=xterm+256setaf, use=konsole,
     
     #### MLTERM
    -# http://mlterm.sourceforge.net/
    +# https://github.com/arakiken/mlterm
     
     mlterm|multi lingual terminal emulator,
     	use=mlterm3,
    @@ -5976,6 +5976,7 @@ mlterm|multi lingual terminal emulator,
     #
     # Tested mlterm 3.3.8 (2018/01/21):
     # found xterm+sm+1006 did not work with version 3.3.8
    +# soft-reset DECSTR is in sources since 2017/09/19.
     #
     # Tested mlterm 3.2.2 (2014/03/22):
     # mlterm 3.x made further changes, but they were not reflected in the included
    @@ -5983,8 +5984,9 @@ mlterm|multi lingual terminal emulator,
     # with ncurses, tack and vttest -TD
     mlterm3|multi lingual terminal emulator,
     	bce, AX,
    -	blink=\E[5m, invis=\E[8m, kf1=\E[11~, kf2=\E[12~,
    -	kf3=\E[13~, kf4=\E[14~,
    +	blink=\E[5m, invis=\E[8m, is2=\E[!p\E[?3;4l\E>,
    +	kf1=\E[11~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
    +	rs2=\E[!p\E[?3;4l\E>,
     	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;%?
     	    %p7%t;8%;m%?%p9%t\E(0%e\E(B%;,
     	use=ansi+enq, use=ansi+rep, use=ecma+italics,
    @@ -7707,7 +7709,7 @@ screen5|VT 100/ANSI X3.64 virtual terminal (someday),
     # various entries such as screen.xterm-new provide a way to more closely
     # match the terminal.
     tmux|tmux terminal multiplexer,
    -	invis=\E[8m, rmso=\E[27m,
    +	invis=\E[8m, kbs=^?, rmso=\E[27m,
     	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?
     	    %p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
     	smso=\E[7m, E3=\E[3J, Smulx=\E[4\:%p1%dm,
    @@ -7718,6 +7720,11 @@ tmux|tmux terminal multiplexer,
     tmux-256color|tmux with 256 colors,
     	use=xterm+256setaf, use=tmux,
     
    +tmux-direct|tmux with direct-color indexing,
    +	setal=\E[%?%p1%{8}%<%t5%p1%d%e58\:2\:\:%p1%{65536}%/%d\:%p1
    +	      %{256}%/%{255}%&%d\:%p1%{255}%&%d%;m,
    +	use=xterm+direct, use=tmux,
    +
     #### Dvtm
     
     # dvtwm 0.15
    @@ -26668,4 +26675,9 @@ v3220|LANPAR Vision II model 3220/3221/3222,
     # 2020-09-19
     #	+ update mlterm3 for 3.9.0 (report by Premysl Eric Janouch).
     #
    +# 2020-09-29
    +#	+ add tmux-direct (tmux #2370)
    +#	+ simplify mlterm initialization with DECSTR -TD
    +#	+ change tmux's kbs to ^? (report by Premysl Eric Janouch)
    +#
     ######## SHANTIH!  SHANTIH!  SHANTIH!
    diff --git a/ncurses/tty/lib_mvcur.c b/ncurses/tty/lib_mvcur.c
    index 86e2fb18..c085ae14 100644
    --- a/ncurses/tty/lib_mvcur.c
    +++ b/ncurses/tty/lib_mvcur.c
    @@ -160,7 +160,7 @@
     #define CUR SP_TERMTYPE
     #endif
     
    -MODULE_ID("$Id: lib_mvcur.c,v 1.153 2020/05/27 23:56:32 tom Exp $")
    +MODULE_ID("$Id: lib_mvcur.c,v 1.154 2020/10/03 20:25:48 tom Exp $")
     
     #define WANT_CHAR(sp, y, x) NewScreen(sp)->_line[y].text[x]	/* desired state */
     
    @@ -577,7 +577,7 @@ relative_move(NCURSES_SP_DCLx
     	    }
     
     	    if (cursor_down
    -		&& (*cursor_down != '\n' || SP_PARM->_nl)
    +		&& (*cursor_down != '\n')
     		&& (n * SP_PARM->_cud1_cost < vcost)) {
     		vcost = repeated_append(_nc_str_copy(target, &save), 0,
     					SP_PARM->_cud1_cost, n, cursor_down);
    @@ -997,37 +997,28 @@ _nc_real_mvcur(NCURSES_SP_DCLx
     
     	if (xold >= screen_columns(SP_PARM)) {
     
    -	    if (SP_PARM->_nl) {
    -		int l = (xold + 1) / screen_columns(SP_PARM);
    +	    int l = (xold + 1) / screen_columns(SP_PARM);
     
    -		yold += l;
    -		if (yold >= screen_lines(SP_PARM))
    -		    l -= (yold - screen_lines(SP_PARM) - 1);
    +	    yold += l;
    +	    if (yold >= screen_lines(SP_PARM))
    +		l -= (yold - screen_lines(SP_PARM) - 1);
     
    -		if (l > 0) {
    -		    if (carriage_return) {
    -			NCURSES_PUTP2("carriage_return", carriage_return);
    -		    } else {
    -			myOutCh(NCURSES_SP_ARGx '\r');
    -		    }
    -		    xold = 0;
    +	    if (l > 0) {
    +		if (carriage_return) {
    +		    NCURSES_PUTP2("carriage_return", carriage_return);
    +		} else {
    +		    myOutCh(NCURSES_SP_ARGx '\r');
    +		}
    +		xold = 0;
     
    -		    while (l > 0) {
    -			if (newline) {
    -			    NCURSES_PUTP2("newline", newline);
    -			} else {
    -			    myOutCh(NCURSES_SP_ARGx '\n');
    -			}
    -			l--;
    +		while (l > 0) {
    +		    if (newline) {
    +			NCURSES_PUTP2("newline", newline);
    +		    } else {
    +			myOutCh(NCURSES_SP_ARGx '\n');
     		    }
    +		    l--;
     		}
    -	    } else {
    -		/*
    -		 * If caller set nonl(), we cannot really use newlines to
    -		 * position to the next row.
    -		 */
    -		xold = -1;
    -		yold = -1;
     	    }
     	}
     
    diff --git a/package/debian-mingw/changelog b/package/debian-mingw/changelog
    index d3332d5b..542077d8 100644
    --- a/package/debian-mingw/changelog
    +++ b/package/debian-mingw/changelog
    @@ -1,8 +1,8 @@
    -ncurses6 (6.2+20200926) unstable; urgency=low
    +ncurses6 (6.2+20201003) unstable; urgency=low
     
       * latest weekly patch
     
    - -- Thomas E. Dickey   Sat, 26 Sep 2020 08:43:24 -0400
    + -- Thomas E. Dickey   Tue, 29 Sep 2020 14:58:09 -0400
     
     ncurses6 (5.9-20131005) unstable; urgency=low
     
    diff --git a/package/debian-mingw64/changelog b/package/debian-mingw64/changelog
    index d3332d5b..542077d8 100644
    --- a/package/debian-mingw64/changelog
    +++ b/package/debian-mingw64/changelog
    @@ -1,8 +1,8 @@
    -ncurses6 (6.2+20200926) unstable; urgency=low
    +ncurses6 (6.2+20201003) unstable; urgency=low
     
       * latest weekly patch
     
    - -- Thomas E. Dickey   Sat, 26 Sep 2020 08:43:24 -0400
    + -- Thomas E. Dickey   Tue, 29 Sep 2020 14:58:09 -0400
     
     ncurses6 (5.9-20131005) unstable; urgency=low
     
    diff --git a/package/debian/changelog b/package/debian/changelog
    index c2d50663..cfb5e671 100644
    --- a/package/debian/changelog
    +++ b/package/debian/changelog
    @@ -1,8 +1,8 @@
    -ncurses6 (6.2+20200926) unstable; urgency=low
    +ncurses6 (6.2+20201003) unstable; urgency=low
     
       * latest weekly patch
     
    - -- Thomas E. Dickey   Sat, 26 Sep 2020 08:43:24 -0400
    + -- Thomas E. Dickey   Tue, 29 Sep 2020 14:58:09 -0400
     
     ncurses6 (5.9-20120608) unstable; urgency=low
     
    diff --git a/package/mingw-ncurses.nsi b/package/mingw-ncurses.nsi
    index 599156ea..9345362c 100644
    --- a/package/mingw-ncurses.nsi
    +++ b/package/mingw-ncurses.nsi
    @@ -1,4 +1,4 @@
    -; $Id: mingw-ncurses.nsi,v 1.422 2020/09/26 12:43:24 tom Exp $
    +; $Id: mingw-ncurses.nsi,v 1.423 2020/10/03 12:29:29 tom Exp $
     
     ; TODO add examples
     ; TODO bump ABI to 6
    @@ -10,7 +10,7 @@
     !define VERSION_MAJOR "6"
     !define VERSION_MINOR "2"
     !define VERSION_YYYY  "2020"
    -!define VERSION_MMDD  "0926"
    +!define VERSION_MMDD  "1003"
     !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
     
     !define MY_ABI   "5"
    diff --git a/package/mingw-ncurses.spec b/package/mingw-ncurses.spec
    index b6a6b2b9..8151514d 100644
    --- a/package/mingw-ncurses.spec
    +++ b/package/mingw-ncurses.spec
    @@ -3,7 +3,7 @@
     Summary: shared libraries for terminal handling
     Name: mingw32-ncurses6
     Version: 6.2
    -Release: 20200926
    +Release: 20201003
     License: X11
     Group: Development/Libraries
     Source: ncurses-%{version}-%{release}.tgz
    diff --git a/package/ncurses.spec b/package/ncurses.spec
    index 99f8f465..9b0fcecb 100644
    --- a/package/ncurses.spec
    +++ b/package/ncurses.spec
    @@ -1,7 +1,7 @@
     Summary: shared libraries for terminal handling
     Name: ncurses6
     Version: 6.2
    -Release: 20200926
    +Release: 20201003
     License: X11
     Group: Development/Libraries
     Source: ncurses-%{version}-%{release}.tgz
    diff --git a/package/ncursest.spec b/package/ncursest.spec
    index 9aed7777..75441844 100644
    --- a/package/ncursest.spec
    +++ b/package/ncursest.spec
    @@ -1,7 +1,7 @@
     Summary: Curses library with POSIX thread support.
     Name: ncursest6
     Version: 6.2
    -Release: 20200926
    +Release: 20201003
     License: X11
     Group: Development/Libraries
     Source: ncurses-%{version}-%{release}.tgz
    -- 
    2.44.0