dnl
dnl Author: Thomas E. Dickey
dnl
-dnl $Id: aclocal.m4,v 1.158 2020/07/04 23:32:09 tom Exp $
+dnl $Id: aclocal.m4,v 1.159 2020/07/11 23:11:37 tom Exp $
dnl Macros used in NCURSES Ada95 auto-configuration script.
dnl
dnl These macros are maintained separately from NCURSES. The copyright on
done
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_SHARED_OPTS version: 96 updated: 2020/05/23 19:39:36
+dnl CF_SHARED_OPTS version: 97 updated: 2020/07/11 19:09:29
dnl --------------
dnl --------------
dnl Attempt to determine the appropriate CC/LD options for creating a shared
# Ignore first argument (compiler) and use LD (link.exe) unconditionally
LD="[$]LD"
clopts=()
- ldopts=()
+ ldopts=("/subsystem:console")
libs=()
isdll=0
while test \[$]# -gt 0; do
# Ignore first argument (compiler) and use LD (link.exe) unconditionally
LD="$LD"
clopts=()
- ldopts=()
+ ldopts=("/subsystem:console")
libs=()
isdll=0
while test \$# -gt 0; do
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: NEWS,v 1.3514 2020/07/04 23:28:53 tom Exp $
+-- $Id: NEWS,v 1.3519 2020/07/11 23:21:07 tom Exp $
-------------------------------------------------------------------------------
This is a log of changes that ncurses has gone through since Zeyd started
Changes through 1.9.9e did not credit all contributions;
it is not possible to add this information.
+20200711
+ + fix pound-sign mapping in acsc of linux2.6 entry (report by Ingo
+ Bruckl).
+ + additional changes for building with Visual Studio C++ and msys2
+ (reports/patches by "Maarten Anonymous")
+ + build-improvements for Windows 10 and MinGW (patch by Juergen
+ Pfeifer).
+ + fix a typo in curs_printw.3x (patch by William Pursell).
+ + fix two errors in infotocap which allowed indexing outside the
+ buffer (report/testcases by Zhang Gan).
+ + update length of strings in infocmp's usage function to restore a
+ trailing null on the longest string (report/testcase by Zhang Gen).
+
20200704
+ modify version-check with Ada generics to use the same pattern as in
the check for supported gnat versions (report by Pascal Pignard).
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: README.MinGW,v 1.10 2020/02/02 23:34:34 tom Exp $
+-- $Id: README.MinGW,v 1.11 2020/07/11 13:31:30 juergen Exp $
-- Author: Juergen Pfeifer
-------------------------------------------------------------------------------
in order to parse the terminfo paths correctly. Terminfo paths should
always be separated by a seeeemicolon,even when running under MSYS.
-To support regular expressions properly, ncurses under MinGW should be
-linked against the gnurx regex library, which must be built separately
-under MinGW. See
-
- ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/libgnurx-src-2.5.zip
-
All the options above are - like the whole Windows support -
experimental.
- Workarounds for MinGW's filesystem access are necessary to make infocmp
work (though tic works).
-To support terminfo, we would need to have an ioctl() simulation for the
-serial and networked terminals.
+Recent Windows 10 releases have a new Console implementation that supports
+ANSI-style terminal emulation. Also, there is a new "Windows Terminal" App
+from Microsoft that hosts the new Console in a tabbed user interface. With
+this, it is possble to try using terminfo, the TERM environment varianle
+should be set to ms-terminal.
+
-5:0:10 6.2 20200704
+5:0:10 6.2 20200711
dnl
dnl Author: Thomas E. Dickey 1995-on
dnl
-dnl $Id: aclocal.m4,v 1.916 2020/07/04 23:31:15 tom Exp $
+dnl $Id: aclocal.m4,v 1.920 2020/07/11 23:10:46 tom Exp $
dnl Macros used in NCURSES auto-configuration script.
dnl
dnl These macros are maintained separately from NCURSES. The copyright on
test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_REGEX version: 13 updated: 2020/03/10 18:53:47
+dnl CF_REGEX version: 14 updated: 2020/07/11 19:09:29
dnl --------
dnl Attempt to determine if we've got one of the flavors of regular-expression
dnl code that we can support.
cf_regex_libs="regex re"
case $host_os in
(mingw*)
- cf_regex_libs="gnurx $cf_regex_libs"
+ cf_regex_libs="systre gnurx $cf_regex_libs"
;;
esac
done
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_SHARED_OPTS version: 96 updated: 2020/05/23 19:39:36
+dnl CF_SHARED_OPTS version: 97 updated: 2020/07/11 19:09:29
dnl --------------
dnl --------------
dnl Attempt to determine the appropriate CC/LD options for creating a shared
# Ignore first argument (compiler) and use LD (link.exe) unconditionally
LD="[$]LD"
clopts=()
- ldopts=()
+ ldopts=("/subsystem:console")
libs=()
isdll=0
while test \[$]# -gt 0; do
#! /bin/sh
-# From configure.in Revision: 1.709 .
+# From configure.in Revision: 1.711 .
# Guess values for system-dependent variables and create Makefiles.
# Generated by Autoconf 2.52.20200111.
#
# Ignore first argument (compiler) and use LD (link.exe) unconditionally
LD="$LD"
clopts=()
- ldopts=()
+ ldopts=("/subsystem:console")
libs=()
isdll=0
while test \$# -gt 0; do
cf_regex_libs="regex re"
case $host_os in
(mingw*)
- cf_regex_libs="gnurx $cf_regex_libs"
+ cf_regex_libs="systre gnurx $cf_regex_libs"
;;
esac
fi
WITH_OVERWRITE=$with_overwrite
+### At least on MinGW a shared library build without libtool
+### requires adding the additional libs to the link list.
+case $cf_cv_system_name in
+(*mingw32*|*mingw64*)
+ if test "$DFT_LWR_MODEL" != "libtool"; then
+ SHLIB_LIST="$SHLIB_LIST ${LIBS}"
+ fi
+ ;;
+*) ;;
+esac
+
# used to separate tack out of the tree
NCURSES_TREE=
# pkgsrc uses these
-echo "$as_me:26169: checking for desired basename for form library" >&5
+echo "$as_me:26180: checking for desired basename for form library" >&5
echo $ECHO_N "checking for desired basename for form library... $ECHO_C" >&6
# Check whether --with-form-libname or --without-form-libname was given.
;;
esac
-echo "$as_me:26189: result: $FORM_NAME" >&5
+echo "$as_me:26200: result: $FORM_NAME" >&5
echo "${ECHO_T}$FORM_NAME" >&6
-echo "$as_me:26192: checking for desired basename for menu library" >&5
+echo "$as_me:26203: checking for desired basename for menu library" >&5
echo $ECHO_N "checking for desired basename for menu library... $ECHO_C" >&6
# Check whether --with-menu-libname or --without-menu-libname was given.
;;
esac
-echo "$as_me:26212: result: $MENU_NAME" >&5
+echo "$as_me:26223: result: $MENU_NAME" >&5
echo "${ECHO_T}$MENU_NAME" >&6
-echo "$as_me:26215: checking for desired basename for panel library" >&5
+echo "$as_me:26226: checking for desired basename for panel library" >&5
echo $ECHO_N "checking for desired basename for panel library... $ECHO_C" >&6
# Check whether --with-panel-libname or --without-panel-libname was given.
;;
esac
-echo "$as_me:26235: result: $PANEL_NAME" >&5
+echo "$as_me:26246: result: $PANEL_NAME" >&5
echo "${ECHO_T}$PANEL_NAME" >&6
-echo "$as_me:26238: checking for desired basename for cxx library" >&5
+echo "$as_me:26249: checking for desired basename for cxx library" >&5
echo $ECHO_N "checking for desired basename for cxx library... $ECHO_C" >&6
# Check whether --with-cxx-libname or --without-cxx-libname was given.
;;
esac
-echo "$as_me:26258: result: $CXX_NAME" >&5
+echo "$as_me:26269: result: $CXX_NAME" >&5
echo "${ECHO_T}$CXX_NAME" >&6
### Construct the list of subdirectories for which we'll customize makefiles
### with the appropriate compile-rules.
-echo "$as_me:26264: checking for src modules" >&5
+echo "$as_me:26275: checking for src modules" >&5
echo $ECHO_N "checking for src modules... $ECHO_C" >&6
# dependencies and linker-arguments for test-programs
fi
fi
done
-echo "$as_me:26333: result: $cf_cv_src_modules" >&5
+echo "$as_me:26344: result: $cf_cv_src_modules" >&5
echo "${ECHO_T}$cf_cv_src_modules" >&6
TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
(*-D_XOPEN_SOURCE_EXTENDED*)
test -n "$verbose" && echo " moving _XOPEN_SOURCE_EXTENDED to work around g++ problem" 1>&6
-echo "${as_me:-configure}:26594: testing moving _XOPEN_SOURCE_EXTENDED to work around g++ problem ..." 1>&5
+echo "${as_me:-configure}:26605: testing moving _XOPEN_SOURCE_EXTENDED to work around g++ problem ..." 1>&5
CFLAGS="$CFLAGS -D_XOPEN_SOURCE_EXTENDED"
CPPFLAGS=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/-D_XOPEN_SOURCE_EXTENDED//'`
# Help to automatically enable the extended curses features when using either
# the *-config or the ".pc" files by adding defines.
-echo "$as_me:26605: checking for defines to add to ncurses${USE_CFG_SUFFIX}-config script" >&5
+echo "$as_me:26616: checking for defines to add to ncurses${USE_CFG_SUFFIX}-config script" >&5
echo $ECHO_N "checking for defines to add to ncurses${USE_CFG_SUFFIX}-config script... $ECHO_C" >&6
PKG_CFLAGS=
for cf_loop1 in $CPPFLAGS_after_XOPEN
done
test "$cf_found" = no && PKG_CFLAGS="$PKG_CFLAGS $cf_loop1"
done
-echo "$as_me:26621: result: $PKG_CFLAGS" >&5
+echo "$as_me:26632: result: $PKG_CFLAGS" >&5
echo "${ECHO_T}$PKG_CFLAGS" >&6
# AC_CHECK_SIZEOF demands a literal parameter, no variables. So we do this.
cf_filter_syms=$cf_dft_filter_syms
test -n "$verbose" && echo " will map symbols to ABI=$cf_cv_abi_version" 1>&6
-echo "${as_me:-configure}:26682: testing will map symbols to ABI=$cf_cv_abi_version ..." 1>&5
+echo "${as_me:-configure}:26693: testing will map symbols to ABI=$cf_cv_abi_version ..." 1>&5
fi
# This is used for the *-config script and *.pc data files.
-echo "$as_me:26709: checking for linker search path" >&5
+echo "$as_me:26720: checking for linker search path" >&5
echo $ECHO_N "checking for linker search path... $ECHO_C" >&6
if test "${cf_cv_ld_searchpath+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$cf_cv_ld_searchpath" && cf_cv_ld_searchpath=/usr/lib
fi
-echo "$as_me:26773: result: $cf_cv_ld_searchpath" >&5
+echo "$as_me:26784: result: $cf_cv_ld_searchpath" >&5
echo "${ECHO_T}$cf_cv_ld_searchpath" >&6
LD_SEARCHPATH=`echo "$cf_cv_ld_searchpath"|sed -e 's/ /|/g'`
: ${CONFIG_STATUS=./config.status}
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:26863: creating $CONFIG_STATUS" >&5
+{ echo "$as_me:26874: creating $CONFIG_STATUS" >&5
echo "$as_me: creating $CONFIG_STATUS" >&6;}
cat >$CONFIG_STATUS <<_ACEOF
#! $SHELL
echo "$ac_cs_version"; exit 0 ;;
--he | --h)
# Conflict between --help and --header
- { { echo "$as_me:27039: error: ambiguous option: $1
+ { { echo "$as_me:27050: error: ambiguous option: $1
Try \`$0 --help' for more information." >&5
echo "$as_me: error: ambiguous option: $1
Try \`$0 --help' for more information." >&2;}
ac_need_defaults=false;;
# This is an error.
- -*) { { echo "$as_me:27058: error: unrecognized option: $1
+ -*) { { echo "$as_me:27069: error: unrecognized option: $1
Try \`$0 --help' for more information." >&5
echo "$as_me: error: unrecognized option: $1
Try \`$0 --help' for more information." >&2;}
"Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
"include/ncurses_cfg.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/ncurses_cfg.h:include/ncurses_cfg.hin" ;;
- *) { { echo "$as_me:27181: error: invalid argument: $ac_config_target" >&5
+ *) { { echo "$as_me:27192: error: invalid argument: $ac_config_target" >&5
echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
{ (exit 1); exit 1; }; };;
esac
esac
if test x"$ac_file" != x-; then
- { echo "$as_me:27680: creating $ac_file" >&5
+ { echo "$as_me:27691: creating $ac_file" >&5
echo "$as_me: creating $ac_file" >&6;}
rm -f "$ac_file"
fi
-) echo $tmp/stdin ;;
[\\/$]*)
# Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:27698: error: cannot find input file: $f" >&5
+ test -f "$f" || { { echo "$as_me:27709: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
echo $f;;
echo $srcdir/$f
else
# /dev/null tree
- { { echo "$as_me:27711: error: cannot find input file: $f" >&5
+ { { echo "$as_me:27722: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
fi;;
if test -n "$ac_seen"; then
ac_used=`grep '@datarootdir@' $ac_item`
if test -z "$ac_used"; then
- { echo "$as_me:27727: WARNING: datarootdir was used implicitly but not set:
+ { echo "$as_me:27738: WARNING: datarootdir was used implicitly but not set:
$ac_seen" >&5
echo "$as_me: WARNING: datarootdir was used implicitly but not set:
$ac_seen" >&2;}
fi
ac_seen=`grep '${datarootdir}' $ac_item`
if test -n "$ac_seen"; then
- { echo "$as_me:27736: WARNING: datarootdir was used explicitly but not set:
+ { echo "$as_me:27747: WARNING: datarootdir was used explicitly but not set:
$ac_seen" >&5
echo "$as_me: WARNING: datarootdir was used explicitly but not set:
$ac_seen" >&2;}
ac_init=`egrep '[ ]*'$ac_name'[ ]*=' $ac_file`
if test -z "$ac_init"; then
ac_seen=`echo "$ac_seen" |sed -e 's,^,'$ac_file':,'`
- { echo "$as_me:27773: WARNING: Variable $ac_name is used but was not set:
+ { echo "$as_me:27784: WARNING: Variable $ac_name is used but was not set:
$ac_seen" >&5
echo "$as_me: WARNING: Variable $ac_name is used but was not set:
$ac_seen" >&2;}
egrep -n '@[A-Z_][A-Z_0-9]+@' $ac_file >>$tmp/out
if test -s $tmp/out; then
ac_seen=`sed -e 's,^,'$ac_file':,' < $tmp/out`
- { echo "$as_me:27784: WARNING: Some variables may not be substituted:
+ { echo "$as_me:27795: WARNING: Some variables may not be substituted:
$ac_seen" >&5
echo "$as_me: WARNING: Some variables may not be substituted:
$ac_seen" >&2;}
* ) ac_file_in=$ac_file.in ;;
esac
- test x"$ac_file" != x- && { echo "$as_me:27833: creating $ac_file" >&5
+ test x"$ac_file" != x- && { echo "$as_me:27844: creating $ac_file" >&5
echo "$as_me: creating $ac_file" >&6;}
# First look for the input files in the build tree, otherwise in the
-) echo $tmp/stdin ;;
[\\/$]*)
# Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:27844: error: cannot find input file: $f" >&5
+ test -f "$f" || { { echo "$as_me:27855: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
echo $f;;
echo $srcdir/$f
else
# /dev/null tree
- { { echo "$as_me:27857: error: cannot find input file: $f" >&5
+ { { echo "$as_me:27868: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
fi;;
rm -f $tmp/in
if test x"$ac_file" != x-; then
if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
- { echo "$as_me:27915: $ac_file is unchanged" >&5
+ { echo "$as_me:27926: $ac_file is unchanged" >&5
echo "$as_me: $ac_file is unchanged" >&6;}
else
ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
(cygdll|msysdll|mingw|msvcdll)
test "x$with_shared_cxx" = xno && test -n "$verbose" && echo " overriding CXX_MODEL to SHARED" 1>&6
-echo "${as_me:-configure}:28302: testing overriding CXX_MODEL to SHARED ..." 1>&5
+echo "${as_me:-configure}:28313: testing overriding CXX_MODEL to SHARED ..." 1>&5
with_shared_cxx=yes
;;
dnl
dnl Author: Thomas E. Dickey 1995-on
dnl
-dnl $Id: configure.in,v 1.709 2020/05/31 20:04:09 tom Exp $
+dnl $Id: configure.in,v 1.711 2020/07/11 20:18:40 tom Exp $
dnl Process this file with autoconf to produce a configure script.
dnl
dnl For additional information, see
dnl
dnl ---------------------------------------------------------------------------
AC_PREREQ(2.52.20200111)
-AC_REVISION($Revision: 1.709 $)
+AC_REVISION($Revision: 1.711 $)
AC_INIT(ncurses/base/lib_initscr.c)
AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
fi
WITH_OVERWRITE=$with_overwrite
+### At least on MinGW a shared library build without libtool
+### requires adding the additional libs to the link list.
+case $cf_cv_system_name in
+(*mingw32*|*mingw64*)
+ if test "$DFT_LWR_MODEL" != "libtool"; then
+ SHLIB_LIST="$SHLIB_LIST ${LIBS}"
+ fi
+ ;;
+*) ;;
+esac
+
AC_SUBST(WITH_OVERWRITE)
AC_SUBST(TICS_LIST)
AC_SUBST(TINFO_LIST)
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: dist.mk,v 1.1359 2020/07/04 13:08:52 tom Exp $
+# $Id: dist.mk,v 1.1360 2020/07/11 08:26:05 tom Exp $
# Makefile for creating ncurses distributions.
#
# This only needs to be used directly as a makefile by developers, but
# These define the major/minor/patch versions of ncurses.
NCURSES_MAJOR = 6
NCURSES_MINOR = 2
-NCURSES_PATCH = 20200704
+NCURSES_PATCH = 20200711
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
* Author: Thomas Dickey, 2008-on *
****************************************************************************/
-/* $Id: nc_mingw.h,v 1.8 2020/02/29 15:46:00 anonymous.maarten Exp $ */
+/* $Id: nc_mingw.h,v 1.9 2020/07/11 22:13:19 tom Exp $ */
#ifndef NC_MINGW_H
#define NC_MINGW_H 1
#ifdef _WIN32
+
#ifdef WINVER
# if WINVER < 0x0501
# error WINVER must at least be 0x0501
#include <sys/time.h> /* for struct timeval */
#endif
-extern int _nc_gettimeofday(struct timeval *, void *);
+#ifdef _MSC_VER
+#include <winsock2.h> /* for struct timeval */
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <ncurses_dll.h>
+
+NCURSES_EXPORT(int) _nc_gettimeofday(struct timeval *, void *);
#undef HAVE_GETTIMEOFDAY
#define HAVE_GETTIMEOFDAY 1
#undef wcwidth
#define wcwidth(ucs) _nc_wcwidth((wchar_t)(ucs))
-extern int _nc_wcwidth(wchar_t);
+NCURSES_EXPORT(int) _nc_wcwidth(wchar_t);
+
+#ifdef __cplusplus
+}
+#endif
#endif /* _WIN32 */
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_printw.3x,v 1.26 2020/03/14 23:48:47 tom Exp $
+.\" $Id: curs_printw.3x,v 1.27 2020/07/10 23:06:23 William.Pursell Exp $
.TH curs_printw 3X ""
.ie \n(.g .ds `` \(lq
.el .ds `` ``
effect, the string that would be output by \fBprintf\fR is output
instead as though \fBwaddstr\fR were used on the given window.
.PP
-The \fBvwprintw\fR and \fBwv_printw\fR routines are analogous
+The \fBvwprintw\fR and \fBvw_printw\fR routines are analogous
to \fBvprintf\fR [see \fBprintf\fR(3)]
and perform a \fBwprintw\fR using a variable argument list.
The third argument is a \fBva_list\fR, a pointer to a
# Report bugs and new terminal descriptions to
# bug-ncurses@gnu.org
#
-# $Revision: 1.807 $
-# $Date: 2020/06/07 00:16:21 $
+# $Revision: 1.808 $
+# $Date: 2020/07/11 20:05:06 $
#
# The original header is preserved below for reference. It is noted that there
# is a "newer" version which differs in some cosmetic details (but actually
# 'r' scan line 7
# '_' scan line 9
linux2.6|linux 2.6.x console,
- acsc=++\,\,--..00__``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwx
- xyyzz{{||}c~~,
+ acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
+ yzz{{||}}~~,
enacs=\E)0, rmacs=^O,
sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5
%t;2%;%?%p6%t;1%;m%?%p9%t\016%e\017%;,
# + use vt100+enq in screen (report by Alexandre Montaron).
# + add screen.linux-s alias (suggested by Alexandre Montaron).
#
+# 2020-07-11
+# + fix pound-sign mapping in acsc of linux2.6 entry (report by Ingo
+# Bruckl).
+#
######## SHANTIH! SHANTIH! SHANTIH!
****************************************************************************/
/*
- * $Id: curses.priv.h,v 1.629 2020/06/13 21:58:00 tom Exp $
+ * $Id: curses.priv.h,v 1.630 2020/07/11 20:48:42 anonymous.maarten Exp $
*
* curses.priv.h
*
*/
#if USE_WIDEC_SUPPORT
-#if defined(_WIN32)
+#if defined(_WIN32) && !defined(_MSC_VER)
/*
* MinGW has wide-character functions, but they do not work correctly.
*/
#include <tic.h>
-MODULE_ID("$Id: access.c,v 1.25 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: access.c,v 1.26 2020/07/11 20:55:23 anonymous.maarten Exp $")
#define LOWERCASE(c) ((isalpha(UChar(c)) && isupper(UChar(c))) ? tolower(UChar(c)) : (c))
+#ifdef _MSC_VER
+# define ACCESS(FN, MODE) access((FN), (MODE)&(R_OK|W_OK))
+#else
+# define ACCESS access
+#endif
+
NCURSES_EXPORT(char *)
_nc_rootname(char *path)
{
if (path == 0) {
result = -1;
- } else if (access(path, mode) < 0) {
+ } else if (ACCESS(path, mode) < 0) {
if ((mode & W_OK) != 0
&& errno == ENOENT
&& strlen(path) < PATH_MAX) {
if (head == leaf)
_nc_STRCPY(head, ".", sizeof(head));
- result = access(head, R_OK | W_OK | X_OK);
+ result = ACCESS(head, R_OK | W_OK | X_OK);
} else {
result = -1;
}
#include <ctype.h>
#include <tic.h>
-MODULE_ID("$Id: captoinfo.c,v 1.99 2020/05/25 21:28:29 tom Exp $")
+MODULE_ID("$Id: captoinfo.c,v 1.100 2020/07/08 21:39:54 tom Exp $")
#if 0
#define DEBUG_THIS(p) DEBUG(9, p)
/* we may have to move some trailing mandatory padding up front */
padding = str + strlen(str) - 1;
if (padding > str && *padding == '>') {
- if (*--padding == '/')
+ if (padding > (str + 1) && *--padding == '/')
--padding;
while (isdigit(UChar(*padding)) || *padding == '.' || *padding == '*')
padding--;
* in ISO 10646.
*/
-int mk_wcwidth(wchar_t ucs)
+NCURSES_EXPORT(int) mk_wcwidth(wchar_t ucs)
{
/* sorted list of non-overlapping intervals of non-spacing characters */
/* generated by "uniset +cat=Me +cat=Mn +cat=Cf -00AD +1160-11FF +200B c" */
}
-int mk_wcswidth(const wchar_t *pwcs, size_t n)
+NCURSES_EXPORT(int) mk_wcswidth(const wchar_t *pwcs, size_t n)
{
int w, width = 0;
* the traditional terminal character-width behaviour. It is not
* otherwise recommended for general use.
*/
-int mk_wcwidth_cjk(wchar_t ucs)
+NCURSES_EXPORT(int) mk_wcwidth_cjk(wchar_t ucs)
{
/* sorted list of non-overlapping intervals of East Asian Ambiguous
* characters, generated by "uniset +WIDTH-A -cat=Me -cat=Mn -cat=Cf c" */
}
-int mk_wcswidth_cjk(const wchar_t *pwcs, size_t n)
+NCURSES_EXPORT(int) mk_wcswidth_cjk(const wchar_t *pwcs, size_t n)
{
int w, width = 0;
*/
#include <curses.priv.h>
+#include <wchar.h>
-MODULE_ID("$Id: lib_cchar.c,v 1.33 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_cchar.c,v 1.34 2020/07/11 22:55:08 tom Exp $")
/*
* The SuSv2 description leaves some room for interpretation. We'll assume wch
#if USE_WIDEC_SUPPORT
-MODULE_ID("$Id: widechars.c,v 1.7 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: widechars.c,v 1.8 2020/07/11 20:48:42 anonymous.maarten Exp $")
-#if defined(_WIN32)
+#if defined(_WIN32) && !defined(_MSC_VER)
/*
* MinGW has wide-character functions, but they do not work correctly.
*/
#include <windows.h>
-MODULE_ID("$Id: gettimeofday.c,v 1.5 2020/02/29 15:46:00 anonymous.maarten Exp $")
+MODULE_ID("$Id: gettimeofday.c,v 1.6 2020/07/11 21:03:53 tom Exp $")
#define JAN1970 116444736000000000LL /* the value for 01/01/1970 00:00 */
-#ifdef _MSC_VER
-#include <winsock2.h>
-#endif
-
-int
+NCURSES_EXPORT(int)
gettimeofday(struct timeval *tv, void *tz GCC_UNUSED)
{
union {
****************************************************************************/
#include <curses.priv.h>
-MODULE_ID("$Id: wcwidth.c,v 1.3 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: wcwidth.c,v 1.4 2020/07/11 21:02:10 tom Exp $")
#if USE_WIDEC_SUPPORT
#define mk_wcwidth(ucs) _nc_wcwidth(ucs)
#define mk_wcwidth_cjk(ucs) _nc_wcwidth_cjk(ucs)
#define mk_wcswidth_cjk(pwcs, n) _nc_wcswidth_cjk(pwcs, n)
-extern int mk_wcwidth(wchar_t);
-extern int mk_wcswidth(const wchar_t *, size_t);
-extern int mk_wcwidth_cjk(wchar_t);
-extern int mk_wcswidth_cjk(const wchar_t *, size_t);
+NCURSES_EXPORT(int) mk_wcwidth(wchar_t);
+NCURSES_EXPORT(int) mk_wcswidth(const wchar_t *, size_t);
+NCURSES_EXPORT(int) mk_wcwidth_cjk(wchar_t);
+NCURSES_EXPORT(int) mk_wcswidth_cjk(const wchar_t *, size_t);
#include <wcwidth.h>
#else
-ncurses6 (6.2+20200704) unstable; urgency=low
+ncurses6 (6.2+20200711) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 04 Jul 2020 09:08:52 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 11 Jul 2020 04:26:05 -0400
ncurses6 (5.9-20131005) unstable; urgency=low
-ncurses6 (6.2+20200704) unstable; urgency=low
+ncurses6 (6.2+20200711) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 04 Jul 2020 09:08:52 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 11 Jul 2020 04:26:05 -0400
ncurses6 (5.9-20131005) unstable; urgency=low
-ncurses6 (6.2+20200704) unstable; urgency=low
+ncurses6 (6.2+20200711) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 04 Jul 2020 09:08:52 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 11 Jul 2020 04:26:05 -0400
ncurses6 (5.9-20120608) unstable; urgency=low
-; $Id: mingw-ncurses.nsi,v 1.403 2020/07/04 13:08:52 tom Exp $\r
+; $Id: mingw-ncurses.nsi,v 1.404 2020/07/11 08:26:05 tom Exp $\r
\r
; TODO add examples\r
; TODO bump ABI to 6\r
!define VERSION_MAJOR "6"\r
!define VERSION_MINOR "2"\r
!define VERSION_YYYY "2020"\r
-!define VERSION_MMDD "0704"\r
+!define VERSION_MMDD "0711"\r
!define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}\r
\r
!define MY_ABI "5"\r
Summary: shared libraries for terminal handling
Name: mingw32-ncurses6
Version: 6.2
-Release: 20200704
+Release: 20200711
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
Summary: shared libraries for terminal handling
Name: ncurses6
Version: 6.2
-Release: 20200704
+Release: 20200711
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
Summary: Curses library with POSIX thread support.
Name: ncursest6
Version: 6.2
-Release: 20200704
+Release: 20200711
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
#include "termsort.c" /* this C file is generated */
#include <parametrized.h> /* so is this */
-MODULE_ID("$Id: dump_entry.c,v 1.178 2020/07/04 20:00:29 tom Exp $")
+MODULE_ID("$Id: dump_entry.c,v 1.179 2020/07/08 21:21:11 tom Exp $")
#define DISCARD(string) string = ABSENT_STRING
#define PRINTF (void) printf
char *s = srccap, *d = buffer;
int need = 3 + (int) strlen(name);
while ((*d = *s++) != 0) {
- if ((d - buffer + 1) >= (int) sizeof(buffer)) {
+ if ((d - buffer + 2) >= (int) sizeof(buffer)) {
fprintf(stderr,
"%s: value for %s is too long\n",
_nc_progname,
#include <dump_entry.h>
-MODULE_ID("$Id: infocmp.c,v 1.144 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: infocmp.c,v 1.145 2020/07/07 20:28:47 tom Exp $")
#define MAX_STRING 1024 /* maximum formatted string */
DATA("Options:")
};
#undef DATA
+ /* length is given here so the compiler can make everything readonly */
#define DATA(s) s
- static const char options[][45] =
+ static const char options[][46] =
{
" -0 print single-row"
," -1 print single-column"
tname[termcount]);
status = _nc_read_entry2(tname[termcount],
- tfile[termcount],
- &entries[termcount].tterm);
+ tfile[termcount],
+ &entries[termcount].tterm);
}
if (status <= 0) {
* authorization. *
****************************************************************************/
/*
- * $Id: picsmap.c,v 1.132 2020/02/02 23:34:34 tom Exp $
+ * $Id: picsmap.c,v 1.134 2020/07/11 23:01:49 tom Exp $
*
* Author: Thomas E. Dickey
*
return result;
}
+#define LOWERCASE(c) ((isalpha(UChar(c)) && isupper(UChar(c))) ? tolower(UChar(c)) : (c))
+
+static int
+CaselessCmp(const char *a, const char *b)
+{ /* strcasecmp isn't portable */
+ while (*a && *b) {
+ int cmp = LOWERCASE(*a) - LOWERCASE(*b);
+ if (cmp != 0)
+ break;
+ a++, b++;
+ }
+ return LOWERCASE(*a) - LOWERCASE(*b);
+}
+
static RGB_NAME *
lookup_rgb(const char *name)
{
if (rgb_table != 0) {
int n;
for (n = 0; rgb_table[n].name != 0; ++n) {
- if (!strcasecmp(name, rgb_table[n].name)) {
+ if (!CaselessCmp(name, rgb_table[n].name)) {
result = &rgb_table[n];
break;
}
/****************************************************************************
* Author: Thomas E. Dickey 1996-on *
****************************************************************************/
-/* $Id: test.priv.h,v 1.186 2020/05/10 00:36:06 tom Exp $ */
+/* $Id: test.priv.h,v 1.187 2020/07/11 23:01:49 tom Exp $ */
#ifndef __TEST_PRIV_H
#define __TEST_PRIV_H 1
#include <assert.h>
#include <ctype.h>
+#if defined(_MSC_VER)
+#undef popen
+#define popen(s,n) _popen(s,n)
+#undef pclose
+#define pclose(s) _pclose(s)
+#endif
+
#ifndef GCC_NORETURN
#define GCC_NORETURN /* nothing */
#endif