OSDN Git Service

ncurses 6.1 - patch 20190216
authorThomas E. Dickey <dickey@invisible-island.net>
Sun, 17 Feb 2019 02:40:14 +0000 (02:40 +0000)
committerThomas E. Dickey <dickey@invisible-island.net>
Sun, 17 Feb 2019 02:40:14 +0000 (02:40 +0000)
+ improve manual page description of TABSIZE.
+ add test/demo_tabs program.

40 files changed:
MANIFEST
NEWS
VERSION
dist.mk
doc/html/man/adacurses6-config.1.html
doc/html/man/captoinfo.1m.html
doc/html/man/clear.1.html
doc/html/man/curs_addch.3x.html
doc/html/man/curs_variables.3x.html
doc/html/man/form.3x.html
doc/html/man/infocmp.1m.html
doc/html/man/infotocap.1m.html
doc/html/man/menu.3x.html
doc/html/man/ncurses.3x.html
doc/html/man/ncurses6-config.1.html
doc/html/man/panel.3x.html
doc/html/man/tabs.1.html
doc/html/man/terminfo.5.html
doc/html/man/tic.1m.html
doc/html/man/toe.1m.html
doc/html/man/tput.1.html
doc/html/man/tset.1.html
man/curs_addch.3x
man/curs_variables.3x
man/manhtml.aliases
man/ncurses.3x
man/tabs.1
ncurses/trace/lib_tracebits.c
ncurses/trace/visbuf.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
test/demo_tabs.c [new file with mode: 0644]
test/modules
test/programs
test/test.priv.h

index 27a22f6..6e4e56c 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
 ./test/demo_menus.c
 ./test/demo_new_pair.c
 ./test/demo_panels.c
+./test/demo_tabs.c
 ./test/demo_termcap.c
 ./test/demo_terminfo.c
 ./test/ditto.c
diff --git a/NEWS b/NEWS
index 71f1b8d..130758d 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -25,7 +25,7 @@
 -- sale, use or other dealings in this Software without prior written        --
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
--- $Id: NEWS,v 1.3272 2019/02/10 00:56:56 tom Exp $
+-- $Id: NEWS,v 1.3275 2019/02/16 23:45:57 tom Exp $
 -------------------------------------------------------------------------------
 
 This is a log of changes that ncurses has gone through since Zeyd started
@@ -45,6 +45,10 @@ 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.
 
+20190216
+       + improve manual page description of TABSIZE.
+       + add test/demo_tabs program.
+
 20190209
        + add check in tic to provide warnings for mismatched number of
          parameters in the documented user-capability extensions.
@@ -9374,7 +9378,7 @@ it is not possible to add this information.
 20000701 pre-release
        + change minor version to 1, i.e., ncurses 5.1
        + add experimental configure option --enable-colorfgbg to check for
-         $COLORTERM variable as set by rxvt/aterm/Eterm.
+         $COLORFGBG variable as set by rxvt/aterm/Eterm.
        + add Eterm terminfo entry (Michael Jennings <mej@valinux.com>).
        + modify manlinks.sed to pick aliases from the SYNOPSIS section, and
          several manpages so manlinks.sed can find aliases for creating
diff --git a/VERSION b/VERSION
index 6d567fe..c1cda65 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-5:0:10 6.1     20190209
+5:0:10 6.1     20190216
diff --git a/dist.mk b/dist.mk
index 0e00ff4..636d49f 100644 (file)
--- a/dist.mk
+++ b/dist.mk
@@ -25,7 +25,7 @@
 # use or other dealings in this Software without prior written               #
 # authorization.                                                             #
 ##############################################################################
-# $Id: dist.mk,v 1.1266 2019/02/09 15:12:47 tom Exp $
+# $Id: dist.mk,v 1.1267 2019/02/13 22:19:33 tom Exp $
 # Makefile for creating ncurses distributions.
 #
 # This only needs to be used directly as a makefile by developers, but
