snapshot of project "ncurses", label v6_6_20260117

This commit is contained in:
Thomas E. Dickey 2026-01-18 00:55:51 +00:00
parent 3c3541a3f5
commit f061503fbd
No known key found for this signature in database
GPG Key ID: CC2AF4472167BE03
34 changed files with 424 additions and 257 deletions

28
NEWS
View File

@ -26,7 +26,7 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
-- $Id: NEWS,v 1.4398 2026/01/04 00:59:35 tom Exp $
-- $Id: NEWS,v 1.4412 2026/01/18 00:54:25 tom Exp $
-------------------------------------------------------------------------------
This is a log of changes that ncurses has gone through since Zeyd started
@ -46,6 +46,32 @@ 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.
20260117
+ add "alt_" to special key-prefix check for "djgpp" terminfo
+ provide a generated list of user-defined special keys (adapted from
patch by Jakub Horky) -TD
+ rename vt100+keypad, etc., to vt100+keypad+sco, etc., to keep
historical blocks while providing for renaming of vt220+keypad as
vt100+keypad (prompted by patch by Jakub Horky) -TD
+ use vt100+keypad instead of vt220+keypad (patch by Jakub Horky)
+ use vt100+keypad in putty+keypad, replacing kpXX extension -TD
+ remove vt100+fnkeys-sco from putty -TD
+ fix link_test.c for configuration without extended colors by
adjusting ifdefs and improving MKlib_gen.sh by checking for #if
statements with only a 0 or 1 parameter.
+ fixes for "make check" (report by Brian Inglis):
+ adjust definition of USE_TRACEF
+ modify ncurses/wcwidth.h
+ modify makefile to add dependencies needed in shared library
+ modify makefile to work with libtool
+ separate ncurses/tty/lib_mvcur.c test-driver from routine checks
+ add a paragraph to user_caps.5 to mention extended capabilities which
are not documented as part of ncurses.
+ use symbol DEFAULT_TERM_VAR for several cases where getenv("TERM")
returns null pointer.
+ modify test/demo_new_pair.c to fix build with SmartOS (report by
Thomas Klausner).
20260103
+ cancel ncv in putty (patch by Jakub Horky)
+ add NQ to list of user-definable capabilities in user_caps(5) (patch

View File

@ -1 +1 @@
5:0:10 6.6 20260103
5:0:10 6.6 20260117

49
configure vendored
View File

@ -1,5 +1,5 @@
#! /bin/sh
# From configure.in Revision: 1.824 .
# From configure.in Revision: 1.826 .
# Guess values for system-dependent variables and create Makefiles.
# Generated by Autoconf 2.52.20250126.
#
@ -29955,9 +29955,17 @@ else
CHECK_BUILD=
fi
# provide for commenting-out makefile rules building/using shared libraries
if test "$DFT_LWR_MODEL" = normal
then
NO_SHARED=
else
NO_SHARED="#"
fi
# This is used for the *-config script and *.pc data files.
echo "$as_me:29960: checking for linker search path" >&5
echo "$as_me:29968: 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
@ -30005,7 +30013,7 @@ then
cf_pathlist="$cf_pathlist /lib /usr/lib"
;;
(*)
{ echo "$as_me:30008: WARNING: problem with Solaris architecture" >&5
{ echo "$as_me:30016: WARNING: problem with Solaris architecture" >&5
echo "$as_me: WARNING: problem with Solaris architecture" >&2;}
;;
esac
@ -30046,7 +30054,7 @@ done
test -z "$cf_cv_ld_searchpath" && cf_cv_ld_searchpath=/usr/lib
fi
echo "$as_me:30049: result: $cf_cv_ld_searchpath" >&5
echo "$as_me:30057: 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'`
@ -30136,7 +30144,7 @@ DEFS=-DHAVE_CONFIG_H
: "${CONFIG_STATUS=./config.status}"
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
{ echo "$as_me:30139: creating $CONFIG_STATUS" >&5
{ echo "$as_me:30147: creating $CONFIG_STATUS" >&5
echo "$as_me: creating $CONFIG_STATUS" >&6;}
cat >"$CONFIG_STATUS" <<_ACEOF
#! $SHELL
@ -30317,7 +30325,7 @@ cat >>"$CONFIG_STATUS" <<\EOF
echo "$ac_cs_version"; exit 0 ;;
--he | --h)
# Conflict between --help and --header
{ { echo "$as_me:30320: error: ambiguous option: $1
{ { echo "$as_me:30328: 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;}
@ -30336,7 +30344,7 @@ Try \`$0 --help' for more information." >&2;}
ac_need_defaults=false;;
# This is an error.
-*) { { echo "$as_me:30339: error: unrecognized option: $1
-*) { { echo "$as_me:30347: 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;}
@ -30470,7 +30478,7 @@ do
"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:30473: error: invalid argument: $ac_config_target" >&5
*) { { echo "$as_me:30481: error: invalid argument: $ac_config_target" >&5
echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
{ (exit 1); exit 1; }; };;
esac
@ -30870,6 +30878,7 @@ s,@UNALTERED_SYMS@,$UNALTERED_SYMS,;t t
s,@ADAGEN_LDFLAGS@,$ADAGEN_LDFLAGS,;t t
s,@CHECK_BUILD@,$CHECK_BUILD,;t t
s,@PRIVATE_LIBS@,$PRIVATE_LIBS,;t t
s,@NO_SHARED@,$NO_SHARED,;t t
s,@LD_SEARCHPATH@,$LD_SEARCHPATH,;t t
CEOF
@ -31003,7 +31012,7 @@ done; }
esac
if test x"$ac_file" != x-; then
{ echo "$as_me:31006: creating $ac_file" >&5
{ echo "$as_me:31015: creating $ac_file" >&5
echo "$as_me: creating $ac_file" >&6;}
rm -f "$ac_file"
fi
@ -31021,7 +31030,7 @@ echo "$as_me: creating $ac_file" >&6;}
-) echo "$tmp"/stdin ;;
[\\/$]*)
# Absolute (can't be DOS-style, as IFS=:)
test -f "$f" || { { echo "$as_me:31024: error: cannot find input file: $f" >&5
test -f "$f" || { { echo "$as_me:31033: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
echo "$f";;
@ -31034,7 +31043,7 @@ echo "$as_me: error: cannot find input file: $f" >&2;}
echo "$srcdir/$f"
else
# /dev/null tree
{ { echo "$as_me:31037: error: cannot find input file: $f" >&5
{ { echo "$as_me:31046: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
fi;;
@ -31050,7 +31059,7 @@ cat >>"$CONFIG_STATUS" <<\EOF
if test -n "$ac_seen"; then
ac_used=`grep '@datarootdir@' "$ac_item"`
if test -z "$ac_used"; then
{ echo "$as_me:31053: WARNING: datarootdir was used implicitly but not set:
{ echo "$as_me:31062: 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;}
@ -31059,7 +31068,7 @@ $ac_seen" >&2;}
fi
ac_seen=`grep '${datarootdir}' "$ac_item"`
if test -n "$ac_seen"; then
{ echo "$as_me:31062: WARNING: datarootdir was used explicitly but not set:
{ echo "$as_me:31071: 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;}
@ -31104,7 +31113,7 @@ cat >>"$CONFIG_STATUS" <<\EOF
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:31107: WARNING: Variable $ac_name is used but was not set:
{ echo "$as_me:31116: 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;}
@ -31115,7 +31124,7 @@ $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:31118: WARNING: Some variables may not be substituted:
{ echo "$as_me:31127: WARNING: Some variables may not be substituted:
$ac_seen" >&5
echo "$as_me: WARNING: Some variables may not be substituted:
$ac_seen" >&2;}
@ -31164,7 +31173,7 @@ for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
* ) ac_file_in=$ac_file.in ;;
esac
test x"$ac_file" != x- && { echo "$as_me:31167: creating $ac_file" >&5
test x"$ac_file" != x- && { echo "$as_me:31176: creating $ac_file" >&5
echo "$as_me: creating $ac_file" >&6;}
# First look for the input files in the build tree, otherwise in the
@ -31175,7 +31184,7 @@ echo "$as_me: creating $ac_file" >&6;}
-) echo "$tmp"/stdin ;;
[\\/$]*)
# Absolute (can't be DOS-style, as IFS=:)
test -f "$f" || { { echo "$as_me:31178: error: cannot find input file: $f" >&5
test -f "$f" || { { echo "$as_me:31187: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
echo $f;;
@ -31188,7 +31197,7 @@ echo "$as_me: error: cannot find input file: $f" >&2;}
echo "$srcdir/$f"
else
# /dev/null tree
{ { echo "$as_me:31191: error: cannot find input file: $f" >&5
{ { echo "$as_me:31200: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
fi;;
@ -31246,7 +31255,7 @@ cat >>"$CONFIG_STATUS" <<\EOF
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:31249: $ac_file is unchanged" >&5
{ echo "$as_me:31258: $ac_file is unchanged" >&5
echo "$as_me: $ac_file is unchanged" >&6;}
else
ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
@ -31633,7 +31642,7 @@ cf_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQ
(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}:31636: testing overriding CXX_MODEL to SHARED ..." 1>&5
echo "${as_me:-configure}:31645: testing overriding CXX_MODEL to SHARED ..." 1>&5
with_shared_cxx=yes
;;

View File

@ -1,5 +1,5 @@
dnl***************************************************************************
dnl Copyright 2018-2024,2025 Thomas E. Dickey *
dnl Copyright 2018-2025,2026 Thomas E. Dickey *
dnl Copyright 1998-2017,2018 Free Software Foundation, Inc. *
dnl *
dnl Permission is hereby granted, free of charge, to any person obtaining a *
@ -29,7 +29,7 @@ dnl***************************************************************************
dnl
dnl Author: Thomas E. Dickey 1995-on
dnl
dnl $Id: configure.in,v 1.824 2025/12/27 00:12:13 tom Exp $
dnl $Id: configure.in,v 1.826 2026/01/14 08:51:49 tom Exp $
dnl Process this file with autoconf to produce a configure script.
dnl
dnl For additional information, see
@ -38,7 +38,7 @@ dnl https://invisible-island.net/autoconf/my-autoconf.html
dnl
dnl ---------------------------------------------------------------------------
AC_PREREQ(2.52.20210101)
AC_REVISION($Revision: 1.824 $)
AC_REVISION($Revision: 1.826 $)
AC_INIT
AC_CONFIG_SRCDIR([ncurses/base/lib_initscr.c])
AC_CONFIG_HEADERS([include/ncurses_cfg.h:include/ncurses_cfg.hin])
@ -2560,6 +2560,15 @@ AC_SUBST(ADAGEN_LDFLAGS)
AC_SUBST(CHECK_BUILD)
AC_SUBST(PRIVATE_LIBS)
# provide for commenting-out makefile rules building/using shared libraries
if test "$DFT_LWR_MODEL" = normal
then
NO_SHARED=
else
NO_SHARED="#"
fi
AC_SUBST(NO_SHARED)
# This is used for the *-config script and *.pc data files.
CF_LD_SEARCHPATH

View File

@ -26,7 +26,7 @@
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
# $Id: dist.mk,v 1.1712 2026/01/04 00:59:54 tom Exp $
# $Id: dist.mk,v 1.1714 2026/01/17 11:18:11 tom Exp $
# Makefile for creating ncurses distributions.
#
# This only needs to be used directly as a makefile by developers, but
@ -38,7 +38,7 @@ SHELL = /bin/sh
# These define the major/minor/patch versions of ncurses.
NCURSES_MAJOR = 6
NCURSES_MINOR = 6
NCURSES_PATCH = 20260103
NCURSES_PATCH = 20260117
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)

View File

@ -59,7 +59,7 @@
displays with output optimized to minimize screen updates. <EM>ncurses</EM>
replaces the <EM>curses</EM> libraries from System V Release 4 Unix ("SVr4") and
4.4BSD Unix, the development of which ceased in the 1990s. This
document describes <EM>ncurses</EM> version 6.6 (patch 20251230).
document describes <EM>ncurses</EM> version 6.6 (patch 20260117).
<EM>ncurses</EM> permits control of the terminal screen's contents; abstraction
and subdivision thereof with <EM>windows</EM> and <EM>pads</EM>; acquisition of keyboard

View File

@ -72,7 +72,7 @@
have, by specifying how to perform screen operations, and by specifying
padding requirements and initialization sequences.
This document describes <EM>ncurses</EM> version 6.6 (patch 20251230).
This document describes <EM>ncurses</EM> version 6.6 (patch 20260117).
</PRE><H3><a name="h3-terminfo-Entry-Syntax"><EM>terminfo</EM> Entry Syntax</a></H3><PRE>

View File

@ -1,7 +1,7 @@
<!--
* t
****************************************************************************
* Copyright 2018-2024,2025 Thomas E. Dickey *
* Copyright 2018-2025,2026 Thomas E. Dickey *
* Copyright 2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@ -28,19 +28,19 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
* @Id: user_caps.5,v 1.60 2025/11/12 01:01:01 tom Exp @
* @Id: user_caps.5,v 1.64 2026/01/11 23:54:16 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
<TITLE>user_caps 5 2025-11-11 ncurses 6.6 File formats</TITLE>
<TITLE>user_caps 5 2026-01-11 ncurses 6.6 File formats</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
<H1 class="no-header">user_caps 5 2025-11-11 ncurses 6.6 File formats</H1>
<H1 class="no-header">user_caps 5 2026-01-11 ncurses 6.6 File formats</H1>
<PRE>
<STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG> File formats <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>
@ -317,6 +317,14 @@
%p2%d;
%?%p4%tM%em%;,
Some of these extended capabilities have parameters which <EM>ncurses</EM>
may use in the <STRONG>tparm</STRONG>, <STRONG>tiparm</STRONG>, or <STRONG>tiparm_s</STRONG> functions. The <EM>ncurses</EM>
library checks to ensure that both standard and extended
capabilities have the expected number and type of parameters. The
terminfo compiler <EM>tic</EM> has similar checks for these extensions as
well as for those which are used by other programs, which include
<EM>mintty</EM>, <EM>screen</EM>, <EM>tack</EM>, <EM>tmux</EM>, <EM>vim</EM>, and <EM>xterm</EM>.
</PRE><H3><a name="h3-Extended-Key-Definitions">Extended Key Definitions</a></H3><PRE>
Several terminals provide the ability to send distinct strings for
@ -406,7 +414,7 @@
<EM>XTerm</EM> <EM>Control</EM> <EM>Sequences</EM> provides further information on the <STRONG>xterm(1)</STRONG>
features that are used in these extended capabilities.
ncurses 6.6 2025-11-11 <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>
ncurses 6.6 2026-01-11 <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>
</PRE>
<div class="nav">
<ul>

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright 2018-2024,2025 Thomas E. Dickey *
* Copyright 2018-2025,2026 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@ -33,7 +33,7 @@
* and: Thomas E. Dickey 1996-on *
****************************************************************************/
/* $Id: curses.h.in,v 1.299 2025/08/08 23:19:21 tom Exp $ */
/* $Id: curses.h.in,v 1.300 2026/01/15 00:38:24 tom Exp $ */
#ifndef __NCURSES_H
#define __NCURSES_H
@ -944,18 +944,10 @@ extern NCURSES_EXPORT(int) getpary (const WINDOW *); /* generated */
#define NCURSES_EXT_FUNCS @NCURSES_PATCH@ /* NCURSES_PATCH */
typedef int (*NCURSES_WINDOW_CB)(WINDOW *, void *);
typedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *);
extern NCURSES_EXPORT(int) alloc_pair (int, int);
extern NCURSES_EXPORT(int) assume_default_colors (int, int);
extern NCURSES_EXPORT(const char *) curses_version (void);
extern NCURSES_EXPORT(int) define_key (const char *, int);
extern NCURSES_EXPORT(int) extended_color_content(int, int *, int *, int *);
extern NCURSES_EXPORT(int) extended_pair_content(int, int *, int *);
extern NCURSES_EXPORT(int) extended_slk_color(int);
extern NCURSES_EXPORT(int) find_pair (int, int);
extern NCURSES_EXPORT(int) free_pair (int);
extern NCURSES_EXPORT(int) get_escdelay (void);
extern NCURSES_EXPORT(int) init_extended_color(int, int, int, int);
extern NCURSES_EXPORT(int) init_extended_pair(int, int, int);
extern NCURSES_EXPORT(int) is_cbreak(void);
extern NCURSES_EXPORT(int) is_echo(void);
extern NCURSES_EXPORT(int) is_nl(void);
@ -965,7 +957,6 @@ extern NCURSES_EXPORT(int) key_defined (const char *);
extern NCURSES_EXPORT(char *) keybound (int, int);
extern NCURSES_EXPORT(int) keyok (int, bool);
extern NCURSES_EXPORT(void) nofilter(void);
extern NCURSES_EXPORT(void) reset_color_pairs (void);
extern NCURSES_EXPORT(int) resize_term (int, int);
extern NCURSES_EXPORT(int) resizeterm (int, int);
extern NCURSES_EXPORT(int) set_escdelay (int);
@ -976,6 +967,18 @@ extern NCURSES_EXPORT(int) use_screen (SCREEN *, NCURSES_SCREEN_CB, void *);
extern NCURSES_EXPORT(int) use_window (WINDOW *, NCURSES_WINDOW_CB, void *);
extern NCURSES_EXPORT(int) wresize (WINDOW *, int, int);
#if @NCURSES_EXT_COLORS@ /* NCURSES_EXT_COLORS */
extern NCURSES_EXPORT(int) alloc_pair (int, int);
extern NCURSES_EXPORT(int) extended_color_content(int, int *, int *, int *);
extern NCURSES_EXPORT(int) extended_pair_content(int, int *, int *);
extern NCURSES_EXPORT(int) extended_slk_color(int);
extern NCURSES_EXPORT(int) find_pair (int, int);
extern NCURSES_EXPORT(int) free_pair (int);
extern NCURSES_EXPORT(int) init_extended_color(int, int, int, int);
extern NCURSES_EXPORT(int) init_extended_pair(int, int, int);
extern NCURSES_EXPORT(void) reset_color_pairs (void);
#endif
#if @NCURSES_XNAMES@ /* NCURSES_XNAMES */
#undef NCURSES_XNAMES
#define NCURSES_XNAMES @NCURSES_XNAMES@ /* NCURSES_XNAMES */
@ -1095,17 +1098,9 @@ extern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_tioctl) (SCREEN*, bool); /* impl
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidattr) (SCREEN*, chtype); /* implemented:SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidputs) (SCREEN*, chtype, NCURSES_SP_OUTC); /* implemented:SP_FUNC */
#if @NCURSES_EXT_FUNCS@ /* NCURSES_EXT_FUNCS */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(alloc_pair) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(assume_default_colors) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(define_key) (SCREEN*, const char *, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_color_content) (SCREEN*, int, int *, int *, int *); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_pair_content) (SCREEN*, int, int *, int *); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_slk_color) (SCREEN*, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(find_pair) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(free_pair) (SCREEN*, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(get_escdelay) (SCREEN*); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_color) (SCREEN*, int, int, int, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_pair) (SCREEN*, int, int, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(is_cbreak) (SCREEN*); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(is_echo) (SCREEN*); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(is_nl) (SCREEN*); /* implemented:EXT_SP_FUNC */
@ -1115,13 +1110,25 @@ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(key_defined) (SCREEN*, const char *);
extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(keybound) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(keyok) (SCREEN*, int, bool); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(void) NCURSES_SP_NAME(nofilter) (SCREEN*); /* implemented */ /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(void) NCURSES_SP_NAME(reset_color_pairs) (SCREEN*); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resize_term) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resizeterm) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(set_escdelay) (SCREEN*, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(set_tabsize) (SCREEN*, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_default_colors) (SCREEN*); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_legacy_coding) (SCREEN*, int); /* implemented:EXT_SP_FUNC */
#if @NCURSES_EXT_COLORS@ /* NCURSES_EXT_COLORS */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(alloc_pair) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_color_content) (SCREEN*, int, int *, int *, int *); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_pair_content) (SCREEN*, int, int *, int *); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_slk_color) (SCREEN*, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(find_pair) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(free_pair) (SCREEN*, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_color) (SCREEN*, int, int, int, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_pair) (SCREEN*, int, int, int); /* implemented:EXT_SP_FUNC */
extern NCURSES_EXPORT(void) NCURSES_SP_NAME(reset_color_pairs) (SCREEN*); /* implemented:EXT_SP_FUNC */
#endif /* NCURSES_EXT_COLORS */
#endif /* NCURSES_EXT_FUNCS */
#else /* !NCURSES_SP_FUNCS */
#undef NCURSES_SP_FUNCS

View File

@ -1,6 +1,6 @@
'\" t
.\"***************************************************************************
.\" Copyright 2018-2024,2025 Thomas E. Dickey *
.\" Copyright 2018-2025,2026 Thomas E. Dickey *
.\" Copyright 2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
@ -28,8 +28,8 @@
.\" authorization. *
.\"***************************************************************************
.\"
.\" $Id: user_caps.5,v 1.60 2025/11/12 01:01:01 tom Exp $
.TH user_caps 5 2025-11-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "File formats"
.\" $Id: user_caps.5,v 1.64 2026/01/11 23:54:16 tom Exp $
.TH user_caps 5 2026-01-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "File formats"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
@ -545,6 +545,26 @@ mouse protocols.
%?%p4%tM%em%;,
.fi
.EE
.PP
Some of these extended capabilities have parameters which
\fI\%ncurses\fP may use in the
.BR \%tparm ","
.BR \%tiparm ","
or
.B \%tiparm_s
functions.
The \fI\%ncurses\fP library checks to ensure that
both standard and extended capabilities have
the expected number and type of parameters.
The terminfo compiler \fI\%@TIC@\fP has similar checks for these extensions
as well as for those which are used by other programs,
which include
.IR \%mintty ","
.IR \%screen ","
.IR \%tack ","
.IR \%tmux ","
.IR \%vim ", and"
.IR \%xterm "."
.
.SS "Extended Key Definitions"
Several terminals provide the ability to send distinct strings for

View File

@ -6,8 +6,8 @@
# Report bugs and new terminal descriptions to
# bug-ncurses@gnu.org
#
# $Revision: 1.1202 $
# $Date: 2026/01/04 00:17:34 $
# $Revision: 1.1210 $
# $Date: 2026/01/17 23:45:14 $
#
# 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
@ -2435,15 +2435,15 @@ vt52+arrows|cursor keys for VT52,
# terminfo guidelines. That is a compromise used to assign the remaining
# keys on the keypad to kf5-kf0, used on older systems with legacy termcap
# support:
vt100+keypad|DEC VT100 numeric keypad no fkeys,
vt100+keypad-sco|DEC VT100 numeric keypad no fkeys,
ka1=\EOq, ka3=\EOs, kb2=\EOr, kc1=\EOp, kc3=\EOn,
vt100+pf1-pf4|DEC VT100 PF1-PF4,
kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
vt100+pfkeys|DEC VT100 numeric keypad (kf1-kf4),
kent=\EOM, use=vt100+pf1-pf4, use=vt100+keypad,
vt100+fnkeys|DEC VT100 numeric keypad (kf0-kf10),
vt100+pfkeys-sco|DEC VT100 numeric keypad (kf1-kf4),
kent=\EOM, use=vt100+pf1-pf4, use=vt100+keypad-sco,
vt100+fnkeys-sco|DEC VT100 numeric keypad (kf0-kf10),
kf0=\EOy, kf10=\EOx, kf5=\EOt, kf6=\EOu, kf7=\EOv, kf8=\EOl,
kf9=\EOw, use=vt100+pfkeys,
kf9=\EOw, use=vt100+pfkeys-sco,
#
# A better adaptation to modern keyboards such as the PC's, which have a dozen
# function keys and the keypad 2,4,6,8 keys are labeled with arrows keys, is to
@ -2455,20 +2455,22 @@ vt100+fnkeys|DEC VT100 numeric keypad (kf0-kf10),
# |_kf1__k1_|_kf2__k2_|_kf3__k3_|_kf4__k4_|
# | 7 8 9 - |
# | $Ow | $Ox | $Oy | $Om |
# |_ka1__K1_|_________|_ka3__K3_|_________|
# |_ka1__K1_|_ka2_____|_ka3__K3_|_________|
# | 4 | 5 | 6 | , |
# | $Ot | $Ou | $Ov | $Ol |
# |_________|_kb2__K2_|_________|_________|
# |_kb1_____|_kb2__K2_|_kb3_____|_________|
# | 1 | 2 | 3 | |
# | $Oq | $Or | $Os | enter |
# |_kc1__K4_|_________|_kc3__K5_| $OM |
# |_kc1__K4_|_kc2_____|_kc3__K5_| $OM |
# | 0 | . | |
# | $Op | $On | |
# |___________________|_________|_kent_@8_|
#
vt220+keypad|DEC VT220 numeric keypad,
ka1=\EOw, ka3=\EOy, kb2=\EOu, kc1=\EOq, kc3=\EOs, ka2=\EOx,
kb1=\EOt, kb3=\EOv, kc2=\EOr, use=vt100+pfkeys,
# ka2, kb1, kb3 and kc2 are extended key capabilities which have no termcap
# equivalent.
vt100+keypad|vt220+keypad|DEC numeric keypad,
ka1=\EOw, ka3=\EOy, kb2=\EOu, kc1=\EOq, kc3=\EOs, kent=\EOM,
ka2=\EOx, kb1=\EOt, kb3=\EOv, kc2=\EOr, use=vt100+pf1-pf4,
#
vt100+enq|ncurses extension for VT100-style ENQ,
u8=\E[?1;2c, use=ansi+enq,
@ -2519,7 +2521,7 @@ vt100|vt100-am|DEC VT100 (w/advanced video),
%;m%?%p9%t\016%e\017%;$<2>,
smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m$<2>,
use=ansi+csr, use=ansi+pp, use=decid+cpr, use=vt100+4bsd,
use=vt100+fnkeys,
use=vt100+fnkeys-sco,
vt100+4bsd|DEC VT100 from 4.0BSD,
am, msgr,
@ -2858,7 +2860,7 @@ vt320|vt300|DEC VT320 7 bit terminal,
use=ansi+csr, use=ansi+cup, use=ansi+enq, use=ansi+erase,
use=ansi+idl, use=ansi+local, use=ansi+sgrso,
use=ansi+sgrul, use=dec+pp, use=dec+sl, use=vt220+cvis,
use=vt220+keypad, use=vt220+sfkeys, use=vt220+ufkeys,
use=vt100+keypad, use=vt220+sfkeys, use=vt220+ufkeys,
vt320-nam|vt300-nam|DEC VT320 7 bit terminal with no am to make SAS happy,
am@,
@ -3090,10 +3092,10 @@ vt525-w|DEC VT525 in wide mode,
#
# In trying to get the function keys to work, I had to cobble my own
# terminfo.src entry, since the existing vt520 entry doesn't include most of
# the function keys. If I blend the entries for "vt420f" and "vt220+keypad"
# the function keys. If I blend the entries for "vt420f" and "vt100+keypad"
# I seem to get them all -Mike Gran
vt520ansi|Boundless VT520 ANSI,
use=ansi+rca, use=vt420f, use=vt220+keypad,
use=ansi+rca, use=vt420f, use=vt100+keypad,
use=ansi+tabs,
#### VT100 emulations
@ -3357,7 +3359,7 @@ nsterm+7|AppKit Terminal.app v41+ basic capabilities w/ASCII charset,
sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, tbc=\E[3g,
use=ansi+csr, use=ansi+cup, use=ansi+erase, use=ansi+idl,
use=ansi+local, use=ansi+sgrbold, use=vt100+enq,
use=vt100+pfkeys,
use=vt100+pfkeys-sco,
nsterm+acs|AppKit Terminal.app v41+ basic capabilities w/VT100 alternate-charset,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?
@ -3651,9 +3653,9 @@ iTerm.app|iterm|iTerm.app terminal emulator for Mac OS X,
use=ansi+csr, use=ansi+enq, use=ansi+erase, use=ansi+idc,
use=ansi+idl, use=ansi+local, use=ansi+rca2,
use=ansi+sgrso, use=ansi+sgrul, use=vt100+4bsd,
use=vt100+keypad, use=vt100+pfkeys, use=xterm+r5+fkeys,
use=xterm+alt47, use=xterm+sl-twm, use=xterm+x11mouse,
use=xterm+256setaf, use=vt220+cvis,
use=vt100+keypad-sco, use=vt100+pfkeys-sco,
use=xterm+r5+fkeys, use=xterm+alt47, use=xterm+sl-twm,
use=xterm+x11mouse, use=xterm+256setaf, use=vt220+cvis,
# iTerm2
#
@ -3871,7 +3873,7 @@ xnuppc+basic|Darwin PowerPC console basic capabilities,
sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, tbc=\E[3g,
use=ansi+csr, use=ansi+cup, use=ansi+erase,
use=ansi+local, use=ansi+sgrso, use=ansi+sgrul,
use=vt100+keypad,
use=vt100+keypad-sco,
xnuppc+c|Darwin PowerPC console ANSI color support,
ncv#32, use=klone+color,
@ -4241,8 +4243,7 @@ putty|PuTTY terminal emulator,
use=klone+color, use=klone+sgr, use=putty+cursor,
use=putty+fnkeys, use=report+da2, use=vt220+pcedit,
use=xterm+alt1049, use=vt102+enq, use=xterm+sm+1006,
use=xterm+sl, use=vt100+fnkeys, use=putty+keypad,
use=vt220+cvis,
use=xterm+sl, use=putty+keypad, use=vt220+cvis,
# older versions (e.g., before 0.71) of PuTTY used a shift-modifier to toggle
# between normal- and application-mode for the cursor-keys. That was dropped,
@ -4250,9 +4251,8 @@ putty|PuTTY terminal emulator,
putty+cursor|PuTTY modified cursor-keys,
kDN5=\E[B, kLFT5=\E[D, kRIT5=\E[C, kUP5=\E[A,
putty+keypad|PuTTY numeric keypad,
kp1=\EOq, kp2=\EOr, kp3=\EOs, kp4=\EOt, kp5=\EOu, kp6=\EOv,
kp7=\EOw, kp8=\EOx, kp9=\EOy, kpADD=\EOl, kpDIV=\EOQ,
kpDOT=\EOn, kpMUL=\EOR, kpNUM=\EOP, kpSUB=\EOS, kpZRO=\EOp,
kpADD=\EOl, kpDIV=\EOQ, kpDOT=\EOn, kpMUL=\EOR, kpNUM=\EOP,
kpSUB=\EOS, kpZRO=\EOp, use=vt100+keypad,
vt100-putty|Reset PuTTY to pure VT100,
rs2=\E<\E["p\Ec\E[?3l\E]R\E[40"p\E[61"p\E[50;1;2"p,
@ -5002,7 +5002,7 @@ xterm-xf86-v32|xterm terminal emulator (XFree86 3.2 Window System),
use=ansi+idc, use=ansi+idl, use=ansi+inittabs,
use=ansi+local, use=ansi+rca2, use=xterm+alt47,
use=xterm+kbs, use=vt100+enq, use=xterm+r5+fkeys,
use=ecma+color, use=vt220+cvis, use=vt220+keypad,
use=ecma+color, use=vt220+cvis, use=vt100+keypad,
use=vt220+pcedit, use=vt220+sfkeys,
# This is the stock xterm entry supplied with XFree86 3.3, which uses VT100
@ -5255,14 +5255,10 @@ xterm+pcf2|fragment with modifyFunctionKeys:2,
kf31=\E[18;5~, kf32=\E[19;5~, kf33=\E[20;5~,
kf34=\E[21;5~, kf35=\E[23;5~, kf36=\E[24;5~,
kf37=\E[1;6P, kf38=\E[1;6Q, kf39=\E[1;6R, kf40=\E[1;6S,
kf41=\E[15;6~, kf42=\E[17;6~, kf43=\E[18;6~,
kf44=\E[19;6~, kf45=\E[20;6~, kf46=\E[21;6~,
kf47=\E[23;6~, kf48=\E[24;6~, kf49=\E[1;3P, kf50=\E[1;3Q,
kf51=\E[1;3R, kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~,
kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~,
kf58=\E[21;3~, kf59=\E[23;3~, kf60=\E[24;3~,
kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R,
use=vt100+pf1-pf4, use=xterm+nopcfkeys,
kf41=\E[15;6~, kf42=\E[17;6~, kf49=\E[1;3P, kf50=\E[1;3Q,
kf51=\E[1;3R, kf52=\E[1;3S, kf61=\E[1;4P, kf62=\E[1;4Q,
kf63=\E[1;4R, use=vt100+pf1-pf4, use=xterm+nopcfkeys,
use=xterm+pcf0,
#
# Chunks from xterm #230:
xterm+pce2|fragment with modifyCursorKeys:2 editing-keys,
@ -5349,7 +5345,7 @@ xterm+alt+title|xterm 90 and 251 features combined,
xterm+keypad|xterm emulating VT100/VT220 numeric keypad,
kbeg=\EOE, kp5=\EOE, kpADD=\EOk, kpCMA=\EOl, kpDIV=\EOo,
kpDOT=\EOn, kpMUL=\EOj, kpSUB=\EOm, kpZRO=\EOp,
use=vt220+keypad,
use=vt100+keypad,
#
# Those chunks use the new-style (the xterm oldFunctionKeys resource is false).
# Alternatively, the same scheme with old-style function keys as in xterm-r6
@ -5735,7 +5731,7 @@ xterm-sco|xterm with SCO function keys,
xterm-vt220|xterm emulating VT220,
npc,
kcbt=\E[Z, kend=\E[4~, khome=\E[1~, kmous=\E[M, nel=\EE,
use=xterm+app, use=xterm+edit, use=vt220+keypad,
use=xterm+app, use=xterm+edit, use=vt100+keypad,
use=ecma+italics, use=ecma+index, use=ansi+rep,
use=ecma+strikeout, use=vt220+sfkeys,
use=xterm+r5+fkeys, use=xterm+focus, use=xterm+sm+1006,
@ -6072,7 +6068,7 @@ xtermm|xterm terminal emulator (monochrome),
tbc=\E[3g, use=ansi+apparrows, use=ansi+csr,
use=ansi+cup, use=ansi+erase, use=ansi+idl,
use=ansi+local, use=ansi+sgrso, use=decid+cpr,
use=vt100+fnkeys,
use=vt100+fnkeys-sco,
xtermc|xterm terminal emulator (color),
ncv#7,
@ -6137,7 +6133,7 @@ color_xterm|cx|cx100|color_xterm color terminal emulator for X,
use=ecma+underline, use=ecma+standout,
use=xterm+r5+fkeys, use=ansi+apparrows, use=ansi+csr,
use=ansi+cup, use=ansi+idl, use=ansi+local,
use=decid+cpr, use=ecma+color, use=vt220+keypad,
use=decid+cpr, use=ecma+color, use=vt100+keypad,
# The IRAF source has a terminfo using "xterm-r5", but line-drawing does not
# work in that case. This entry uses xterm+acs, to work around that problem.
@ -6733,7 +6729,7 @@ mlterm3|multi lingual terminal emulator 3.x,
use=ecma+strikeout, use=xterm+app, use=xterm+pcf2,
use=xterm+pcc2, use=xterm+pce2, use=xterm+meta,
use=xterm+alt+title, use=xterm+sm+1006,
use=vt100+pfkeys, use=bracketed+paste, use=mlterm2,
use=vt100+pfkeys-sco, use=bracketed+paste, use=mlterm2,
use=report+version,
# This is mlterm 2.9.3's mlterm.ti, with some additions/corrections -TD
@ -6837,7 +6833,7 @@ rxvt-basic|rxvt terminal base (X Window System),
use=ecma+underline, use=ecma+standout, use=ansi+csr,
use=ansi+idl, use=ansi+local, use=xterm+alt47,
use=vt100+enq, use=vt100+4bsd, use=rxvt+pcfkeys,
use=vt220+cvis, use=vt220+keypad,
use=vt220+cvis, use=vt100+keypad,
# Key Codes from rxvt reference:
#
@ -7267,7 +7263,7 @@ mvterm|vv100|SwitchTerm aka mvTERM,
%;m%?%p9%t\016%e\017%;,
sgr0=\E[m\017, smkx=\E[?1h\E=, smso=\E[7m, use=ansi+csr,
use=ansi+idl, use=ansi+local, use=ansi+sgrul,
use=xterm+alt47, use=vt100+fnkeys, use=vt100+4bsd,
use=xterm+alt47, use=vt100+fnkeys-sco, use=vt100+4bsd,
use=x10term+sl,
#### MTERM
@ -7496,7 +7492,7 @@ st-0.6|simpleterm 0.6,
use=ecma+standout, use=ansi+apparrows, use=ansi+csr,
use=ansi+enq, use=ansi+idl, use=ansi+inittabs,
use=ansi+local, use=ansi+rca2, use=ansi+sgrbold,
use=vt100+4bsd, use=vt100+pfkeys, use=vt220+pcedit,
use=vt100+4bsd, use=vt100+pfkeys-sco, use=vt220+pcedit,
use=ecma+index, use=xterm+alt1049, use=vt220+cvis,
use=xterm+sl, use=ecma+italics, use=ecma+strikeout,
use=bracketed+paste, use=xterm+pcf2,
@ -8869,7 +8865,7 @@ screen.rxvt|screen in rxvt,
bw, XT,
cvvis@, flash@, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
kcuu1=\EOA, use=screen+fkeys, use=vt100+enq,
use=rxvt+pcfkeys, use=xterm+x11mouse, use=vt220+keypad,
use=rxvt+pcfkeys, use=xterm+x11mouse, use=vt100+keypad,
use=screen,
screen.Eterm|screen in Eterm,
use=xterm+x11mouse, use=screen+fkeys, use=Eterm,
@ -12496,7 +12492,7 @@ tvi9065|TeleVideo 9065,
dl=\E[%p1%dM, dl1=\ER, dsl=\E_30\r, ech=\E[%p1%d@, ed=\EY,
el=\ET, flash=\Eb$<15>\Ed, fsl=\r, home=^^, ht=^I, hts=\E1,
ich=\E[%p1%d@, if=/usr/share/tabset/stdcrt,
il=\E[%p1%dL, il1=\EE, ind=\n, invis=\EG1, ip=$<3>,
il=\E[%p1%dL, il1=\EE, ind=\n, ip=$<3>,
is1=\E"\E%\E'\E(\EG@\EO\EX\E[=5l\E[=6l\E[=7h\Ed\Er,
is2=\EF2\EG0\E\\L, is3=\E<\E[=4l\E[=8h, kHOM=\E\s\s\s,
kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K,
@ -12508,10 +12504,10 @@ tvi9065|TeleVideo 9065,
pfloc=\E|%p1%{48}%+%c2%p2%s\031,
pfx=\E|%p1%{48}%+%c1%p2%s\031,
pln=\E_%p1%{63}%+%c%p2%s\r, prot=\E&,
rep=\E[%p2%db%p1%c, rev=\EG4,
rf=/usr/share/tabset/stdcrt, ri=\Ej, rmacs=\E%%,
rmam=\E[=7l, rmcup=\E.3\Er\E[1;25r\E[25;0H, rmdc=\0,
rmir=\Er, rmln=\E[4;1v, rmso=\EG0, rmul=\EG0, rmxon=^N,
rep=\E[%p2%db%p1%c, rf=/usr/share/tabset/stdcrt,
ri=\Ej, rmacs=\E%%, rmam=\E[=7l,
rmcup=\E.3\Er\E[1;25r\E[25;0H, rmdc=\0, rmir=\Er,
rmln=\E[4;1v, rmso=\EG0, rmxon=^N,
rs1=\EC\EDF\E[0;0v\E[8;1v\E[=65l,
rs2=\E.b\E[10;20v\E[14;1v\E[3;0v\E[7;0v\E[=11.h\E[=12.h\E[=1
3.h\E[=14.h\E[=15l\E[=20h\E[=60l\E[=61h\E[=9l\E[=10l\E[=
@ -12523,9 +12519,9 @@ tvi9065|TeleVideo 9065,
%?%p5%t\EGp%;%?%p6%t\EG\,%;%?%p7%t\EG1%;%?%p8%t\E&%;%?
%p9%t\E$%e\E%%%;,
sgr0=\EG0\E%, smacs=\E$, smam=\E=7h, smcup=\E.2, smdc=\Er,
smir=\Eq, smln=\E[4;2v, smso=\EGt, smul=\EG8, smxon=^O,
tbc=\E3, tsl=\E[4;1v\E_30, uc=\EG8\EG0, use=ansi+local,
use=ecma+index,
smir=\Eq, smln=\E[4;2v, smso=\EGt, smxon=^O, tbc=\E3,
tsl=\E[4;1v\E_30, uc=\EG8\EG0, use=adm+sgr,
use=ansi+local, use=ecma+index,
#### Visual (vi)
#
@ -13327,7 +13323,7 @@ wy75|wyse75|Wyse 75,
smkx=\E[?1l\E[?7h\E=, smso=\E[1t\E[7m, smul=\E[2t\E[4m,
tsl=\E[>\,\001, use=ansi+arrows, use=ansi+cup,
use=ansi+local, use=ansi+pp, use=ansi+tabs,
use=decid+cpr, use=vt220+cvis, use=vt220+keypad,
use=decid+cpr, use=vt220+cvis, use=vt100+keypad,
use=vt220+sfkeys, use=vt220+ufkeys,
#
# This terminal description uses the non-hidden attribute mode
@ -13388,7 +13384,7 @@ wy85|wyse85|Wyse 85,
use=ansi+csr, use=ansi+inittabs, use=ansi+local,
use=ansi+pp, use=ansi+sgrbold, use=decid+cpr,
use=vt100+4bsd, use=vt220+vtedit, use=vt220+cvis,
use=vt220+keypad, use=vt220+sfkeys, use=vt220+ufkeys,
use=vt100+keypad, use=vt220+sfkeys, use=vt220+ufkeys,
#
# Wyse 85 with visual bell.
wy85-vb|wyse85-vb|Wyse 85 with visible bell,
@ -13442,7 +13438,7 @@ wy85-8bit|wyse85-8bit|Wyse 85 in 8-bit mode,
tsl=\E[40h\E7\E[25;%i%p1%dH, use=ansi+csr,
use=ansi+inittabs, use=ansi+local, use=ansi+pp,
use=ansi+sgrbold, use=decid+cpr, use=vt100+4bsd,
use=vt100+pfkeys, use=vt220+cvis,
use=vt100+pfkeys-sco, use=vt220+cvis,
#
# Wyse 185 emulating a VT320 7 bit mode.
#
@ -13479,7 +13475,7 @@ wy185|wyse185|Wyse 185,
use=ecma+underline, use=ecma+standout, use=ansi+arrows,
use=ansi+inittabs, use=ansi+local, use=ansi+pp,
use=ansi+sgrbold, use=decid+cpr, use=vt100+4bsd,
use=vt220+vtedit, use=vt220+keypad, use=vt220+sfkeys,
use=vt220+vtedit, use=vt100+keypad, use=vt220+sfkeys,
use=vt220+ufkeys, use=wyse+cvis,
#
# Wyse 185 with 24 data lines and top status (terminal status)
@ -13678,7 +13674,7 @@ wy370|wyse370|wy370-101k|Wyse 370 with 101 key keyboard,
wy370-105k|Wyse 370 with 105 key keyboard,
kfnd=\E[1~, khlp=\E[28~, khome=\E[26~, lf1=PF1, lf2=PF2,
lf3=PF3, lf4=PF4, use=ansi+arrows, use=vt220+vtedit,
use=wy370-nk, use=vt220+keypad, use=vt220+sfkeys,
use=wy370-nk, use=vt100+keypad, use=vt220+sfkeys,
use=vt220+ufkeys,
#
# Function key set for the PC compatible keyboard
@ -13804,7 +13800,7 @@ wy520|wyse520|Wyse 520,
use=ecma+underline, use=ansi+arrows, use=ansi+csr,
use=ansi+cup, use=ansi+local, use=ansi+pp,
use=ansi+sgrbold, use=ansi+tabs, use=decid+cpr,
use=vt220+vtedit, use=vt220+keypad, use=vt220+sfkeys,
use=vt220+vtedit, use=vt100+keypad, use=vt220+sfkeys,
use=vt220+ufkeys, use=wyse+cvis,
#
# Wyse 520 with 24 data lines and status (terminal status)
@ -14345,7 +14341,7 @@ v5410|att5410 in terms of a VT100,
sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
use=ansi+csr, use=ansi+idl1, use=decid+cpr,
use=vt100+fnkeys,
use=vt100+fnkeys-sco,
#
# Teletype Model 5420 -- A souped up 5410, with multiple windows,
@ -17794,7 +17790,7 @@ ts100|ts100-sp|Falco ts100-sp,
rmkx=\E[?1l\E>,
rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, smam=\E[?7h,
smkx=\E[?1h\E=, use=ansi+csr, use=ansi+local,
use=decid+cpr, use=vt100+4bsd, use=vt100+fnkeys,
use=decid+cpr, use=vt100+4bsd, use=vt100+fnkeys-sco,
ts100-ctxt|Falco ts-100 saving context,
rmcup=\E~_b, smcup=\E~_d\E[2J, use=ts100,
@ -19576,7 +19572,7 @@ ncr260vppp|NCR 2900/260 viewpoint,
cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<5>, cuu1=\032$<2>,
dch1=\EW$<2>, dim=\EGp, dl1=\El$<2>, ed=\Ek$<2>,
el=\EK$<2>, home=\036$<2>, ht=^I, hts=\E1, il1=\EM$<2>,
ind=\n$<2>, invis=\EG1,
ind=\n$<2>,
is2=\Ee6\E~%$<100>\E+\E`:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0
\EcC1\Ee7$<100>,
kDC=\El, kEND=\Ek, kHOM=^A, kPRT=\E7, kRIT=^F, ka1=^A, ka3=\EJ,
@ -19591,12 +19587,12 @@ ncr260vppp|NCR 2900/260 viewpoint,
kf9=^B9\r, khome=^A, kich1=\Eq, knp=\EJ, kpp=\EJ, kprt=\EP,
ll=\001$<5>, mc0=\EP$<100>, mc4=^T, mc5=^R,
mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<5>,
nel=\037$<2>, rev=\EG4, ri=\Ej$<2>, rmacs=\EcB0\EH\003,
rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
nel=\037$<2>, ri=\Ej$<2>, rmacs=\EcB0\EH\003, rmir=\Er,
rmxon=\Ec20,
rs2=\Ee6\E~%$<100>\E+\E`:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0
\EcC1\Ee7$<100>,
sgr0=\EG0\EH\003, smacs=\EcB1\EH\002, smir=\Eq,
smso=\EG4, smul=\EG8, smxon=\Ec21, use=ncr260vp+sl,
smxon=\Ec21, use=adm+sgr, use=ncr260vp+sl,
ncr260vp+sl|NCR 2900/260 viewpoint with status-line,
hs,
@ -19639,7 +19635,7 @@ ncr260vt100an|NCR 2900/260 VT100 with ANSI keyboard,
smkx=\E[?1h\E=, smso=\E[1;7m, tbc=\E[3g,
vpa=\E[%p1%dd$<40>, use=ansi+csr, use=ansi+sgrbold,
use=decid+cpr, use=vt220+vtedit, use=vt220+cvis,
use=vt220+keypad, use=ncr260vt+sl,
use=vt100+keypad, use=ncr260vt+sl,
ncr260vt+sl|NCR 2900/260 VT100 status line,
hs,
@ -19700,7 +19696,7 @@ ncr260vt200an|NCR 2900/260 VT200 with ANSI keyboard,
smir=\E[4h, smkx=\E[?1h\E=, tbc=\E[3g,
vpa=\E[%p1%dd$<40>, use=ecma+underline,
use=ecma+standout, use=ansi+sgrbold, use=decid+cpr,
use=vt220+vtedit, use=vt220+cvis, use=vt220+keypad,
use=vt220+vtedit, use=vt220+cvis, use=vt100+keypad,
use=ncr260vt+sl, use=vt220+sfkeys, use=vt220+ufkeys,
ncr260vt200wan|NCR 2900/260 VT200 wide mode ANSI keyboard,
@ -19755,7 +19751,7 @@ ncr260vt300an|NCR 2900/260 VT300 with ANSI keyboard,
smir=\E[4h, smkx=\E[?1h\E=, tbc=\E[3g,
vpa=\E[%p1%dd$<40>, use=ecma+underline,
use=ecma+standout, use=ansi+sgrbold, use=decid+cpr,
use=vt220+vtedit, use=vt220+cvis, use=vt220+keypad,
use=vt220+vtedit, use=vt220+cvis, use=vt100+keypad,
use=ncr260vt+sl, use=vt220+sfkeys, use=vt220+ufkeys,
ncr260vt300wan|NCR 2900/260 VT300 wide mode ANSI keyboard,
@ -19802,7 +19798,7 @@ ncr260wy325pp|NCR 2900/260 Wyse 325,
cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<10>, cuu1=\013$<5>,
cvvis=\E`5, dch1=\EW$<50>, dl1=\ER$<5>, ed=\Ey$<5>,
el=\Et$<5>, home=\036$<5>, ht=^I, hts=\E1, il1=\EE$<5>,
ind=\n$<5>, invis=\EG1,
ind=\n$<5>,
is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`:\E`@\E~!\E"\Ee4\Ex@\E`9
\Ee7$<100>,
kDC=\ER, kEND=\EY, kHOM=\E{, kNXT=\EK, kPRT=\E7, kPRV=\EJ,
@ -19815,8 +19811,8 @@ ncr260wy325pp|NCR 2900/260 Wyse 325,
kf32=^Ao\r, khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP,
mc0=\EP, mc4=^T, mc5=^R,
mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<10>,
nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH\003\EcB0,
rmam=\Ed., rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
nel=\037$<5>, ri=\Ej$<5>, rmacs=\EH\003\EcB0, rmam=\Ed.,
rmir=\Er, rmxon=\Ec20,
rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`:\E`@\E~!\E"\Ee4\Ex@\E`9
\Ee7$<100>,
setb=\s,
@ -19827,7 +19823,7 @@ ncr260wy325pp|NCR 2900/260 Wyse 325,
%{60}%e%p1%{12}%=%t%{61}%e%p1%{13}%=%t%{62}%e%p1%{14}%=
%t%{63}%e%p1%{15}%=%t%{56}%;\Edy%c11$<100>,
sgr0=\EG0\EcB0\EcD$<15>, smacs=\EH\002\EcB1, smam=\Ed/,
smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0,
smir=\Eq, smso=\EGt, smxon=\Ec21, tbc=\E0, use=adm+sgr,
use=ncr260vp+sl, use=tvi920b+fn, use=ansi+arrows,
use=ansi+apparrows,
ncr260wy325wpp|NCR 2900/260 Wyse 325 wide mode,
@ -19901,7 +19897,7 @@ ncr260wy50+pp|NCR 2900/260 Wyse 50+,
cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<30>, cuu1=\013$<5>,
cvvis=\E`5, dch1=\EW$<50>, dim=\EGp, dl1=\ER$<5>,
ed=\EY$<5>, el=\ET$<5>, home=\036$<10>, ht=\011$<5>,
hts=\E1$<5>, il1=\EE$<5>, ind=\n$<5>, invis=\EG1,
hts=\E1$<5>, il1=\EE$<5>, ind=\n$<5>,
is2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`:\E`@\E~!\E"
\Ee4\Ex@\E`9\Ee7$<100>,
kDC=\ER, kEND=\EY, kHOM=\E{, kPRT=\E7, kRIT=^L, ka1=^^, kbs=^H,
@ -19916,12 +19912,12 @@ ncr260wy50+pp|NCR 2900/260 Wyse 50+,
khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP,
mc0=\EP$<10>, mc4=^T, mc5=^R,
mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<10>,
nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH^C, rmam=\Ed.,
rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
nel=\037$<5>, ri=\Ej$<5>, rmacs=\EH^C, rmam=\Ed., rmir=\Er,
rmxon=\Ec20,
rs2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`:\E`@\E~!\E"
\Ee4\Ex@\E`9\Ee7$<100>,
sgr0=\EG0\EH\003$<15>, smacs=\EH^B, smam=\Ed/, smir=\Eq,
smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0$<5>,
smso=\EGt, smxon=\Ec21, tbc=\E0$<5>, use=adm+sgr,
use=ncr260vp+sl,
ncr260wy50+wpp|NCR 2900/260 Wyse 50+ wide mode,
cols#132,
@ -19940,7 +19936,7 @@ ncr260wy60pp|NCR 2900/260 Wyse 60,
cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<10>, cuu1=\013$<5>,
cvvis=\E`5, dch1=\EW$<50>, dl1=\ER$<5>, ed=\Ey$<5>,
el=\Et$<5>, home=\036$<25>, ht=\011$<15>, hts=\E1$<15>,
il1=\EE$<5>, ind=\n$<5>, invis=\EG1,
il1=\EE$<5>, ind=\n$<5>,
is2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`:\E`@\E~!\E"
\Ee4\Ex@\E`9\Ee7$<100>,
kDC=\ER, kEND=\EY, kHOM=\E{, kNXT=\EK, kPRT=\E7, kPRV=\EJ,
@ -19955,13 +19951,13 @@ ncr260wy60pp|NCR 2900/260 Wyse 60,
kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP, mc0=\EP, mc4=^T, mc5=^R,
mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<30>,
nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH^C, rmam=\Ed.,
rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
nel=\037$<5>, ri=\Ej$<5>, rmacs=\EH^C, rmam=\Ed., rmir=\Er,
rmxon=\Ec20,
rs2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`:\E`@\E~!\E"
\Ee4\Ex@\E`9\Ee7$<100>,
sgr0=\EG0\EcB0\EcD$<15>, smacs=\EH^B, smam=\Ed/,
smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0$<15>,
use=ncr260vp+sl,
smir=\Eq, smso=\EGt, smxon=\Ec21, tbc=\E0$<15>,
use=adm+sgr, use=ncr260vp+sl,
ncr260wy60wpp|NCR 2900/260 Wyse 60 wide mode,
cols#132,
cup=\Ea%i%p1%dR%p2%dC$<30>,
@ -20197,10 +20193,10 @@ ndr9500-25-nl|NDR 9500 with 25 lines and no status line,
ndr9500-mc|NDR 9500 with magic cookies (enables underline inverse video invisible and blink),
msgr@,
xmc#1,
blink=\EG2, invis=\EG1, rev=\EG4, rmso=\EG0, rmul=\EG0,
blink=\EG2, rmso=\EG0,
sgr=\E%%\E(%?%p5%p8%|%t\E)%;%?%p9%t\E$%;\EG%{48}%?%p7%t%{1}
%+%;%?%p4%t%{2}%+%;%?%p3%p1%|%t%{4}%+%;%?%p2%t%{8}%+%;%c,
smso=\EG4, smul=\EG8, use=ndr9500,
smso=\EG4, use=ndr9500, use=adm+sgr,
ndr9500-25-mc|NDR 500 with 25 lines and magic cookies,
lines#25, use=ndr9500-mc,
@ -20534,7 +20530,7 @@ tek4105-30|Tektronix 4015 emulating 30 line VT100,
kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rmam=\E[?7l,
rmkx=\E[?1l\E>, rmso=\E[m$<2>, smam=\E[?7h,
smkx=\E[?1h\E=, use=ansi+csr, use=ansi+local,
use=vt100+4bsd, use=vt100+fnkeys,
use=vt100+4bsd, use=vt100+fnkeys-sco,
# Tektronix 4105 from BRL
# The following setup modes are assumed for normal operation:
@ -24449,7 +24445,7 @@ xtalk|IBM PC with xtalk communication program (versions up to 3.4),
rmkx=\E[?1l\E>, rmso=\E[m\s,
rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sgr0=\E[m,
smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m\s,
tbc=\E[3g, use=ansi+local, use=vt100+fnkeys,
tbc=\E[3g, use=ansi+local, use=vt100+fnkeys-sco,
# The official PC terminal emulator program of the AT&T Product Centers.
# Note - insert mode commented out - doesn't seem to work on AT&T PC.
@ -25502,7 +25498,7 @@ v3220|LANPAR Vision II model 3220/3221/3222,
# https://invisible-island.net/ncurses/ncurses-netbsd.html
#
# ncurses makes explicit checks for a few user-definable capabilities: AX, E3,
# NQ, RGB, U8, XM, which are documented in the user_caps(5) manual page.
# NQ, RGB, U8, XM, xm, which are documented in the user_caps(5) manual page.
#
#### SCREEN Extensions:
#
@ -25578,11 +25574,36 @@ v3220|LANPAR Vision II model 3220/3221/3222,
#
# These are the extended keys defined in this file:
#
# kDC3 kDC4 kDC5 kDC6 kDC7 kDN kDN3 kDN4 kDN5 kDN6 kDN7 kEND3 kEND4 kEND5 kEND6
# kEND7 kHOM3 kHOM4 kHOM5 kHOM6 kHOM7 kIC3 kIC4 kIC5 kIC6 kIC7 kLFT3 kLFT4
# kLFT5 kLFT6 kLFT7 kNXT3 kNXT4 kNXT5 kNXT6 kNXT7 kPRV3 kPRV4 kPRV5 kPRV6 kPRV7
# kRIT3 kRIT4 kRIT5 kRIT6 kRIT7 kUP kUP3 kUP4 kUP5 kUP6 kUP7 kxIN kxOUT ka2 kb1
# kb3 kc2
# alt_{A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z} Alt + key
# kDC{3|4|5|6|7} modifier + delete-character
# kDN shifted cursor-down
# kDN{3|4|5|6|7} modifier + cursor-down
# kEND{3|4|5|6|7|8} modifier + end
# kF{1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16} shifted function-key
# kHOM{3|4|5|6|7|8} modifier + home
# kIC{3|4|5|6|7} modifier + insert-character
# kLFT{3|4|5|6|7} modifier + cursor-left
# kNXT{3|4|5|6|7} modifier + next
# kPRV{3|4|5|6|7} modifier + previous
# kRIT{3|4|5|6|7} modifier + cursor-right
# kUP shifted cursor-up
# kUP{3|4|5|6|7} modifier + cursor-up
# ka2 keypad key between ka1 and ka3
# kb1 keypad key left of kb2
# kb3 keypad key right of kb2
# kc2 keypad key between kc1 and kc3
# kcbt{2} modifier + tab-key
# kp{1|2|3|4|5|6|7|8|9} numbered keypad keys
# kpADD keypad "+"
# kpCMA keypad ","
# kpDIV keypad "/"
# kpDOT keypad "."
# kpMUL keypad "*"
# kpNUM keypad NumLock
# kpSUB keypad "-"
# kpZRO keypad "0"
# kxIN xterm focus-in
# kxOUT xterm focus-out
#
# Bracketed paste is described with these capabilities in vim:
#
@ -28006,4 +28027,14 @@ v3220|LANPAR Vision II model 3220/3221/3222,
# + add NQ to list of user-definable capabilities in user_caps(5) (patch
# by Jakub Horky)
#
# 2026-01-17
# + provide a generated list of user-defined special keys (adapted from
# patch by Jakub Horky) -TD
# + rename vt100+keypad, etc., to vt100+keypad+sco, etc., to keep
# historical blocks while providing for renaming of vt220+keypad as
# vt100+keypad (prompted by patch by Jakub Horky) -TD
# + use vt100+keypad instead of vt220+keypad (patch by Jakub Horky)
# + use vt100+keypad in putty+keypad, replacing kpXX extension -TD
# + remove vt100+fnkeys-sco from putty -TD
#
######## SHANTIH! SHANTIH! SHANTIH!

View File

@ -1,6 +1,6 @@
# $Id: Makefile.in,v 1.194 2025/10/25 17:29:43 tom Exp $
# $Id: Makefile.in,v 1.198 2026/01/14 08:52:45 tom Exp $
##############################################################################
# Copyright 2018-2024,2025 Thomas E. Dickey #
# Copyright 2018-2025,2026 Thomas E. Dickey #
# Copyright 1998-2017,2018 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@ -201,14 +201,18 @@ TEST_DEPS = ../lib/@LIB_PREFIX@ncurses@DFT_DEP_SUFFIX@
TEST_ARGS = @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@
TEST_LDFLAGS = @LD_MODEL@ $(TEST_ARGS) @LIBS@ @LOCAL_LDFLAGS@ @LDFLAGS@
# Unlike the other test-programs, lib_mvcur uses internal functions which
# are not exported when using versioned symbols, as well as objects from
# the progs directory.
TEST_INTERNALS = lib_mvcur$x
TEST_PROGS = \
captoinfo$x \
hardscroll$x \
hashmap$x \
lib_mvcur$x \
link_test$x \
report_ctype$x \
report_hashing$x
report_hashing$x @NO_SHARED@ $(TEST_INTERNALS)
LOCAL_LIBDIR = @top_builddir@/lib
@ -342,12 +346,24 @@ realclean :: distclean
# These rules build test-programs for the modules that have test-drivers
@MAKE_PHONY@.PHONY : test_progs
test_progs : $(TEST_PROGS)
test_clean :
-rm -f $(TEST_PROGS)
CAPTOINFO_DEPS = \
../@DFT_OBJ_SUBDIR@/comp_scan$o
MVCUR_DEPS = \
../@DFT_OBJ_SUBDIR@/captoinfo$o \
../@DFT_OBJ_SUBDIR@/comp_expand$o \
../@DFT_OBJ_SUBDIR@/comp_scan$o \
../@DFT_OBJ_SUBDIR@/dump_entry$o \
../@DFT_OBJ_SUBDIR@/write_entry$o
./link_test.c : $(base)/MKlib_gen.sh ../include/curses.h
FGREP="@FGREP@" $(SHELL) -e $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" implemented <../include/curses.h >$@
captoinfo$x : $(tinfo)/captoinfo.c $(TEST_DEPS)
@ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DMAIN $(tinfo)/captoinfo.c $(TEST_LDFLAGS)
captoinfo$x : $(tinfo)/captoinfo.c $(CAPTOINFO_DEPS) $(TEST_DEPS)
@ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DMAIN $(tinfo)/captoinfo.c $(CAPTOINFO_DEPS) $(TEST_LDFLAGS)
hardscroll$x : $(serial)/hardscroll.c $(TEST_DEPS)
@ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DSCROLLDEBUG $(serial)/hardscroll.c $(TEST_LDFLAGS)
@ -355,13 +371,14 @@ hardscroll$x : $(serial)/hardscroll.c $(TEST_DEPS)
hashmap$x : $(serial)/hashmap.c $(serial)/hardscroll.c $(TEST_DEPS)
@ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DHASHDEBUG $(serial)/hashmap.c $(serial)/hardscroll.c $(TEST_LDFLAGS)
lib_mvcur$x : $(serial)/lib_mvcur.c $(TEST_DEPS) \
../@DFT_OBJ_SUBDIR@/dump_entry$o
@ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DNCURSES_TEST -I$(serial)/../../progs $(serial)/lib_mvcur.c ../@DFT_OBJ_SUBDIR@/dump_entry$o $(TEST_LDFLAGS)
lib_mvcur$x : $(serial)/lib_mvcur.c $(MVCUR_DEPS) $(TEST_DEPS) \
$(INCDIR)/tic.h \
$(srcdir)/../progs/dump_entry.h
@ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) -DNCURSES_TEST -I$(serial)/../../progs $(serial)/lib_mvcur.c $(MVCUR_DEPS) $(TEST_LDFLAGS)
link_test$x : ./link_test.c $(TEST_DEPS) \
../@DFT_OBJ_SUBDIR@/link_test$o
@ECHO_LD@ $(CC) -o $@ $(CFLAGS_DEFAULT) ../@DFT_OBJ_SUBDIR@/link_test$o $(TEST_LDFLAGS)
@ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) ../@DFT_OBJ_SUBDIR@/link_test$o $(TEST_LDFLAGS)
../@DFT_OBJ_SUBDIR@/dump_entry$o:
( cd ../progs && $(MAKE) ../@DFT_OBJ_SUBDIR@/dump_entry$o )
@ -369,14 +386,14 @@ link_test$x : ./link_test.c $(TEST_DEPS) \
report_ctype$x : \
$(srcdir)/curses.priv.h \
$(srcdir)/report_ctype.c $(TEST_DEPS)
@ECHO_LD@ $(CC) -o $@ $(CFLAGS_DEFAULT) $(srcdir)/report_ctype.c $(TEST_LDFLAGS)
@ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) $(srcdir)/report_ctype.c $(TEST_LDFLAGS)
@echo "... made $@"
./report_ctype$x
report_hashing$x : \
$(srcdir)/curses.priv.h \
$(srcdir)/report_hashing.c $(TEST_DEPS)
@ECHO_LD@ $(CC) -o $@ $(CFLAGS_DEFAULT) $(srcdir)/report_hashing.c $(TEST_LDFLAGS)
@ECHO_LD@ $(LIBTOOL_LINK) -o $@ $(CFLAGS_DEFAULT) $(srcdir)/report_hashing.c $(TEST_LDFLAGS)
# Verify that each header-file can be compiled without including another.
@MAKE_PHONY@.PHONY : check_headers

View File

@ -2,10 +2,10 @@
#
# MKlib_gen.sh -- generate sources from curses.h macro definitions
#
# ($Id: MKlib_gen.sh,v 1.79 2025/02/23 01:55:06 tom Exp $)
# ($Id: MKlib_gen.sh,v 1.80 2026/01/15 00:40:09 tom Exp $)
#
##############################################################################
# Copyright 2018-2024,2025 Thomas E. Dickey #
# Copyright 2018-2025,2026 Thomas E. Dickey #
# Copyright 1998-2016,2017 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@ -532,6 +532,53 @@ DECLARATIONS
EOF
# stack values:
# 1 = constant-enabled
# 0 = default enabled (either top-level or non-constant #if/#ifdef)
# -1 = constant-disabled
$AWK 'BEGIN{
level = 0;
stack[level] = 0;
}
/^#ifdef/{
stack[++level] = 0;
print;
next;
}
/^#elif/{
print;
next;
}
/^#if/{
level++;
sub("[ \t]/[*].*","");
if (match($0,"#if[ \t]*1$") > 0)
stack[level] = 1;
else if (match($0,"#if[ \t]*0$") > 0)
stack[level] = -1;
else
stack[level] = 0;
print;
next;
}
/^#else/{
if (stack[level] == 1) {
stack[level] = -1;
} else if (stack[level] == -1) {
stack[level] = 1;
}
print;
next;
}
/^#endif/{
--level;
print;
next;
}
{
if (stack[level] >= 0)
print;
}' | \
sed -n -f $ED1 \
| sed -e 's/NCURSES_EXPORT(\(.*\)) \(.*\) (\(.*\))/\1 \2(\3)/' \
| sed -f $ED2 \

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright 2018-2024,2025 Thomas E. Dickey *
* Copyright 2018-2025,2026 Thomas E. Dickey *
* Copyright 1998-2017,2018 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@ -35,7 +35,7 @@
****************************************************************************/
/*
* $Id: curses.priv.h,v 1.742 2025/12/31 14:30:54 tom Exp $
* $Id: curses.priv.h,v 1.744 2026/01/13 08:51:14 tom Exp $
*
* curses.priv.h
*
@ -1836,6 +1836,8 @@ extern NCURSES_EXPORT(const char *) _nc_viscbuf (const NCURSES_CH_T *, int);
#define START_TRACE() /* nothing */
#define USE_TRACEF(mask) 0
#define T(a)
#define TR(n, a)
#define TPUTS_TRACE(s)

View File

@ -1,6 +1,6 @@
# $Id: modules,v 1.133 2025/12/30 15:13:55 tom Exp $
# $Id: modules,v 1.134 2026/01/14 01:21:25 tom Exp $
##############################################################################
# Copyright 2019-2020,2025 Thomas E. Dickey #
# Copyright 2019-2025,2026 Thomas E. Dickey #
# Copyright 1998-2013,2017 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@ -68,7 +68,7 @@ lib_isendwin lib $(base) $(HEADER_DEPS)
lib_leaveok lib $(base) $(HEADER_DEPS)
lib_mouse lib $(base) $(HEADER_DEPS) $(INCDIR)/tic.h
lib_move lib $(base) $(HEADER_DEPS)
lib_mvcur lib $(serial) $(HEADER_DEPS) $(INCDIR)/tic.h $(srcdir)/../progs/dump_entry.h
lib_mvcur lib $(serial) $(HEADER_DEPS)
lib_mvwin lib $(base) $(HEADER_DEPS)
lib_newterm lib $(base) $(HEADER_DEPS) $(INCDIR)/tic.h
lib_newwin lib $(base) $(HEADER_DEPS)

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright 2020-2023,2024 Thomas E. Dickey *
* Copyright 2020-2024,2026 Thomas E. Dickey *
* Copyright 1999-2010,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@ -30,7 +30,7 @@
#include <curses.priv.h>
#include <tic.h> /* struct tinfo_fkeys */
MODULE_ID("$Id: init_keytry.c,v 1.22 2024/12/07 18:14:49 tom Exp $")
MODULE_ID("$Id: init_keytry.c,v 1.24 2026/01/18 00:53:15 tom Exp $")
/*
** _nc_init_keytry()
@ -89,6 +89,8 @@ _nc_init_keytry(SCREEN *sp)
* Add any of the extended strings to the tries if their name begins
* with 'k', i.e., they follow the convention of other terminfo key
* names.
*
* The "alt_" is a special case, for djgpp.
*/
{
TERMTYPE *tp = &(sp->_term->type);
@ -96,7 +98,7 @@ _nc_init_keytry(SCREEN *sp)
const char *name = ExtStrname(tp, (int) n, strnames);
const char *value = tp->Strings[n];
if (name != NULL
&& *name == 'k'
&& ((*name == 'k') || !strncmp(name, "alt_", 4))
&& VALID_STRING(value)
&& NCURSES_SP_NAME(key_defined) (NCURSES_SP_ARGx
value) == 0) {

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright 2018-2024,2025 Thomas E. Dickey *
* Copyright 2018-2025,2026 Thomas E. Dickey *
* Copyright 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@ -160,7 +160,7 @@
#define CUR SP_TERMTYPE
#endif
MODULE_ID("$Id: lib_mvcur.c,v 1.167 2025/12/27 12:34:03 tom Exp $")
MODULE_ID("$Id: lib_mvcur.c,v 1.168 2026/01/13 08:43:39 tom Exp $")
#define WANT_CHAR(sp, y, x) NewScreen(sp)->_line[y].text[x] /* desired state */
@ -175,6 +175,29 @@ MODULE_ID("$Id: lib_mvcur.c,v 1.167 2025/12/27 12:34:03 tom Exp $")
static bool profiling = FALSE;
static float diff;
#define tputs TestTPUTS
#define tputs_sp TestTPUTS_sp
#define putp TestPUTP
static unsigned long xmits;
/* these override lib_tputs.c */
static int
NCURSES_SP_NAME(TestTPUTS)(NCURSES_SP_DCLx
const char *string,
int affcnt GCC_UNUSED,
NCURSES_SP_OUTC outc)
/* stub tputs() that dumps sequences in a visible form */
{
(void) SP_PARM;
(void) outc;
if (profiling)
xmits += strlen(string);
else
(void) fputs(_nc_visbuf(string), stdout);
return (OK);
}
#endif /* MAIN */
#undef NCURSES_OUTC_FUNC
@ -1154,39 +1177,6 @@ NCURSES_EXPORT_VAR(int) _nc_optimize_enable = OPTIMIZE_ALL;
NCURSES_EXPORT_VAR(const char *) _nc_progname = "mvcur";
static unsigned long xmits;
/* these override lib_tputs.c */
NCURSES_EXPORT(int)
tputs(const char *string, int affcnt GCC_UNUSED, int (*outc) (int) GCC_UNUSED)
/* stub tputs() that dumps sequences in a visible form */
{
if (profiling)
xmits += strlen(string);
else
(void) fputs(_nc_visbuf(string), stdout);
return (OK);
}
NCURSES_EXPORT(int)
putp(const char *string)
{
return (tputs(string, 1, _nc_outch));
}
NCURSES_EXPORT(int)
_nc_outch(int ch)
{
putc(ch, stdout);
return OK;
}
NCURSES_EXPORT(int)
delay_output(int ms GCC_UNUSED)
{
return OK;
}
static char tname[PATH_MAX];
static void

View File

@ -1,4 +1,4 @@
/* $Id: wcwidth.h,v 1.11 2026/01/03 11:44:47 tom Exp $ */
/* $Id: wcwidth.h,v 1.12 2026/01/12 00:27:54 tom Exp $ */
/*
* Copyright 2002-2025,2026 by Thomas E. Dickey
@ -113,8 +113,7 @@
*-----------------------------------------------------------------------------
*/
#ifndef _WCWIDTH_H_incl
#define _WCWIDTH_H_incl 1
#ifdef mk_wcwidth
#ifdef TEST_DRIVER
#include <stdio.h>
@ -1196,4 +1195,4 @@ main(int argc, char **argv)
}
#endif /* TEST_DRIVER */
#endif /* _WCWIDTH_H_incl 1 */
#endif /* defined(mk_wcwidth) */

View File

@ -1,8 +1,8 @@
ncurses6td (6.6+20260103) unstable; urgency=low
ncurses6td (6.6+20260117) unstable; urgency=low
* latest weekly patch
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 03 Jan 2026 05:44:45 -0500
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 17 Jan 2026 06:18:11 -0500
ncurses6 (5.9+20131005) unstable; urgency=low

View File

@ -1,8 +1,8 @@
ncurses6td (6.6+20260103) unstable; urgency=low
ncurses6td (6.6+20260117) unstable; urgency=low
* latest weekly patch
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 03 Jan 2026 05:44:45 -0500
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 17 Jan 2026 06:18:11 -0500
ncurses6 (5.9+20131005) unstable; urgency=low

View File

@ -1,8 +1,8 @@
ncurses6td (6.6+20260103) unstable; urgency=low
ncurses6td (6.6+20260117) unstable; urgency=low
* latest weekly patch
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 03 Jan 2026 05:44:45 -0500
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 17 Jan 2026 06:18:11 -0500
ncurses6 (5.9+20120608) unstable; urgency=low

View File

@ -1,4 +1,4 @@
# $Id: ncurses6td.lintian-overrides,v 1.3 2025/06/14 19:43:41 tom Exp $
# $Id: ncurses6td.lintian-overrides,v 1.4 2026/01/14 09:51:05 tom Exp $
# This is intentional.
ncurses6td: package-name-doesnt-match-sonames libformw6-6 libmenuw6-6 libncurses++w6-6 libncursesw6-6 libpanelw6-6 libticw6-6 libtinfow6-6
@ -6,6 +6,6 @@ ncurses6td: package-name-doesnt-match-sonames libformw6-6 libmenuw6-6 libncurses
# This is intentional.
ncurses6td: no-manual-page
ncurses6td: non-dev-pkg-with-shlib-symlink
ncurses6td: embedded-library ncurses [usr/lib/x86_64-linux-gnu/libtinfow6.so.6.5]
ncurses6td: embedded-library ncurses [usr/lib/x86_64-linux-gnu/libtinfow6.so.6.6]
# vile: confmode

View File

@ -1,4 +1,4 @@
# $Id: ncursest6td.lintian-overrides,v 1.3 2025/06/14 19:43:41 tom Exp $
# $Id: ncursest6td.lintian-overrides,v 1.4 2026/01/14 09:51:13 tom Exp $
# This is intentional.
ncursest6td: package-name-doesnt-match-sonames libformtw6-6 libmenutw6-6 libncurses++tw6-6 libncursestw6-6 libpaneltw6-6 libtictw6-6 libtinfotw6-6
@ -6,6 +6,6 @@ ncursest6td: package-name-doesnt-match-sonames libformtw6-6 libmenutw6-6 libncur
# This is intentional.
ncursest6td: no-manual-page
ncursest6td: non-dev-pkg-with-shlib-symlink
ncursest6td: embedded-library ncurses [usr/lib/x86_64-linux-gnu/libtinfotw6.so.6.5]
ncursest6td: embedded-library ncurses [usr/lib/x86_64-linux-gnu/libtinfotw6.so.6.6]
# vile: confmode

View File

@ -1,4 +1,4 @@
; $Id: mingw-ncurses.nsi,v 1.742 2026/01/03 10:44:45 tom Exp $
; $Id: mingw-ncurses.nsi,v 1.744 2026/01/17 11:18:11 tom Exp $
; TODO add examples
; TODO bump ABI to 6
@ -10,7 +10,7 @@
!define VERSION_MAJOR "6"
!define VERSION_MINOR "6"
!define VERSION_YYYY "2026"
!define VERSION_MMDD "0103"
!define VERSION_MMDD "0117"
!define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
!define MY_ABI "5"

View File

@ -3,7 +3,7 @@
Summary: shared libraries for terminal handling
Name: mingw32-ncurses6
Version: 6.6
Release: 20260103
Release: 20260117
License: X11 License Distribution Modification Variant
Group: Development/Libraries
URL: https://invisible-island.net/ncurses/
@ -144,8 +144,8 @@ popd
%changelog
* Sat Jan 03 2026 Thomas E. Dickey
- testing ncurses 6.6-20260103
* Sat Jan 17 2026 Thomas E. Dickey
- testing ncurses 6.6-20260117
* Sat Feb 25 2023 Thomas Dickey
- amend URLs per rpmlint

View File

@ -1,7 +1,7 @@
Summary: shared libraries for terminal handling
Name: ncurses6
Version: 6.6
Release: 20260103
Release: 20260117
License: X11 License Distribution Modification Variant
Group: Development/Libraries
URL: https://invisible-island.net/ncurses/
@ -134,8 +134,8 @@ rm -f test/ncurses
%changelog
* Sat Jan 03 2026 Thomas E. Dickey
- testing ncurses 6.6-20260103
* Sat Jan 17 2026 Thomas E. Dickey
- testing ncurses 6.6-20260117
* Sat Feb 25 2023 Thomas Dickey
- amend URLs per rpmlint

View File

@ -1,7 +1,7 @@
Summary: Curses library with POSIX thread support.
Name: ncursest6
Version: 6.6
Release: 20260103
Release: 20260117
License: X11 License Distribution Modification Variant
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
@ -142,8 +142,8 @@ exit 0
%changelog
* Sat Jan 03 2026 Thomas E. Dickey
- testing ncurses 6.6-20260103
* Sat Jan 17 2026 Thomas E. Dickey
- testing ncurses 6.6-20260117
* Tue Dec 24 2019 Thomas Dickey
- drop custom CC_NORMAL warning flags because setting CFLAGS interferes with

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright 2018-2024,2025 Thomas E. Dickey *
* Copyright 2018-2025,2026 Thomas E. Dickey *
* Copyright 2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@ -27,7 +27,7 @@
* authorization. *
****************************************************************************/
/*
* $Id: demo_new_pair.c,v 1.34 2025/08/08 15:47:32 tom Exp $
* $Id: demo_new_pair.c,v 1.35 2026/01/10 20:36:29 tom Exp $
*
* Demonstrate the alloc_pair() function.
*/
@ -167,7 +167,7 @@ VERSION_COMMON()
int
main(int argc, char *argv[])
{
static const char *help[] =
static NCURSES_CONST char *help[] =
{
"This program iterates over the possible color combinations,",
"allocating or initializing color pairs. For best results,",

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright 2019-2024,2025 Thomas E. Dickey *
* Copyright 2019-2025,2026 Thomas E. Dickey *
* Copyright 2005-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@ -30,7 +30,7 @@
/*
* Author: Thomas E. Dickey
*
* $Id: demo_termcap.c,v 1.75 2025/07/05 15:11:35 tom Exp $
* $Id: demo_termcap.c,v 1.76 2026/01/11 12:03:22 tom Exp $
*
* A simple demo of the termcap interface.
*/
@ -867,7 +867,7 @@ main(int argc, char *argv[])
} else if ((name = getenv("TERM")) != NULL) {
brute_force(name);
} else {
static NCURSES_CONST char dumb[] = "dumb";
static NCURSES_CONST char dumb[] = DEFAULT_TERM_ENV;
brute_force(dumb);
}
}
@ -894,7 +894,7 @@ main(int argc, char *argv[])
} else if ((name = getenv("TERM")) != NULL) {
demo_termcap(name);
} else {
static NCURSES_CONST char dumb[] = "dumb";
static NCURSES_CONST char dumb[] = DEFAULT_TERM_ENV;
demo_termcap(dumb);
}
}

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright 2019-2024,2025 Thomas E. Dickey *
* Copyright 2019-2025,2026 Thomas E. Dickey *
* Copyright 2009-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@ -30,7 +30,7 @@
/*
* Author: Thomas E. Dickey
*
* $Id: demo_terminfo.c,v 1.64 2025/07/05 15:11:35 tom Exp $
* $Id: demo_terminfo.c,v 1.65 2026/01/11 12:03:22 tom Exp $
*
* A simple demo of the terminfo interface.
*/
@ -891,7 +891,7 @@ main(int argc, char *argv[])
} else if ((name = getenv("TERM")) != NULL) {
brute_force(name);
} else {
static NCURSES_CONST char dumb[] = "dumb";
static NCURSES_CONST char dumb[] = DEFAULT_TERM_ENV;
brute_force(dumb);
}
}
@ -918,7 +918,7 @@ main(int argc, char *argv[])
} else if ((name = getenv("TERM")) != NULL) {
demo_terminfo(name);
} else {
static NCURSES_CONST char dumb[] = "dumb";
static NCURSES_CONST char dumb[] = DEFAULT_TERM_ENV;
demo_terminfo(dumb);
}
}

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright 2019-2024,2025 Thomas E. Dickey *
* Copyright 2019-2025,2026 Thomas E. Dickey *
* Copyright 2000-2013,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@ -30,7 +30,7 @@
/*
* Author: Thomas E. Dickey - 2000
*
* $Id: railroad.c,v 1.31 2025/12/14 10:58:45 tom Exp $
* $Id: railroad.c,v 1.32 2026/01/11 12:03:22 tom Exp $
*
* A simple demo of the termcap interface.
*/
@ -185,17 +185,13 @@ onsig(int n GCC_UNUSED)
static void
railroad(char **args)
{
NCURSES_CONST char *name = getenv("TERM");
NCURSES_CONST char *name;
char buffer[1024];
char area[1024], *ap = area;
int z;
if (name == NULL)
#ifdef DEFAULT_TERM_ENV
if ((name = getenv("TERM")) == NULL)
name = DEFAULT_TERM_ENV;
#else
name = "dumb";
#endif
InitAndCatch(z = tgetent(buffer, name), onsig);
if (z >= 0) {

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright 2018-2024,2025 Thomas E. Dickey *
* Copyright 2018-2025,2026 Thomas E. Dickey *
* Copyright 1998-2017,2018 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@ -30,7 +30,7 @@
/****************************************************************************
* Author: Thomas E. Dickey 1996-on *
****************************************************************************/
/* $Id: test.priv.h,v 1.229 2025/12/06 21:21:06 tom Exp $ */
/* $Id: test.priv.h,v 1.230 2026/01/11 12:03:22 tom Exp $ */
#ifndef __TEST_PRIV_H
#define __TEST_PRIV_H 1
@ -782,6 +782,10 @@ extern int optind;
#define HELP_KEY_1 '?'
#define HELP_KEY_2 KEY_F(1)
#ifndef DEFAULT_TERM_ENV
#define DEFAULT_TERM_ENV "dumb"
#endif
/* our "standard" options for getopt, needed for help2man */
#define OPTS_COMMAND 'c'
#define OPTS_LOGGING 'l'

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright 2020-2024,2025 Thomas E. Dickey *
* Copyright 2020-2025,2026 Thomas E. Dickey *
* Copyright 2015,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@ -30,7 +30,7 @@
/*
* Author: Thomas E. Dickey
*
* $Id: test_setupterm.c,v 1.19 2025/07/05 15:21:56 tom Exp $
* $Id: test_setupterm.c,v 1.20 2026/01/11 12:03:22 tom Exp $
*
* A simple demo of setupterm/restartterm.
*/
@ -242,7 +242,7 @@ main(int argc, char *argv[])
if (a_opt) {
static char predef[][12] =
{"vt100", "dumb", "lpr", "unknown", "none-such"};
{"vt100", DEFAULT_TERM_ENV, "lpr", "unknown", "none-such"};
if (optind < argc) {
usage(FALSE);
}

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright 2019-2024,2025 Thomas E. Dickey *
* Copyright 2019-2025,2026 Thomas E. Dickey *
* Copyright 2015-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@ -30,7 +30,7 @@
/*
* Author: Thomas E. Dickey
*
* $Id: test_sgr.c,v 1.28 2025/07/05 15:11:35 tom Exp $
* $Id: test_sgr.c,v 1.29 2026/01/11 12:03:22 tom Exp $
*
* A simple demo of the sgr/sgr0 terminal capabilities.
*/
@ -369,7 +369,7 @@ main(int argc, char *argv[])
} else if ((name = getenv("TERM")) != NULL) {
brute_force(name);
} else {
static const char dumb[] = "dumb";
static const char dumb[] = DEFAULT_TERM_ENV;
brute_force(dumb);
}