File ncurses-6.1.dif of Package ncurses.9557

---
 aclocal.m4                   |   40 ++++++------
 configure                    |   41 +++++++-----
 include/curses.h.in          |    3 
 include/termcap.h.in         |    2 
 include/tic.h                |    4 -
 man/man_db.renames           |    2 
 man/ncurses.3x               |    4 +
 misc/gen-pkgconfig.in        |    7 +-
 misc/ncurses-config.in       |    2 
 misc/terminfo.src            |  138 ++++++++++++++++++++++++++++++++++---------
 ncurses/Makefile.in          |    2 
 ncurses/curses.priv.h        |    2 
 ncurses/run_cmd.sh           |   11 +++
 ncurses/tinfo/MKfallback.sh  |   10 ++-
 ncurses/tinfo/access.c       |   27 ++++++++
 ncurses/tinfo/lib_setup.c    |    3 
 ncurses/tinfo/read_entry.c   |    2 
 ncurses/tinfo/read_termcap.c |   21 ++++--
 progs/Makefile.in            |    4 -
 test/test.priv.h             |    4 -
 20 files changed, 248 insertions(+), 81 deletions(-)

--- aclocal.m4
+++ aclocal.m4	2018-03-05 07:53:48.984265229 +0000
@@ -580,7 +580,7 @@ AC_MSG_CHECKING([for size of bool])
 AC_CACHE_VAL(cf_cv_type_of_bool,[
 	rm -f cf_test.out
 	AC_TRY_RUN([
-#include <stdlib.h>
+//#include <stdlib.h> // conflict with exit declaration
 #include <stdio.h>
 
 #if defined(__cplusplus)
@@ -4813,12 +4813,15 @@ cat >>$cf_edit_man <<CF_EOF
 		echo '? missing rename for '\$cf_source
 		cf_target="\$cf_source"
 	fi
-	cf_target="\$cf_subdir\${section}/\${cf_target}"
-
 CF_EOF
 fi
 
 cat >>$cf_edit_man <<CF_EOF
+for t in \$cf_target; do
+	t="\$cf_subdir\${section}/\${t}"
+CF_EOF
+
+cat >>$cf_edit_man <<CF_EOF
 	sed	-f $cf_man_alias \\
 CF_EOF
 
@@ -4828,7 +4831,7 @@ cat >>$cf_edit_man <<CF_EOF
 CF_EOF
 else
 cat >>$cf_edit_man <<CF_EOF
-		< \$i >\$TMP
+		< \$i | sed -f $srcdir/edit_man.sed >\$TMP
 CF_EOF
 fi
 
@@ -4868,7 +4871,7 @@ cat >>$cf_edit_man <<CF_EOF
 		mv \$TMP.$cf_so_strip \$TMP
 	fi
 	fi
-	cf_target="\$cf_target.$cf_so_strip"
+	t="\$t.$cf_so_strip"
 CF_EOF
 fi
 
@@ -4877,23 +4880,23 @@ case "$MANPAGE_FORMAT" in
 cat >>$cf_edit_man <<CF_EOF
 	if test \$form = format ; then
 		# BSDI installs only .0 suffixes in the cat directories
-		cf_target="\`echo \$cf_target|sed -e 's/\.[[1-9]]\+[[a-z]]*/.0/'\`"
+		t="\`echo \$t|sed -e 's/\.[[1-9]]\+[[a-z]]*/.0/'\`"
 	fi
 CF_EOF
   ;;
 esac
 
 cat >>$cf_edit_man <<CF_EOF
-	suffix=\`basename \$cf_target | sed -e 's%^[[^.]]*%%'\`
+	suffix=\`basename \$t | sed -e 's%^[[^.]]*%%'\`
 	if test \$verb = installing ; then
-		echo \$verb \$cf_target
-		\$INSTALL_DATA \$TMP \$cf_target
+		echo \$verb \$t
+		\$INSTALL_DATA \$TMP \$t
 		test -d \$cf_subdir\${section} &&
 		test -n "\$aliases" && (
 			cd \$cf_subdir\${section} && (
-				cf_source=\`echo \$cf_target |sed -e 's%^.*/\([[^/]][[^/]]*/[[^/]][[^/]]*$\)%\1%'\`
+				cf_source=\`echo \$t |sed -e 's%^.*/\([[^/]][[^/]]*/[[^/]][[^/]]*$\)%\1%'\`
 				test -n "$cf_so_strip" && cf_source=\`echo \$cf_source |sed -e 's%\.$cf_so_strip\$%%'\`
-				cf_target=\`basename \$cf_target\`
+				t=\`basename \$t\`
 				for cf_alias in \$aliases
 				do
 					if test \$section = 1 ; then
@@ -4902,7 +4905,7 @@ cat >>$cf_edit_man <<CF_EOF
 
 					if test "$MANPAGE_SYMLINKS" = yes ; then
 						if test -f \$cf_alias\${suffix} ; then
-							if ( cmp -s \$cf_target \$cf_alias\${suffix} )
+							if ( cmp -s \$t \$cf_alias\${suffix} )
 							then
 								continue
 							fi
@@ -4912,18 +4915,18 @@ CF_EOF
 case "x$LN_S" in
 (*-f)
 cat >>$cf_edit_man <<CF_EOF
-						$LN_S \$cf_target \$cf_alias\${suffix}
+						$LN_S \$t \$cf_alias\${suffix}
 CF_EOF
 	;;
 (*)
 cat >>$cf_edit_man <<CF_EOF
 						rm -f \$cf_alias\${suffix}
-						$LN_S \$cf_target \$cf_alias\${suffix}
+						$LN_S \$t \$cf_alias\${suffix}
 CF_EOF
 	;;
 esac
 cat >>$cf_edit_man <<CF_EOF
-					elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
+					elif test "\$t" != "\$cf_alias\${suffix}" ; then
 						echo ".so \$cf_source" >\$TMP
 CF_EOF
 if test -n "$cf_compress" ; then
@@ -4943,9 +4946,9 @@ cat >>$cf_edit_man <<CF_EOF
 			)
 		)
 	elif test \$verb = removing ; then
-		test -f \$cf_target && (
-			echo \$verb \$cf_target
-			rm -f \$cf_target
+		test -f \$t && (
+			echo \$verb \$t
+			rm -f \$t
 		)
 		test -d \$cf_subdir\${section} &&
 		test -n "\$aliases" && (
@@ -4965,6 +4968,7 @@ cat >>$cf_edit_man <<CF_EOF
 #		echo ".hy 0"
 		cat \$TMP
 	fi
+done
 	;;
 esac
 done
--- configure
+++ configure	2018-03-05 07:53:48.988265152 +0000
@@ -5972,7 +5972,7 @@ case $cf_cv_system_name in
 	fi
 	;;
 (linux*|gnu*|k*bsd*-gnu|freebsd*)
-	LD_RPATH_OPT="-Wl,-rpath,"
+	LD_RPATH_OPT="-Wl,-rpath-link,"
 	;;
 (openbsd[2-9].*|mirbsd*)
 	LD_RPATH_OPT="-Wl,-rpath,"
@@ -12464,12 +12464,15 @@ cat >>$cf_edit_man <<CF_EOF
 		echo '? missing rename for '\$cf_source
 		cf_target="\$cf_source"
 	fi
-	cf_target="\$cf_subdir\${section}/\${cf_target}"
-
 CF_EOF
 fi
 
 cat >>$cf_edit_man <<CF_EOF
+for t in \$cf_target; do
+	t="\$cf_subdir\${section}/\${t}"
+CF_EOF
+
+cat >>$cf_edit_man <<CF_EOF
 	sed	-f $cf_man_alias \\
 CF_EOF
 
@@ -12479,7 +12482,7 @@ cat >>$cf_edit_man <<CF_EOF
 CF_EOF
 else
 cat >>$cf_edit_man <<CF_EOF
-		< \$i >\$TMP
+		< \$i | sed -f $srcdir/edit_man.sed >\$TMP
 CF_EOF
 fi
 
@@ -12519,7 +12522,7 @@ cat >>$cf_edit_man <<CF_EOF
 		mv \$TMP.$cf_so_strip \$TMP
 	fi
 	fi
-	cf_target="\$cf_target.$cf_so_strip"
+	t="\$t.$cf_so_strip"
 CF_EOF
 fi
 
@@ -12528,23 +12531,23 @@ case "$MANPAGE_FORMAT" in
 cat >>$cf_edit_man <<CF_EOF
 	if test \$form = format ; then
 		# BSDI installs only .0 suffixes in the cat directories
-		cf_target="\`echo \$cf_target|sed -e 's/\.[1-9]\+[a-z]*/.0/'\`"
+		t="\`echo \$t|sed -e 's/\.[1-9]\+[a-z]*/.0/'\`"
 	fi
 CF_EOF
   ;;
 esac
 
 cat >>$cf_edit_man <<CF_EOF
-	suffix=\`basename \$cf_target | sed -e 's%^[^.]*%%'\`
+	suffix=\`basename \$t | sed -e 's%^[^.]*%%'\`
 	if test \$verb = installing ; then
-		echo \$verb \$cf_target
-		\$INSTALL_DATA \$TMP \$cf_target
+		echo \$verb \$t
+		\$INSTALL_DATA \$TMP \$t
 		test -d \$cf_subdir\${section} &&
 		test -n "\$aliases" && (
 			cd \$cf_subdir\${section} && (
-				cf_source=\`echo \$cf_target |sed -e 's%^.*/\([^/][^/]*/[^/][^/]*$\)%\1%'\`
+				cf_source=\`echo \$t |sed -e 's%^.*/\([^/][^/]*/[^/][^/]*$\)%\1%'\`
 				test -n "$cf_so_strip" && cf_source=\`echo \$cf_source |sed -e 's%\.$cf_so_strip\$%%'\`
-				cf_target=\`basename \$cf_target\`
+				t=\`basename \$t\`
 				for cf_alias in \$aliases
 				do
 					if test \$section = 1 ; then
@@ -12553,7 +12556,7 @@ cat >>$cf_edit_man <<CF_EOF
 
 					if test "$MANPAGE_SYMLINKS" = yes ; then
 						if test -f \$cf_alias\${suffix} ; then
-							if ( cmp -s \$cf_target \$cf_alias\${suffix} )
+							if ( cmp -s \$t \$cf_alias\${suffix} )
 							then
 								continue
 							fi
@@ -12563,18 +12566,18 @@ CF_EOF
 case "x$LN_S" in
 (*-f)
 cat >>$cf_edit_man <<CF_EOF
-						$LN_S \$cf_target \$cf_alias\${suffix}
+						$LN_S \$t \$cf_alias\${suffix}
 CF_EOF
 	;;
 (*)
 cat >>$cf_edit_man <<CF_EOF
 						rm -f \$cf_alias\${suffix}
-						$LN_S \$cf_target \$cf_alias\${suffix}
+						$LN_S \$t \$cf_alias\${suffix}
 CF_EOF
 	;;
 esac
 cat >>$cf_edit_man <<CF_EOF
-					elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
+					elif test "\$t" != "\$cf_alias\${suffix}" ; then
 						echo ".so \$cf_source" >\$TMP
 CF_EOF
 if test -n "$cf_compress" ; then
@@ -12594,9 +12597,9 @@ cat >>$cf_edit_man <<CF_EOF
 			)
 		)
 	elif test \$verb = removing ; then
-		test -f \$cf_target && (
-			echo \$verb \$cf_target
-			rm -f \$cf_target
+		test -f \$t && (
+			echo \$verb \$t
+			rm -f \$t
 		)
 		test -d \$cf_subdir\${section} &&
 		test -n "\$aliases" && (
@@ -12616,6 +12619,7 @@ cat >>$cf_edit_man <<CF_EOF
 #		echo ".hy 0"
 		cat \$TMP
 	fi
+done
 	;;
 esac
 done
@@ -23017,6 +23021,7 @@ if test "$with_termlib" != no ; then
 		TINFO_LDFLAGS="-L${LIB_DIR}"
 		SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
 	fi
+	TINFO_ARGS="$TINFO_ARGS -L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
 else
 	# the next lines are needed for linking libtic over libncurses
 	TINFO_NAME=${LIB_NAME}
--- include/curses.h.in
+++ include/curses.h.in	2018-03-05 07:53:48.992265076 +0000
@@ -177,6 +177,9 @@ typedef @cf_cv_typeof_chtype@ chtype;
 typedef @cf_cv_typeof_mmask_t@ mmask_t;
 #endif
 
+#include <features.h>
+#include <sys/types.h>
+
 /*
  * We need FILE, etc.  Include this before checking any feature symbols.
  */
--- include/termcap.h.in
+++ include/termcap.h.in	2018-03-05 07:53:48.992265076 +0000
@@ -46,6 +46,8 @@ extern "C"
 {
 #endif /* __cplusplus */
 
+#include <features.h>
+#include <termios.h>
 #include <sys/types.h>
 
 #undef  NCURSES_CONST 
--- include/tic.h
+++ include/tic.h	2018-03-05 07:53:48.992265076 +0000
@@ -221,12 +221,12 @@ struct alias
  */
 
 /* out-of-band values for representing absent capabilities */
-#define ABSENT_BOOLEAN		((signed char)-1)	/* 255 */
+#define ABSENT_BOOLEAN		(-1)			/* 255 */
 #define ABSENT_NUMERIC		(-1)
 #define ABSENT_STRING		(char *)0
 
 /* out-of-band values for representing cancels */
-#define CANCELLED_BOOLEAN	((signed char)-2)	/* 254 */
+#define CANCELLED_BOOLEAN	(-2)			/* 254 */
 #define CANCELLED_NUMERIC	(-2)
 #define CANCELLED_STRING	(char *)(-1)
 
--- man/man_db.renames
+++ man/man_db.renames	2018-03-05 07:53:48.992265076 +0000
@@ -163,6 +163,7 @@ term.7				term.7
 term_variables.3x		terminfo_variables.3ncurses
 terminfo.5			terminfo.5
 terminfo.\\\*n			terminfo.5
+curs_terminfo.\\\*n		terminfo.5
 tic.1m				tic.1
 toe.1m				toe.1
 tput.1				tput.1
@@ -171,6 +172,7 @@ user_caps.5			user_caps.5
 wresize.3x			wresize.3ncurses
 #
 # Other:
+tack.1				tack.1
 tack.1m				tack.1
 #
 getty.1				getty.8
--- man/ncurses.3x
+++ man/ncurses.3x	2018-03-05 07:53:48.992265076 +0000
@@ -138,6 +138,10 @@ after the shell environment variable \fB
 [See \fBterminfo\fR(\*n) for further details.]
 .SS Datatypes
 .PP
+Beware: the terminal your program is running may or may not have
+the features you expect. Ncurses makes no attempt to check available
+features in advance. This is upon the programmer.
+.PP
 The \fBncurses\fR library permits manipulation of data structures,
 called \fIwindows\fR, which can be thought of as two-dimensional
 arrays of characters representing all or part of a CRT screen.
--- misc/gen-pkgconfig.in
+++ misc/gen-pkgconfig.in	2018-03-05 07:53:48.992265076 +0000
@@ -76,7 +76,7 @@ if test "$includedir" != "/usr/include"
 fi
 
 LDFLAGS=
-if test "$libdir" != "/usr/lib" ; then
+if test "$libdir" != "/usr/lib" -a "$libdir" != "/usr/lib64" ; then
 	LDFLAGS="$LDFLAGS -L\${libdir}"
 fi
 if test "x@EXTRA_LDFLAGS@" != "x" ; then
@@ -99,6 +99,7 @@ do
 	LIBS="-l$name"
 
 	desc="ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@"
+	deps=
 	reqs=
 
 	if test $name = $MAIN_LIBRARY ; then
@@ -108,9 +109,11 @@ do
 		desc="$desc terminal interface library"
 	elif expr $name : ".*${CXX_NAME}.*" >/dev/null ; then
 		reqs="$PANEL_LIBRARY${suffix}, $MENU_LIBRARY${suffix}, $FORM_LIBRARY${suffix}, $MAIN_LIBRARY${suffix}"
+		deps="-l$PANEL_LIBRARY -l$MENU_LIBRARY -l$FORM_LIBRARY -l$MAIN_LIBRARY"
 		desc="$desc add-on library"
 	else
 		reqs="$MAIN_LIBRARY${suffix}"
+		deps="-l$MAIN_LIBRARY"
 		desc="$desc add-on library"
 	fi
 
@@ -120,6 +123,8 @@ do
 	   test $NEED_TINFO != yes ; then
 		test -n "$reqs" && reqs="$reqs, "
 		reqs="${reqs}${SUB_LIBRARY}${suffix}"
+		test -n "$deps" && deps="$deps "
+		deps="${deps}-l${SUB_LIBRARY}"
 	fi
 
 	echo "** creating ${name}${suffix}.pc"
--- misc/ncurses-config.in
+++ misc/ncurses-config.in	2018-03-05 07:53:48.992265076 +0000
@@ -100,7 +100,7 @@ while test $# -gt 0; do
 	# compile/link
 	--cflags)
 		INCS="@PKG_CFLAGS@"
-		if test "x@WITH_OVERWRITE@" = xno ; then
+		if test "${THIS%[0-5]*}" = xno ; then
 			INCS="$INCS -I${includesubdir}"
 		fi
 		if test "${includedir}" != /usr/include ; then
--- misc/terminfo.src
+++ misc/terminfo.src	2018-03-05 07:53:48.996265000 +0000
@@ -301,7 +301,9 @@ dumb|80-column dumb tty,
 	am,
 	cols#80,
 	bel=^G, cr=\r, cud1=\n, ind=\n,
-unknown|unknown terminal type,
+unknown|switch|patch|unknown terminal type,
+	gn, use=dumb,
+net|network|arpanet|dialup|unknown network terminal type,
 	gn, use=dumb,
 lpr|printer|line printer,
 	OTbs, hc, os,
@@ -1859,9 +1861,15 @@ linux-c|linux console 1.3.6+ for older n
 # The 2.2.x kernels add a private mode that sets the cursor type; use that to
 # get a block cursor for cvvis.
 # reported by Frank Heckenbach <frank@g-n-u.de>.
+#
+# Do not use a block cursor, <werner@suse.de>
+# This because many programs do have a workaround for the long time
+# missed cvvis entry. A `\E[?1c' in civis will cause a visible but
+# zero high cusor ... re-add it for kernels 2.6.11+
+#
 linux2.2|linux 2.2.x console,
 	civis=\E[?25l\E[?1c, cnorm=\E[?25h\E[?0c,
-	cvvis=\E[?25h\E[?8c, use=linux-c-nc,
+	cvvis=\E[?25h\E[?0c, use=linux-c-nc,
 
 # Linux 2.6.x has a fix for SI/SO to work with UTF-8 encoding added here:
 #	http://lkml.iu.edu/hypermail/linux/kernel/0602.2/0738.html
@@ -1876,6 +1884,7 @@ linux2.6|linux 2.6.x console,
 	acsc=++\,\,--..00__``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwx
 	     xyyzz{{||}c~~,
 	enacs=\E)0, rmacs=^O,
+	cvvis=\E[?25h\E[?8c,
 	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%;,
 	sgr0=\E[m\017, smacs=^N, use=linux2.2,
@@ -3333,6 +3342,7 @@ vt132|DEC vt132,
 # at the top of the keyboard.  The "DO" key is used as F10 to avoid conflict
 # with the key marked (ESC) on the vt220.  See vt220d for an alternate mapping.
 # PF1--PF4 are used as F1--F4.
+# (cvvis added by werner)
 #
 # added msgr -TD
 vt220-old|vt200-old|DEC VT220 in vt100 emulation mode,
@@ -3343,7 +3353,7 @@ vt220-old|vt200-old|DEC VT220 in vt100 e
 	bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, civis=\E[?25l,
 	clear=\E[H\E[2J$<50>, cnorm=\E[?25h, cr=\r,
 	csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
+	cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, cvvis=\E[?25h, dch1=\E[P,
 	dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
 	if=/usr/share/tabset/vt100, il1=\E[L, ind=\ED$<20/>,
 	is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\E[D, kcud1=\E[B,
@@ -3504,6 +3514,7 @@ vt320nam|v320n|DEC VT320 in vt100 emul.
 # to SMASH the 1k-barrier...
 # From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
 # (vt320: uncommented <fsl> --esr)
+# (cvvis added by werner)
 vt320|vt300|dec vt320 7 bit terminal,
 	am, hs, mir, msgr, xenl,
 	cols#80, lines#24, wsl#80,
@@ -3513,7 +3524,7 @@ vt320|vt300|dec vt320 7 bit terminal,
 	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
 	cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
 	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+	cvvis=\E[?25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
 	ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H, ht=^I,
 	hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
 	is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
@@ -3987,6 +3998,7 @@ putty+fnkeys+sco|SCO fn-keys for PuTTY,
 # retrieving the window title, and for setting the window size (i.e., using
 # "resize -s"), though it does not pass SIGWINCH to the application if the
 # user resizes the window with the mouse.
+# (cvvis added by werner)
 teraterm2.3|Tera Term Pro,
 	km,
 	ncv#43, vt@,
@@ -3995,7 +4007,7 @@ teraterm2.3|Tera Term Pro,
 	     \264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
 	blink=\E[5m, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[J,
 	cnorm=\E[?25h, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-	cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+	cuu1=\E[A, cvvis=\E[?25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
 	dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
 	flash=\E[?5h$<200/>\E[?5l, hpa=\E[%i%p1%dG,
 	il=\E[%p1%dL, il1=\E[L, kdch1=\E[3~, kf1=\E[11~,
@@ -4229,6 +4241,7 @@ xterm-old|antique xterm version,
 	use=xterm-r6,
 # This is the base xterm entry for the xterm supplied with XFree86 3.2 & up.
 # The name has been changed and some aliases have been removed.
+# (cvvis added by werner)
 xterm-xf86-v32|xterm terminal emulator (XFree86 3.2 Window System),
 	OTbs, am, bce, km, mir, msgr, xenl, XT,
 	cols#80, it#8, lines#24, ncv@,
@@ -4238,7 +4251,7 @@ xterm-xf86-v32|xterm terminal emulator (
 	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
 	cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
 	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+	cvvis=\E[?25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
 	ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
 	flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
 	ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
@@ -4835,8 +4848,26 @@ xterm-noapp|xterm with cursor keys in no
 xterm-24|vs100|xterms|xterm terminal emulator (X Window System),
 	lines#24, use=xterm-old,
 
+# For SuSE Linux: Werner Fink <werner@suse.de>
+# Note that the modern xterm does not use escape sequences
+# for the numbers on the numpad keys in case of switched
+# into application mode and with numlock enabled.
+# To test this, use `tput smkx' and `Ctrl-V + key stroke'
+xterm-suse|xterm terminal emulator (X.Org X11R7.7 Window System with SuSE LINUX), 
+	kbs=\177, kdch1=\E[3~,
+	kDIV=\EOo, kMUL=\EOj, kMIN=\EOm, kPLS=\EOk,
+	kfnd=\E[1~, kslt=\E[4~,
+	use=xterm-new,
+
 # This is xterm for ncurses.
 xterm|xterm terminal emulator (X Window System),
+	use=xterm-suse,
+
+# xterm-debian is identical to xterm-new with the addition of a small
+# VT220-ism regarding the backspace and delete keys; this is mandated by
+# the keyboard configuration section of the Debian Policy Manual.
+xterm-debian|Debian xterm (backspace and delete changed), 
+	kbs=\177, kdch1=\E[3~,
 	use=xterm-new,
 
 # This entry assumes that xterm's handling of VT100 SI/SO is disabled by
@@ -5180,7 +5211,7 @@ xterms-sun|small (80x24) xterm with sunF
 
 #### GNOME (VTE)
 # this describes the alpha-version of Gnome terminal shipped with Redhat 6.0
-gnome-rh62|Gnome terminal,
+gnome-rh62|Gnome terminal on Red Hat,
 	bce,
 	kdch1=^?, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
 	use=xterm-color,
@@ -5422,10 +5453,14 @@ mgt|Multi GNOME Terminal,
 #### KDE
 # This is kvt 0-18.7, shipped with Redhat 6.0 (though whether it supports bce
 # or not is debatable).
-kvt|KDE terminal,
+kvt-rh|KDE terminal,
 	bce, km@,
 	kdch1=^?, kend=\E[F, khome=\E[H, use=xterm-color,
 
+# This is kvt for SuSE because we do not support BrokenByDesign[tm].
+kvt|KDE terminal,
+	kdch1=\E[3~, use=kvt-rh,
+
 # Konsole 1.0.1 (2001/11/25)
 # (formerly known as kvt)
 #
@@ -5634,14 +5669,14 @@ mlterm3|multi lingual terminal emulator,
 mlterm2|multi lingual terminal emulator,
 	am, eslok, km, mc5i, mir, msgr, npc, xenl, XT,
 	colors#8, cols#80, it#8, lines#24, pairs#64,
-	acsc=00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+	acsc=++\,\,--..00II``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
 	bel=^G, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
 	clear=\E[H\E[2J, cnorm=\E[?25h, cr=\r,
 	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
 	cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
 	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
-	ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=,
+	cvvis=\E[?25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+	dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=,
 	home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
 	ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\n, indn=\E[%p1%dS,
 	is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>, kbs=^?,
@@ -5697,6 +5732,7 @@ mlterm-256color|mlterm 3.0 with xterm 25
 # rxvt is normally configured to look for "xterm" or "xterm-color" as $TERM.
 # Since rxvt is not really compatible with xterm, it should be configured as
 # "rxvt" or "rxvt-color".
+# (cvvis added by werner)
 #
 # removed dch/dch1 because they are inconsistent with bce/ech -TD
 # remove km as per tack test -TD
@@ -5708,13 +5744,14 @@ rxvt-basic|rxvt terminal base (X Window
 	clear=\E[H\E[2J, cnorm=\E[?25h, cr=\r,
 	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
 	cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
-	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[?25h,
 	dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
 	enacs=\E(B\E)0, flash=\E[?5h$<100/>\E[?5l, home=\E[H,
 	ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
 	il1=\E[L, ind=\n, is1=\E[?47l\E=\E[?1l,
-	is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kbs=^H,
-	kcbt=\E[Z, kmous=\E[M, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
+	is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kbs=^?, kcbt=\E[Z,
+	kmous=\E[M, kf1=\E[11~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
+	rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
 	rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E>, rmso=\E[27m,
 	rmul=\E[24m,
 	rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
@@ -5725,7 +5762,7 @@ rxvt-basic|rxvt terminal base (X Window
 	    %p9%t\016%e\017%;,
 	sgr0=\E[0m\017, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h,
 	smkx=\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, use=vt100+enq,
-	use=rxvt+pcfkeys, use=vt220+keypad,
+	use=vt220+keypad, use=rxvt+pcfkeys,
 # Key Codes from rxvt reference:
 #
 # Note: Shift + F1-F10 generates F11-F20
@@ -5808,8 +5845,8 @@ rxvt-basic|rxvt terminal base (X Window
 # Removed kDN6, etc (control+shift) since rxvt does not implement this -TD
 rxvt+pcfkeys|fragment for PC-style fkeys,
 	kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kIC=\E[2$, kLFT=\E[d,
-	kNXT=\E[6$, kPRV=\E[5$, kRIT=\E[c, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kel=\E[8\^,
+	kNXT=\E[6$, kPRV=\E[5$, kRIT=\E[c, kcub1=\EOD, kcud1=\EOB,
+	kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, kel=\E[8\^,
 	kend=\E[8~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
 	kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
 	kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
@@ -5900,6 +5937,38 @@ rxvt-cygwin-native|rxvt terminal emulato
 	     \302x\263y\363z\362{\343|\330~\376,
 	use=rxvt-cygwin,
 
+# From: Thomas Dickey <dickey@clark.net> 04 Oct 1997
+# Updated: Özgür Kesim <kesim@math.fu-berlin.de> 02 Nov 1997
+# Updated: Marc Lehmann <pcg@goof.com>, 17 Feb 2005
+# Updated: Marc Lehmann <schmorp@schmorp.de>, 04 Nov 2008: change init/reset sequences
+#
+rxvt-unicode|rxvt-unicode terminal (X Window System), 
+	bw, ccc, hs, mc5i, npc, btns#5, colors#88, lm#0, ncv#0, pairs#256, 
+	acsc=+C\,D-A.B0E``aaffgghFiGjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, 
+	dsl=\E]2;\007, ech=\E[%p1%dX, enacs=, flash=\E[?5h$<20/>\E[?5l, 
+	fsl=^G, indn=\E[%p1%dS, 
+	initc=\E]4;%p1%d;rgb\:%p2%{65535}%*%{1000}%/%4.4X/%p3%{65535}%*%{1000}%/%4.4X/%p4%{65535}%*%{1000}%/%4.4X\E\\, 
+	is1=\E[!p, 
+	is2=\E[r\E[m\E[2J\E[?7;25h\E[?1;3;4;5;6;9;66;1000;1001;1049l\E[4l, 
+	kIC=\E2$, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, op=\E[39;49m, 
+	rin=\E[%p1%dT, ritm=\E[23m, rmacs=\E(B, rmam=\E[?7l, 
+	rmcup=\E[r\E[?1049l, rmkx=\E[?1l\E>, rs1=\Ec, 
+	rs2=\E[r\E[m\E[?7;25h\E[?1;3;4;5;6;9;66;1000;1001;1049l\E[4l, 
+	s2ds=\E*B, s3ds=\E+B, 
+	setab=\E[48;5;%p1%dm, setaf=\E[38;5;%p1%dm, 
+	setb=%?%p1%{7}%>%t\E[48;5;%p1%dm%e\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m%;, 
+	setf=%?%p1%{7}%>%t\E[38;5;%p1%dm%e\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m%;, 
+	sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;, 
+	sgr0=\E[m\E(B, sitm=\E[3m, smacs=\E(0, smam=\E[?7h, 
+	smcup=\E[?1049h, smkx=\E[?1h\E=, 
+	tsl=\E]2;, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c, 
+	use=rxvt-basic, 
+
+rxvt-unicode-256color|rxvt-unicode terminal with 256 colors (X Window System),
+	colors#256, 
+	pairs#32767, 
+	use=rxvt-unicode, 
+
 # This variant is supposed to work with rxvt 2.7.7 when compiled with
 # NO_BRIGHTCOLOR defined.  rxvt needs more work...
 rxvt-16color|rxvt with 16 colors like aixterm,
@@ -5946,7 +6015,7 @@ mrxvt-256color|multitabbed rxvt with 256
 # Eterm 0.9.3
 #
 # removed kf0 which conflicts with kf10 -TD
-# remove cvvis which conflicts with cnorm -TD
+# remove cvvis which conflicts with cnorm -TD (and re-added by werner)
 # Eterm does not implement control/shift cursor keys such as kDN6, or kPRV/kNXT
 # but does otherwise follow the rxvt+pcfkeys model -TD
 # remove nonworking flash -TD
@@ -5960,13 +6029,13 @@ Eterm|Eterm-color|Eterm with xterm-style
 	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
 	cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
 	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+	cvvis=\E[?25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
 	ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
 	home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
 	ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\n,
 	is1=\E[?47l\E>\E[?1l,
 	is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kNXT@,
-	kPRV@, ka1=\E[7~, ka3=\E[5~, kb2=\EOu, kbeg=\EOu, kbs=^H,
+	kPRV@, ka1=\E[7~, ka3=\E[5~, kb2=\EOu, kbeg=\EOu, kbs=^?,
 	kc1=\E[8~, kc3=\E[6~, kent=\EOM, khlp=\E[28~, kmous=\E[M,
 	mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
 	rmam=\E[?7l, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=,
@@ -6629,7 +6698,7 @@ pty|4bsd pseudo teletype,
 # https://github.com/emacs-mirror/emacs/blob/master/lisp/term.el
 #
 # The codes supported by the term.el terminal emulation in GNU Emacs 19.30
-eterm|gnu emacs term.el terminal emulation,
+eterm-19|gnu emacs term.el terminal emulation,
 	am, mir, xenl,
 	cols#80, lines#24,
 	bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=\r,
@@ -6642,6 +6711,13 @@ eterm|gnu emacs term.el terminal emulati
 	rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmso=\E[m, rmul=\E[m,
 	sgr0=\E[m, smcup=\E7\E[?47h, smir=\E[4h, smso=\E[7m,
 	smul=\E[4m,
+eterm|emacs|gnu emacs term.el terminal emulation, 
+	colors#8, pairs#64, 
+	invis=\E[8m, kcub1=\EOD, kcud1=\EOB, 
+	kcuf1=\EOC, kcuu1=\EOA, kend=\E[4~, 
+	khome=\E[1~, knp=\E[6~, kpp=\E[5~, 
+	setab=\E[%p1%{40}%+%dm, setaf=\E[%p1%{30}%+%dm, 
+	use=eterm-19, 
 
 # The codes supported by the term.el terminal emulation in GNU Emacs 22.2
 eterm-color|Emacs term.el terminal emulator term-protocol-version 0.96,
@@ -6764,7 +6840,7 @@ screen|VT 100/ANSI X3.64 virtual termina
 	dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
 	enacs=\E(B\E)0, flash=\Eg, home=\E[H, hpa=\E[%i%p1%dG,
 	ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
-	ind=\n, indn=\E[%p1%dS, is2=\E)0, kbs=^H, kcbt=\E[Z,
+	ind=\n, indn=\E[%p1%dS, is2=\E)0, kbs=^?, kcbt=\E[Z,
 	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
 	kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~,
 	kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
@@ -6885,6 +6961,13 @@ screen.xterm-xfree86|screen.xterm-new|sc
 	use=xterm+x11mouse, use=xterm-new,
 #:screen.xterm|screen for modern xterm,
 #:	use=screen.xterm-new,
+screen.xterm|screen customized for modern xterm,
+	bce@, bw,
+	invis@, kIC@, kNXT@, kPRV@, meml@, memu@,
+	sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|
+	    %t;7%;%?%p4%t;5%;%?%p5%t;2%;m,
+	E3@, use=screen+italics, use=screen+fkeys,
+	use=xterm+x11mouse, use=xterm-suse,
 # xterm-r6 does not really support khome/kend unless it is propped up by
 # the translations resource.
 screen.xterm-r6|screen customized for X11R6 xterm,
@@ -6972,7 +7055,7 @@ screen2|old VT 100/ANSI X3.64 virtual te
 	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
 	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
 	el=\E[K, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=, il=\E[%p1%dL,
-	il1=\E[L, ind=\n, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+	il1=\E[L, ind=\n, kbs=^?, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
 	kcuu1=\EA, kf0=\E~, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV,
 	kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\E0I, khome=\EH,
 	nel=\r\n, rc=\E8, ri=\EM, rmir=\E[4l, rmso=\E[23m,
@@ -8853,7 +8936,7 @@ hp700-wy|HP700/41 emulating wyse30,
 	ri=\Ej, rmir=\Er, rmso=\EG0$<10/>, rmul=\EG0$<10/>,
 	sgr0=\EG0$<10/>, smir=\Eq, smso=\EG4$<10/>,
 	smul=\EG8$<10/>, tbc=\E0, vpa=\E[%p1%{32}%+%c,
-hp70092|hp70092a|hp70092A|HP 700/92,
+hp70092|hp70092a|hp70092A|70092|HP 700/92,
 	am, da, db, xhp,
 	cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8,
 	acsc=0cjgktlrmfn/q\,t5u6v8w7x., bel=^G, blink=\E&dA,
@@ -12074,6 +12157,7 @@ msk22714|mskermit22714|UCB MS-DOS Kermit
 # at support for the VT320 itself.
 # Please send changes with explanations to bug-gnu-emacs@prep.ai.mit.edu.
 # (vt320-k3: I added <rmam>/<smam> based on the init string -- esr)
+# (cvvis added by werner)
 vt320-k3|MS-Kermit 3.00's vt320 emulation,
 	am, eslok, hs, km, mir, msgr, xenl,
 	cols#80, it#8, lines#49, pb#9600, vt#3,
@@ -12083,7 +12167,7 @@ vt320-k3|MS-Kermit 3.00's vt320 emulatio
 	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
 	cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
 	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
-	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+	cvvis=\E[?25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
 	dsl=\E[0$~, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
 	flash=\E[?5h$<100/>\E[?5l\E[?5h$<100/>\E[?5l\E[?5h$<100/>\E[
 	      ?5l,
@@ -16497,7 +16581,7 @@ ibm3101|i3101|IBM 3101-10,
 	cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
 	el=\EI, home=\EH, hts=\E0, ind=\n, kcub1=\ED, kcud1=\EB,
 	kcuf1=\EC, kcuu1=\EA, nel=\r\n, tbc=\EH,
-ibm3151|IBM 3151 display,
+ibm3151|i3151|IBM 3151 display,
 	is2=\E S, rmacs=\E>B, rmcup=\E>B, rs2=\E S, s0ds=\E>B,
 	sgr=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;
 	    %?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t
@@ -16755,7 +16839,7 @@ lft|lft-pc850|LFT-PC850|IBM LFT PC850 De
 	tbc=\E[3g,
 # "Megapel" refers to the display adapter, which was used with the IBM RT
 # aka IBM 6150.
-ibm5081|hft|IBM Megapel Color display,
+ibm5081|ibmmpel|hft|IBM Megapel Color display,
 	acsc=jjkkllmmnnqqttuuvvwwxx, blink@, bold@, s0ds=\E(B,
 	s1ds=\E(0, sgr0=\E[0m\E(B, use=ibm5154,
 ibm5081-c|ibmmpel-c|IBM 5081 1024x1024 256/4096 Megapel enhanced color display,
--- ncurses/Makefile.in
+++ ncurses/Makefile.in	2018-03-05 07:53:48.996265000 +0000
@@ -219,7 +219,7 @@ $(DESTDIR)$(libdir) :
 ../lib : ; mkdir $@
 
 ./fallback.c : $(tinfo)/MKfallback.sh
-	$(SHELL) -e $(tinfo)/MKfallback.sh $(TERMINFO) $(TERMINFO_SRC) $(TIC_PATH) $(FALLBACK_LIST) >$@
+	$(SHELL) -e $(srcdir)/run_cmd.sh $(tinfo)/MKfallback.sh $(TERMINFO) $(TERMINFO_SRC) $(TIC_PATH) $(FALLBACK_LIST) >$@
 
 ./lib_gen.c : $(base)/MKlib_gen.sh ../include/curses.h
 	$(SHELL) -e $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" generated <../include/curses.h >$@
--- ncurses/curses.priv.h
+++ ncurses/curses.priv.h	2018-03-05 07:53:48.996265000 +0000
@@ -2169,6 +2169,8 @@ extern NCURSES_EXPORT(char *) _nc_tracec
 extern NCURSES_EXPORT(char *) _nc_tracemouse (SCREEN *, MEVENT const *);
 extern NCURSES_EXPORT(char *) _nc_trace_mmask_t (SCREEN *, mmask_t);
 extern NCURSES_EXPORT(int) _nc_access (const char *, int);
+extern NCURSES_EXPORT(void) _nc_fsid(void);
+extern NCURSES_EXPORT(void) _nc_fseid(void);
 extern NCURSES_EXPORT(int) _nc_baudrate (int);
 extern NCURSES_EXPORT(int) _nc_freewin (WINDOW *);
 extern NCURSES_EXPORT(int) _nc_getenv_num (const char *);
--- ncurses/run_cmd.sh
+++ ncurses/run_cmd.sh	2018-03-05 07:53:48.996265000 +0000
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+PATH=$PWD/../progs:$PATH
+if test -n "$LD_LIBRARY_PATH"; then
+    LD_LIBRARY_PATH="$PWD/../lib:$LD_LIBRARY_PATH"
+else
+    LD_LIBRARY_PATH="$PWD/../lib"
+fi
+export PATH LD_LIBRARY_PATH
+
+exec ${1+"$@"}
--- ncurses/tinfo/MKfallback.sh
+++ ncurses/tinfo/MKfallback.sh	2018-03-05 07:53:48.996265000 +0000
@@ -68,6 +68,12 @@ else
 	tmp_info=
 fi
 
+if test -n "$TERMINFO" -a -d "$TERMINFO" ; then
+	infocmp="infocmp -v1 -A $TERMINFO"
+else
+	infocmp="infocmp -v1"
+fi
+
 cat <<EOF
 /* This file was generated by $0 */
 
@@ -89,7 +95,7 @@ EOF
 	for x in $*
 	do
 		echo "/* $x */"
-		infocmp -E $x | sed -e 's/\<short\>/NCURSES_INT2/g'
+		$infocmp -E $x | sed -e 's/\<short\>/NCURSES_INT2/g'
 	done
 
 	cat <<EOF
@@ -100,7 +106,7 @@ EOF
 	for x in $*
 	do
 		echo "$comma /* $x */"
-		infocmp -e $x
+		$infocmp -e $x
 		comma=","
 	done
 
--- ncurses/tinfo/access.c
+++ ncurses/tinfo/access.c	2018-03-05 07:53:48.996265000 +0000
@@ -35,6 +35,9 @@
 #include <ctype.h>
 
 #include <tic.h>
+#ifdef linux
+# include <sys/fsuid.h>
+#endif
 
 MODULE_ID("$Id: access.c,v 1.23 2012/09/01 19:21:29 tom Exp $")
 
@@ -112,6 +115,30 @@ _nc_basename(char *path)
     return path + _nc_pathlast(path);
 }
 
+NCURSES_EXPORT(void)
+_nc_fsid()
+{
+#ifdef linux
+	int _old_errno = errno;
+	setfsuid(getuid());
+	setfsgid(getgid());
+	errno = _old_errno;
+#endif
+	return;
+}
+
+NCURSES_EXPORT(void)
+_nc_fseid()
+{
+#ifdef linux
+	int _old_errno = errno;
+	setfsuid(geteuid());
+	setfsgid(getegid());
+	errno = _old_errno;
+#endif
+	return;
+}
+
 NCURSES_EXPORT(int)
 _nc_access(const char *path, int mode)
 {
--- ncurses/tinfo/lib_setup.c
+++ ncurses/tinfo/lib_setup.c	2018-03-05 07:53:48.996265000 +0000
@@ -599,6 +599,9 @@ _nc_locale_breaks_acs(TERMINAL *termp)
     } else if ((value = tigetnum("U8")) >= 0) {
 	result = value;		/* use extension feature */
     } else if ((env = getenv("TERM")) != 0) {
+	char *yast = getenv("YAST_DOES_ACS");
+	if (yast != 0)
+	    return 0;		/* YaST uses always correct font mappings */
 	if (strstr(env, "linux")) {
 	    result = 1;		/* always broken */
 	} else if (strstr(env, "screen") != 0
--- ncurses/tinfo/read_entry.c
+++ ncurses/tinfo/read_entry.c	2018-03-05 07:53:48.996265000 +0000
@@ -532,6 +532,7 @@ _nc_read_file_entry(const char *const fi
     FILE *fp = 0;
     int code;
 
+    _nc_fsid();
     if (_nc_access(filename, R_OK) < 0
 	|| (fp = fopen(filename, "rb")) == 0) {
 	TR(TRACE_DATABASE, ("cannot open terminfo %s (errno=%d)", filename, errno));
@@ -552,6 +553,7 @@ _nc_read_file_entry(const char *const fi
 	}
 	fclose(fp);
     }
+    _nc_fseid();
 
     return (code);
 }
--- ncurses/tinfo/read_termcap.c
+++ ncurses/tinfo/read_termcap.c	2018-03-05 07:53:48.996265000 +0000
@@ -322,14 +322,18 @@ _nc_getent(
 	     */
 	    if (fd >= 0) {
 		(void) lseek(fd, (off_t) 0, SEEK_SET);
-	    } else if ((_nc_access(db_array[current], R_OK) < 0)
-		       || (fd = open(db_array[current], O_RDONLY, 0)) < 0) {
-		/* No error on unfound file. */
-		if (errno == ENOENT)
-		    continue;
-		free(record);
-		return (TC_SYS_ERR);
 	    } else {
+		_nc_fsid();
+		if ((_nc_access(db_array[current], R_OK) < 0) ||
+		    (fd = open(db_array[current], O_RDONLY, 0)) < 0) {
+		    _nc_fseid();
+		    /* No error on unfound file. */
+		    if (errno == ENOENT)
+			continue;
+		    free(record);
+		    return (TC_SYS_ERR);
+	        }
+		_nc_fseid();
 		myfd = TRUE;
 	    }
 	    lineno = 0;
@@ -1118,8 +1122,10 @@ _nc_read_termcap_entry(const char *const
 	for (i = 0; i < filecount; i++) {
 
 	    TR(TRACE_DATABASE, ("Looking for %s in %s", tn, termpaths[i]));
+	    _nc_fsid();
 	    if (_nc_access(termpaths[i], R_OK) == 0
 		&& (fp = fopen(termpaths[i], "r")) != (FILE *) 0) {
+		_nc_fseid();
 		_nc_set_source(termpaths[i]);
 
 		/*
@@ -1131,6 +1137,7 @@ _nc_read_termcap_entry(const char *const
 
 		(void) fclose(fp);
 	    }
+	    _nc_fseid();
 	}
     }
     if (copied != 0)
--- progs/Makefile.in
+++ progs/Makefile.in	2018-03-05 07:53:48.996265000 +0000
@@ -100,7 +100,7 @@ CFLAGS_LIBTOOL	= $(CCFLAGS)
 CFLAGS_NORMAL	= $(CCFLAGS)
 CFLAGS_DEBUG	= $(CCFLAGS) @CC_G_OPT@ -DTRACE
 CFLAGS_PROFILE	= $(CCFLAGS) -pg
-CFLAGS_SHARED	= $(CCFLAGS) @CC_SHARED_OPTS@
+CFLAGS_SHARED	= $(CCFLAGS) -fPIE
 
 CFLAGS_DEFAULT	= $(CFLAGS_@DFT_UPR_MODEL@)
 
@@ -117,7 +117,7 @@ LDFLAGS_LIBTOOL	= $(LDFLAGS) $(CFLAGS_LI
 LDFLAGS_NORMAL	= $(LDFLAGS) $(CFLAGS_NORMAL)
 LDFLAGS_DEBUG	= $(LDFLAGS) $(CFLAGS_DEBUG)
 LDFLAGS_PROFILE	= $(LDFLAGS) $(CFLAGS_PROFILE)
-LDFLAGS_SHARED	= $(LDFLAGS) $(CFLAGS_SHARED) @LD_SHARED_OPTS@
+LDFLAGS_SHARED	= $(LDFLAGS) $(CFLAGS_SHARED) -pie
 
 LDFLAGS_DEFAULT	= $(LDFLAGS_@DFT_UPR_MODEL@)
 
--- test/test.priv.h
+++ test/test.priv.h	2018-03-05 07:53:48.996265000 +0000
@@ -910,12 +910,12 @@ extern char *strnames[], *strcodes[], *s
 #endif
 
 /* out-of-band values for representing absent capabilities */
-#define ABSENT_BOOLEAN		((signed char)-1)	/* 255 */
+#define ABSENT_BOOLEAN		(char)-1)		/* 255 */
 #define ABSENT_NUMERIC		(-1)
 #define ABSENT_STRING		(char *)0
 
 /* out-of-band values for representing cancels */
-#define CANCELLED_BOOLEAN	((signed char)-2)	/* 254 */
+#define CANCELLED_BOOLEAN	(-2)			/* 254 */
 #define CANCELLED_NUMERIC	(-2)
 #define CANCELLED_STRING	(char *)(-1)