@@ -37,7 +37,7 @@ SHELL = /bin/sh
 # These define the major/minor/patch versions of ncurses.
 NCURSES_MAJOR = 6
 NCURSES_MINOR = 1
-NCURSES_PATCH = 20190209
+NCURSES_PATCH = 20190216
 
 # We don't append the patch to the version, since this only applies to releases
 VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
index 1a977aa..a1c82c6 100644 (file)
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
 
-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190121).
+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190216).
 
 
 
index 1fe16e0..926b170 100644 (file)
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 
-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190121).
+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190216).
 
 
 </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
index 405d47c..b53f89f 100644 (file)
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 
-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190121).
+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190216).
 
 
 
index 74834b3..8cdd986 100644 (file)
@@ -1,7 +1,7 @@
 <!-- 
   * t
   ****************************************************************************
-  * Copyright (c) 1998-2017,2018 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2018,2019 Free Software Foundation, Inc.              *
   *                                                                          *
   * 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 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_addch.3x,v 1.46 2018/07/28 21:02:35 tom Exp @
+  * @Id: curs_addch.3x,v 1.47 2019/02/16 23:50:17 tom Exp @
 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
 
 
 </PRE><H3><a name="h3-TABSIZE">TABSIZE</a></H3><PRE>
-       The  <STRONG>TABSIZE</STRONG> variable is implemented in some versions of curses, but is
-       not part of X/Open curses.
+       The  <STRONG>TABSIZE</STRONG>  variable  is  implemented  in  SVr4 and other versions of
+       curses, but is not part of X/Open curses  (see  <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>  for
+       more details).
 
        If <EM>ch</EM> is a carriage return, the cursor is moved to the beginning of the
-       current  row of the window.  This is true of other implementations, but
+       current row of the window.  This is true of other implementations,  but
        is not documented.
 
 
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,  <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>,  <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>,  <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>,  <STRONG>curs_out-</STRONG>
        <STRONG><A HREF="curs_outopts.3x.html">opts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG>putc(3)</STRONG>.
 
-       Comparable  functions  in  the  wide-character  (ncursesw)  library are
+       Comparable functions  in  the  wide-character  (ncursesw)  library  are
        described in <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>.
 
 
index 72baa56..bf39786 100644 (file)
@@ -1,6 +1,6 @@
 <!-- 
   ****************************************************************************
-  * Copyright (c) 2010-2017,2018 Free Software Foundation, Inc.              *
+  * Copyright (c) 2010-2018,2019 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_variables.3x,v 1.11 2018/07/28 22:37:10 tom Exp @
+  * @Id: curs_variables.3x,v 1.12 2019/02/16 23:43:23 tom Exp @
 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
 
 
 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
-       ESCDELAY  and TABSIZE are extensions, not provided in most other imple-
-       mentations of curses.
+       <STRONG>TABSIZE</STRONG>  is  a feature of SVr4 curses which is not documented by X/Open
+       curses.
 
-       ESCDELAY is an extension in AIX curses:
+       <STRONG>o</STRONG>   In SVr4 curses, <STRONG>TABSIZE</STRONG> is initially set from the terminal descrip-
+           tion's  <STRONG>init_tabs</STRONG> capability.  After that, it can be altered by the
+           applications using SVr4 curses.
 
-       <STRONG>o</STRONG>   In AIX, the units for ESCDELAY are <EM>fifths</EM> of a millisecond.
+           SVr4 curses uses the current value of <STRONG>TABSIZE</STRONG> to compute the  posi-
+           tion  of  tabstops  for  updating both the virtual screen with <STRONG>add-</STRONG>
+           <STRONG><A HREF="addch.3x.html">ch(3x)</A></STRONG> as well as the physical screen with <STRONG><A HREF="curs_terminfo.3x.html">mvcur(3x)</A></STRONG>.
 
