# ncurses 6.5 - patch 20250308 - Thomas E. Dickey # # ------------------------------------------------------------------------------ # # Ncurses 6.5 is at # https://invisible-island.net/archives/ncurses/ # https://invisible-mirror.net/archives/ncurses/ # https://ftp.gnu.org/gnu/ncurses/ # # Patches for ncurses 6.5 can be found at # https://invisible-island.net/archives/ncurses/6.5 # https://invisible-mirror.net/archives/ncurses/6.5 # # ------------------------------------------------------------------------------ # https://invisible-island.net/archives/ncurses/6.5/ncurses-6.5-20250308.patch.gz # patch by Thomas E. Dickey # created Sun Mar 9 01:40:42 UTC 2025 # ------------------------------------------------------------------------------ # NEWS | 8 + # VERSION | 2 # dist.mk | 4 # doc/html/man/curs_add_wch.3x.html | 169 +++++++++++++++++------------------ # doc/html/man/curs_addch.3x.html | 173 ++++++++++++++++++------------------ # doc/html/man/curs_initscr.3x.html | 119 ++++++++++++------------ # doc/html/man/curs_inopts.3x.html | 60 +++++++----- # doc/html/man/curs_ins_wch.3x.html | 10 +- # doc/html/man/curs_insch.3x.html | 10 +- # doc/html/man/curs_kernel.3x.html | 28 +++-- # doc/html/man/curs_move.3x.html | 10 +- # doc/html/man/curs_outopts.3x.html | 81 ++++++++-------- # doc/html/man/ncurses.3x.html | 2 # doc/html/man/terminfo.5.html | 2 # include/curses.h.in | 4 # include/nc_win32.h | 4 # man/curs_add_wch.3x | 10 +- # man/curs_addch.3x | 10 +- # man/curs_initscr.3x | 31 +++--- # man/curs_inopts.3x | 40 +++++--- # man/curs_ins_wch.3x | 6 - # man/curs_insch.3x | 6 - # man/curs_kernel.3x | 35 ++++++- # man/curs_move.3x | 9 - # man/curs_outopts.3x | 20 ++-- # ncurses/base/lib_getch.c | 6 - # ncurses/base/lib_initscr.c | 10 +- # ncurses/tinfo/lib_win32con.c | 6 - # 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 # 35 files changed, 488 insertions(+), 409 deletions(-) # ------------------------------------------------------------------------------ Index: NEWS Prereq: 1.4257 --- ncurses-6.5-20250301+/NEWS 2025-03-01 21:57:13.000000000 +0000 +++ ncurses-6.5-20250308/NEWS 2025-03-09 00:39:13.000000000 +0000 @@ -26,7 +26,7 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: NEWS,v 1.4257 2025/03/01 21:57:13 tom Exp $ +-- $Id: NEWS,v 1.4259 2025/03/09 00:39:13 tom Exp $ ------------------------------------------------------------------------------- This is a log of changes that ncurses has gone through since Zeyd started @@ -46,6 +46,12 @@ Changes through 1.9.9e did not credit all contributions; it is not possible to add this information. +20250308 + + remove test in wgetch which applied notimeout to the initial read + of a character (patch by Branden Robinson). + + improve formatting/style of manpages (patches by Branden Robinson). + + fix a few compiler-warnings in MinGW port. + 20250301 + add color to vt525 (Branden Robinson) + add vt520-w and vt525-w (Branden Robinson) Index: VERSION --- ncurses-6.5-20250301+/VERSION 2025-03-01 10:08:08.000000000 +0000 +++ ncurses-6.5-20250308/VERSION 2025-03-08 11:56:38.000000000 +0000 @@ -1 +1 @@ -5:0:10 6.5 20250301 +5:0:10 6.5 20250308 Index: dist.mk Prereq: 1.1658 --- ncurses-6.5-20250301+/dist.mk 2025-03-01 10:08:08.000000000 +0000 +++ ncurses-6.5-20250308/dist.mk 2025-03-08 11:56:38.000000000 +0000 @@ -26,7 +26,7 @@ # use or other dealings in this Software without prior written # # authorization. # ############################################################################## -# $Id: dist.mk,v 1.1658 2025/03/01 10:08:08 tom Exp $ +# $Id: dist.mk,v 1.1659 2025/03/08 11:56:38 tom Exp $ # Makefile for creating ncurses distributions. # # This only needs to be used directly as a makefile by developers, but @@ -38,7 +38,7 @@ # These define the major/minor/patch versions of ncurses. NCURSES_MAJOR = 6 NCURSES_MINOR = 5 -NCURSES_PATCH = 20250301 +NCURSES_PATCH = 20250308 # We don't append the patch to the version, since this only applies to releases VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) Index: doc/html/man/curs_add_wch.3x.html --- ncurses-6.5-20250301+/doc/html/man/curs_add_wch.3x.html 2025-03-01 22:03:50.000000000 +0000 +++ ncurses-6.5-20250308/doc/html/man/curs_add_wch.3x.html 2025-03-09 00:55:53.000000000 +0000 @@ -28,19 +28,19 @@ * sale, use or other dealings in this Software without prior written * * authorization. * **************************************************************************** - * @Id: curs_add_wch.3x,v 1.108 2025/03/01 21:16:45 tom Exp @ + * @Id: curs_add_wch.3x,v 1.110 2025/03/08 23:01:20 tom Exp @ --> -curs_add_wch 3x 2025-03-01 ncurses 6.5 Library calls +curs_add_wch 3x 2025-03-08 ncurses 6.5 Library calls -

