mirror of
https://github.com/ThomasDickey/ncurses-snapshots.git
synced 2026-01-26 19:09:16 +00:00
snapshot of project "ncurses", label v6_1_20190623
This commit is contained in:
parent
fade641317
commit
c0e606edf1
13
NEWS
13
NEWS
@ -25,7 +25,7 @@
|
||||
-- sale, use or other dealings in this Software without prior written --
|
||||
-- authorization. --
|
||||
-------------------------------------------------------------------------------
|
||||
-- $Id: NEWS,v 1.3332 2019/06/15 23:39:53 tom Exp $
|
||||
-- $Id: NEWS,v 1.3337 2019/06/23 21:18:23 tom Exp $
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
This is a log of changes that ncurses has gone through since Zeyd started
|
||||
@ -45,6 +45,17 @@ 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.
|
||||
|
||||
20190623
|
||||
+ improve the tabs.1 manual page to distinguish the PWB/Unix and 7th
|
||||
Edition versions of the tabs utility.
|
||||
+ add configure check for getenv() to work around implementation shown
|
||||
in Emscripten #6766, use that to optionally suppress START_TRACE
|
||||
macro, whose call to getenv() may not work properly (report by Ilya
|
||||
Ig Petrov).
|
||||
+ modify initialization functions to avoid relying upon persistent
|
||||
data for the result from getenv().
|
||||
+ update config.guess, config.sub
|
||||
|
||||
20190615
|
||||
+ expand the portability section of the man/tabs.1 manual page.
|
||||
+ regenerate HTML manpages.
|
||||
|
||||
224
aclocal.m4
vendored
224
aclocal.m4
vendored
@ -28,7 +28,7 @@ dnl***************************************************************************
|
||||
dnl
|
||||
dnl Author: Thomas E. Dickey 1995-on
|
||||
dnl
|
||||
dnl $Id: aclocal.m4,v 1.862 2019/03/30 21:53:01 tom Exp $
|
||||
dnl $Id: aclocal.m4,v 1.869 2019/06/23 19:53:31 tom Exp $
|
||||
dnl Macros used in NCURSES auto-configuration script.
|
||||
dnl
|
||||
dnl These macros are maintained separately from NCURSES. The copyright on
|
||||
@ -925,6 +925,35 @@ if test ".$system_name" != ".$cf_cv_system_name" ; then
|
||||
fi
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_CHECK_ENVIRON version: 3 updated: 2010/05/26 16:44:57
|
||||
dnl ----------------
|
||||
dnl Check for data that is usually declared in <unistd.h>, e.g., the 'environ'
|
||||
dnl variable. Define a DECL_xxx symbol if we must declare it ourselves.
|
||||
dnl
|
||||
dnl $1 = the name to check
|
||||
dnl $2 = the assumed type
|
||||
AC_DEFUN([CF_CHECK_ENVIRON],
|
||||
[
|
||||
AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
|
||||
AC_TRY_COMPILE([
|
||||
#ifdef HAVE_STDLIB_H
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
#include <unistd.h> ],
|
||||
ifelse([$2],,int,[$2]) x = (ifelse([$2],,int,[$2])) $1,
|
||||
[cf_cv_dcl_$1=yes],
|
||||
[cf_cv_dcl_$1=no])
|
||||
])
|
||||
|
||||
if test "$cf_cv_dcl_$1" = no ; then
|
||||
CF_UPPER(cf_result,decl_$1)
|
||||
AC_DEFINE_UNQUOTED($cf_result)
|
||||
fi
|
||||
|
||||
# It's possible (for near-UNIX clones) that the data doesn't exist
|
||||
CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2]))
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_CHECK_ERRNO version: 12 updated: 2015/04/18 08:56:57
|
||||
dnl --------------
|
||||
dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
|
||||
@ -980,6 +1009,132 @@ if test "$cf_cv_have_$1" = yes ; then
|
||||
AC_DEFINE_UNQUOTED($cf_result)
|
||||
fi
|
||||
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_CHECK_GETENV version: 1 updated: 2019/06/23 15:28:15
|
||||
dnl ---------------
|
||||
dnl Check if repeated getenv calls return the same pointer, e.g., it does not
|
||||
dnl discard the previous pointer when returning a new one.
|
||||
AC_DEFUN([CF_CHECK_GETENV],
|
||||
[
|
||||
AC_REQUIRE([CF_CHECK_ENVIRON])
|
||||
AC_CHECK_FUNC( getenv, ,, AC_MSG_ERROR(getenv not found) )
|
||||
AC_CHECK_FUNCS( putenv setenv strdup )
|
||||
AC_CACHE_CHECK(if getenv returns consistent values,cf_cv_consistent_getenv,[
|
||||
AC_TRY_RUN([
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#if defined(HAVE_ENVIRON) && defined(DECL_ENVIRON) && !defined(environ)
|
||||
extern char **environ; /* POSIX, but some systems are not... */
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_STRDUP)
|
||||
#define str_alloc(s) strdup(s)
|
||||
#else
|
||||
#define str_alloc(s) strcpy(malloc(strlen(s) + 1, s))
|
||||
#endif
|
||||
|
||||
static void set_value(const char *name, const char *value)
|
||||
{
|
||||
#if defined(HAVE_SETENV)
|
||||
setenv(name, value, 1);
|
||||
#elif defined(HAVE_PUTENV)
|
||||
char buffer[1024];
|
||||
sprintf(buffer, "%s=%s", name, value);
|
||||
putenv(str_alloc(buffer));
|
||||
#else
|
||||
#error neither putenv/setenv found
|
||||
#endif
|
||||
}
|
||||
int main(void)
|
||||
{
|
||||
int pass;
|
||||
size_t numenv, limit, j;
|
||||
char **mynames;
|
||||
char **myvalues;
|
||||
char **mypointer;
|
||||
char *equals;
|
||||
for (numenv = 0; environ[numenv]; ++numenv) ;
|
||||
limit = numenv + 10;
|
||||
mynames = (char **) calloc(limit + 1, sizeof(char *));
|
||||
myvalues = (char **) calloc(limit + 1, sizeof(char *));
|
||||
mypointer = (char **) calloc(limit + 1, sizeof(char *));
|
||||
#if defined(HAVE_ENVIRON)
|
||||
for (j = 0; environ[j]; ++j) {
|
||||
mynames[j] = str_alloc(environ[j]);
|
||||
equals = strchr(mynames[j], '=');
|
||||
if (equals != 0) {
|
||||
*equals++ = '\0';
|
||||
myvalues[j] = str_alloc(equals);
|
||||
} else {
|
||||
myvalues[j] = str_alloc("");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
for (j = numenv; j < limit; ++j) {
|
||||
char name[80];
|
||||
char value[80];
|
||||
size_t found;
|
||||
size_t k = 0;
|
||||
do {
|
||||
size_t jk;
|
||||
found = 0;
|
||||
sprintf(name, "TERM%lu", (unsigned long) k);
|
||||
for (jk = 0; jk < j; ++jk) {
|
||||
if (!strcmp(name, mynames[jk])) {
|
||||
found = 1;
|
||||
++k;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} while (found);
|
||||
sprintf(value, "%lu:%p", (unsigned long) k, &mynames[j]);
|
||||
set_value(name, value);
|
||||
mynames[j] = str_alloc(name);
|
||||
myvalues[j] = str_alloc(value);
|
||||
}
|
||||
for (pass = 0; pass < 3; ++pass) {
|
||||
for (j = 0; j < limit; ++j) {
|
||||
char *value = getenv(mynames[j]);
|
||||
if (pass) {
|
||||
if (value == 0) {
|
||||
fprintf(stderr, "getenv returned null for %s\n", mynames[j]);
|
||||
${cf_cv_main_return:-return}(1);
|
||||
} else if (value != mypointer[j]) {
|
||||
fprintf(stderr, "getenv returned different pointer for %s\n", mynames[j]);
|
||||
${cf_cv_main_return:-return}(1);
|
||||
} else if (strcmp(value, myvalues[j])) {
|
||||
fprintf(stderr, "getenv returned different value for %s\n", mynames[j]);
|
||||
${cf_cv_main_return:-return}(1);
|
||||
}
|
||||
} else {
|
||||
size_t k;
|
||||
mypointer[j] = value;
|
||||
for (k = 0; k < j; ++k) {
|
||||
if (mypointer[j] == mypointer[k]) {
|
||||
fprintf(stderr, "getenv returned same pointer for %s and %s\n", mynames[j], mynames[k]);
|
||||
${cf_cv_main_return:-return}(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
${cf_cv_main_return:-return}(0);
|
||||
}
|
||||
],
|
||||
[cf_cv_consistent_getenv=yes],
|
||||
[cf_cv_consistent_getenv=no],
|
||||
[cf_cv_consistent_getenv=unknown])
|
||||
])
|
||||
|
||||
if test "x$cf_cv_consistent_getenv" = xno
|
||||
then
|
||||
AC_DEFINE(HAVE_CONSISTENT_GETENV,1,[Define to 1 if getenv repeatably returns the same value for a given name])
|
||||
fi
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_CHECK_GPM_WGETCH version: 3 updated: 2017/01/21 11:06:25
|
||||
@ -1253,6 +1408,60 @@ cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
|
||||
fi
|
||||
])
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_CONST_X_STRING version: 1 updated: 2019/04/08 17:50:29
|
||||
dnl -----------------
|
||||
dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most
|
||||
dnl character-strings.
|
||||
dnl
|
||||
dnl It is ambiguous because the specification accommodated the pre-ANSI
|
||||
dnl compilers bundled by more than one vendor in lieu of providing a standard C
|
||||
dnl compiler other than by costly add-ons. Because of this, the specification
|
||||
dnl did not take into account the use of const for telling the compiler that
|
||||
dnl string literals would be in readonly memory.
|
||||
dnl
|
||||
dnl As a workaround, one could (starting with X11R5) define XTSTRINGDEFINES, to
|
||||
dnl let the compiler decide how to represent Xt's strings which were #define'd.
|
||||
dnl That does not solve the problem of using the block of Xt's strings which
|
||||
dnl are compiled into the library (and is less efficient than one might want).
|
||||
dnl
|
||||
dnl Xt specification 7 introduces the _CONST_X_STRING symbol which is used both
|
||||
dnl when compiling the library and compiling using the library, to tell the
|
||||
dnl compiler that String is const.
|
||||
AC_DEFUN([CF_CONST_X_STRING],
|
||||
[
|
||||
AC_TRY_COMPILE(
|
||||
[
|
||||
#include <stdlib.h>
|
||||
#include <X11/Intrinsic.h>
|
||||
],
|
||||
[String foo = malloc(1)],[
|
||||
|
||||
AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
|
||||
AC_TRY_COMPILE(
|
||||
[
|
||||
#define _CONST_X_STRING /* X11R7.8 (perhaps) */
|
||||
#undef XTSTRINGDEFINES /* X11R5 and later */
|
||||
#include <stdlib.h>
|
||||
#include <X11/Intrinsic.h>
|
||||
],[String foo = malloc(1); *foo = 0],[
|
||||
cf_cv_const_x_string=no
|
||||
],[
|
||||
cf_cv_const_x_string=yes
|
||||
])
|
||||
])
|
||||
|
||||
case $cf_cv_const_x_string in
|
||||
(no)
|
||||
CF_APPEND_TEXT(CPPFLAGS,-DXTSTRINGDEFINES)
|
||||
;;
|
||||
(*)
|
||||
CF_APPEND_TEXT(CPPFLAGS,-D_CONST_X_STRING)
|
||||
;;
|
||||
esac
|
||||
|
||||
])
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_CPP_PARAM_INIT version: 7 updated: 2017/01/21 11:06:25
|
||||
dnl -----------------
|
||||
dnl Check if the C++ compiler accepts duplicate parameter initialization. This
|
||||
@ -2343,7 +2552,7 @@ if test "$GCC" = yes ; then
|
||||
fi
|
||||
])dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_GCC_WARNINGS version: 33 updated: 2018/06/20 20:23:13
|
||||
dnl CF_GCC_WARNINGS version: 35 updated: 2019/06/16 09:45:01
|
||||
dnl ---------------
|
||||
dnl Check if the compiler supports useful warning options. There's a few that
|
||||
dnl we don't use, simply because they're too noisy:
|
||||
@ -2367,12 +2576,11 @@ AC_DEFUN([CF_GCC_WARNINGS],
|
||||
AC_REQUIRE([CF_GCC_VERSION])
|
||||
CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
|
||||
CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
|
||||
|
||||
if test "x$have_x" = xyes; then CF_CONST_X_STRING fi
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line __oline__ "${as_me:-configure}"
|
||||
int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
|
||||
EOF
|
||||
|
||||
if test "$INTEL_COMPILER" = yes
|
||||
then
|
||||
# The "-wdXXX" options suppress warnings:
|
||||
@ -2407,7 +2615,6 @@ then
|
||||
fi
|
||||
done
|
||||
CFLAGS="$cf_save_CFLAGS"
|
||||
|
||||
elif test "$GCC" = yes
|
||||
then
|
||||
AC_CHECKING([for $CC warning options])
|
||||
@ -2436,9 +2643,6 @@ then
|
||||
if AC_TRY_EVAL(ac_compile); then
|
||||
test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
|
||||
case $cf_opt in
|
||||
(Wcast-qual)
|
||||
CF_APPEND_TEXT(CPPFLAGS,-DXTSTRINGDEFINES)
|
||||
;;
|
||||
(Winline)
|
||||
case $GCC_VERSION in
|
||||
([[34]].*)
|
||||
@ -6564,12 +6768,12 @@ define([CF_SHARED_SONAME],
|
||||
fi
|
||||
])
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl CF_SIGWINCH version: 1 updated: 2006/04/02 16:41:09
|
||||
dnl CF_SIGWINCH version: 2 updated: 2019/03/23 19:54:44
|
||||
dnl -----------
|
||||
dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
|
||||
dnl programs need this test).
|
||||
dnl
|
||||
dnl This is really a MacOS X 10.4.3 workaround. Defining _POSIX_C_SOURCE
|
||||
dnl This is really a Mac OS X 10.4.3 workaround. Defining _POSIX_C_SOURCE
|
||||
dnl forces SIGWINCH to be undefined (breaks xterm, ncurses). Oddly, the struct
|
||||
dnl winsize declaration is left alone - we may revisit this if Apple choose to
|
||||
dnl break that part of the interface as well.
|
||||
|
||||
89
config.guess
vendored
89
config.guess
vendored
@ -2,7 +2,7 @@
|
||||
# Attempt to guess a canonical system name.
|
||||
# Copyright 1992-2019 Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2019-03-04'
|
||||
timestamp='2019-06-10'
|
||||
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
@ -262,6 +262,9 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
|
||||
*:SolidBSD:*:*)
|
||||
echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
|
||||
exit ;;
|
||||
*:OS108:*:*)
|
||||
echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE"
|
||||
exit ;;
|
||||
macppc:MirBSD:*:*)
|
||||
echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
|
||||
exit ;;
|
||||
@ -1325,38 +1328,39 @@ EOF
|
||||
echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
|
||||
exit ;;
|
||||
*:Darwin:*:*)
|
||||
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
|
||||
set_cc_for_build
|
||||
if test "$UNAME_PROCESSOR" = unknown ; then
|
||||
UNAME_PROCESSOR=powerpc
|
||||
UNAME_PROCESSOR=`uname -p`
|
||||
case $UNAME_PROCESSOR in
|
||||
unknown) UNAME_PROCESSOR=powerpc ;;
|
||||
esac
|
||||
if command -v xcode-select > /dev/null 2> /dev/null && \
|
||||
! xcode-select --print-path > /dev/null 2> /dev/null ; then
|
||||
# Avoid executing cc if there is no toolchain installed as
|
||||
# cc will be a stub that puts up a graphical alert
|
||||
# prompting the user to install developer tools.
|
||||
CC_FOR_BUILD=no_compiler_found
|
||||
else
|
||||
set_cc_for_build
|
||||
fi
|
||||
if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then
|
||||
if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
|
||||
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
|
||||
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
|
||||
grep IS_64BIT_ARCH >/dev/null
|
||||
then
|
||||
case $UNAME_PROCESSOR in
|
||||
i386) UNAME_PROCESSOR=x86_64 ;;
|
||||
powerpc) UNAME_PROCESSOR=powerpc64 ;;
|
||||
esac
|
||||
fi
|
||||
# On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
|
||||
if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
|
||||
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
|
||||
grep IS_PPC >/dev/null
|
||||
then
|
||||
UNAME_PROCESSOR=powerpc
|
||||
fi
|
||||
if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
|
||||
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
|
||||
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
|
||||
grep IS_64BIT_ARCH >/dev/null
|
||||
then
|
||||
case $UNAME_PROCESSOR in
|
||||
i386) UNAME_PROCESSOR=x86_64 ;;
|
||||
powerpc) UNAME_PROCESSOR=powerpc64 ;;
|
||||
esac
|
||||
fi
|
||||
# On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
|
||||
if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
|
||||
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
|
||||
grep IS_PPC >/dev/null
|
||||
then
|
||||
UNAME_PROCESSOR=powerpc
|
||||
fi
|
||||
elif test "$UNAME_PROCESSOR" = i386 ; then
|
||||
# Avoid executing cc on OS X 10.9, as it ships with a stub
|
||||
# that puts up a graphical alert prompting to install
|
||||
# developer tools. Any system running Mac OS X 10.7 or
|
||||
# later (Darwin 11 and later) is required to have a 64-bit
|
||||
# processor. This is not true of the ARM version of Darwin
|
||||
# that Apple uses in portable devices.
|
||||
UNAME_PROCESSOR=x86_64
|
||||
# uname -m returns i386 or x86_64
|
||||
UNAME_PROCESSOR=$UNAME_MACHINE
|
||||
fi
|
||||
echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
|
||||
exit ;;
|
||||
@ -1468,6 +1472,14 @@ cat > "$dummy.c" <<EOF
|
||||
#include <sys/types.h>
|
||||
#include <sys/utsname.h>
|
||||
#endif
|
||||
#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
|
||||
#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
|
||||
#include <signal.h>
|
||||
#if defined(_SIZE_T_) || defined(SIGLOST)
|
||||
#include <sys/utsname.h>
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
main ()
|
||||
{
|
||||
#if defined (sony)
|
||||
@ -1554,19 +1566,24 @@ main ()
|
||||
#else
|
||||
printf ("vax-dec-bsd\n"); exit (0);
|
||||
#endif
|
||||
#else
|
||||
#if defined(_SIZE_T_) || defined(SIGLOST)
|
||||
struct utsname un;
|
||||
uname (&un);
|
||||
printf ("vax-dec-ultrix%s\n", un.release); exit (0);
|
||||
#else
|
||||
printf ("vax-dec-ultrix\n"); exit (0);
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
|
||||
#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
|
||||
#include <signal.h>
|
||||
#if defined(_SIZE_T_) /* >= ULTRIX4 */
|
||||
printf ("mips-dec-ultrix4\n"); exit (0);
|
||||
#if defined(_SIZE_T_) || defined(SIGLOST)
|
||||
struct utsname *un;
|
||||
uname (&un);
|
||||
printf ("mips-dec-ultrix%s\n", un.release); exit (0);
|
||||
#else
|
||||
#if defined(ULTRIX3) || defined(ultrix3) || defined(SIGLOST)
|
||||
printf ("mips-dec-ultrix3\n"); exit (0);
|
||||
#endif
|
||||
printf ("mips-dec-ultrix\n"); exit (0);
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
9
config.sub
vendored
9
config.sub
vendored
@ -2,7 +2,7 @@
|
||||
# Configuration validation subroutine script.
|
||||
# Copyright 1992-2019 Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2019-01-05'
|
||||
timestamp='2019-05-23'
|
||||
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
@ -1172,7 +1172,7 @@ case $cpu-$vendor in
|
||||
| asmjs \
|
||||
| ba \
|
||||
| be32 | be64 \
|
||||
| bfin | bs2000 \
|
||||
| bfin | bpf | bs2000 \
|
||||
| c[123]* | c30 | [cjt]90 | c4x \
|
||||
| c8051 | clipper | craynv | csky | cydra \
|
||||
| d10v | d30v | dlx | dsp16xx \
|
||||
@ -1247,7 +1247,8 @@ case $cpu-$vendor in
|
||||
| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
|
||||
| vax \
|
||||
| visium \
|
||||
| w65 | wasm32 \
|
||||
| w65 \
|
||||
| wasm32 | wasm64 \
|
||||
| we32k \
|
||||
| x86 | x86_64 | xc16x | xgate | xps100 \
|
||||
| xstormy16 | xtensa* \
|
||||
@ -1367,7 +1368,7 @@ case $os in
|
||||
| powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
|
||||
| skyos* | haiku* | rdos* | toppers* | drops* | es* \
|
||||
| onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
|
||||
| midnightbsd* | amdhsa* | unleashed* | emscripten*)
|
||||
| midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi*)
|
||||
# Remember, each alternative MUST END IN *, to match a version number.
|
||||
;;
|
||||
qnx*)
|
||||
|
||||
12
configure.in
12
configure.in
@ -28,14 +28,14 @@ dnl***************************************************************************
|
||||
dnl
|
||||
dnl Author: Thomas E. Dickey 1995-on
|
||||
dnl
|
||||
dnl $Id: configure.in,v 1.679 2019/03/30 21:44:53 tom Exp $
|
||||
dnl $Id: configure.in,v 1.682 2019/06/23 21:26:48 tom Exp $
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
dnl
|
||||
dnl See https://invisible-island.net/autoconf/ for additional information.
|
||||
dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
AC_PREREQ(2.52.20170501)
|
||||
AC_REVISION($Revision: 1.679 $)
|
||||
AC_REVISION($Revision: 1.682 $)
|
||||
AC_INIT(ncurses/base/lib_initscr.c)
|
||||
AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
|
||||
|
||||
@ -1643,6 +1643,14 @@ wctype.h \
|
||||
|
||||
CF_GETOPT_HEADER
|
||||
|
||||
CF_CHECK_ENVIRON(environ)
|
||||
CF_CHECK_GETENV
|
||||
if test "x$cf_cv_consistent_getenv" = xno && \
|
||||
test "x$cf_with_trace" = xyes
|
||||
then
|
||||
AC_MSG_WARN(The NCURSES_TRACE environment variable is not supported with this configuration)
|
||||
fi
|
||||
|
||||
# check for ISC (this may also define _POSIX_SOURCE)
|
||||
# Note: even non-Posix ISC needs <sys/bsdtypes.h> to declare fd_set
|
||||
if test "x$ISC" = xyes ; then
|
||||
|
||||
4
dist.mk
4
dist.mk
@ -25,7 +25,7 @@
|
||||
# use or other dealings in this Software without prior written #
|
||||
# authorization. #
|
||||
##############################################################################
|
||||
# $Id: dist.mk,v 1.1288 2019/06/15 12:46:35 tom Exp $
|
||||
# $Id: dist.mk,v 1.1290 2019/06/23 15:31:40 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 = 20190615
|
||||
NCURSES_PATCH = 20190623
|
||||
|
||||
# We don't append the patch to the version, since this only applies to releases
|
||||
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
|
||||
|
||||
@ -125,7 +125,7 @@
|
||||
</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 20190615).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190623).
|
||||
|
||||
|
||||
|
||||
|
||||
@ -190,7 +190,7 @@
|
||||
</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 20190615).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190623).
|
||||
|
||||
|
||||
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
|
||||
|
||||
@ -148,7 +148,7 @@
|
||||
</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 20190615).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190623).
|
||||
|
||||
|
||||
|
||||
|
||||
@ -246,7 +246,7 @@
|
||||
<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 20190615).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190623).
|
||||
|
||||
|
||||
|
||||
|
||||
@ -481,7 +481,7 @@
|
||||
|
||||
https://invisible-island.net/ncurses/tctest.html
|
||||
|
||||
This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190615).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190623).
|
||||
|
||||
|
||||
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
|
||||
|
||||
@ -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 20190615).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190623).
|
||||
|
||||
|
||||
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
|
||||
|
||||
@ -221,7 +221,7 @@
|
||||
<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 20190615).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190623).
|
||||
|
||||
|
||||
|
||||
|
||||
@ -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 20190615).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190623).
|
||||
|
||||
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
|
||||
|
||||
@ -112,7 +112,7 @@
|
||||
</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 20190615).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190623).
|
||||
|
||||
|
||||
|
||||
|
||||
@ -204,7 +204,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="curs_variables.3x.html">curs_variables(3x)</A></STRONG>,
|
||||
|
||||
This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190615).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190623).
|
||||
|
||||
|
||||
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
|
||||
|
||||
@ -26,7 +26,7 @@
|
||||
* sale, use or other dealings in this Software without prior written *
|
||||
* authorization. *
|
||||
****************************************************************************
|
||||
* @Id: tabs.1,v 1.25 2019/06/15 23:08:12 tom Exp @
|
||||
* @Id: tabs.1,v 1.26 2019/06/23 21:01:12 tom Exp @
|
||||
-->
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
|
||||
<HTML>
|
||||
@ -167,24 +167,28 @@
|
||||
The <STRONG>-d</STRONG> (debug) and <STRONG>-n</STRONG> (no-op) options are extensions not provided by
|
||||
other implementations.
|
||||
|
||||
A <STRONG>tabs</STRONG> utility appeared in PWB/Unix 1.0 (1977), and thereafter in 3BSD
|
||||
(1979). It supported a single "-n" option (to cause the first tab stop
|
||||
A <STRONG>tabs</STRONG> utility appeared in PWB/Unix 1.0 (1977). There was a reduced
|
||||
version of the <STRONG>tabs</STRONG> utility in Unix 7th edition and in 3BSD (1979).
|
||||
The latter supported a single "-n" option (to cause the first tab stop
|
||||
to be set on the left margin). That option is not documented by POSIX.
|
||||
Initially, <STRONG>tabs</STRONG> used built-in tables rather than the terminal database,
|
||||
to support a half-dozen terminal types. It also had built-in logic to
|
||||
support the left-margin, as well as a feature for copying the tab set-
|
||||
tings from a file.
|
||||
|
||||
Later versions of Unix, e.g., SVr4, added support for the terminal
|
||||
database, but kept the tables, as a fallback. In an earlier develop-
|
||||
ment effort, the tab-stop initialization provided by <STRONG>tset</STRONG> (1982) and
|
||||
The PWB/Unix <STRONG>tabs</STRONG> utility, which was included in System III (1980),
|
||||
used built-in tables rather than the terminal database, to support a
|
||||
half-dozen terminal types. It also had built-in logic to support the
|
||||
left-margin, as well as a feature for copying the tab settings from a
|
||||
file.
|
||||
|
||||
Later versions of Unix, e.g., SVr4, added support for the terminal
|
||||
database, but kept the tables, as a fallback. In an earlier develop-
|
||||
ment effort, the tab-stop initialization provided by <STRONG>tset</STRONG> (1982) and
|
||||
incorporated into <STRONG>tput</STRONG> uses the terminal database,
|
||||
|
||||
POSIX documents no limits on the number of tab stops. Documentation
|
||||
POSIX documents no limits on the number of tab stops. Documentation
|
||||
for other implementations states that there is a limit on the number of
|
||||
tab stops. While some terminals may not accept an arbitrary number of
|
||||
tab stops, this implementation will attempt to set tab stops up to the
|
||||
right margin of the screen, if the given list happens to be that long.
|
||||
tab stops (e.g., 20 in PWB/Unix's <STRONG>tabs</STRONG> utility). While some terminals
|
||||
may not accept an arbitrary number of tab stops, this implementation
|
||||
will attempt to set tab stops up to the right margin of the screen, if
|
||||
the given list happens to be that long.
|
||||
|
||||
The <EM>Rationale</EM> section of the POSIX documentation goes into some detail
|
||||
about the ways the committee considered redesigning the <STRONG>tabs</STRONG> and <STRONG>tput</STRONG>
|
||||
@ -201,7 +205,7 @@
|
||||
</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 20190615).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190623).
|
||||
|
||||
|
||||
|
||||
|
||||
@ -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 20190615).
|
||||
<STRONG>ncurses</STRONG> version 6.1 (patch 20190623).
|
||||
|
||||
|
||||
</PRE><H3><a name="h3-Terminfo-Entry-Syntax">Terminfo Entry Syntax</a></H3><PRE>
|
||||
|
||||
@ -365,7 +365,7 @@
|
||||
<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>. <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>.
|
||||
|
||||
This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190615).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190623).
|
||||
|
||||
|
||||
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
|
||||
|
||||
@ -113,7 +113,7 @@
|
||||
<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 20190615).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190623).
|
||||
|
||||
|
||||
|
||||
|
||||
@ -522,7 +522,7 @@
|
||||
</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 20190615).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190623).
|
||||
|
||||
|
||||
|
||||
|
||||
@ -389,7 +389,7 @@
|
||||
<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 20190615).
|
||||
This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190623).
|
||||
|
||||
|
||||
|
||||
|
||||
@ -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 *
|
||||
@ -30,7 +30,7 @@
|
||||
* Author: Thomas Dickey, 2008-on *
|
||||
****************************************************************************/
|
||||
|
||||
/* $Id: nc_mingw.h,v 1.5 2018/06/24 00:06:37 tom Exp $ */
|
||||
/* $Id: nc_mingw.h,v 1.6 2019/06/23 19:55:08 tom Exp $ */
|
||||
|
||||
#ifndef NC_MINGW_H
|
||||
#define NC_MINGW_H 1
|
||||
@ -63,7 +63,7 @@ extern int _nc_gettimeofday(struct timeval *, void *);
|
||||
#define getlogin() "username"
|
||||
|
||||
#undef wcwidth
|
||||
#define wcwidth(ucs) _nc_wcwidth(ucs)
|
||||
#define wcwidth(ucs) _nc_wcwidth((wchar_t)(ucs))
|
||||
extern int _nc_wcwidth(wchar_t);
|
||||
|
||||
#endif /* _WIN32 */
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# $Id: ncurses_defs,v 1.90 2019/04/13 22:52:57 tom Exp $
|
||||
# $Id: ncurses_defs,v 1.91 2019/06/23 15:19:43 tom Exp $
|
||||
##############################################################################
|
||||
# Copyright (c) 2000-2018,2019 Free Software Foundation, Inc. #
|
||||
# #
|
||||
@ -52,6 +52,7 @@ HAVE_BUILTIN_H
|
||||
HAVE_CHGAT 1
|
||||
HAVE_COLOR_CONTENT 1
|
||||
HAVE_COLOR_SET 1
|
||||
HAVE_CONSISTENT_GETENV
|
||||
HAVE_COPYWIN 1
|
||||
HAVE_CURSCR 1
|
||||
HAVE_CURSES_DATA_TABSIZE 1
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
# use or other dealings in this Software without prior written #
|
||||
# authorization. #
|
||||
##############################################################################
|
||||
# $Id: man_db.renames,v 1.53 2019/01/21 09:25:24 tom Exp $
|
||||
# $Id: man_db.renames,v 1.54 2019/06/23 19:12:27 tom Exp $
|
||||
# Manual-page renamings for the man_db program
|
||||
#
|
||||
# Files:
|
||||
@ -171,6 +171,7 @@ user_caps.5 user_caps.5
|
||||
wresize.3x wresize.3ncurses
|
||||
#
|
||||
# Other:
|
||||
tabs.1m tabs.1
|
||||
tack.1m tack.1
|
||||
#
|
||||
getty.1 getty.8
|
||||
|
||||
16
man/tabs.1
16
man/tabs.1
@ -26,7 +26,7 @@
|
||||
.\" authorization. *
|
||||
.\"***************************************************************************
|
||||
.\"
|
||||
.\" $Id: tabs.1,v 1.25 2019/06/15 23:08:12 tom Exp $
|
||||
.\" $Id: tabs.1,v 1.26 2019/06/23 21:01:12 tom Exp $
|
||||
.TH @TABS@ 1 ""
|
||||
.ds n 5
|
||||
.ie \n(.g .ds `` \(lq
|
||||
@ -185,12 +185,15 @@ unlike \fB@TPUT@(1)\fP.
|
||||
The \fB\-d\fP (debug) and \fB\-n\fP (no-op) options are extensions not provided
|
||||
by other implementations.
|
||||
.PP
|
||||
A \fBtabs\fP utility appeared in PWB/Unix 1.0 (1977),
|
||||
and thereafter in 3BSD (1979).
|
||||
It supported a single \*(``\-n\*('' option
|
||||
A \fBtabs\fP utility appeared in PWB/Unix 1.0 (1977).
|
||||
There was a reduced version of the \fBtabs\fP utility
|
||||
in Unix 7th edition and in 3BSD (1979).
|
||||
The latter supported a single \*(``\-n\*('' option
|
||||
(to cause the first tab stop to be set on the left margin).
|
||||
That option is not documented by POSIX.
|
||||
Initially, \fBtabs\fP used built-in tables rather than the terminal database,
|
||||
.PP
|
||||
The PWB/Unix \fBtabs\fP utility, which was included in System III (1980),
|
||||
used built-in tables rather than the terminal database,
|
||||
to support a half-dozen terminal types.
|
||||
It also had built-in logic to support the left-margin,
|
||||
as well as a feature for copying the tab settings from a file.
|
||||
@ -204,7 +207,8 @@ and incorporated into \fBtput\fP uses the terminal database,
|
||||
.PP
|
||||
POSIX documents no limits on the number of tab stops.
|
||||
Documentation for other implementations states that there is a limit on the
|
||||
number of tab stops.
|
||||
number of tab stops
|
||||
(e.g., 20 in PWB/Unix's \fBtabs\fP utility).
|
||||
While some terminals may not accept an arbitrary number
|
||||
of tab stops, this implementation will attempt to set tab stops up to the
|
||||
right margin of the screen, if the given list happens to be that long.
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 1998-2016,2017 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 1998-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 *
|
||||
@ -29,7 +29,7 @@
|
||||
/****************************************************************************
|
||||
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
|
||||
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
|
||||
* and: Thomas E. Dickey 1996-2003 *
|
||||
* and: Thomas E. Dickey 1996-on *
|
||||
****************************************************************************/
|
||||
|
||||
/*
|
||||
@ -45,7 +45,7 @@
|
||||
#include <sys/termio.h> /* needed for ISC */
|
||||
#endif
|
||||
|
||||
MODULE_ID("$Id: lib_initscr.c,v 1.43 2017/06/17 18:42:45 tom Exp $")
|
||||
MODULE_ID("$Id: lib_initscr.c,v 1.44 2019/06/22 00:02:01 tom Exp $")
|
||||
|
||||
NCURSES_EXPORT(WINDOW *)
|
||||
initscr(void)
|
||||
@ -60,14 +60,18 @@ initscr(void)
|
||||
|
||||
/* Portable applications must not call initscr() more than once */
|
||||
if (!_nc_globals.init_screen) {
|
||||
NCURSES_CONST char *name;
|
||||
const char *env;
|
||||
char *name;
|
||||
|
||||
_nc_globals.init_screen = TRUE;
|
||||
|
||||
if ((name = getenv("TERM")) == 0
|
||||
|| *name == '\0') {
|
||||
static char unknown_name[] = "unknown";
|
||||
name = unknown_name;
|
||||
if ((env = getenv("TERM")) == 0
|
||||
|| *env == '\0') {
|
||||
env = "unknown";
|
||||
}
|
||||
if ((name = strdup(env)) == NULL) {
|
||||
fprintf(stderr, "Error opening allocating $TERM.\n");
|
||||
ExitProgram(EXIT_FAILURE);
|
||||
}
|
||||
#ifdef __CYGWIN__
|
||||
/*
|
||||
@ -97,6 +101,7 @@ initscr(void)
|
||||
#else
|
||||
def_prog_mode();
|
||||
#endif
|
||||
free(name);
|
||||
}
|
||||
result = stdscr;
|
||||
_nc_unlock_global(curses);
|
||||
|
||||
@ -34,7 +34,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
/*
|
||||
* $Id: curses.priv.h,v 1.623 2019/06/01 23:41:36 tom Exp $
|
||||
* $Id: curses.priv.h,v 1.624 2019/06/23 15:20:49 tom Exp $
|
||||
*
|
||||
* curses.priv.h
|
||||
*
|
||||
@ -1766,12 +1766,16 @@ extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
|
||||
#define TPUTS_TRACE(s) _nc_tputs_trace = s;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_CONSISTENT_GETENV
|
||||
#define START_TRACE() \
|
||||
if ((_nc_tracing & TRACE_MAXIMUM) == 0) { \
|
||||
int t = _nc_getenv_num("NCURSES_TRACE"); \
|
||||
if (t >= 0) \
|
||||
trace((unsigned) t); \
|
||||
}
|
||||
#else
|
||||
#define START_TRACE() /* nothing */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Many of the _tracef() calls use static buffers; lock the trace state before
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
#define CUR SP_TERMTYPE
|
||||
#endif
|
||||
|
||||
MODULE_ID("$Id: lib_acs.c,v 1.48 2019/05/04 23:03:08 tom Exp $")
|
||||
MODULE_ID("$Id: lib_acs.c,v 1.49 2019/06/23 16:22:10 tom Exp $")
|
||||
|
||||
#if BROKEN_LINKER || USE_REENTRANT
|
||||
#define MyBuffer _nc_prescreen.real_acs_map
|
||||
@ -317,7 +317,7 @@ _nc_wacs_width(unsigned ch)
|
||||
result = 1;
|
||||
break;
|
||||
default:
|
||||
result = (wcwidth) (ch);
|
||||
result = wcwidth(ch);
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
|
||||
@ -48,7 +48,7 @@
|
||||
#include <locale.h>
|
||||
#endif
|
||||
|
||||
MODULE_ID("$Id: lib_setup.c,v 1.199 2019/03/23 23:42:20 tom Exp $")
|
||||
MODULE_ID("$Id: lib_setup.c,v 1.200 2019/06/22 00:15:32 tom Exp $")
|
||||
|
||||
/****************************************************************************
|
||||
*
|
||||
@ -628,6 +628,7 @@ TINFO_SETUP_TERM(TERMINAL **tp,
|
||||
#endif
|
||||
TERMINAL *termp;
|
||||
SCREEN *sp = 0;
|
||||
char *myname;
|
||||
int code = ERR;
|
||||
|
||||
START_TRACE();
|
||||
@ -656,14 +657,15 @@ TINFO_SETUP_TERM(TERMINAL **tp,
|
||||
#endif
|
||||
}
|
||||
}
|
||||
myname = strdup(tname);
|
||||
|
||||
if (strlen(tname) > MAX_NAME_SIZE) {
|
||||
if (strlen(myname) > MAX_NAME_SIZE) {
|
||||
ret_error(TGETENT_ERR,
|
||||
"TERM environment must be <= %d characters.\n",
|
||||
MAX_NAME_SIZE);
|
||||
}
|
||||
|
||||
T(("your terminal name is %s", tname));
|
||||
T(("your terminal name is %s", myname));
|
||||
|
||||
/*
|
||||
* Allow output redirection. This is what SVr3 does. If stdout is
|
||||
@ -692,8 +694,8 @@ TINFO_SETUP_TERM(TERMINAL **tp,
|
||||
&& (termp != 0)
|
||||
&& termp->Filedes == Filedes
|
||||
&& termp->_termname != 0
|
||||
&& !strcmp(termp->_termname, tname)
|
||||
&& _nc_name_match(TerminalType(termp).term_names, tname, "|")) {
|
||||
&& !strcmp(termp->_termname, myname)
|
||||
&& _nc_name_match(TerminalType(termp).term_names, myname, "|")) {
|
||||
T(("reusing existing terminal information and mode-settings"));
|
||||
code = OK;
|
||||
#ifdef USE_TERM_DRIVER
|
||||
@ -735,17 +737,17 @@ TINFO_SETUP_TERM(TERMINAL **tp,
|
||||
#ifdef USE_TERM_DRIVER
|
||||
INIT_TERM_DRIVER();
|
||||
TCB = (TERMINAL_CONTROL_BLOCK *) termp;
|
||||
code = _nc_globals.term_driver(TCB, tname, errret);
|
||||
code = _nc_globals.term_driver(TCB, myname, errret);
|
||||
if (code == OK) {
|
||||
termp->Filedes = (short) Filedes;
|
||||
termp->_termname = strdup(tname);
|
||||
termp->_termname = strdup(myname);
|
||||
} else {
|
||||
ret_error0(errret ? *errret : TGETENT_ERR,
|
||||
"Could not find any driver to handle this terminal.\n");
|
||||
}
|
||||
#else
|
||||
#if NCURSES_USE_DATABASE || NCURSES_USE_TERMCAP
|
||||
status = _nc_setup_tinfo(tname, &TerminalType(termp));
|
||||
status = _nc_setup_tinfo(myname, &TerminalType(termp));
|
||||
T(("_nc_setup_tinfo returns %d", status));
|
||||
#else
|
||||
T(("no database available"));
|
||||
@ -754,7 +756,7 @@ TINFO_SETUP_TERM(TERMINAL **tp,
|
||||
|
||||
/* try fallback list if entry on disk */
|
||||
if (status != TGETENT_YES) {
|
||||
const TERMTYPE2 *fallback = _nc_fallback2(tname);
|
||||
const TERMTYPE2 *fallback = _nc_fallback2(myname);
|
||||
|
||||
if (fallback) {
|
||||
T(("found fallback entry"));
|
||||
@ -768,7 +770,7 @@ TINFO_SETUP_TERM(TERMINAL **tp,
|
||||
if (status == TGETENT_ERR) {
|
||||
ret_error0(status, "terminals database is inaccessible\n");
|
||||
} else if (status == TGETENT_NO) {
|
||||
ret_error1(status, "unknown terminal type.\n", tname);
|
||||
ret_error1(status, "unknown terminal type.\n", myname);
|
||||
}
|
||||
}
|
||||
#if NCURSES_EXT_NUMBERS
|
||||
@ -779,7 +781,7 @@ TINFO_SETUP_TERM(TERMINAL **tp,
|
||||
#endif
|
||||
|
||||
termp->Filedes = (short) Filedes;
|
||||
termp->_termname = strdup(tname);
|
||||
termp->_termname = strdup(myname);
|
||||
|
||||
set_curterm(termp);
|
||||
|
||||
@ -826,15 +828,16 @@ TINFO_SETUP_TERM(TERMINAL **tp,
|
||||
if ((VALID_STRING(cursor_address)
|
||||
|| (VALID_STRING(cursor_down) && VALID_STRING(cursor_home)))
|
||||
&& VALID_STRING(clear_screen)) {
|
||||
ret_error1(TGETENT_YES, "terminal is not really generic.\n", tname);
|
||||
ret_error1(TGETENT_YES, "terminal is not really generic.\n", myname);
|
||||
} else {
|
||||
del_curterm(termp);
|
||||
ret_error1(TGETENT_NO, "I need something more specific.\n", tname);
|
||||
ret_error1(TGETENT_NO, "I need something more specific.\n", myname);
|
||||
}
|
||||
} else if (hard_copy) {
|
||||
ret_error1(TGETENT_YES, "I can't handle hardcopy terminals.\n", tname);
|
||||
ret_error1(TGETENT_YES, "I can't handle hardcopy terminals.\n", myname);
|
||||
}
|
||||
#endif
|
||||
free(myname);
|
||||
returnCode(code);
|
||||
}
|
||||
|
||||
|
||||
@ -84,7 +84,7 @@
|
||||
|
||||
#include <ctype.h>
|
||||
|
||||
MODULE_ID("$Id: tty_update.c,v 1.303 2019/06/01 23:42:36 tom Exp $")
|
||||
MODULE_ID("$Id: tty_update.c,v 1.304 2019/06/23 16:22:17 tom Exp $")
|
||||
|
||||
/*
|
||||
* This define controls the line-breakout optimization. Every once in a
|
||||
@ -210,7 +210,7 @@ GoTo(NCURSES_SP_DCLx int const row, int const col)
|
||||
}
|
||||
|
||||
#if !NCURSES_WCWIDTH_GRAPHICS
|
||||
#define is_wacs_value(ch) (_nc_wacs_width(ch) == 1 && (wcwidth)(ch) > 1)
|
||||
#define is_wacs_value(ch) (_nc_wacs_width(ch) == 1 && wcwidth(ch) > 1)
|
||||
#endif /* !NCURSES_WCWIDTH_GRAPHICS */
|
||||
|
||||
static NCURSES_INLINE void
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
ncurses6 (6.1+20190615) unstable; urgency=low
|
||||
ncurses6 (6.1+20190623) unstable; urgency=low
|
||||
|
||||
* latest weekly patch
|
||||
|
||||
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 15 Jun 2019 08:46:35 -0400
|
||||
-- Thomas E. Dickey <dickey@invisible-island.net> Sun, 23 Jun 2019 11:31:40 -0400
|
||||
|
||||
ncurses6 (5.9-20131005) unstable; urgency=low
|
||||
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
ncurses6 (6.1+20190615) unstable; urgency=low
|
||||
ncurses6 (6.1+20190623) unstable; urgency=low
|
||||
|
||||
* latest weekly patch
|
||||
|
||||
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 15 Jun 2019 08:46:35 -0400
|
||||
-- Thomas E. Dickey <dickey@invisible-island.net> Sun, 23 Jun 2019 11:31:40 -0400
|
||||
|
||||
ncurses6 (5.9-20131005) unstable; urgency=low
|
||||
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
ncurses6 (6.1+20190615) unstable; urgency=low
|
||||
ncurses6 (6.1+20190623) unstable; urgency=low
|
||||
|
||||
* latest weekly patch
|
||||
|
||||
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 15 Jun 2019 08:46:35 -0400
|
||||
-- Thomas E. Dickey <dickey@invisible-island.net> Sun, 23 Jun 2019 11:31:40 -0400
|
||||
|
||||
ncurses6 (5.9-20120608) unstable; urgency=low
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
; $Id: mingw-ncurses.nsi,v 1.334 2019/06/15 12:46:35 tom Exp $
|
||||
; $Id: mingw-ncurses.nsi,v 1.336 2019/06/23 15:31:40 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 "2019"
|
||||
!define VERSION_MMDD "0615"
|
||||
!define VERSION_MMDD "0623"
|
||||
!define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
|
||||
|
||||
!define MY_ABI "5"
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
Summary: shared libraries for terminal handling
|
||||
Name: mingw32-ncurses6
|
||||
Version: 6.1
|
||||
Release: 20190615
|
||||
Release: 20190623
|
||||
License: X11
|
||||
Group: Development/Libraries
|
||||
Source: ncurses-%{version}-%{release}.tgz
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
Summary: shared libraries for terminal handling
|
||||
Name: ncurses6
|
||||
Version: 6.1
|
||||
Release: 20190615
|
||||
Release: 20190623
|
||||
License: X11
|
||||
Group: Development/Libraries
|
||||
Source: ncurses-%{version}-%{release}.tgz
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
Summary: Curses library with POSIX thread support.
|
||||
Name: ncursest6
|
||||
Version: 6.1
|
||||
Release: 20190615
|
||||
Release: 20190623
|
||||
License: X11
|
||||
Group: Development/Libraries
|
||||
Source: ncurses-%{version}-%{release}.tgz
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/****************************************************************************
|
||||
* Copyright (c) 2015-2016,2017 Free Software Foundation, Inc. *
|
||||
* Copyright (c) 2015-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 *
|
||||
@ -29,7 +29,7 @@
|
||||
/*
|
||||
* Author: Thomas E. Dickey
|
||||
*
|
||||
* $Id: test_sgr.c,v 1.11 2017/06/24 18:35:25 tom Exp $
|
||||
* $Id: test_sgr.c,v 1.12 2019/06/22 00:20:06 tom Exp $
|
||||
*
|
||||
* A simple demo of the sgr/sgr0 terminal capabilities.
|
||||
*/
|
||||
@ -182,22 +182,23 @@ brute_force(const char *name)
|
||||
char *my_bold;
|
||||
char *my_revs;
|
||||
char *my_smso;
|
||||
char *my_name = strdup(name);
|
||||
|
||||
if (db_list) {
|
||||
putenv(next_dbitem());
|
||||
}
|
||||
|
||||
if (!q_opt)
|
||||
printf("Terminal type \"%s\"\n", name);
|
||||
printf("Terminal type \"%s\"\n", my_name);
|
||||
|
||||
if (no_init) {
|
||||
START_TRACE();
|
||||
} else {
|
||||
setupterm((NCURSES_CONST char *) name, 1, (int *) 0);
|
||||
setupterm((NCURSES_CONST char *) my_name, 1, (int *) 0);
|
||||
}
|
||||
|
||||
if (!q_opt) {
|
||||
if (strcmp(name, ttytype))
|
||||
if (strcmp(my_name, ttytype))
|
||||
printf("... actual \"%s\"\n", ttytype);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user