-       <STRONG>o</STRONG>   The default value for AIX's ESCDELAY is 0.1 seconds.
+       <STRONG>o</STRONG>   This implementation uses the current value of <STRONG>TABSIZE</STRONG> only for  up-
+           dating  the  virtual  screen.   It  uses the terminal description's
+           <STRONG>init_tabs</STRONG> capability  for  computing  tab  stops  on  the  physical
+           screen.
 
-       <STRONG>o</STRONG>   AIX also enforces a limit of 10,000 seconds for ESCDELAY; this  im-
+       <STRONG>o</STRONG>   Other  implementations  differ.  For instance, NetBSD curses allows
+           <STRONG>TABSIZE</STRONG> to be set through an environment variable.  This  implemen-
+           tation does not.
+
+       <STRONG>ESCDELAY</STRONG> is an extension in AIX curses:
+
+       <STRONG>o</STRONG>   In AIX, the units for <STRONG>ESCDELAY</STRONG> are <EM>fifths</EM> of a millisecond.
+
+       <STRONG>o</STRONG>   The default value for AIX's <STRONG>ESCDELAY</STRONG> is 0.1 seconds.
+
+       <STRONG>o</STRONG>   AIX  also enforces a limit of 10,000 seconds for <STRONG>ESCDELAY</STRONG>; this im-
            plementation currently has no upper limit.
 
-       This  implementation has long used ESCDELAY with units of milliseconds,
-       making it impossible to be completely compatible with  AIX.   Likewise,
-       most  users have either decided to override the value, or rely upon its
+       This implementation has long used <STRONG>ESCDELAY</STRONG> with units of  milliseconds,
+       making  it  impossible to be completely compatible with AIX.  Likewise,
+       most users have either decided to override the value, or rely upon  its
        default value.
 
 
index add1da1..4b2ac57 100644 (file)
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>  and  related  pages  whose names begin "form_" for detailed
        descriptions of the entry points.
 
-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190121).
+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190216).
 
 
 
index f899bf7..d46f8fd 100644 (file)
 
        https://invisible-island.net/ncurses/tctest.html
 
-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190121).
+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190216).
 
 
 </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
index 13cfd50..ab8b0f4 100644 (file)
@@ -85,7 +85,7 @@
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 
-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190121).
+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190216).
 
 
 </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
index 1baa656..7ef05eb 100644 (file)
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>  and  related  pages  whose names begin "menu_" for detailed
        descriptions of the entry points.
 
-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190121).
+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190216).
 
 
 
index 2af18f5..f060b65 100644 (file)
@@ -1,7 +1,7 @@
 <!-- 
   * t
   ****************************************************************************
-  * Copyright (c) 1998-2017,2018 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2018,2019 Free Software Foundation, Inc.              *
   *                                                                          *
   * 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 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: ncurses.3x,v 1.140 2018/07/28 23:30:17 tom Exp @
+  * @Id: ncurses.3x,v 1.141 2019/02/16 15:07:20 tom Exp @
 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
@@ -59,7 +59,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 <STRONG>ncurses</STRONG> version 6.1 (patch 20190121).
+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190216).
 
        The  <STRONG>ncurses</STRONG>  library emulates the curses library of System V Release 4
        UNIX, and XPG4 (X/Open Portability Guide) curses  (also  known  as  XSI
                     use_env                  <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
                     use_extended_names       <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
                     use_legacy_coding        <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>*
-                    use_tioctl               <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+                    use_tioctl               <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>*
                     vid_attr                 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
 
                     vid_puts                 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
index 93b05b6..d88aa76 100644 (file)
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
 
-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190121).
+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190216).
 
 
 
index 0b66b88..3a74743 100644 (file)
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>,
 
-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190121).
+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190216).
 
 
 </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
index d082112..5498b36 100644 (file)
@@ -1,6 +1,6 @@
 <!-- 
   ****************************************************************************
-  * Copyright (c) 2008-2017,2018 Free Software Foundation, Inc.              *
+  * Copyright (c) 2008-2018,2019 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: tabs.1,v 1.19 2018/07/28 21:46:31 tom Exp @
+  * @Id: tabs.1,v 1.20 2019/02/16 23:56:38 tom Exp @
 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
        ing the tabstops), and later <STRONG>cat</STRONG> the file to the screen,  setting  tab-
        stops at that point.
 
