Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-15-SP2:GA
ncurses
ncurses-6.1.dif
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File ncurses-6.1.dif of Package ncurses
--- 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 ++++-- ncurses/tinfo/write_entry.c | 26 +++++++- progs/Makefile.in | 4 - test/test.priv.h | 4 - 21 files changed, 273 insertions(+), 82 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 @@ -545,6 +545,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)); @@ -565,6 +566,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) --- ncurses/tinfo/write_entry.c +++ ncurses/tinfo/write_entry.c 2023-04-27 13:23:12.177704631 +0000 @@ -50,6 +50,24 @@ #define TRACE_NUM(n) /* nothing */ #endif +#ifdef linux +#include <sys/fsuid.h> +#define _nc_fsid() \ + int _old_errno = errno; \ + setfsuid(getuid()); \ + setfsgid(getgid()); \ + errno = _old_errno + +#define _nc_fseid() \ + _old_errno = errno; \ + setfsuid(geteuid()); \ + setfsgid(getegid()); \ + errno = _old_errno +#else +#define _nc_fsid() /* */ +#define _nc_fseid() /* */ +#endif + MODULE_ID("$Id: write_entry.c,v 1.102 2018/02/11 20:24:28 Julien.Cristau Exp $") static int total_written; @@ -65,9 +83,14 @@ write_file(char *filename, TERMTYPE2 *tp char buffer[MAX_ENTRY_SIZE]; unsigned limit = sizeof(buffer); unsigned offset = 0; + FILE *fp = 0; + + _nc_fsid(); + if (_nc_access(filename, W_OK) == 0) + fp = fopen(filename, "wb"); - FILE *fp = (_nc_access(filename, W_OK) == 0) ? fopen(filename, "wb") : 0; if (fp == 0) { + _nc_fseid(); perror(filename); _nc_syserr_abort("can't open %s/%s", _nc_tic_dir(0), filename); } @@ -79,6 +102,7 @@ write_file(char *filename, TERMTYPE2 *tp } fclose(fp); + _nc_fseid(); } /* --- 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)
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor