From: Thomas E. Dickey Date: Sun, 26 Aug 2018 00:49:33 +0000 (+0000) Subject: ncurses 6.1 - patch 20180825 X-Git-Tag: v6.2~75 X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=commitdiff_plain;h=7d6371e47006c8aef4ac94f52998a35b03bf89cf ncurses 6.1 - patch 20180825 + add a section to tput manual page clarifying how it determines the terminal size (prompted by discussion with Grant Jenks). + add "--disable-relink" to rpm test-packages, for consistency with the deb test-packages. + split spec-file into ncurses6.spec and ncursest6.spec to work around toolset breakage in Fedora 28. + drop mention of "--disable-touching", which was not in the final 20180818 updates. --- diff --git a/MANIFEST b/MANIFEST index b4d978cc..04000f6a 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1028,6 +1028,7 @@ ./package/ncurses.spec ./package/ncurses.sym ./package/ncursest.map +./package/ncursest.spec ./package/ncursest.sym ./package/ncursestw.map ./package/ncursestw.sym diff --git a/NEWS b/NEWS index 8d00334d..d351f122 100644 --- a/NEWS +++ b/NEWS @@ -25,7 +25,7 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: NEWS,v 1.3173 2018/08/19 00:25:22 tom Exp $ +-- $Id: NEWS,v 1.3176 2018/08/25 23:32:32 tom Exp $ ------------------------------------------------------------------------------- This is a log of changes that ncurses has gone through since Zeyd started @@ -45,6 +45,16 @@ 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. +20180825 + + add a section to tput manual page clarifying how it determines the + terminal size (prompted by discussion with Grant Jenks). + + add "--disable-relink" to rpm test-packages, for consistency with the + deb test-packages. + + split spec-file into ncurses6.spec and ncursest6.spec to work around + toolset breakage in Fedora 28. + + drop mention of "--disable-touching", which was not in the final + 20180818 updates. + 20180818 + build-fix for PDCurses with ncurses-examples. + improved CF_CC_ENV_FLAGS. @@ -55,8 +65,6 @@ it is not possible to add this information. + modify scripts which use "--disable-relink" to add a 1-second sleep to work around tools which use whole-second timestamps, e.g., in utime() rather than the actual file system resolution. - + add "--disable-touching" option for using "install -p" option during - the install, e.g., so that header-files have a predictable timestamp. 20180804 + improve logic for clear with E3 extension, in case the terminal diff --git a/VERSION b/VERSION index ed360b5d..0a05d7d4 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -5:0:10 6.1 20180818 +5:0:10 6.1 20180825 diff --git a/dist.mk b/dist.mk index 7c503114..1f4d548a 100644 --- 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.1237 2018/08/18 16:14:17 tom Exp $ +# $Id: dist.mk,v 1.1238 2018/08/25 15:59:35 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 = 20180818 +NCURSES_PATCH = 20180825 # We don't append the patch to the version, since this only applies to releases VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) diff --git a/doc/html/man/adacurses6-config.1.html b/doc/html/man/adacurses6-config.1.html index 6f2ff439..4b564105 100644 --- a/doc/html/man/adacurses6-config.1.html +++ b/doc/html/man/adacurses6-config.1.html @@ -125,7 +125,7 @@

SEE ALSO

        curses(3x)
 
-       This describes ncurses version 6.1 (patch 20180728).
+       This describes ncurses version 6.1 (patch 20180825).
 
 
 
diff --git a/doc/html/man/captoinfo.1m.html b/doc/html/man/captoinfo.1m.html
index 78475dfd..5a4bc2e8 100644
--- a/doc/html/man/captoinfo.1m.html
+++ b/doc/html/man/captoinfo.1m.html
@@ -190,7 +190,7 @@
 

SEE ALSO

        infocmp(1m), curses(3x), terminfo(5)
 
-       This describes ncurses version 6.1 (patch 20180728).
+       This describes ncurses version 6.1 (patch 20180825).
 
 
 

AUTHOR

diff --git a/doc/html/man/clear.1.html b/doc/html/man/clear.1.html
index 172afcfc..dfbaab94 100644
--- a/doc/html/man/clear.1.html
+++ b/doc/html/man/clear.1.html
@@ -148,7 +148,7 @@
 

SEE ALSO

        tput(1), terminfo(5)
 
-       This describes ncurses version 6.1 (patch 20180728).
+       This describes ncurses version 6.1 (patch 20180825).
 
 
 
diff --git a/doc/html/man/form.3x.html b/doc/html/man/form.3x.html
index 56d362ae..d06a7ecc 100644
--- a/doc/html/man/form.3x.html
+++ b/doc/html/man/form.3x.html
@@ -246,7 +246,7 @@
        curses(3x)  and  related  pages  whose names begin "form_" for detailed
        descriptions of the entry points.
 
-       This describes ncurses version 6.1 (patch 20180728).
+       This describes ncurses version 6.1 (patch 20180825).
 
 
 
diff --git a/doc/html/man/infocmp.1m.html b/doc/html/man/infocmp.1m.html
index 861ffb1c..d24282c8 100644
--- a/doc/html/man/infocmp.1m.html
+++ b/doc/html/man/infocmp.1m.html
@@ -481,7 +481,7 @@
 
        https://invisible-island.net/ncurses/tctest.html
 
-       This describes ncurses version 6.1 (patch 20180728).
+       This describes ncurses version 6.1 (patch 20180825).
 
 
 

AUTHOR

diff --git a/doc/html/man/infotocap.1m.html b/doc/html/man/infotocap.1m.html
index 783fcec1..731e945f 100644
--- a/doc/html/man/infotocap.1m.html
+++ b/doc/html/man/infotocap.1m.html
@@ -85,7 +85,7 @@
 

SEE ALSO

        curses(3x), tic(1m), infocmp(1m), terminfo(5)
 
-       This describes ncurses version 6.1 (patch 20180728).
+       This describes ncurses version 6.1 (patch 20180825).
 
 
 

AUTHOR

diff --git a/doc/html/man/menu.3x.html b/doc/html/man/menu.3x.html
index f1065bb5..765c2052 100644
--- a/doc/html/man/menu.3x.html
+++ b/doc/html/man/menu.3x.html
@@ -221,7 +221,7 @@
        curses(3x)  and  related  pages  whose names begin "menu_" for detailed
        descriptions of the entry points.
 
-       This describes ncurses version 6.1 (patch 20180728).
+       This describes ncurses version 6.1 (patch 20180825).
 
 
 
diff --git a/doc/html/man/ncurses.3x.html b/doc/html/man/ncurses.3x.html
index ef4eda04..e8f73618 100644
--- a/doc/html/man/ncurses.3x.html
+++ b/doc/html/man/ncurses.3x.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 ncurses version 6.1 (patch 20180728).
+       This describes ncurses version 6.1 (patch 20180825).
 
        The  ncurses  library emulates the curses library of System V Release 4
        UNIX, and XPG4 (X/Open Portability Guide) curses  (also  known  as  XSI
diff --git a/doc/html/man/ncurses6-config.1.html b/doc/html/man/ncurses6-config.1.html
index 40b276d2..a31eff11 100644
--- a/doc/html/man/ncurses6-config.1.html
+++ b/doc/html/man/ncurses6-config.1.html
@@ -112,7 +112,7 @@
 

SEE ALSO

        curses(3x)
 
-       This describes ncurses version 6.1 (patch 20180728).
+       This describes ncurses version 6.1 (patch 20180825).
 
 
 
diff --git a/doc/html/man/panel.3x.html b/doc/html/man/panel.3x.html
index 8fcf533b..f18a17dc 100644
--- a/doc/html/man/panel.3x.html
+++ b/doc/html/man/panel.3x.html
@@ -204,7 +204,7 @@
 

SEE ALSO

        curses(3x), curs_variables(3x),
 
-       This describes ncurses version 6.1 (patch 20180728).
+       This describes ncurses version 6.1 (patch 20180825).
 
 
 

AUTHOR

diff --git a/doc/html/man/tabs.1.html b/doc/html/man/tabs.1.html
index 874ee1a2..fe711527 100644
--- a/doc/html/man/tabs.1.html
+++ b/doc/html/man/tabs.1.html
@@ -164,7 +164,7 @@
 

SEE ALSO

        tset(1), infocmp(1m), curses(3x), terminfo(5).
 
-       This describes ncurses version 6.1 (patch 20180728).
+       This describes ncurses version 6.1 (patch 20180825).
 
 
 
diff --git a/doc/html/man/terminfo.5.html b/doc/html/man/terminfo.5.html
index d5001efd..1b79adbe 100644
--- a/doc/html/man/terminfo.5.html
+++ b/doc/html/man/terminfo.5.html
@@ -74,7 +74,7 @@
        Terminfo 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
-       ncurses version 6.1 (patch 20180728).
+       ncurses version 6.1 (patch 20180825).
 
 
 

Terminfo Entry Syntax

diff --git a/doc/html/man/tic.1m.html b/doc/html/man/tic.1m.html
index 8cd38311..44714163 100644
--- a/doc/html/man/tic.1m.html
+++ b/doc/html/man/tic.1m.html
@@ -364,7 +364,7 @@
        infocmp(1m),   captoinfo(1m),   infotocap(1m),   toe(1m),   curses(3x),
        term(5).  terminfo(5).
 
-       This describes ncurses version 6.1 (patch 20180728).
+       This describes ncurses version 6.1 (patch 20180825).
 
 
 

AUTHOR

diff --git a/doc/html/man/toe.1m.html b/doc/html/man/toe.1m.html
index e3b26341..ce675339 100644
--- a/doc/html/man/toe.1m.html
+++ b/doc/html/man/toe.1m.html
@@ -113,7 +113,7 @@
        tic(1m), infocmp(1m), captoinfo(1m),  infotocap(1m),  curses(3x),  ter-
        minfo(5).
 
-       This describes ncurses version 6.1 (patch 20180728).
+       This describes ncurses version 6.1 (patch 20180825).
 
 
 
diff --git a/doc/html/man/tput.1.html b/doc/html/man/tput.1.html
index cbfe3660..8d0f34fa 100644
--- a/doc/html/man/tput.1.html
+++ b/doc/html/man/tput.1.html
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: tput.1,v 1.59 2018/07/28 21:30:27 tom Exp @
+  * @Id: tput.1,v 1.61 2018/08/25 23:28:12 tom Exp @
 -->
 
 
@@ -245,20 +245,41 @@
        program named init has a more well-established use.
 
 
+

Terminal Size

+       Besides  the  special  commands (e.g., clear), tput treats certain ter-
+       minfo  capabilities  specially:  lines   and   columns.    tput   calls
+       setupterm(3x) to obtain the terminal size:
+
+       o   first, it gets the size from the terminal database (which generally
+           is not provided for terminal emulators which do not  have  a  fixed
+           window size)
+
+       o   then  it  asks  the operating system for the terminal's size (which
+           generally works, unless connecting via a serial line which does not
+           support NAWS: negotiations about window size).
+
+       o   finally,  it  inspects  the environment variables LINES and COLUMNS
+           which may override the terminal size.
+
+       If the -T option is given tput ignores  the  environment  variables  by
+       calling   use_tioctl(TRUE),  relying  upon  the  operating  system  (or
+       finally, the terminal database).
+
+
 

