]> ncurses.scripts.mit.edu Git - ncurses.git/commitdiff
ncurses 6.4 - patch 20240224
authorThomas E. Dickey <dickey@invisible-island.net>
Sun, 25 Feb 2024 00:28:48 +0000 (00:28 +0000)
committerThomas E. Dickey <dickey@invisible-island.net>
Sun, 25 Feb 2024 00:28:48 +0000 (00:28 +0000)
+ improve man/curs_mouse.3x style (Brandon Robinson, Sven Joachim).
+ provide for CCHARW_MAX greater than 1
+ eliminate use of PATH_MAX in lib_trace.c
+ work around misconfiguration of MacPorts gcc13, which exposes invalid
  definition of MB_LEN_MAX in gcc's fallback copy of limits.h (MacPorts
  #69374).

32 files changed:
NEWS
VERSION
dist.mk
doc/html/man/curs_initscr.3x.html
doc/html/man/curs_kernel.3x.html
doc/html/man/curs_mouse.3x.html
doc/html/man/curs_terminfo.3x.html
doc/html/man/curs_trace.3x.html
doc/html/man/curs_util.3x.html
doc/html/man/ncurses.3x.html
doc/html/man/terminfo.5.html
form/form.priv.h
man/curs_initscr.3x
man/curs_kernel.3x
man/curs_mouse.3x
man/curs_terminfo.3x
man/curs_trace.3x
man/curs_util.3x
man/manhtml.aliases
man/ncurses.3x
ncurses/curses.priv.h
ncurses/report_offsets.c
ncurses/term.priv.h
ncurses/tinfo/lib_data.c
ncurses/trace/lib_trace.c
package/debian-mingw/changelog
package/debian-mingw64/changelog
package/debian/changelog
package/mingw-ncurses.nsi
package/mingw-ncurses.spec
package/ncurses.spec
package/ncursest.spec

diff --git a/NEWS b/NEWS
index 50fb97b7672a2fedbb53db35bb368d6228240227..c902a5fcf903367992008234bbb41240dba45c53 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -26,7 +26,7 @@
 -- sale, use or other dealings in this Software without prior written        --
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
--- $Id: NEWS,v 1.4081 2024/02/17 22:44:28 tom Exp $
+-- $Id: NEWS,v 1.4086 2024/02/24 20:06:19 tom Exp $
 -------------------------------------------------------------------------------
 
 This is a log of changes that ncurses has gone through since Zeyd started
@@ -46,6 +46,14 @@ 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.
 
+20240224
+       + improve man/curs_mouse.3x style (Brandon Robinson, Sven Joachim).
+       + provide for CCHARW_MAX greater than 1
+       + eliminate use of PATH_MAX in lib_trace.c
+       + work around misconfiguration of MacPorts gcc13, which exposes invalid
+         definition of MB_LEN_MAX in gcc's fallback copy of limits.h (MacPorts
+         #69374).
+
 20240217
        + add vt100+noapp, vt100+noapp+pc, xterm+app+pc, xterm+decedit from
          xterm #389 -TD
diff --git a/VERSION b/VERSION
index 43ce880aede31fefe03469778ff340730d7dae1c..b2f8a521298f940b56e6510263236e67161a027e 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-5:0:10 6.4     20240217
+5:0:10 6.4     20240224
diff --git a/dist.mk b/dist.mk
index 8a6afe693c6d11d315299533abd4699f098820c3..7c1251190fe836d9a0120cb3472a66ed7094a4c7 100644 (file)
--- 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.1598 2024/02/17 11:23:23 tom Exp $
+# $Id: dist.mk,v 1.1599 2024/02/24 11:49:33 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 = 4
-NCURSES_PATCH = 20240217
+NCURSES_PATCH = 20240224
 
 # We don't append the patch to the version, since this only applies to releases
 VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
index 8179e408f556966f235e078bb1a9faceb9abc068..88d17fedb0fbe3b4d37bcddfadc2df3fc12a7b8d 100644 (file)
@@ -1,6 +1,6 @@
 <!--
   ****************************************************************************
-  * Copyright 2018-2022,2023 Thomas E. Dickey                                *
+  * Copyright 2018-2023,2024 Thomas E. Dickey                                *
   * Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_initscr.3x,v 1.60 2023/12/23 16:27:25 tom Exp @
+  * @Id: curs_initscr.3x,v 1.62 2024/02/24 20:03:50 tom Exp @
 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
 <HEAD>
 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
 <meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_initscr 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_initscr 3x 2024-02-24 ncurses 6.4 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">curs_initscr 3x 2023-12-23 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_initscr 3x 2024-02-24 ncurses 6.4 Library calls</H1>
 <PRE>
 <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>                 Library calls                <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
 
        library:
 
        <STRONG>SIGINT</STRONG>
-            The handler <EM>attempts</EM> to cleanup the screen on exit.   Although  it
+            The handler <EM>attempts</EM> to clean up the screen on exit.  Although  it
             <EM>usually</EM> works as expected, there are limitations:
 
             <STRONG>o</STRONG>   Walking  the  <EM>SCREEN</EM> list is unsafe, since all list management
 
 
 
-ncurses 6.4                       2023-12-23                  <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
+ncurses 6.4                       2024-02-24                  <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index 35a505efd2d58614cc2cf20d6f316c914409b7da..4cd5599a6ab1658f42d3520f3f0f15948d267c25 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_kernel.3x,v 1.53 2024/01/05 21:46:58 tom Exp @
+  * @Id: curs_kernel.3x,v 1.54 2024/02/24 19:57:34 tom Exp @
 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
 <HEAD>
 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
 <meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_kernel 3x 2024-01-05 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_kernel 3x 2024-02-24 ncurses 6.4 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">curs_kernel 3x 2024-01-05 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_kernel 3x 2024-02-24 ncurses 6.4 Library calls</H1>
 <PRE>
 <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>                  Library calls                 <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
 
 
 
 
