--- 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 | 133 +++++++++++++++++++++++++++++++++---------- 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 ++++-- test/test.priv.h | 4 - 19 files changed, 240 insertions(+), 80 deletions(-) --- aclocal.m4 +++ aclocal.m4 2016-11-21 08:55:04.418932316 +0000 @@ -564,7 +564,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 +//#include // conflict with exit declaration #include #if defined(__cplusplus) @@ -4719,12 +4719,15 @@ cat >>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <\$TMP + < \$i | sed -f $srcdir/edit_man.sed >\$TMP CF_EOF fi @@ -4774,7 +4777,7 @@ cat >>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <\$TMP CF_EOF if test -n "$cf_compress" ; then @@ -4849,9 +4852,9 @@ cat >>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <\$TMP + < \$i | sed -f $srcdir/edit_man.sed >\$TMP CF_EOF fi @@ -11675,7 +11678,7 @@ cat >>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <\$TMP CF_EOF if test -n "$cf_compress" ; then @@ -11750,9 +11753,9 @@ cat >>$cf_edit_man <>$cf_edit_man < +#include + /* * We need FILE, etc. Include this before checking any feature symbols. */ --- include/termcap.h.in +++ include/termcap.h.in 2016-11-21 08:55:04.422932233 +0000 @@ -46,6 +46,8 @@ extern "C" { #endif /* __cplusplus */ +#include +#include #include #undef NCURSES_CONST --- include/tic.h +++ include/tic.h 2016-11-21 08:55:04.422932233 +0000 @@ -231,12 +231,12 @@ extern NCURSES_EXPORT(const 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 2016-11-21 08:55:04.422932233 +0000 @@ -167,6 +167,8 @@ tput.1 tput.1 tset.1 tset.1 vprintf.3s vprintf.3 wresize.3x wresize.3ncurses +curs_terminfo.\\\*n terminfo.5 +tack.1 tack.1 # # Other: tack.1m tack.1 --- man/ncurses.3x +++ man/ncurses.3x 2016-11-21 08:55:04.422932233 +0000 @@ -121,6 +121,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 2016-11-21 08:55:04.422932233 +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 @@ -110,6 +110,7 @@ do LIBS="-l$name" desc="ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" + deps= reqs= if test $name = $MAIN_LIBRARY ; then @@ -119,9 +120,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 @@ -131,6 +134,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 2016-11-21 08:55:04.422932233 +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 2016-11-21 09:00:40.276070162 +0000 @@ -301,7 +301,9 @@ dumb|80-column dumb tty, am, cols#80, bel=^G, cr=^M, cud1=^J, ind=^J, -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, @@ -1347,7 +1349,7 @@ nsterm|Apple_Terminal|AppKit Terminal.ap # # NOTE: When tack tests (csr) + (nel) iTerm.app crashes, so (csr) is # disabled. -iTerm.app|iterm|iTerm.app terminal emulator for Mac OS X, +iTerm.app|iTerm.app terminal emulator for Mac OS X, bce, bw@, csr@, dim@, kend=\EOF, khome=\EOH, sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%? @@ -1737,9 +1739,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 . +# +# Do not use a block cursor, +# 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 @@ -1754,6 +1762,7 @@ linux2.6|linux 2.6.x console, acsc=++\,\,--..00__``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwx xyyzz{{||}c~~, enacs=\E(B\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, @@ -3180,6 +3189,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, @@ -3190,7 +3200,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=^M, 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, @@ -3351,6 +3361,7 @@ vt320nam|v320n|DEC VT320 in vt100 emul. # to SMASH the 1k-barrier... # From: Adam Thompson Sept 10 1995 # (vt320: uncommented --esr) +# (cvvis added by werner) vt320|vt300|dec vt320 7 bit terminal, am, hs, mir, msgr, xenl, cols#80, lines#24, wsl#80, @@ -3360,7 +3371,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=^J, 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, @@ -3832,6 +3843,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, xon@, ncv#43, vt@, @@ -3840,7 +3852,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\E[?5l$<200/>, hpa=\E[%i%p1%dG, il=\E[%p1%dL, il1=\E[L, kdch1=\E[3~, kf1=\E[11~, @@ -4046,6 +4058,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@, @@ -4055,7 +4068,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=^J, 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, @@ -4547,8 +4560,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 +# 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 @@ -4891,7 +4922,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=\177, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, use=xterm-color, @@ -5067,10 +5098,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=\177, kend=\E[F, khome=\E[H, use=xterm-color, +# This is kvt for SuSE because we do not support BrokenByDesign[tm]. +kvt|KDE terminal, + kbs=\177, kdch1=\E[3~, use=kvt-rh, + # Konsole 1.0.1 # (formerly known as kvt) # @@ -5201,14 +5236,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=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J, 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=^J, indn=\E[%p1%dS, is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>, @@ -5264,6 +5299,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 @@ -5275,13 +5311,14 @@ rxvt-basic|rxvt terminal base (X Window clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J, 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\E[?5l, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, 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=\177, 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, @@ -5292,7 +5329,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 @@ -5375,8 +5412,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~, @@ -5437,6 +5474,38 @@ rxvt-cygwin-native|rxvt terminal emulato \302x\263y\363z\362{\343|\330~\376, use=rxvt-cygwin, +# From: Thomas Dickey 04 Oct 1997 +# Updated: Özgür Kesim 02 Nov 1997 +# Updated: Marc Lehmann , 17 Feb 2005 +# Updated: Marc Lehmann , 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, @@ -5483,7 +5552,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 @@ -5497,13 +5566,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=^J, 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=\177, 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=, @@ -6093,7 +6162,7 @@ pty|4bsd pseudo teletype, #### Emacs # 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=^M, @@ -6106,6 +6175,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, @@ -6208,7 +6284,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, ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J, is2=\E)0, - kbs=^H, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, + kbs=\177, 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, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, @@ -6408,7 +6484,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=^J, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, + il1=\E[L, ind=^J, kbs=\177, 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=^M^J, rc=\E8, ri=\EM, rmir=\E[4l, rmso=\E[23m, @@ -8195,7 +8271,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, @@ -11416,6 +11492,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 / 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, @@ -11425,7 +11502,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=^J, 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\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l, fsl=\E[0$}, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, @@ -15840,7 +15917,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=^J, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, nel=^M^J, 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 @@ -16098,7 +16175,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 2016-11-21 08:55:04.426932153 +0000 @@ -218,7 +218,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 2016-11-21 08:55:04.426932153 +0000 @@ -2024,6 +2024,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 2016-11-21 08:55:04.430932070 +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 2016-11-21 08:55:04.430932070 +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 < #include +#ifdef linux +# include +#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 2016-11-21 08:55:04.430932070 +0000 @@ -584,6 +584,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 2016-11-21 08:55:04.430932070 +0000 @@ -433,6 +433,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)); @@ -453,6 +454,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 2016-11-21 08:55:04.430932070 +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) --- test/test.priv.h +++ test/test.priv.h 2016-11-21 08:55:04.430932070 +0000 @@ -790,12 +790,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)