curs_add_wch 3x 2025-03-01 ncurses 6.5 Library calls

+

curs_add_wch 3x 2025-03-08 ncurses 6.5 Library calls

 curs_add_wch(3x)                 Library calls                curs_add_wch(3x)
 
@@ -156,58 +156,59 @@
 
        If the cursor is at the bottom of the scrolling region when advancement
        occurs at the right margin, and scrollok(3x) is enabled  for  win,  the
-       scrolling  region  scrolls  up  one  line.   Otherwise, advancement and
-       scrolling do not occur, and waddch returns ERR.
+       cursor  wraps  as  above  and the scrolling region scrolls up one line.
+       Otherwise, advancement and scrolling do not occur, and  waddch  returns
+       ERR.
 
-       If wch is a backspace, carriage return, line feed, or tab,  the  cursor
+       If  wch  is a backspace, carriage return, line feed, or tab, the cursor
        moves appropriately within the window.
 
-       o   Backspace  moves  the cursor one character left; at the left margin
+       o   Backspace moves the cursor one character left; at the  left  margin
            of a window, it does nothing.
 
-       o   Carriage return moves the cursor to the left  margin  on  the  same
+       o   Carriage  return  moves  the  cursor to the left margin on the same
            line of the window.
 
-       o   Line  feed  does a clrtoeol(3x), then advances as if from the right
+       o   Line feed does a clrtoeol(3x), then advances as if from  the  right
            margin.
 
-       o   Tab advances the cursor to the next tab stop (possibly on the  next
-           line);  these  are placed at every eighth column by default.  Alter
-           the   tab   interval    with    the    TABSIZE    extension;    see
+       o   Tab  advances the cursor to the next tab stop (possibly on the next
+           line); these are placed at every eighth column by  default.   Alter
+           the    tab    interval    with    the    TABSIZE   extension;   see
            curs_variables(3x).
 
-       If  wch  is  any other nonprintable character, it is drawn in printable
-       form using the same convention as wunctrl(3x).  Calling win_wch(3x)  on
-       the  location of a nonprintable character does not return the character
+       If wch is any other nonprintable character, it is  drawn  in  printable
+       form  using the same convention as wunctrl(3x).  Calling win_wch(3x) on
+       the location of a nonprintable character does not return the  character
        itself, but its wunctrl(3x) representation.
 
-       A cchar_t can be copied from  place  to  place  using  win_wch(3x)  and
-       wadd_wch.   See  curs_attr(3x)  for values of predefined constants that
+       A  cchar_t  can  be  copied  from  place to place using win_wch(3x) and
+       wadd_wch.  See curs_attr(3x) for values of  predefined  constants  that
        can be usefully "or"ed with characters.  A complex character whose only
-       character  component  is  a  wide  space,  and  whose only attribute is
-       WA_NORMAL, is a  blank  character,  and  therefore  combines  with  the
+       character component is a  wide  space,  and  whose  only  attribute  is
+       WA_NORMAL,  is  a  blank  character,  and  therefore  combines with the
        background character; see curs_bkgrnd(3x).
 
 
 

wecho_wchar

-       echo_wchar   and  wecho_wchar  are  equivalent  to  calling  (w)add_wch
-       followed by (w)refresh on  stdscr  or  the  specified  window.   curses
-       interprets  these  functions  as  a  hint  that only a single (complex)
-       character is being output; for non-control characters,  a  considerable
+       echo_wchar  and  wecho_wchar  are  equivalent  to  calling   (w)add_wch
+       followed  by  (w)refresh  on  stdscr  or  the specified window.  curses
+       interprets these functions as a  hint  that  only  a  single  (complex)
+       character  is  being output; for non-control characters, a considerable
        performance gain may be enjoyed by employing them.
 
 
 