-ncurses 6.4                       2024-01-05                   <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
+ncurses 6.4                       2024-02-24                   <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index 167ed4ff0b83b67c03b38d5b90eb7278804cfc01..16771c76b1092a7ca639343796ecf3142517e64d 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_mouse.3x,v 1.89 2024/02/17 21:43:03 tom Exp @
+  * @Id: curs_mouse.3x,v 1.92 2024/02/24 19:54:30 tom Exp @
 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
 <HEAD>
 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
 <meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_mouse 3x 2024-02-17 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_mouse 3x 2024-02-24 ncurses 6.4 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">curs_mouse 3x 2024-02-17 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_mouse 3x 2024-02-24 ncurses 6.4 Library calls</H1>
 <PRE>
 <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>                   Library calls                  <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
 
@@ -99,7 +99,7 @@
        <STRONG>o</STRONG>   If <EM>oldmask</EM> is non-<STRONG>NULL</STRONG>, this function fills the indicated  location
            with the previous value of the current screen's mouse event mask.
 
-       As  a  side  effect,  setting  a  zero mousemask may turn off the mouse
+       As  a  side  effect,  setting  a zero mouse mask may turn off the mouse
        pointer; setting a nonzero mask may turn it on.  Whether  this  happens
        is device-dependent.
 
        or  vice  versa.   The  resulting  <STRONG>stdscr</STRONG>-relative  coordinates are not
        always identical to screen coordinates due to the mechanism to  reserve
        lines  on  top  or  bottom  of  the  screen for other purposes (see the
-       <STRONG>ripoffline</STRONG> and <STRONG><A HREF="curs_slk.3x.html">slk_init(3x)</A></STRONG> calls, for example).
+       <STRONG><A HREF="curs_kernel.3x.html">ripoffline(3x)</A></STRONG> and <STRONG><A HREF="curs_slk.3x.html">slk_init(3x)</A></STRONG> calls, for example).
 
        <STRONG>o</STRONG>   If the parameter <EM>to</EM><STRONG>_</STRONG><EM>screen</EM>  is  <STRONG>TRUE</STRONG>,  the  pointers  <EM>pY,</EM>  <EM>pX</EM>  must
            reference  the  coordinates  of  a  location inside the window <EM>win</EM>.
 </PRE><H3><a name="h3-mouseinterval">mouseinterval</a></H3><PRE>
        The  <STRONG>mouseinterval</STRONG>  function  sets  the maximum time (in thousands of a
        second) that can elapse between press and release events for them to be
-       resolved as a click.
+       resolved  as  a <EM>click.</EM>  An application might interpret button press and
+       release events separated by more than the mouse  interval  as  a  "long
+       press", or, with motion, as a "drag".
 
-       Calling  <STRONG>mouseinterval(0)</STRONG>  disables  click  resolution.   When  ncurses
+       Calling  <STRONG>mouseinterval(0)</STRONG>  disables  click  resolution.   When  <EM>ncurses</EM>
        detects a mouse event, it awaits further  input  activity  up  to  this
        interval,  and  then  checks  for a subsequent mouse event which can be
        combined with the first event.  If the timeout  expires  without  input
 
 
 
-ncurses 6.4                       2024-02-17                    <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
+ncurses 6.4                       2024-02-24                    <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index 4ae87c03a173357b6680f5d035e0696bfcc781fa..76831d35632662f0b6dfa5b4c304f6fdde1a9cc3 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_terminfo.3x,v 1.129 2024/01/13 22:15:55 tom Exp @
+  * @Id: curs_terminfo.3x,v 1.130 2024/02/24 20:04:09 tom Exp @
 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
 <HEAD>
 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
 <meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_terminfo 3x 2024-01-13 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_terminfo 3x 2024-02-24 ncurses 6.4 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">curs_terminfo 3x 2024-01-13 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_terminfo 3x 2024-02-24 ncurses 6.4 Library calls</H1>
 <PRE>
 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>                Library calls               <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
 
        the  corresponding  stream.   In  addition  to  the limitation that the
        terminal was  left  in  block-buffered  mode  on  exit  (like  System V
        <EM>curses</EM>),  it  was  problematic because <EM>ncurses</EM> did not allow a reliable
-       way to cleanup on receiving <STRONG>SIGTSTP</STRONG>.
+       way to clean up on receiving <STRONG>SIGTSTP</STRONG>.
 
        The current version (ncurses6) uses output buffers managed directly  by
        <EM>ncurses.</EM>  Some of the low-level functions described in this manual page
 
 
 
-ncurses 6.4                       2024-01-13                 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+ncurses 6.4                       2024-02-24                 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index 5654fbe92a80a9dc0a826c08cae6bc19ecb7736a..0c22ceb5f8ef656a6f7bbe5720c36365ca9e3d07 100644 (file)
@@ -1,6 +1,6 @@
 <!--
   ****************************************************************************
-  * Copyright 2019-2022,2023 Thomas E. Dickey                                *
+  * Copyright 2019-2023,2024 Thomas E. Dickey                                *
   * Copyright 2000-2016,2017 Free Software Foundation, Inc.                  *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_trace.3x,v 1.42 2023/12/23 16:08:25 tom Exp @
+  * @Id: curs_trace.3x,v 1.44 2024/02/24 20:01:11 tom Exp @
 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
 <HEAD>
 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
 <meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_trace 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_trace 3x 2024-02-24 ncurses 6.4 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">curs_trace 3x 2023-12-23 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_trace 3x 2024-02-24 ncurses 6.4 Library calls</H1>
 <PRE>
 <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>                   Library calls                  <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>
 
        These  functions  check  the <EM>NCURSES</EM><STRONG>_</STRONG><EM>TRACE</EM> environment variable, to set
        the tracing feature as if <STRONG>curses_trace</STRONG> was called:
 