+       These  are  hardware  tabs, which cannot be queried rapidly by applica-
+       tions running in the terminal, if at all.  Curses and other full-screen
+       applications  may  use  hardware tabs in optimizing their output to the
+       terminal.  If the hardware tabstops differ from the information in  the
+       terminal database, the result is unpredictable.
+
 
 </PRE><H2><a name="h2-OPTIONS">OPTIONS</a></H2><PRE>
 
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
 
-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190121).
+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190216).
 
 
 
index 206ead1..4dc182e 100644 (file)
@@ -74,7 +74,7 @@
        <EM>Terminfo</EM> describes terminals by giving a set of capabilities which they
        have, by specifying how to perform screen operations, and by specifying
        padding  requirements  and  initialization  sequences.   This describes
-       <STRONG>ncurses</STRONG> version 6.1 (patch 20190121).
+       <STRONG>ncurses</STRONG> version 6.1 (patch 20190216).
 
 
 </PRE><H3><a name="h3-Terminfo-Entry-Syntax">Terminfo Entry Syntax</a></H3><PRE>
index 62069c7..5c437e8 100644 (file)
        <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>,   <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>,   <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>,   <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>,   <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,
        <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.  <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
 
-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190121).
+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190216).
 
 
 </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
index 8ae6f3a..0b08e50 100644 (file)
        <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>,  <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>,  <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,  <STRONG>ter-</STRONG>
        <STRONG><A HREF="terminfo.5.html">minfo(5)</A></STRONG>.
 
-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190121).
+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190216).
 
 
 
index 02094a7..67898ac 100644 (file)
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>, <STRONG>stty(1)</STRONG>, <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>.
 
-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190121).
+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190216).
 
 
 
index a3e1781..d1738b8 100644 (file)
        <STRONG>csh(1)</STRONG>,  <STRONG>sh(1)</STRONG>,  <STRONG>stty(1)</STRONG>,   <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>,   <STRONG>tty(4)</STRONG>,   <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>,
        <STRONG>ttys(5)</STRONG>, <STRONG>environ(7)</STRONG>
 
-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190121).
+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190216).
 
 
 