Forms-Drawing Characters

-       curses  defines  macros  starting  with  WACS_  that  can  be used with
-       wadd_wch to  write  line-drawing  and  other  symbols  to  the  screen.
-       ncurses  terms  these forms-drawing characters.  The ACS default listed
-       below is used if the acs_chars  (acsc)  terminfo  capability  does  not
-       define  a terminal-specific replacement for it, or if the terminal type
+       curses defines macros  starting  with  WACS_  that  can  be  used  with
+       wadd_wch  to  write  line-drawing  and  other  symbols  to  the screen.
+       ncurses terms these forms-drawing characters.  The ACS  default  listed
+       below  is  used  if  the  acs_chars (acsc) terminfo capability does not
+       define a terminal-specific replacement for it, or if the terminal  type
        and locale configuration require Unicode to access these characters but
        the  library  is  unable  to  use  Unicode.   The  "acsc  char"  column
        corresponds to how the characters are specified in the acs_chars (acsc)
        string capability, and the characters in it may appear on the screen if
-       the terminal type's database entry incorrectly advertises ACS  support.
+       the  terminal type's database entry incorrectly advertises ACS support.
        The name "ACS" originates in the Alternate Character Set feature of the
        DEC VT100 terminal.
 
@@ -244,11 +245,11 @@
        WACS_TTEE       U+252c    +         w      top tee
        WACS_UARROW     U+2191    ^         -      arrow pointing up
        WACS_ULCORNER   U+250c    +         l      upper left-hand corner
-       WACS_URCORNER   U+2510    +         k      upper right-hand corner
 
+       WACS_URCORNER   U+2510    +         k      upper right-hand corner
        WACS_VLINE      U+2502    |         x      vertical line
 