EXAMPLES

        tput init
-            Initialize  the  terminal according to the type of terminal in the
-            environmental variable TERM.  This command should be  included  in
+            Initialize the terminal according to the type of terminal  in  the
+            environmental  variable  TERM.  This command should be included in
             everyone's .profile after the environmental variable TERM has been
             exported, as illustrated on the profile(5) manual page.
 
        tput -T5620 reset
-            Reset an AT&T 5620 terminal, overriding the type  of  terminal  in
+            Reset  an  AT&T  5620 terminal, overriding the type of terminal in
             the environmental variable TERM.
 
        tput cup 0 0
             Send the sequence to move the cursor to row 0, column 0 (the upper
-            left corner of the screen, usually  known  as  the  "home"  cursor
+            left  corner  of  the  screen,  usually known as the "home" cursor
             position).
 
        tput clear
@@ -271,24 +292,24 @@
             Print the number of columns for the 450 terminal.
 
        bold=`tput smso` offbold=`tput rmso`
-            Set  the  shell  variables bold, to begin stand-out mode sequence,
+            Set the shell variables bold, to begin  stand-out  mode  sequence,
             and offbold, to end standout mode sequence, for the current termi-
             nal.  This might be followed by a prompt: echo "${bold}Please type
             in your name: ${offbold}\c"
 
        tput hc
-            Set exit code to indicate if the current terminal is a  hard  copy
+            Set  exit  code to indicate if the current terminal is a hard copy
             terminal.
 
        tput cup 23 4
             Send the sequence to move the cursor to row 23, column 4.
 
        tput cup
-            Send  the  terminfo string for cursor-movement, with no parameters
+            Send the terminfo string for cursor-movement, with  no  parameters
             substituted.
 
        tput longname
-            Print the long name from the terminfo database  for  the  type  of
+            Print  the  long  name  from the terminfo database for the type of
             terminal specified in the environmental variable TERM.
 
             tput -S <<!
@@ -297,9 +318,9 @@
             > bold
             > !
 
-            This  example  shows  tput  processing several capabilities in one
-            invocation.  It clears the screen, moves the  cursor  to  position
-            10,  10 and turns on bold (extra bright) mode.  The list is termi-
+            This example shows tput processing  several  capabilities  in  one
+            invocation.   It  clears  the screen, moves the cursor to position
+            10, 10 and turns on bold (extra bright) mode.  The list is  termi-
             nated by an exclamation mark (!) on a line by itself.
 
 