index d502faa..729382d 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998-2017,2018 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2018,2019 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" 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 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_addch.3x,v 1.46 2018/07/28 21:02:35 tom Exp $
+.\" $Id: curs_addch.3x,v 1.47 2019/02/16 23:50:17 tom Exp $
 .TH curs_addch 3X ""
 .ie \n(.g .ds `` \(lq
 .el       .ds `` ``
@@ -252,8 +252,9 @@ before attempting call \fBwaddch\fP, and
 call \fBwadd_wch\fP for characters which cannot be handled by \fBwaddch\fP.
 .SS TABSIZE
 .LP
-The \fBTABSIZE\fR variable is implemented in some versions of curses,
-but is not part of X/Open curses.
+The \fBTABSIZE\fR variable is implemented in SVr4 and other versions of curses,
+but is not part of X/Open curses
+(see \fBcurs_variables\fR(3X) for more details).
 .LP
 If \fIch\fR is a carriage return,
 the cursor is moved to the beginning of the current row of the window.
index 6b9fb59..fffad71 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 2010-2017,2018 Free Software Foundation, Inc.              *
+.\" Copyright (c) 2010-2018,2019 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_variables.3x,v 1.11 2018/07/28 22:37:10 tom Exp $
+.\" $Id: curs_variables.3x,v 1.12 2019/02/16 23:43:23 tom Exp $
 .TH curs_variables 3X ""
 .ie \n(.g .ds `` \(lq
 .el       .ds `` ``
@@ -139,19 +139,38 @@ or \fBnewterm\fR(3X).
 If \fBcurses\fP is configured to use separate curses/terminfo libraries,
 most of these variables reside in the curses library.
 .SH PORTABILITY
-ESCDELAY and TABSIZE are extensions,
-not provided in most other implementations of curses.
+\fBTABSIZE\fP is a feature of SVr4 curses
+which is not documented by X/Open curses.
+.bP
+In SVr4 curses, \fBTABSIZE\fP is initially set from the terminal description's
+\fBinit_tabs\fP capability.
+After that, it can be altered by the applications using SVr4 curses.
+.IP
+SVr4 curses uses the current value of \fBTABSIZE\fP to
+compute the position of tabstops for updating both
+the virtual screen with \fBaddch\fP(3X) as well as
+the physical screen with \fBmvcur\fP(3X).
+.bP
+This implementation uses the current value of \fBTABSIZE\fP only for
+updating the virtual screen.
+It uses the terminal description's \fBinit_tabs\fP capability for
+computing tab stops on the physical screen.
+.bP
+Other implementations differ.
+For instance, NetBSD curses allows \fBTABSIZE\fP to be set through
+an environment variable.
+This implementation does not.
 .PP
-ESCDELAY is an extension in AIX curses:
+\fBESCDELAY\fP is an extension in AIX curses:
 .bP
-In AIX, the units for ESCDELAY are \fIfifths\fP of a millisecond.
+In AIX, the units for \fBESCDELAY\fP are \fIfifths\fP of a millisecond.
 .bP
-The default value for AIX's ESCDELAY is 0.1 seconds.
+The default value for AIX's \fBESCDELAY\fP is 0.1 seconds.
 .bP
-AIX also enforces a limit of 10,000 seconds for ESCDELAY;
+AIX also enforces a limit of 10,000 seconds for \fBESCDELAY\fP;
 this implementation currently has no upper limit.
 .PP
-This implementation has long used ESCDELAY with units of milliseconds,
+This implementation has long used \fBESCDELAY\fP with units of milliseconds,
 making it impossible to be completely compatible with AIX.
 Likewise, most users have either decided to override the value,
 or rely upon its default value.
index 5c97b54..6db78f3 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: manhtml.aliases,v 1.12 2017/04/22 14:07:02 tom Exp $
+# $Id: manhtml.aliases,v 1.13 2019/02/16 23:44:49 tom Exp $
 #***************************************************************************
-# Copyright (c) 2013-2016,2017 Free Software Foundation, Inc.              *
+# Copyright (c) 2013-2017,2019 Free Software Foundation, Inc.              *
 #                                                                          *
 # Permission is hereby granted, free of charge, to any person obtaining a  *
 # copy of this software and associated documentation files (the            *
@@ -43,6 +43,7 @@ is_scrollok(3X)               curs_opaque(3X)
 keypad(3X)             curs_inopts(3X)
 longname(3X)           curs_termattrs(3X)
 meta(3X)               curs_inopts(3X)
+mvcur(3X)              curs_terminfo(3X)
 newterm(3X)            curs_initscr(3X)
 refresh(3X)            curs_refresh(3X)
 reset_shell_mode(3X)   curs_kernel(3X)
index a8d67af..475046b 100644 (file)
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998-2017,2018 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2018,2019 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" 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 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: ncurses.3x,v 1.140 2018/07/28 23:30:17 tom Exp $
+.\" $Id: ncurses.3x,v 1.141 2019/02/16 15:07:20 tom Exp $
 .hy 0
 .TH ncurses 3X ""
 .ie \n(.g .ds `` \(lq
@@ -679,7 +679,7 @@ use_default_colors/\fBdefault_colors\fR(3X)*
 use_env/\fBcurs_util\fR(3X)
 use_extended_names/\fBcurs_extend\fR(3X)*
 use_legacy_coding/\fBlegacy_coding\fR(3X)*
-use_tioctl/\fBcurs_util\fR(3X)
+use_tioctl/\fBcurs_util\fR(3X)*
 vid_attr/\fBcurs_terminfo\fR(3X)
 vid_puts/\fBcurs_terminfo\fR(3X)
 vidattr/\fBcurs_terminfo\fR(3X)
index d34f8e0..2a127f3 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 2008-2017,2018 Free Software Foundation, Inc.              *
+.\" Copyright (c) 2008-2018,2019 Free Software Foundation, Inc.              *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: tabs.1,v 1.19 2018/07/28 21:46:31 tom Exp $
+.\" $Id: tabs.1,v 1.20 2019/02/16 23:56:38 tom Exp $
 .TH @TABS@ 1 ""
 .ds n 5
 .ie \n(.g .ds `` \(lq
@@ -69,6 +69,13 @@ Like \fB@CLEAR@\fR(1), \fB@TABS@\fR writes to the standard output.
 You can redirect the standard output to a file (which prevents
 \fB@TABS@\fR from actually changing the tabstops),
 and later \fBcat\fP the file to the screen, setting tabstops at that point.
+.PP
+These are hardware tabs, which cannot be queried rapidly by applications
+running in the terminal, if at all.
+Curses and other full-screen applications may use hardware tabs
+in optimizing their output to the terminal.
+If the hardware tabstops differ from the information in the terminal
+database, the result is unpredictable.
 .SH OPTIONS
 .SS General Options
 .TP 5
index f880b67..43b29a9 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2012,2015 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2015,2019 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -34,7 +34,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_tracebits.c,v 1.26 2015/04/19 14:58:39 tom Exp $")
+MODULE_ID("$Id: lib_tracebits.c,v 1.27 2019/02/16 22:12:08 tom Exp $")
 
 #if HAVE_SYS_TERMIO_H
 #include <sys/termio.h>                /* needed for ISC */
@@ -130,7 +130,7 @@ _nc_trace_ttymode(TTY * tty)
        DATA(ONOCR),
        DATA(ONLRET),
        DATAX()
-#define ALLOUT (OPOST|OFLAGS_TABS|ONLCR|OCRNL|ONOCR|ONLRET)
+#define ALLOUT (OPOST|OFLAGS_TABS|ONLCR|OCRNL|ONOCR|ONLRET|OFLAGS_TABS)
     }, cflags[] =
     {
        DATA(CLOCAL),
index 581bfbd..17b590a 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2001-2016,2017 Free Software Foundation, Inc.              *
+ * Copyright (c) 2001-2017,2019 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -42,7 +42,7 @@
 #include <tic.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: visbuf.c,v 1.49 2017/10/21 23:34:20 tom Exp $")
+MODULE_ID("$Id: visbuf.c,v 1.50 2019/02/16 21:18:42 tom Exp $")
 
 #define NUM_VISBUFS 4
 
@@ -80,6 +80,9 @@ _nc_vischar(char *tp, unsigned c LIMIT_ARG)
     } else if (c == '\b') {
        *tp++ = '\\';
        *tp++ = 'b';
+    } else if (c == '\t') {
+       *tp++ = '\\';
+       *tp++ = 't';
     } else if (c == '\033') {
        *tp++ = '\\';
        *tp++ = 'e';
index c549a7c..f1b5383 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.1+20190209) unstable; urgency=low
+ncurses6 (6.1+20190216) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 09 Feb 2019 10:12:47 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Wed, 13 Feb 2019 17:19:33 -0500
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
index c549a7c..f1b5383 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.1+20190209) unstable; urgency=low
+ncurses6 (6.1+20190216) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 09 Feb 2019 10:12:47 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Wed, 13 Feb 2019 17:19:33 -0500
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
index 07da9be..f0ae539 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.1+20190209) unstable; urgency=low
+ncurses6 (6.1+20190216) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 09 Feb 2019 10:12:47 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Wed, 13 Feb 2019 17:19:33 -0500
 
 ncurses6 (5.9-20120608) unstable; urgency=low
 
index f8f3dd8..9fabdcb 100644 (file)
@@ -1,4 +1,4 @@
-; $Id: mingw-ncurses.nsi,v 1.313 2019/02/09 15:12:47 tom Exp $\r
+; $Id: mingw-ncurses.nsi,v 1.314 2019/02/13 22:19: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 "1"\r
 !define VERSION_YYYY  "2019"\r
-!define VERSION_MMDD  "0209"\r
+!define VERSION_MMDD  "0216"\r
 !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}\r
 \r
 !define MY_ABI   "5"\r
index e8753e1..11df0aa 100644 (file)
@@ -3,7 +3,7 @@
 Summary: shared libraries for terminal handling
 Name: mingw32-ncurses6
 Version: 6.1
-Release: 20190209
+Release: 20190216
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
index 6b16ccc..b74ee1e 100644 (file)
@@ -1,7 +1,7 @@
 Summary: shared libraries for terminal handling
 Name: ncurses6
 Version: 6.1
-Release: 20190209
+Release: 20190216
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
index c9072a0..b699a9a 100644 (file)
@@ -1,7 +1,7 @@
 Summary: Curses library with POSIX thread support.
 Name: ncursest6
 Version: 6.1
-Release: 20190209
+Release: 20190216
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
diff --git a/test/demo_tabs.c b/test/demo_tabs.c
new file mode 100644 (file)
index 0000000..68023a3
--- /dev/null
@@ -0,0 +1,116 @@
+/****************************************************************************
+ * Copyright (c) 2019 Free Software Foundation, Inc.                        *
+ *                                                                          *
+ * Permission is hereby granted, free of charge, to any person obtaining a  *
+ * copy of this software and associated documentation files (the            *
+ * "Software"), to deal in the Software without restriction, including      *
+ * without limitation the rights to use, copy, modify, merge, publish,      *
+ * distribute, distribute with modifications, sublicense, and/or sell       *
+ * copies of the Software, and to permit persons to whom the Software is    *
+ * furnished to do so, subject to the following conditions:                 *
+ *                                                                          *
+ * The above copyright notice and this permission notice shall be included  *
+ * in all copies or substantial portions of the Software.                   *
+ *                                                                          *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
+ *                                                                          *
+ * Except as contained in this notice, the name(s) of the above copyright   *
+ * holders shall not be used in advertising or otherwise to promote the     *
+ * sale, use or other dealings in this Software without prior written       *
+ * authorization.                                                           *
+ ****************************************************************************/
+
+/*
+ * Author: Thomas E. Dickey
+ *
+ * $Id: demo_tabs.c,v 1.2 2019/02/17 01:01:11 tom Exp $
+ *
+ * A simple demo of tabs in curses.
+ */
+#include "test.priv.h"
+
+static void
+usage(void)
+{
+    static const char *msg[] =
+    {
+       "Usage: demo_tabs [options]",
+       "",
+       "Print a grid to test tab-stops with the curses interface",
+       "",
+       "Options:",
+       " -l COUNT total number of lines to show",
+       " -t NUM   set TABSIZE variable to the given value",
+    };
+    unsigned n;
+    for (n = 0; n < SIZEOF(msg); ++n) {
+       fprintf(stderr, "%s\n", msg[n]);
+    }
+    ExitProgram(EXIT_FAILURE);
+}
+
+int
+main(int argc, char *argv[])
+{
+    int tabstop;
+    int n, col, row, step;
+    int line_limit = -1;
+    int curses_stops = -1;
+
+    while ((n = getopt(argc, argv, "l:t:")) != -1) {
+       switch (n) {
+       case 'l':
+           line_limit = atoi(optarg);
+           break;
+       case 't':
+           curses_stops = atoi(optarg);
+           break;
+       default:
+           usage();
+           break;
+       }
+    }
+
+    initscr();
+    noecho();
+    cbreak();
+    if (curses_stops > 0)
+       set_tabsize(curses_stops);
+    tabstop = tigetnum("it");
+    if (tabstop <= 0)
+       tabstop = 8;
+    for (row = 0; row < LINES; ++row) {
+       move(row, 0);
+       for (col = step = 0; col < COLS - 1; ++col) {
+           if (row == 0) {
+               chtype ch = '-';
+               if ((col % tabstop) == 0)
+                   ch = '+';
+               addch(ch);
+           } else if (col + 1 < row) {
+               addch('*');
+           } else {
+               printw("%x", step);
+               col = (row + (tabstop * ++step));
+               col /= tabstop;
+               col *= tabstop;
+               col -= 1;
+               if ((col + tabstop) < COLS)
+                   addch('\t');
+               refresh();
+           }
+       }
+       addch('\n');
+       if (line_limit > 0 && row >= line_limit)
+           break;
+    }
+    getch();
+    endwin();
+    ExitProgram(EXIT_SUCCESS);
+}
index 4862b10..40a0c09 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: modules,v 1.69 2018/12/29 15:32:12 tom Exp $
+# $Id: modules,v 1.70 2019/02/16 19:35:47 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2017,2018 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2018,2019 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -47,6 +47,7 @@ demo_keyok    progs           $(srcdir)       $(HEADER_DEPS)
 demo_menus     progs           $(srcdir)       $(HEADER_DEPS)  ../include/menu.h
 demo_new_pair  progs           $(srcdir)       $(HEADER_DEPS)  $(srcdir)/popup_msg.h
 demo_panels    progs           $(srcdir)       $(HEADER_DEPS)  ../include/panel.h
+demo_tabs      progs           $(srcdir)       $(HEADER_DEPS)
 demo_termcap   progs           $(srcdir)       $(HEADER_DEPS)
 demo_terminfo  progs           $(srcdir)       $(HEADER_DEPS)
 ditto          progs           $(srcdir)       $(HEADER_DEPS)
index e9e5144..e1266b8 100644 (file)
@@ -1,6 +1,6 @@
-# $Id: programs,v 1.43 2018/12/29 15:32:00 tom Exp $
+# $Id: programs,v 1.44 2019/02/16 21:38:16 tom Exp $
 ##############################################################################
-# Copyright (c) 2006-2017,2018 Free Software Foundation, Inc.                #
+# Copyright (c) 2006-2018,2019 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -45,6 +45,7 @@ demo_keyok    $(LDFLAGS_CURSES)       $(LOCAL_LIBS)   demo_keyok
 demo_menus     $(LDFLAGS_DEFAULT)      $(LOCAL_LIBS)   demo_menus
 demo_new_pair  $(LDFLAGS_DEFAULT)      $(LOCAL_LIBS)   demo_new_pair popup_msg
 demo_panels    $(LDFLAGS_DEFAULT)      $(LOCAL_LIBS)   demo_panels
+demo_tabs      $(LDFLAGS_CURSES)       $(LOCAL_LIBS)   demo_tabs
 demo_termcap   $(LDFLAGS_TINFO)        $(LOCAL_LIBS)   demo_termcap
 demo_terminfo  $(LDFLAGS_TINFO)        $(LOCAL_LIBS)   demo_terminfo
 ditto          $(LDFLAGS_THREADS)      $(LOCAL_LIBS)   ditto
index f820a33..ec7d29a 100644 (file)
@@ -29,7 +29,7 @@
 /****************************************************************************
  *  Author: Thomas E. Dickey                    1996-on                     *
  ****************************************************************************/
-/* $Id: test.priv.h,v 1.177 2019/02/02 19:57:53 tom Exp $ */
+/* $Id: test.priv.h,v 1.178 2019/02/17 01:03:18 tom Exp $ */
 
 #ifndef __TEST_PRIV_H
 #define __TEST_PRIV_H 1
@@ -469,6 +469,10 @@ extern int optind;
 #define slk_clear()            /* nothing */
 #endif
 
+#if !NCURSES_EXT_FUNCS
+#define set_tabsize(n) TABSIZE = (n)
+#endif
+
 #if HAVE_TPUTS_SP
 #define USE_SP_FUNCS 1
 #else