-       The ncurses wide API also defines symbols for  thick  lines  (acsc  "J"
+       The  ncurses  wide  API  also defines symbols for thick lines (acsc "J"
        through "N", "T" through "X", and "Q"):
 
                          Unicode   ASCII     acsc
@@ -283,9 +284,9 @@
        WACS_D_URCORNER   U+2557    +         B      double upper right corner
        WACS_D_VLINE      U+2551    |         Y      double vertical line
 
-       Unicode's  descriptions  for  these  characters  differs  slightly from
-       ncurses, by introducing the term "light"  (along  with  less  important
-       details).   Here are its descriptions for the normal, thick, and double
+       Unicode's descriptions  for  these  characters  differs  slightly  from
+       ncurses,  by  introducing  the  term "light" (along with less important
+       details).  Here are its descriptions for the normal, thick, and  double
        horizontal lines:
 
        o   U+2500 BOX DRAWINGS LIGHT HORIZONTAL
@@ -302,31 +303,31 @@
 
        o   the curses screen has not been initialized,
 
-       o   (for functions taking a WINDOW pointer  argument)  win  is  a  null
+       o   (for  functions  taking  a  WINDOW  pointer argument) win is a null
            pointer,
 
-       o   wrapping  to  a new line is impossible because scrollok(3x) has not
-           been called on win (or stdscr, as applicable) when writing  to  its
+       o   wrapping to a new line is impossible because scrollok(3x)  has  not
+           been  called  on win (or stdscr, as applicable) when writing to its
            bottom right location is attempted, or
 
-       o   it  is  not  possible  to  add  a  complete character at the cursor
+       o   it is not possible to  add  a  complete  character  at  the  cursor
            position.
 
-       Functions prefixed with "mv" first perform cursor movement and fail  if
+       Functions  prefixed with "mv" first perform cursor movement and fail if
        the position (y, x) is outside the window boundaries.
 
 
 

NOTES

-       add_wch,  mvadd_wch,  mvwadd_wch,  and echo_wchar may be implemented as
+       add_wch, mvadd_wch, mvwadd_wch, and echo_wchar may  be  implemented  as
        macros.
 
 
 

EXTENSIONS

-       The  symbols  WACS_S3,  WACS_S7,  WACS_LEQUAL,  WACS_GEQUAL,   WACS_PI,
-       WACS_NEQUAL,   and  WACS_STERLING  are  not  standard.   However,  many
-       publicly  available   terminfo   entries   include   acs_chars   (acsc)
-       capabilities  in which their key characters (pryz{|}) are embedded, and
-       a second-hand list of their character descriptions has come  to  light.
+       The   symbols  WACS_S3,  WACS_S7,  WACS_LEQUAL,  WACS_GEQUAL,  WACS_PI,
+       WACS_NEQUAL,  and  WACS_STERLING  are  not  standard.   However,   many
+       publicly   available   terminfo   entries   include   acs_chars  (acsc)
+       capabilities in which their key characters (pryz{|}) are embedded,  and
+       a  second-hand  list of their character descriptions has come to light.
        The ncurses developers invented WACS-prefixed names for them.
 
 
@@ -334,59 +335,59 @@
        Applications employing ncurses extensions should condition their use on
        the visibility of the NCURSES_VERSION preprocessor macro.
 
-       These functions are described in X/Open Curses Issue 4.   It  specifies
+       These  functions  are described in X/Open Curses Issue 4.  It specifies
        no error conditions for them.
 
-       The  defaults specified for forms-drawing characters apply in the POSIX
-       locale.  X/Open Curses makes it clear that the WACS_ symbols should  be
-       defined  as  a  pointer  to  cchar_t  data,  e.g., in the discussion of
+       The defaults specified for forms-drawing characters apply in the  POSIX
+       locale.   X/Open Curses makes it clear that the WACS_ symbols should be
+       defined as a pointer to  cchar_t  data,  e.g.,  in  the  discussion  of
        border_set.  A few implementations are problematic:
 
        o   NetBSD curses defines the symbols as a wchar_t within a cchar_t.
 
-       o   HP-UX curses equates some of the  ACS_  symbols  to  the  analogous
-           WACS_  symbols  as  if  the ACS_ symbols were wide characters.  The
-           misdefined symbols are the arrows and other symbols which  are  not
+       o   HP-UX  curses  equates  some  of  the ACS_ symbols to the analogous
+           WACS_ symbols as if the ACS_ symbols  were  wide  characters.   The
+           misdefined  symbols  are the arrows and other symbols which are not
            used for line-drawing.
 
-       X/Open  Curses  does  not  specify  symbols for thick- or double-lines.
+       X/Open Curses does not specify  symbols  for  thick-  or  double-lines.
        SVr4 curses implementations defined their line-drawing symbols in terms
-       of  intermediate symbols.  ncurses extends those symbols, providing new
+       of intermediate symbols.  ncurses extends those symbols, providing  new
        definitions not found in SVr4 implementations.
 
-       Not all  Unicode-capable  terminals  provide  support  for  VT100-style
+       Not  all  Unicode-capable  terminals  provide  support  for VT100-style
        alternate character sets (i.e., the acsc_chars (acsc) capability), with
-       their corresponding line-drawing characters.   X/Open  Curses  did  not
+       their  corresponding  line-drawing  characters.   X/Open Curses did not
        address the aspect of integrating Unicode with line-drawing characters.
-       Existing implementations of System V curses (AIX, HP-UX,  Solaris)  use
-       only  the  acsc_chars (acsc) character-mapping to provide this feature.
-       As a result, those  implementations  can  use  only  single-byte  line-
-       drawing  characters.   ncurses  5.3  (2002) provided a table of Unicode
-       values to solve these problems.  NetBSD curses incorporated that  table
+       Existing  implementations  of System V curses (AIX, HP-UX, Solaris) use
+       only the acsc_chars (acsc) character-mapping to provide  this  feature.
+       As  a  result,  those  implementations  can  use only single-byte line-
+       drawing characters.  ncurses 5.3 (2002) provided  a  table  of  Unicode
+       values  to solve these problems.  NetBSD curses incorporated that table
        in 2010.
 
-       ncurses   uses   the  Unicode  values  instead  of  the  terminal  type
+       ncurses  uses  the  Unicode  values  instead  of  the   terminal   type
        description's acsc_chars (acsc) mapping as discussed in ncurses(3x) for
-       the  environment  variable  NCURSES_NO_UTF8_ACS.   In contrast, for the
+       the environment variable NCURSES_NO_UTF8_ACS.   In  contrast,  for  the
        same cases, the line-drawing characters described in addch(3x) will use
        only the ASCII default values.
 
-       Having  Unicode available does not solve all of the problems with line-
+       Having Unicode available does not solve all of the problems with  line-
        drawing for curses:
 
-       o   The closest Unicode equivalents to the VT100 graphics S1,  S3,  S7,
-           and  S9 frequently are not displayed at the regular intervals which
+       o   The  closest  Unicode equivalents to the VT100 graphics S1, S3, S7,
+           and S9 frequently are not displayed at the regular intervals  which
            the terminal used.
 
-       o   The lantern is a special case.  It originated with  the  AT&T  4410
-           terminal  in the early 1980s.  There is no accessible documentation
+       o   The  lantern  is  a special case.  It originated with the AT&T 4410
+           terminal in the early 1980s.  There is no accessible  documentation
            depicting the lantern symbol on the AT&T terminal.
 
            Lacking documentation, most readers assume that a storm lantern was
            intended.  But there are several possibilities, all with problems.
 
-           Unicode  6.0  (2010)  does provide two lantern symbols: U+1F383 and
-           U+1F3EE.  Those were not available  in  2002,  and  are  irrelevant
+           Unicode 6.0 (2010) does provide two lantern  symbols:  U+1F383  and
+           U+1F3EE.   Those  were  not  available  in 2002, and are irrelevant
            since they lie outside the Basic Multilingual Plane and as a result
            are unavailable on many terminals.  They are not storm lanterns, in
            any case.
@@ -394,20 +395,20 @@
            Most storm lanterns have a tapering glass chimney (to guard against
            tipping); some have a wire grid protecting the chimney.
 
-           For the tapering appearance,  U+2603 was adequate.   In  use  on  a
+           For  the  tapering  appearance,   U+2603 was adequate.  In use on a
            terminal, no one can tell what the image represents.  Unicode calls
            it a snowman.
 
            Others have suggested these alternatives: <section> U+00A7 (section
-           mark),  <Theta>  U+0398 (theta), <Phi> U+03A6 (phi), <delta> U+03B4
+           mark), <Theta> U+0398 (theta), <Phi> U+03A6 (phi),  <delta>  U+03B4
            (delta),  U+2327 (x in a rectangle),  U+256C (forms double vertical
            and horizontal), and  U+2612 (ballot box with x).
 
 
 