@@ -308,50 +329,50 @@
               compiled terminal description database
 
        /usr/share/tabset/*
-              tab settings for some terminals, in a format appropriate  to  be
-              output  to  the  terminal (escape sequences that set margins and
-              tabs); for more information, see the  Tabs  and  Initialization,
+              tab  settings  for some terminals, in a format appropriate to be
+              output to the terminal (escape sequences that  set  margins  and
+              tabs);  for  more  information, see the Tabs and Initialization,
               section of terminfo(5)
 
 
 

EXIT CODES

        If the -S option is used, tput checks for errors from each line, and if
-       any errors are found, will set the exit code to 4 plus  the  number  of
-       lines  with  errors.   If  no errors are found, the exit code is 0.  No
-       indication of which line failed can be given so exit code 1 will  never
-       appear.   Exit codes 2, 3, and 4 retain their usual interpretation.  If
-       the -S option is not used, the exit code depends on the  type  of  cap-
+       any  errors  are  found, will set the exit code to 4 plus the number of
+       lines with errors.  If no errors are found, the exit  code  is  0.   No
+       indication  of which line failed can be given so exit code 1 will never
+       appear.  Exit codes 2, 3, and 4 retain their usual interpretation.   If
+       the  -S  option  is not used, the exit code depends on the type of cap-
        name:
 
           boolean
                  a value of 0 is set for TRUE and 1 for FALSE.
 
           string a value of 0 is set if the capname is defined for this termi-
-                 nal type (the value of capname is returned on  standard  out-
-                 put);  a value of 1 is set if capname is not defined for this
+                 nal  type  (the value of capname is returned on standard out-
+                 put); a value of 1 is set if capname is not defined for  this
                  terminal type (nothing is written to standard output).
 
           integer
                  a value of 0 is always set, whether or not capname is defined
-                 for  this  terminal type.  To determine if capname is defined
-                 for this terminal type, the user must test the value  written
-                 to  standard output.  A value of -1 means that capname is not
+                 for this terminal type.  To determine if capname  is  defined
+                 for  this terminal type, the user must test the value written
+                 to standard output.  A value of -1 means that capname is  not
                  defined for this terminal type.
 
-          other  reset or init may fail to find their  respective  files.   In
+          other  reset  or  init  may fail to find their respective files.  In
                  that case, the exit code is set to 4 + errno.
 
        Any other exit code indicates an error; see the DIAGNOSTICS section.
 
 
 

DIAGNOSTICS

-       tput  prints  the  following  error messages and sets the corresponding
+       tput prints the following error messages  and  sets  the  corresponding
        exit codes.
 
        exit code   error message
        ---------------------------------------------------------------------
-       0           (capname is a numeric variable that is not specified  in
-                   the  terminfo(5)  database  for this terminal type, e.g.
+       0           (capname  is a numeric variable that is not specified in
+                   the terminfo(5) database for this  terminal  type,  e.g.
                    tput -T450 lines and tput -T2621 xmc)
        1           no error message is printed, see the EXIT CODES section.
        2           usage error
@@ -362,19 +383,19 @@
 
 
 

HISTORY

-       The tput command was begun by Bill Joy in 1980.   The  initial  version
+       The  tput  command  was begun by Bill Joy in 1980.  The initial version
        only cleared the screen.
 
-       AT&T  System  V provided a different tput command, whose init and reset
-       subcommands (more than half the program)  were  incorporated  from  the
+       AT&T System V provided a different tput command, whose init  and  reset
+       subcommands  (more  than  half  the program) were incorporated from the
        reset feature of BSD tset written by Eric Allman.
 
        Keith Bostic replaced the BSD tput command in 1989 with a new implemen-
        tation based on the AT&T System V program tput.  Like the AT&T program,
-       Bostic's  version accepted some parameters named for terminfo capabili-
-       ties (clear, init, longname and reset).  However (because he  had  only
-       termcap  available),  it accepted termcap names for other capabilities.
-       Also, Bostic's BSD tput did not modify the terminal I/O  modes  as  the
+       Bostic's version accepted some parameters named for terminfo  capabili-
+       ties  (clear,  init, longname and reset).  However (because he had only
+       termcap available), it accepted termcap names for  other  capabilities.
+       Also,  Bostic's  BSD  tput did not modify the terminal I/O modes as the
        earlier BSD tset had done.
 
        At the same time, Bostic added a shell script named "clear", which used
@@ -383,33 +404,33 @@
        Both of these appeared in 4.4BSD, becoming the "modern" BSD implementa-
        tion of tput.
 
-       This  implementation of tput began from a different source than AT&T or
-       BSD: Ross Ridge's mytinfo package, published  on  comp.sources.unix  in
+       This implementation of tput began from a different source than AT&T  or
+       BSD:  Ross  Ridge's  mytinfo package, published on comp.sources.unix in
        December 1992.  Ridge's program made more sophisticated use of the ter-
-       minal capabilities than the BSD program.  Eric Raymond  used  the  tput
-       program  (and  other  parts of mytinfo) in ncurses in June 1995.  Using
-       the portions dealing with terminal capabilities almost without  change,
-       Raymond  made  improvements to the way the command-line parameters were
+       minal  capabilities  than the BSD program.  Eric Raymond used that tput
+       program (and other parts of mytinfo) in ncurses in  June  1995.   Using
+       the  portions dealing with terminal capabilities almost without change,
+       Raymond made improvements to the way the command-line  parameters  were
        handled.
 
 
 

PORTABILITY

-       This implementation of tput differs from AT&T  tput  in  two  important
+       This  implementation  of  tput  differs from AT&T tput in two important
        areas:
 
-       o   tput  capname  writes  to  the standard output.  That need not be a
+       o   tput capname writes to the standard output.  That  need  not  be  a
            regular terminal.  However, the subcommands which manipulate termi-
            nal modes may not use the standard output.
 
-           The  AT&T  implementation's  init  and  reset  commands use the BSD
-           (4.1c) tset source, which manipulates terminal modes.   It  succes-
+           The AT&T implementation's init  and  reset  commands  use  the  BSD
+           (4.1c)  tset  source, which manipulates terminal modes.  It succes-
            sively tries standard output, standard error, standard input before
            falling back to "/dev/tty" and finally just assumes a 1200Bd termi-
            nal.  When updating terminal modes, it ignores errors.
 
-           Until  changes made after ncurses 6.0, tput did not modify terminal
+           Until changes made after ncurses 6.0, tput did not modify  terminal
            modes.  tput now uses a similar scheme, using functions shared with
-           tset  (and ultimately based on the 4.4BSD tset).  If it is not able
+           tset (and ultimately based on the 4.4BSD tset).  If it is not  able
            to open a terminal, e.g., when running in cron, tput will return an
            error.
 
@@ -417,72 +438,91 @@
            of the characters are numeric, or not.
 
            Most implementations which provide support for capname operands use
-           the  tparm  function  to  expand  parameters  in it.  That function
-           expects a mixture of numeric and string parameters, requiring  tput
+           the tparm function to  expand  parameters  in  it.   That  function
+           expects  a mixture of numeric and string parameters, requiring tput
            to know which type to use.
 
-           This  implementation  uses a table to determine the parameter types
+           This implementation uses a table to determine the  parameter  types
            for the standard capname operands, and an internal library function
            to analyze nonstandard capname operands.
 
-       This  implementation  (unlike  others) can accept both termcap and ter-
+       This implementation (unlike others) can accept both  termcap  and  ter-
        minfo names for the capname feature, if termcap support is compiled in.
        However, the predefined termcap and terminfo names have two ambiguities
        in this case (and the terminfo name is assumed):
 
-       o   The termcap name dl corresponds to the terminfo  name  dl1  (delete
+       o   The  termcap  name  dl corresponds to the terminfo name dl1 (delete
            one line).
-           The  terminfo  name dl corresponds to the termcap name DL (delete a
+           The terminfo name dl corresponds to the termcap name DL  (delete  a
            given number of lines).
 
-       o   The termcap name ed corresponds to  the  terminfo  name  rmdc  (end
+       o   The  termcap  name  ed  corresponds  to the terminfo name rmdc (end
            delete mode).
-           The  terminfo  name ed corresponds to the termcap name cd (clear to
+           The terminfo name ed corresponds to the termcap name cd  (clear  to
            end of screen).
 
-       The longname and -S options, and  the  parameter-substitution  features
-       used  in  the  cup  example,  were  not  supported in BSD curses before
+       The  longname  and  -S options, and the parameter-substitution features
+       used in the cup example,  were  not  supported  in  BSD  curses  before
        4.3reno (1989) or in AT&T/USL curses before SVr4 (1988).
 
-       IEEE  Std  1003.1/The  Open  Group    Base   Specifications   Issue   7
-       (POSIX.1-2008)  documents  only the operands for clear, init and reset.
+       IEEE   Std   1003.1/The   Open   Group   Base  Specifications  Issue  7
+       (POSIX.1-2008) documents only the operands for clear, init  and  reset.
        There are a few interesting observations to make regarding that:
 
-       o   In this implementation, clear is part of the capname support.   The
-           others  (init and longname) do not correspond to terminal capabili-
+       o   In  this implementation, clear is part of the capname support.  The
+           others (init and longname) do not correspond to terminal  capabili-
            ties.
 
        o   Other  implementations  of  tput  on  SVr4-based  systems  such  as
-           Solaris,  IRIX64  and  HPUX as well as others such as AIX and Tru64
+           Solaris, IRIX64 and HPUX as well as others such as  AIX  and  Tru64
            provide support for capname operands.
 
        o   A few platforms such as FreeBSD recognize termcap names rather than
            terminfo capability names in their respective tput commands.  Since
-           2010, NetBSD's tput uses terminfo names.   Before  that,  it  (like
+           2010,  NetBSD's  tput  uses  terminfo names.  Before that, it (like
            FreeBSD) recognized termcap names.
 
        Because (apparently) all of the certified Unix systems support the full
-       set of capability names, the reasoning for documenting only a  few  may
+       set  of  capability names, the reasoning for documenting only a few may
        not be apparent.
 
-       o   X/Open  Curses Issue 7 documents tput differently, with capname and
+       o   X/Open Curses Issue 7 documents tput differently, with capname  and
            the other features used in this implementation.
 
-       o   That is, there are two standards for tput:  POSIX  (a  subset)  and
-           X/Open  Curses (the full implementation).  POSIX documents a subset
+       o   That  is,  there  are  two standards for tput: POSIX (a subset) and
+           X/Open Curses (the full implementation).  POSIX documents a  subset
            to avoid the complication of including X/Open Curses and the termi-
            nal capabilities database.
 
-       o   While  it  is  certainly  possible  to write a tput program without
-           using curses, none of the systems which have a  curses  implementa-
+       o   While it is certainly possible to  write  a  tput  program  without
+           using  curses,  none of the systems which have a curses implementa-
            tion provide a tput utility which does not provide the capname fea-
            ture.
 
+       X/Open  Curses  Issue  7 (2009) is the first version to document utili-
+       ties.  However that part of X/Open  Curses  does  not  follow  existing
+       practice (i.e., Unix features documented in SVID 3):
+
+       o   It  assigns exit code 4 to "invalid operand", which may be the same
+           as unknown capability.  For instance, the source code for  Solaris'
+           xcurses uses the term "invalid' in this case.
+
+       o   It  assigns  exit code 255 to a numeric variable that is not speci-
+           fied in the terminfo database.   That  likely  is  a  documentation
+           error,  confusing  the  -1  written  to  the standard output for an
+           absent or cancelled numeric value versus an (unsigned) exit code.
+
+       The various Unix systems (AIX, HPUX, Solaris) use the  same  exit-codes
+       as ncurses.
+
+       NetBSD curses documents different exit codes which do not correspond to
+       either ncurses or X/Open.
+
 
 

SEE ALSO

        clear(1), stty(1), tabs(1), tset(1), terminfo(5), curs_termcap(3x).
 
-       This describes ncurses version 6.1 (patch 20180728).
+       This describes ncurses version 6.1 (patch 20180825).
 
 
 
@@ -497,6 +537,7 @@
 
  • Options
  • Commands
  • Aliases
  • +
  • Terminal Size
  • EXAMPLES
  • diff --git a/doc/html/man/tset.1.html b/doc/html/man/tset.1.html index fe4478b7..fe3d5f4a 100644 --- a/doc/html/man/tset.1.html +++ b/doc/html/man/tset.1.html @@ -389,7 +389,7 @@ csh(1), sh(1), stty(1), curs_terminfo(3x), tty(4), terminfo(5), ttys(5), environ(7) - This describes ncurses version 6.1 (patch 20180728). + This describes ncurses version 6.1 (patch 20180825). diff --git a/man/tput.1 b/man/tput.1 index 44cedbfc..62fa9ebc 100644 --- a/man/tput.1 +++ b/man/tput.1 @@ -27,7 +27,7 @@ .\" authorization. * .\"*************************************************************************** .\" -.\" $Id: tput.1,v 1.59 2018/07/28 21:30:27 tom Exp $ +.\" $Id: tput.1,v 1.61 2018/08/25 23:28:12 tom Exp $ .TH @TPUT@ 1 "" .ds d @TERMINFO@ .ds n 1 @@ -271,6 +271,27 @@ If \fB@TPUT@\fR is invoked by a link named \fBinit\fR, this has the same effect as \fB@TPUT@ init\fR. Again, you are less likely to use that link because another program named \fBinit\fP has a more well-established use. +.SS Terminal Size +.PP +Besides the special commands (e.g., \fBclear\fP), +@TPUT@ treats certain terminfo capabilities specially: +\fBlines\fP and \fBcolumns\fP. +@TPUT@ calls \fBsetupterm\fP(3X) to obtain the terminal size: +.bP +first, it gets the size from the terminal database +(which generally is not provided for terminal emulators +which do not have a fixed window size) +.bP +then it asks the operating system for the terminal's size +(which generally works, unless connecting via a serial line which +does not support \fINAWS\fP: negotiations about window size). +.bP +finally, it inspects the environment variables \fBLINES\fP and \fBCOLUMNS\fP +which may override the terminal size. +.PP +If the \fB\-T\fP option is given +@TPUT@ ignores the environment variables by calling \fBuse_tioctl(TRUE)\fP, +relying upon the operating system (or finally, the terminal database). .SH EXAMPLES .TP 5 \fB@TPUT@ init\fR @@ -441,7 +462,7 @@ AT&T or BSD: Ross Ridge's \fImytinfo\fP package, published on \fIcomp.sources.unix\fP in December 1992. Ridge's program made more sophisticated use of the terminal capabilities than the BSD program. -Eric Raymond used the \fBtput\fP program +Eric Raymond used that \fBtput\fP program (and other parts of \fImytinfo\fP) in ncurses in June 1995. Using the portions dealing with terminal capabilities almost without change, @@ -542,6 +563,27 @@ While it is certainly possible to write a \fBtput\fP program without using curses, none of the systems which have a curses implementation provide a \fBtput\fP utility which does not provide the \fIcapname\fP feature. +.PP +X/Open Curses Issue 7 (2009) is the first version to document utilities. +However that part of X/Open Curses does not follow existing practice +(i.e., Unix features documented in SVID 3): +.bP +It assigns exit code 4 to \*(``invalid operand\*('', +which may be the same as \fIunknown capability\fP. +For instance, the source code for Solaris' xcurses uses the term +\*(``invalid\*'' in this case. +.bP +It assigns exit code 255 to a numeric variable that is not specified in +the terminfo database. +That likely is a documentation error, +confusing the \fB\-1\fP written to the standard output for an absent +or cancelled numeric value versus an (unsigned) exit code. +.PP +The various Unix systems (AIX, HPUX, Solaris) use the same exit-codes +as ncurses. +.PP +NetBSD curses documents different exit codes which do not correspond +to either ncurses or X/Open. .SH SEE ALSO \fB@CLEAR@\fR(\*n), \fBstty\fR(1), diff --git a/package/debian-mingw/changelog b/package/debian-mingw/changelog index 2e777698..68b26ea9 100644 --- a/package/debian-mingw/changelog +++ b/package/debian-mingw/changelog @@ -1,8 +1,8 @@ -ncurses6 (6.1+20180818) unstable; urgency=low +ncurses6 (6.1+20180825) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 18 Aug 2018 12:14:17 -0400 + -- Thomas E. Dickey Sat, 25 Aug 2018 11:59:35 -0400 ncurses6 (5.9-20131005) unstable; urgency=low diff --git a/package/debian-mingw64/changelog b/package/debian-mingw64/changelog index 2e777698..68b26ea9 100644 --- a/package/debian-mingw64/changelog +++ b/package/debian-mingw64/changelog @@ -1,8 +1,8 @@ -ncurses6 (6.1+20180818) unstable; urgency=low +ncurses6 (6.1+20180825) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 18 Aug 2018 12:14:17 -0400 + -- Thomas E. Dickey Sat, 25 Aug 2018 11:59:35 -0400 ncurses6 (5.9-20131005) unstable; urgency=low diff --git a/package/debian/changelog b/package/debian/changelog index 8f1d442a..f7bbf9d0 100644 --- a/package/debian/changelog +++ b/package/debian/changelog @@ -1,8 +1,8 @@ -ncurses6 (6.1+20180818) unstable; urgency=low +ncurses6 (6.1+20180825) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 18 Aug 2018 12:14:17 -0400 + -- Thomas E. Dickey Sat, 25 Aug 2018 11:59:35 -0400 ncurses6 (5.9-20120608) unstable; urgency=low diff --git a/package/mingw-ncurses.nsi b/package/mingw-ncurses.nsi index 0bd5359f..7dd46a3d 100644 --- a/package/mingw-ncurses.nsi +++ b/package/mingw-ncurses.nsi @@ -1,4 +1,4 @@ -; $Id: mingw-ncurses.nsi,v 1.284 2018/08/18 16:14:17 tom Exp $ +; $Id: mingw-ncurses.nsi,v 1.285 2018/08/25 15:59:35 tom Exp $ ; TODO add examples ; TODO bump ABI to 6 @@ -10,7 +10,7 @@ !define VERSION_MAJOR "6" !define VERSION_MINOR "1" !define VERSION_YYYY "2018" -!define VERSION_MMDD "0818" +!define VERSION_MMDD "0825" !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD} !define MY_ABI "5" diff --git a/package/mingw-ncurses.spec b/package/mingw-ncurses.spec index 2a4cdf1d..807a8a37 100644 --- a/package/mingw-ncurses.spec +++ b/package/mingw-ncurses.spec @@ -3,7 +3,7 @@ Summary: shared libraries for terminal handling Name: mingw32-ncurses6 Version: 6.1 -Release: 20180818 +Release: 20180825 License: X11 Group: Development/Libraries Source: ncurses-%{version}-%{release}.tgz diff --git a/package/ncurses.spec b/package/ncurses.spec index a6d5ecd2..af0d18da 100644 --- a/package/ncurses.spec +++ b/package/ncurses.spec @@ -1,7 +1,7 @@ Summary: shared libraries for terminal handling Name: ncurses6 Version: 6.1 -Release: 20180818 +Release: 20180825 License: X11 Group: Development/Libraries Source: ncurses-%{version}-%{release}.tgz @@ -27,15 +27,6 @@ updating character screens with reasonable optimization. This package is used for testing ABI %{MY_ABI}. -%package -n ncursest6 -Summary: Curses library with POSIX thread support. - -%description -n ncursest6 -The ncurses library routines are a terminal-independent method of -updating character screens with reasonable optimization. - -This package is used for testing ABI %{MY_ABI} with POSIX threads. - %prep %global is_mandriva %(test -f /etc/mandriva-release && echo 1 || echo 0) @@ -69,6 +60,7 @@ This package is used for testing ABI %{MY_ABI} with POSIX threads. --disable-leaks \\\ --disable-macros \\\ --disable-overwrite \\\ + --disable-relink \\\ --disable-termcap \\\ --enable-hard-tabs \\\ --enable-opaque-curses \\\ @@ -102,79 +94,33 @@ This package is used for testing ABI %{MY_ABI} with POSIX threads. --without-debug \\\ --without-normal -%global _configure ../configure - -mkdir BUILD-ncurses6 -pushd BUILD-ncurses6 CFLAGS="%{CC_NORMAL}" \ RPATH_LIST=../lib:%{_libdir} \ -CONFIGURE_TOP=%{my_srcdir} \ %configure %{CFG_OPTS} make -popd - -mkdir BUILD-ncursest6 -pushd BUILD-ncursest6 -CFLAGS="%{CC_NORMAL}" \ -RPATH_LIST=../lib:%{_libdir} \ -CONFIGURE_TOP=%{my_srcdir} \ -%configure %{CFG_OPTS} \ - --enable-interop \ - --enable-sp-funcs \ - --program-suffix=t%{MY_ABI} \ - --with-pthread -make -popd %install rm -rf $RPM_BUILD_ROOT -pushd BUILD-ncurses6 make install.libs install.progs rm -f test/ncurses ( cd test && make ncurses LOCAL_LIBDIR=%{_libdir} && mv ncurses $RPM_BUILD_ROOT/%{_bindir}/ncurses%{MY_ABI} ) -popd - -pushd BUILD-ncursest6 -make install.libs install.progs -rm -f test/ncurses -( cd test && make ncurses LOCAL_LIBDIR=%{_libdir} && mv ncurses $RPM_BUILD_ROOT/%{_bindir}/ncursest%{MY_ABI} ) -popd %clean rm -rf $RPM_BUILD_ROOT -%files -n ncurses6 +%files %defattr(-,root,root,-) %{_bindir}/* %{_includedir}/* %{_libdir}/* -%exclude %{_bindir}/tict6 -%exclude %{_bindir}/toet6 -%exclude %{_bindir}/tabst6 -%exclude %{_bindir}/resett6 -%exclude %{_bindir}/???*tt6 -%exclude %{_bindir}/?????*t6 -%exclude %{_bindir}/*tw6* -%exclude %dir %{_includedir}/*tw6* -%exclude %{_includedir}/*tw6*/* -%exclude %{_libdir}/*tw6* -%exclude %{_libdir}/pkgconfig/*tw6* - -%files -n ncursest6 -%defattr(-,root,root,-) -%{_bindir}/tict6 -%{_bindir}/toet6 -%{_bindir}/tabst6 -%{_bindir}/???*tt6 -%{_bindir}/?????*t6 -%{_bindir}/*tw6* -%{_includedir}/*tw6* -%{_libdir}/*tw6* -%{_libdir}/pkgconfig/*tw6* %changelog +* Sat Aug 25 2018 Thomas E. Dickey +- split spec-file into ncurses6 and ncursest6 to work around toolset breakage + in Fedora 28 + * Sat Jun 02 2018 Thomas E. Dickey - build-fix for Mageia diff --git a/package/ncursest.spec b/package/ncursest.spec new file mode 100644 index 00000000..12d46709 --- /dev/null +++ b/package/ncursest.spec @@ -0,0 +1,158 @@ +Summary: Curses library with POSIX thread support. +Name: ncursest6 +Version: 6.1 +Release: 20180825 +License: X11 +Group: Development/Libraries +Source: ncurses-%{version}-%{release}.tgz +# URL: https://invisible-island.net/ncurses/ + +%define CC_NORMAL -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wconversion +%define CC_STRICT %{CC_NORMAL} -W -Wbad-function-cast -Wcast-align -Wcast-qual -Wmissing-declarations -Wnested-externs -Wpointer-arith -Wwrite-strings -ansi -pedantic + +%global MY_ABI 6 + +# save value before redefining +%global sys_libdir %{_libdir} + +# was redefined... +#global _prefix /usr/local/ncurses#{MY_ABI} + +%global MY_PKG %{sys_libdir}/pkgconfig +%define MYDATA /usr/local/ncurses/share/terminfo + +%description +The ncurses library routines are a terminal-independent method of +updating character screens with reasonable optimization. + +This package is used for testing ABI %{MY_ABI} with POSIX threads. + +%prep + +%global is_mandriva %(test -f /etc/mandriva-release && echo 1 || echo 0) +%global is_redhat %(test -f /etc/redhat-release && echo 1 || echo 0) +%global is_suse %(test -f /etc/SuSE-release && echo 1 || echo 0) + +# nor are debug-symbols +%define debug_package %{nil} + +%if %{is_mandriva} +%define _disable_ld_as_needed 1 +%define _disable_ld_no_undefined 1 +# libtool is not used here... +%define _disable_libtoolize 1 +%define _disable_ld_build_id 1 +%endif + +%setup -q -n ncurses-%{version}-%{release} + +%build +%define my_srcdir .. +%define CFG_OPTS \\\ + --target %{_target_platform} \\\ + --prefix=%{_prefix} \\\ + --bindir=%{_bindir} \\\ + --includedir=%{_includedir} \\\ + --libdir=%{_libdir} \\\ + --includedir='${prefix}/include' \\\ + --disable-echo \\\ + --disable-getcap \\\ + --disable-leaks \\\ + --disable-macros \\\ + --disable-overwrite \\\ + --disable-relink \\\ + --disable-termcap \\\ + --enable-hard-tabs \\\ + --enable-opaque-curses \\\ + --enable-opaque-form \\\ + --enable-opaque-menu \\\ + --enable-opaque-panel \\\ + --enable-pc-files \\\ + --enable-rpath \\\ + --enable-warnings \\\ + --enable-wgetch-events \\\ + --enable-widec \\\ + --enable-xmc-glitch \\\ + --program-suffix=%{MY_ABI} \\\ + --verbose \\\ + --with-abi-version=%{MY_ABI} \\\ + --with-config-suffix=dev \\\ + --with-cxx-shared \\\ + --with-default-terminfo-dir=%{MYDATA} \\\ + --with-develop \\\ + --with-extra-suffix=%{MY_ABI} \\\ + --with-install-prefix=$RPM_BUILD_ROOT \\\ + --with-pkg-config-libdir=%{MY_PKG} \\\ + --with-shared \\\ + --with-terminfo-dirs=%{MYDATA}:/usr/share/terminfo \\\ + --with-termlib \\\ + --with-ticlib \\\ + --with-trace \\\ + --with-versioned-syms \\\ + --with-xterm-kbs=DEL \\\ + --without-ada \\\ + --without-debug \\\ + --without-normal + +CFLAGS="%{CC_NORMAL}" \ +RPATH_LIST=../lib:%{_libdir} \ +%configure %{CFG_OPTS} \ + --enable-interop \ + --enable-sp-funcs \ + --program-suffix=t%{MY_ABI} \ + --with-pthread +make + +%install +rm -rf $RPM_BUILD_ROOT + +make install.libs install.progs +rm -f test/ncurses +( cd test && make ncurses LOCAL_LIBDIR=%{_libdir} && mv ncurses $RPM_BUILD_ROOT/%{_bindir}/ncursest%{MY_ABI} ) + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(-,root,root,-) +%{_bindir}/* +%{_includedir}/* +%{_libdir}/* + +%changelog + +* Sat Aug 25 2018 Thomas E. Dickey +- split spec-file into ncurses6 and ncursest6 to work around toolset breakage + in Fedora 28 + +* Sat Jun 02 2018 Thomas E. Dickey +- build-fix for Mageia + +* Sat May 26 2018 Thomas E. Dickey +- use predefined configure-macro +- separate ncurses6/ncursest6 packages + +* Sat Feb 10 2018 Thomas E. Dickey +- add ncursest6 package +- add several development features + +* Mon Jan 01 2018 Thomas E. Dickey +- drop redundant files pattern for "*.pc" + +* Tue Dec 26 2017 Thomas E. Dickey +- add --with-config-suffix option + +* Sun Apr 26 2015 Thomas E. Dickey +- move package to /usr + +* Sun Apr 12 2015 Thomas E. Dickey +- factor-out MY_ABI + +* Sat Mar 09 2013 Thomas E. Dickey +- add --with-cxx-shared option to demonstrate c++ binding as shared library + +* Sat Oct 27 2012 Thomas E. Dickey +- add ncurses program as "ncurses6" to provide demonstration. + +* Fri Jun 08 2012 Thomas E. Dickey +- initial version.