-           filter,  initscr,  new_prescr,  newterm,   nofilter,   restartterm,
-           ripoffline,      setupterm,     slk_init,     tgetent,     use_env,
-           use_extended_names, use_tioctl
+           <STRONG>filter</STRONG>, <STRONG>initscr</STRONG>, <STRONG>new_prescr</STRONG>, <STRONG>newterm</STRONG>, <STRONG>nofilter</STRONG>, <STRONG>restartterm</STRONG>,
+           <STRONG>ripoffline</STRONG>, <STRONG>setupterm</STRONG>, <STRONG>slk_init</STRONG>, <STRONG>tgetent</STRONG>, <STRONG>use_env</STRONG>,
+           <STRONG>use_extended_names</STRONG>, <STRONG>use_tioctl</STRONG>
 
 
 </PRE><H3><a name="h3-Command-line-Utilities">Command-line Utilities</a></H3><PRE>
 
 
 
-ncurses 6.4                       2023-12-23                    <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>
+ncurses 6.4                       2024-02-24                    <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index 25eaacd313cb9573ecd49e6224078e0955a92400..e6d8fe14d6998e0868d1f685fe4dd682580c49a6 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_util.3x,v 1.95 2024/01/05 21:46:58 tom Exp @
+  * @Id: curs_util.3x,v 1.96 2024/02/24 19:22:01 tom Exp @
 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
 <HEAD>
 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
 <meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_util 3x 2024-01-05 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_util 3x 2024-02-24 ncurses 6.4 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">curs_util 3x 2024-01-05 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_util 3x 2024-02-24 ncurses 6.4 Library calls</H1>
 <PRE>
 <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>                    Library calls                   <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
 
 
 
 
-ncurses 6.4                       2024-01-05                     <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+ncurses 6.4                       2024-02-24                     <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index 78ff4777f95d7a86f3cb2a8fc5e41344c207d3e2..e144aa4b667deee4987bd9527140c1d9aaf4c94b 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: ncurses.3x,v 1.197 2024/01/13 20:30:39 tom Exp @
+  * @Id: ncurses.3x,v 1.200 2024/02/24 20:03:50 tom Exp @
 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
 <HEAD>
 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
 <meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>ncurses 3x 2024-01-13 ncurses 6.4 Library calls</TITLE>
+<TITLE>ncurses 3x 2024-02-24 ncurses 6.4 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">ncurses 3x 2024-01-13 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">ncurses 3x 2024-02-24 ncurses 6.4 Library calls</H1>
 <PRE>
 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>                      Library calls                     <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
 
@@ -60,7 +60,7 @@
        method of updating  character  screens  with  reasonable  optimization.
        This  implementation  is  "new  curses"  (<EM>ncurses</EM>)  and is the approved
        replacement for 4.4BSD classic curses,  which  has  been  discontinued.