Complex Characters

-       The  complex  character  type  cchar_t  can  store  more  than one wide
-       character (wchar_t).  X/Open Curses does not mention this  possibility,
-       specifying  behavior  only  where  wch  is  a  single character, either
+       The complex character  type  cchar_t  can  store  more  than  one  wide
+       character  (wchar_t).  X/Open Curses does not mention this possibility,
+       specifying behavior only  where  wch  is  a  single  character,  either
        spacing or non-spacing.
 
        ncurses assumes that wch is constructed using setcchar(3x), and in turn
@@ -418,22 +419,22 @@
 
        o   holds one non-spacing character.
 
-       In the latter case, ncurses  adds  the  non-spacing  character  to  the
+       In  the  latter  case,  ncurses  adds  the non-spacing character to the
        active complex character.
 
 
 

HISTORY

-       X/Open  Curses Issue 4 (1995) initially specified these functions.  The
+       X/Open Curses Issue 4 (1995) initially specified these functions.   The
        System V  Interface  Definition  (SVID)  Version 4  of  the  same  year
-       specified  functions named waddwch (and the usual variants), echowchar,
+       specified functions named waddwch (and the usual variants),  echowchar,
        and wechowchar.  These were later additions to SVr4.x, not appearing in
-       the  first SVr4 (1989).  They differed from X/Open's later wadd_wch and
-       wecho_wchar in that they each took an argument of type wchar_t  instead
+       the first SVr4 (1989).  They differed from X/Open's later wadd_wch  and
+       wecho_wchar  in that they each took an argument of type wchar_t instead
        of cchar_t.  SVID defined no  WACS_ symbols.
 
-       X/Open  Curses  Issue 4  also  defined  many  of  the  WACS_ constants,
+       X/Open Curses  Issue 4  also  defined  many  of  the  WACS_  constants,
        excepting  WACS_GEQUAL,  WACS_LEQUAL,  WACS_NEQUAL,  WACS_PI,  WACS_S3,
-       WACS_S7,  and  WACS_STERLING;  and  those  for drawing thick and double
+       WACS_S7, and WACS_STERLING; and those  for  drawing  thick  and  double
        lines.
 
        ncurses 5.3 (2002) furnished the remaining WACS_ constants.
@@ -444,12 +445,12 @@
        its non-wide-character configuration.
 
        curses(3x),   curs_addwstr(3x),   curs_add_wchstr(3x),   curs_attr(3x),
-       curs_bkgrnd(3x), curs_clear(3x),  curs_getcchar(3x),  curs_outopts(3x),
+       curs_bkgrnd(3x),  curs_clear(3x),  curs_getcchar(3x), curs_outopts(3x),
        curs_refresh(3x), curs_variables(3x), putwc(3)
 
 
 
-ncurses 6.5                       2025-03-01                  curs_add_wch(3x)
+ncurses 6.5                       2025-03-08                  curs_add_wch(3x)