-       This describes <EM>ncurses</EM> version 6.4 (patch 20240217).
+       This describes <EM>ncurses</EM> version 6.4 (patch 20240224).
 
        The  <EM>ncurses</EM>  library emulates the curses library of System V Release 4
        Unix ("SVr4"), and XPG4 (X/Open Portability Guide) curses  (also  known
        If  the  locale is not initialized, the library assumes that characters
        are printable as in ISO-8859-1, to work with certain  legacy  programs.
        You  should  initialize  the locale and not rely on specific details of
-       the library when the locale has not been setup.
+       the library when the locale has not been set up.
 
        The function <STRONG>initscr</STRONG> or  <STRONG>newterm</STRONG>  must  be  called  to  initialize  the
        library  before  any  of  the other routines that deal with windows and
 </PRE><H3><a name="h3-BAUDRATE"><EM>BAUDRATE</EM></a></H3><PRE>
        The  debugging  library  checks  this  environment  variable  when  the
        application  has  redirected  output to a file.  The variable's numeric
-       value is used for the baudrate.  If no value  is  found,  <EM>ncurses</EM>  uses
+       value is used for the baud rate.  If no value is  found,  <EM>ncurses</EM>  uses
        9600.  This allows testers to construct repeatable test-cases that take
-       into account costs that depend on baudrate.
+       into account costs that depend on baud rate.
 
 
 </PRE><H3><a name="h3-COLUMNS"><EM>COLUMNS</EM></a></H3><PRE>
 
 
 
-ncurses 6.4                       2024-01-13                       <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
+ncurses 6.4                       2024-02-24                       <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index 09a765b61c391ffd74d080e1633f149f5f562a96..374e703486494001993de031f3cd731f85b14a62 100644 (file)
@@ -71,7 +71,7 @@
        have, by specifying how to perform screen operations, and by specifying
        padding requirements and initialization sequences.
 
-       This manual describes <EM>ncurses</EM> version 6.4 (patch 20240217).
+       This manual describes <EM>ncurses</EM> version 6.4 (patch 20240224).
 
 
 </PRE><H3><a name="h3-terminfo-Entry-Syntax"><EM>terminfo</EM> Entry Syntax</a></H3><PRE>
index 4cf307135df60cb8554bfafdaa601f02d240f2a2..ad5af63ad807c69dce3775cb496661f1971ff004 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright 2018-2020,2021 Thomas E. Dickey                                *
+ * Copyright 2018-2021,2024 Thomas E. Dickey                                *
  * Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -31,7 +31,7 @@
  *   Author:  Juergen Pfeifer, 1995,1997                                    *
  ****************************************************************************/
 
-/* $Id: form.priv.h,v 0.48 2021/06/17 21:30:22 tom Exp $ */
+/* $Id: form.priv.h,v 0.49 2024/02/24 12:17:31 tom Exp $ */
 
 #ifndef FORM_PRIV_H
 #define FORM_PRIV_H 1
 #include <wctype.h>
 #endif
 
-#ifndef MB_LEN_MAX
-#define MB_LEN_MAX 8 /* should be >= MB_CUR_MAX, but that may be a function */
-#endif
-
 #define FIELD_CELL NCURSES_CH_T
 
 #define NCURSES_FIELD_INTERNALS char** expanded; WINDOW *working;
index 3f7c37d6ecf89a503500d8edd90e7e5796a7e2fb..15f4e8b966756cc9830f877090f08d3dc7d3ac42 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright 2018-2022,2023 Thomas E. Dickey                                *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey                                *
 .\" Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -27,8 +27,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_initscr.3x,v 1.60 2023/12/23 16:27:25 tom Exp $
-.TH curs_initscr 3X 2023-12-23 "ncurses 6.4" "Library calls"
+.\" $Id: curs_initscr.3x,v 1.62 2024/02/24 20:03:50 tom Exp $
+.TH curs_initscr 3X 2024-02-24 "ncurses 6.4" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -244,7 +244,8 @@ which normally corresponds to a terminal entry with the \fIgeneric\fP
 (\fIgn\fP) capability.
 Generic entries are detected by \fBsetupterm\fP(3X)
 and cannot be used for full-screen operation.
-Other implementations may handle a missing/empty \fITERM\fP variable differently.
+Other implementations may handle
+a missing/empty \fITERM\fP variable differently.
 .SS "Signal Handlers"
 Quoting from X/Open Curses Issue 7, section 3.1.1:
 .RS 5
@@ -270,7 +271,7 @@ Applications which must handle these signals should set up the corresponding
 handlers \fIafter\fP initializing the library:
 .TP 5
 .B SIGINT
-The handler \fIattempts\fP to cleanup the screen on exit.
+The handler \fIattempts\fP to clean up the screen on exit.
 Although it \fIusually\fP works as expected, there are limitations:
 .RS 5
 .bP
index 929439c2e3de01a46e56e0e649cca4f6a18ed0dc..40e3e3a34b49f9527213863a9c9703b4b7390579 100644 (file)
@@ -27,8 +27,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_kernel.3x,v 1.53 2024/01/05 21:46:58 tom Exp $
-.TH curs_kernel 3X 2024-01-05 "ncurses 6.4" "Library calls"
+.\" $Id: curs_kernel.3x,v 1.54 2024/02/24 19:57:34 tom Exp $
+.TH curs_kernel 3X 2024-02-24 "ncurses 6.4" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -135,7 +135,7 @@ most use \fBwmove\fP instead.
 The \fBripoffline\fP routine provides access to the same facility that
 \fBslk_init\fP [see \fBcurs_slk\fP(3X)] uses to reduce the size of the
 screen.
-\fBripoffline\fP must be called before \fBinitscr\fP or
+\fB\%ripoffline\fP must be called before \fBinitscr\fP or
 \fBnewterm\fP is called, to prepare these initial actions:
 .bP
 If \fIline\fP is positive, a line is removed from the top of \fBstdscr\fP.
index 9c9048f7f63999cc6bd5fe57b1f6f758b10c233f..f8b666c8f4d2f6a9c7ba72a355a60f0a408d918d 100644 (file)
@@ -28,8 +28,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_mouse.3x,v 1.89 2024/02/17 21:43:03 tom Exp $
-.TH curs_mouse 3X 2024-02-17 "ncurses 6.4" "Library calls"
+.\" $Id: curs_mouse.3x,v 1.92 2024/02/24 19:54:30 tom Exp $
+.TH curs_mouse 3X 2024-02-24 "ncurses 6.4" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -103,7 +103,7 @@ If \fIoldmask\fP is non-\fBNULL\fP,
 this function fills the indicated location with the previous value of the
 current screen's mouse event mask.
 .PP
-As a side effect, setting a zero mousemask may turn off the mouse pointer;
+As a side effect, setting a zero mouse mask may turn off the mouse pointer;
 setting a nonzero mask may turn it on.
 Whether this happens is device-dependent.
 .SS "Mouse Events"
@@ -188,8 +188,8 @@ the screen windows enclose the location of a mouse event.
 If the parameter is a pad,
 \fB\%wenclose\fP uses the most recent screen coordinates used for
 this pad in
-\fP\%prefresh\fP(3X) or
-\fP\%pnoutrefresh\fP(3X).
+\fB\%prefresh\fP(3X) or
+\fB\%pnoutrefresh\fP(3X).
 .SS wmouse_trafo
 The \fB\%wmouse_trafo\fP function transforms a given pair of coordinates
 from \fB\%stdscr\fP-relative coordinates
@@ -197,7 +197,7 @@ to coordinates relative to the given window or vice versa.
 The resulting \fB\%stdscr\fP-relative coordinates are not always
 identical to screen coordinates due to the mechanism to reserve
 lines on top or bottom of the screen for other purposes
-(see the \fB\%ripoffline\fP and \fB\%slk_init\fP(3X) calls, for example).
+(see the \fB\%ripoffline\fP(3X) and \fB\%slk_init\fP(3X) calls, for example).
 .bP
 If the parameter \fIto_screen\fP is \fBTRUE\fP, the pointers
 \fIpY, pX\fP must reference the coordinates of a location
@@ -230,10 +230,18 @@ using \fB\%stdscr\fP for \fIwin\fP.
 The \fB\%mouseinterval\fP function sets the maximum time
 (in thousands of a second)
 that can elapse between press and release events for them to
-be resolved as a click.
+be resolved as a
+.I click.
+An application might interpret button press and release events separated
+by more than the mouse interval as a \*(``long press\*('',
+or,
+with motion,
+as a \*(``drag\*(''.
 .PP
 Calling \fB\%mouseinterval(0)\fP disables click resolution.
-When ncurses detects a mouse event,
+When
+.I \%ncurses
+detects a mouse event,
 it awaits further input activity up to this interval,
 and then checks for a subsequent mouse event which can be combined
 with the first event.
index 4975914d83b95f9408fd2f85a2e3900f5b5a68e7..6fdc89991a7c79fc807bee53fe4bfaf74dd5cc52 100644 (file)
@@ -28,8 +28,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_terminfo.3x,v 1.129 2024/01/13 22:15:55 tom Exp $
-.TH curs_terminfo 3X 2024-01-13 "ncurses 6.4" "Library calls"
+.\" $Id: curs_terminfo.3x,v 1.130 2024/02/24 20:04:09 tom Exp $
+.TH curs_terminfo 3X 2024-02-24 "ncurses 6.4" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -821,7 +821,7 @@ block-buffered mode on exit
 .IR curses ),
 it was problematic because
 .I \%ncurses
-did not allow a reliable way to cleanup on receiving
+did not allow a reliable way to clean up on receiving
 .BR SIGTSTP .
 .PP
 The current version (ncurses6)
index 2a55275c2e46045a7140cd4802d65284553f23b1..f2a737cbceb57fd68d930e372d9c32ae0d9f44d9 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright 2019-2022,2023 Thomas E. Dickey                                *
+.\" Copyright 2019-2023,2024 Thomas E. Dickey                                *
 .\" Copyright 2000-2016,2017 Free Software Foundation, Inc.                  *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -27,8 +27,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_trace.3x,v 1.42 2023/12/23 16:08:25 tom Exp $
-.TH curs_trace 3X 2023-12-23 "ncurses 6.4" "Library calls"
+.\" $Id: curs_trace.3x,v 1.44 2024/02/24 20:01:11 tom Exp $
+.TH curs_trace 3X 2024-02-24 "ncurses 6.4" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -196,21 +196,23 @@ The specific names are used as a guideline.
 These functions check the \fI\%NCURSES_TRACE\fP environment variable,
 to set the tracing feature as if \fBcurses_trace\fP was called:
 .RS 4
+.na
 .PP
-filter,
-initscr,
-new_prescr,
-newterm,
-nofilter,
-restartterm,
-ripoffline,
-setupterm,
-slk_init,
-tgetent,
-use_env,
-use_extended_names,
-use_tioctl
+\fB\%filter\fP,
+\fB\%initscr\fP,
+\fB\%new_prescr\fP,
+\fB\%newterm\fP,
+\fB\%nofilter\fP,
+\fB\%restartterm\fP,
+\fB\%ripoffline\fP,
+\fB\%setupterm\fP,
+\fB\%slk_init\fP,
+\fB\%tgetent\fP,
+\fB\%use_env\fP,
+\fB\%use_extended_names\fP,
+\fB\%use_tioctl\fP
 .RE
+.ad
 .SS "Command-line Utilities"
 The command-line utilities such as \fBtic\fP(1) provide a verbose option
 which extends the set of messages written using the \fBcurses_trace\fP function.
index d922fa8036eef33db6211eca8775cbac0dc81016..a6a082b1145ed4288adf4c3808214bda16b78b0f 100644 (file)
@@ -28,8 +28,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_util.3x,v 1.95 2024/01/05 21:46:58 tom Exp $
-.TH curs_util 3X 2024-01-05 "ncurses 6.4" "Library calls"
+.\" $Id: curs_util.3x,v 1.96 2024/02/24 19:22:01 tom Exp $
+.TH curs_util 3X 2024-02-24 "ncurses 6.4" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -347,7 +347,8 @@ the University of California, Berkeley (in 1982)
 and were later (in 1988) incorporated into SVr4.
 Oddly, there are no such functions in the 4.3BSD curses sources.
 .bP
-Most implementations simply dump the binary \fI\%WINDOW\fP structure to the file.
+Most implementations simply dump the binary \fI\%WINDOW\fP structure
+to the file.
 These include SVr4 curses, NetBSD and PDCurses,
 as well as older \fI\%ncurses\fP versions.
 This implementation
index ec7f0c58c3805610e772610251a677f8995c676a..6a538f10c288f4251238d4efafc4a47c90436456 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: manhtml.aliases,v 1.32 2024/02/17 21:58:32 tom Exp $
+# $Id: manhtml.aliases,v 1.33 2024/02/24 20:02:49 tom Exp $
 #***************************************************************************
 # Copyright 2019-2023,2024 Thomas E. Dickey                                *
 # Copyright 2013,2017 Free Software Foundation, Inc.                       *
@@ -76,6 +76,7 @@ putwin(3X)            curs_util(3X)
 refresh(3X)            curs_refresh(3X)
 reset_shell_mode(3X)   curs_kernel(3X)
 restartterm(3X)                curs_terminfo(3X)
+ripoffline(3X)         curs_kernel(3X)
 set_curterm(3X)                curs_terminfo(3X)
 set_term(3X)           curs_initscr(3X)
 setcchar(3X)           curs_getcchar(3X)
index 3d395795c12724e593b3f584ab3852053078170f..cced2bcab85d0438d1beb031b21751a3f580a77b 100644 (file)
@@ -28,8 +28,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: ncurses.3x,v 1.197 2024/01/13 20:30:39 tom Exp $
-.TH ncurses 3X 2024-01-13 "ncurses 6.4" "Library calls"
+.\" $Id: ncurses.3x,v 1.200 2024/02/24 20:03:50 tom Exp $
+.TH ncurses 3X 2024-02-24 "ncurses 6.4" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -127,7 +127,7 @@ If the locale is not initialized,
 the library assumes that characters are printable as in ISO\-8859\-1,
 to work with certain legacy programs.
 You should initialize the locale and not rely on specific details of
-the library when the locale has not been setup.
+the library when the locale has not been set up.
 .PP
 The function \fBinitscr\fP or \fBnewterm\fP
 must be called to initialize the library
@@ -986,15 +986,16 @@ character.
 .SS "\fIBAUDRATE\fP"
 The debugging library checks this environment variable when the application
 has redirected output to a file.
-The variable's numeric value is used for the baudrate.
+The variable's numeric value is used for the baud rate.
 If no value is found, \fI\%ncurses\fP uses 9600.
 This allows testers to construct repeatable test-cases
-that take into account costs that depend on baudrate.
+that take into account costs that depend on baud rate.
 .SS "\fICOLUMNS\fP"
 Specify the width of the screen in characters.
 Applications running in a windowing environment usually are able to
 obtain the width of the window in which they are executing.
-If neither the \fI\%COLUMNS\fP value nor the terminal's screen size is available,
+If neither the \fI\%COLUMNS\fP value
+nor the terminal's screen size is available,
 \fI\%ncurses\fP uses the size which may be specified in the terminfo
 database
 (i.e., the \fBcols\fP capability).
index 0889a341858de0a595345ea736201a356829db7a..29b8b661fe089f3295c2979a821ae3b7e63421e1 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright 2018-2022,2023 Thomas E. Dickey                                *
+ * Copyright 2018-2023,2024 Thomas E. Dickey                                *
  * Copyright 1998-2017,2018 Free Software Foundation, Inc.                  *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -35,7 +35,7 @@
  ****************************************************************************/
 
 /*
- * $Id: curses.priv.h,v 1.677 2023/11/10 15:11:11 tom Exp $
+ * $Id: curses.priv.h,v 1.685 2024/02/24 18:46:40 tom Exp $
  *
  *     curses.priv.h
  *
@@ -72,12 +72,6 @@ extern "C" {
 #include <unistd.h>
 #endif
 
-#if HAVE_LIMITS_H
-# include <limits.h>
-#elif HAVE_SYS_PARAM_H
-# include <sys/param.h>
-#endif
-
 #include <assert.h>
 #include <stdio.h>
 
@@ -89,16 +83,6 @@ extern "C" {
 #  endif
 #endif
 
-#ifndef PATH_MAX
-# if defined(_POSIX_PATH_MAX)
-#  define PATH_MAX _POSIX_PATH_MAX
-# elif defined(MAXPATHLEN)
-#  define PATH_MAX MAXPATHLEN
-# else
-#  define PATH_MAX 255 /* the Posix minimum path-size */
-# endif
-#endif
-
 #if DECL_ERRNO
 extern int errno;
 #endif
@@ -921,6 +905,7 @@ typedef int (*TYPE_Gpm_GetEvent) (Gpm_Event *);
  * string is less than 80 columns, but this buffer size is an absolute
  * limit.
  */
+#define TRACECHR_BUF   40
 #define TRACEMSE_MAX   (80 + (5 * 10) + (32 * 15))
 #define TRACEMSE_FMT   "id %2d  at (%2d, %2d, %2d) state %4lx = {" /* } */
 
@@ -1251,7 +1236,7 @@ typedef struct screen {
 #endif
 
 #ifdef TRACE
-       char            tracechr_buf[40];
+       char            tracechr_buf[TRACECHR_BUF];
        char            tracemse_buf[TRACEMSE_MAX];
 #if USE_REENTRANT
        long            _outchars;
@@ -1378,10 +1363,6 @@ extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
 
 #define TR_PUTC(c)     TR(TRACE_CHARPUT, ("PUTC %#x", UChar(c)))
 
-#ifndef MB_LEN_MAX
-#define MB_LEN_MAX 16  /* should be >= MB_CUR_MAX, but that may be a function */
-#endif
-
 #if USE_WIDEC_SUPPORT /* { */
 /* true if the status/errno indicate an illegal multibyte sequence */
 #define isEILSEQ(status) (((size_t)status == (size_t)-1) && (errno == EILSEQ))
@@ -1394,7 +1375,20 @@ extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
 #define NulColor       /* nothing */
 #endif
 
-#define NulChar                0,0,0,0 /* FIXME: see CCHARW_MAX */
+#if CCHARW_MAX > 6
+#define NulChar                0,0,0,0,0
+#elif CCHARW_MAX > 5
+#define NulChar                0,0,0,0         /* ncurses7 */
+#elif CCHARW_MAX > 4
+#define NulChar                0,0,0           /* ncurses6 */
+#elif CCHARW_MAX > 3
+#define NulChar                0,0
+#elif CCHARW_MAX > 2
+#define NulChar                0
+#else
+#define NulChar                /* nothing */
+#endif
+
 #define CharOf(c)      ((c).chars[0])
 #define AttrOf(c)      ((c).attr)
 
@@ -1405,16 +1399,12 @@ extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
 #define NewChar2(c,a)  { a, { c, NulChar } NulColor }
 #define NewChar(ch)    NewChar2(ChCharOf(ch), ChAttrOf(ch))
 
-#if CCHARW_MAX == 5
+#if CCHARW_MAX > 1
 #define CharEq(a,b)    (((a).attr == (b).attr) \
-                      && (a).chars[0] == (b).chars[0] \
-                      && (a).chars[1] == (b).chars[1] \
-                      && (a).chars[2] == (b).chars[2] \
-                      && (a).chars[3] == (b).chars[3] \
-                      && (a).chars[4] == (b).chars[4] \
+                        && !memcmp((a).chars, \
+                                   (b).chars, \
+                                   CCHARW_MAX * sizeof((b).chars[0])) \
                        if_EXT_COLORS(&& (a).ext_color == (b).ext_color))
-#elif CCHARW_MAX > 0
-#error Inconsistent values for CCHARW_MAX
 #else
 #define CharEq(a,b)    (!memcmp(&(a), &(b), sizeof(a)))
 #endif
index cef8a8ec3d14a2f315f095f56746e09df60513a8..0f82dcf35db7871b183095a2066c87c874314508 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright 2018-2021,2023 Thomas E. Dickey                                *
+ * Copyright 2018-2023,2024 Thomas E. Dickey                                *
  * Copyright 2017 Free Software Foundation, Inc.                            *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  *  Author: Thomas E. Dickey                                                *
  ****************************************************************************/
 
+#define NEW_PAIR_INTERNAL 1
 #include <curses.priv.h>
 
-MODULE_ID("$Id: report_offsets.c,v 1.23 2023/09/23 16:47:57 tom Exp $")
+MODULE_ID("$Id: report_offsets.c,v 1.28 2024/02/24 15:59:09 tom Exp $")
 
 #define show_size(type) \
        flag = 0; \
        last = 0; \
        printf("%5lu   " #type "\n", (unsigned long)sizeof(type))
+#define show_name(name) \
+       printf("%5lu   " #name "\n", (unsigned long)(name))
 #define show_offset(type,member) \
        next = (unsigned long)offsetof(type,member); \
        if (last > next) \
@@ -111,9 +114,28 @@ main(void)
 #if USE_WIDEC_SUPPORT
     show_size(cchar_t);
 #endif
+    show_size(color_t);
+    show_size(colorpair_t);
     show_size(mmask_t);
+    show_size(rgb_bits_t);
     show_size(MEVENT);
     show_size(NCURSES_BOOL);
+    show_size(TRIES);
+
+    printf("\n");
+    printf("Sizes of buffers/arrays:\n");
+#if USE_WIDEC_SUPPORT
+    show_name(CCHARW_MAX);
+#endif
+    show_name(EV_MAX);
+    show_name(FIFO_SIZE);
+    show_name(NAMESIZE);
+    show_name(MB_LEN_MAX);
+    show_name(PATH_MAX);
+#ifdef TRACE
+    show_name(TRACECHR_BUF);
+    show_name(TRACEMSE_MAX);
+#endif
 
     printf("\n");
     show_size(SCREEN);
@@ -222,6 +244,7 @@ main(void)
 #endif
     show_WIDECH(NCURSES_GLOBALS, key_name);
     show_TRACES(NCURSES_GLOBALS, trace_opened);
+    show_TRACES(NCURSES_GLOBALS, trace_level);
     show_MLEAKS(NCURSES_GLOBALS, leak_checking);
 
     printf("\n");
index 37547180a02bec5744edd38e6763715c0cf4b7f3..7b2579c854f783cc486357e13a55ee49c9926e7f 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright 2021,2023 Thomas E. Dickey                                     *
+ * Copyright 2021-2023,2024 Thomas E. Dickey                                *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -27,7 +27,7 @@
  ****************************************************************************/
 
 /*
- * $Id: term.priv.h,v 1.8 2023/09/16 15:16:38 tom Exp $
+ * $Id: term.priv.h,v 1.12 2024/02/24 18:11:38 tom Exp $
  *
  *     term.priv.h
  *
@@ -53,7 +53,12 @@ extern "C" {
 #define NCURSES_INTERNALS 1
 #define NCURSES_OPAQUE 0
 
-#include <limits.h>            /* PATH_MAX */
+#if HAVE_LIMITS_H
+# include <limits.h>           /* PATH_MAX, MB_LEN_MAX, etc */
+#elif HAVE_SYS_PARAM_H
+# include <sys/param.h>
+#endif
+
 #include <signal.h>            /* sig_atomic_t */
 #include <time.h>              /* time_t */
 #include <term.h>              /* time_t */
@@ -64,6 +69,28 @@ extern "C" {
 #endif
 #endif
 
+/*
+ * If not properly configured to use the system's limits.h, we get gcc's
+ * fallback for limits.h which sets MB_LEN_MAX to 1, which is never correct.
+ */
+#if defined(MB_LEN_MAX) && (MB_LEN_MAX < 6)
+#undef MB_LEN_MAX
+#endif
+
+#ifndef MB_LEN_MAX
+#define MB_LEN_MAX 16  /* should be >= MB_CUR_MAX, but that may be a function */
+#endif
+
+#ifndef PATH_MAX
+# if defined(_POSIX_PATH_MAX)
+#  define PATH_MAX _POSIX_PATH_MAX
+# elif defined(MAXPATHLEN)
+#  define PATH_MAX MAXPATHLEN
+# else
+#  define PATH_MAX 255 /* the Posix minimum path-size */
+# endif
+#endif
+
 /*
  * State of tparm().
  */
@@ -241,7 +268,6 @@ typedef struct {
 
 #ifdef TRACE
        bool            trace_opened;
-       char            trace_fname[PATH_MAX];
        int             trace_level;
        FILE *          trace_fp;
        int             trace_fd;
index 6f6c583a1fc35e583d76b06115d3b2e4488a23ba..b817f49bd78a78c76c48526f4c2ea90ce5b1019d 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright 2018-2021,2022 Thomas E. Dickey                                *
+ * Copyright 2018-2022,2024 Thomas E. Dickey                                *
  * Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -43,7 +43,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_data.c,v 1.87 2022/07/09 22:03:21 tom Exp $")
+MODULE_ID("$Id: lib_data.c,v 1.89 2024/02/24 18:11:38 tom Exp $")
 
 /*
  * OS/2's native linker complains if we don't initialize public data when
@@ -196,7 +196,6 @@ NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals = {
 #endif
 #ifdef TRACE
     FALSE,                     /* trace_opened */
-    CHARS_0s,                  /* trace_fname */
     0,                         /* trace_level */
     NULL,                      /* trace_fp */
     -1,                                /* trace_fd */
index c73ab90403fc4222bd93f94ba23e5db498bc004e..0904c132fee12d85c0fec9687e529f6d78191055 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright 2018-2022,2023 Thomas E. Dickey                                *
+ * Copyright 2018-2023,2024 Thomas E. Dickey                                *
  * Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -48,7 +48,7 @@
 
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_trace.c,v 1.103 2023/05/28 14:39:10 tom Exp $")
+MODULE_ID("$Id: lib_trace.c,v 1.106 2024/02/24 18:28:19 tom Exp $")
 
 NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0; /* always define this */
 
@@ -89,7 +89,6 @@ NCURSES_EXPORT_VAR(long) _nc_outchars = 0;
 #define MyFP           _nc_globals.trace_fp
 #define MyFD           _nc_globals.trace_fd
 #define MyInit         _nc_globals.trace_opened
-#define MyPath         _nc_globals.trace_fname
 #define MyLevel                _nc_globals.trace_level
 #define MyNested       _nc_globals.nested_tracef
 #endif /* TRACE */
@@ -141,22 +140,15 @@ curses_trace(unsigned tracelevel)
        if (MyFD >= 0) {
            MyFP = fdopen(MyFD, BIN_W);
        } else {
-           if (MyPath[0] == '\0') {
-               size_t size = sizeof(MyPath) - 12;
-               if (getcwd(MyPath, size) == 0) {
-                   perror("curses: Can't get working directory");
-                   exit(EXIT_FAILURE);
-               }
-               MyPath[size] = '\0';
-               assert(strlen(MyPath) <= size);
-               _nc_STRCAT(MyPath, "/trace", sizeof(MyPath));
-               if (_nc_is_dir_path(MyPath)) {
-                   _nc_STRCAT(MyPath, ".log", sizeof(MyPath));
-               }
+           char myFile[80];
+
+           _nc_STRCPY(myFile, "trace", sizeof(myFile));
+           if (_nc_is_dir_path(myFile)) {
+               _nc_STRCAT(myFile, ".log", sizeof(myFile));
            }
 #define SAFE_MODE (O_CREAT | O_EXCL | O_RDWR)
-           if (_nc_access(MyPath, W_OK) < 0
-               || (MyFD = safe_open3(MyPath, SAFE_MODE, 0600)) < 0
+           if (_nc_access(myFile, W_OK) < 0
+               || (MyFD = safe_open3(myFile, SAFE_MODE, 0600)) < 0
                || (MyFP = fdopen(MyFD, BIN_W)) == 0) {
                ;               /* EMPTY */
            }
index 0be1f476b4202cc933872476990a982d91a267fc..a50d96d3cc9c80c775c55904dda278f6f10371b9 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.4+20240217) unstable; urgency=low
+ncurses6 (6.4+20240224) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 17 Feb 2024 06:23:23 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 24 Feb 2024 06:49:33 -0500
 
 ncurses6 (5.9+20131005) unstable; urgency=low
 
index 0be1f476b4202cc933872476990a982d91a267fc..a50d96d3cc9c80c775c55904dda278f6f10371b9 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.4+20240217) unstable; urgency=low
+ncurses6 (6.4+20240224) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 17 Feb 2024 06:23:23 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 24 Feb 2024 06:49:33 -0500
 
 ncurses6 (5.9+20131005) unstable; urgency=low
 
index c2247069fc54505f0691b640be436292fcd6878c..d28223a109ebee0c8c151d90e5753c0ee5a4856c 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.4+20240217) unstable; urgency=low
+ncurses6 (6.4+20240224) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 17 Feb 2024 06:23:23 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 24 Feb 2024 06:49:33 -0500
 
 ncurses6 (5.9+20120608) unstable; urgency=low
 
index 79ee92bf97239c2466c667341c2294688930644d..33343eb587a4dc6ee60f1732176acf248b662fab 100644 (file)
@@ -1,4 +1,4 @@
-; $Id: mingw-ncurses.nsi,v 1.633 2024/02/17 11:23:23 tom Exp $\r
+; $Id: mingw-ncurses.nsi,v 1.634 2024/02/24 11:49:33 tom Exp $\r
 \r
 ; TODO add examples\r
 ; TODO bump ABI to 6\r
@@ -10,7 +10,7 @@
 !define VERSION_MAJOR "6"\r
 !define VERSION_MINOR "4"\r
 !define VERSION_YYYY  "2024"\r
-!define VERSION_MMDD  "0217"\r
+!define VERSION_MMDD  "0224"\r
 !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}\r
 \r
 !define MY_ABI   "5"\r
index 94913ffe1c72a3aa0574376ffe6db70d3472ce4f..cefc47874c44dfe491625270e9215e1700b61f4a 100644 (file)
@@ -3,7 +3,7 @@
 Summary: shared libraries for terminal handling
 Name: mingw32-ncurses6
 Version: 6.4
-Release: 20240217
+Release: 20240224
 License: X11
 Group: Development/Libraries
 URL: https://invisible-island.net/ncurses/
index 140c882cde39fb645cf441f1fb04d89f8440ca9a..1a45e4ae3aed78be3f062faec14cc8f06d411284 100644 (file)
@@ -1,7 +1,7 @@
 Summary: shared libraries for terminal handling
 Name: ncurses6
 Version: 6.4
-Release: 20240217
+Release: 20240224
 License: X11
 Group: Development/Libraries
 URL: https://invisible-island.net/ncurses/
index fdd44f44b1700a5960b217a2064df20547016288..03ff7bd04bfcf287e0075a9de249dfb7aca042de 100644 (file)
@@ -1,7 +1,7 @@
 Summary: Curses library with POSIX thread support.
 Name: ncursest6
 Version: 6.4
-Release: 20240217
+Release: 20240224
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz