Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ncurses for openSUSE:Factory checked in at 2021-07-07 18:29:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ncurses (Old) and /work/SRC/openSUSE:Factory/.ncurses.new.2625 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ncurses" Wed Jul 7 18:29:27 2021 rev:191 rq:904143 version:6.2.MACRO Changes: -------- --- /work/SRC/openSUSE:Factory/ncurses/ncurses.changes 2021-06-24 18:21:52.652869849 +0200 +++ /work/SRC/openSUSE:Factory/.ncurses.new.2625/ncurses.changes 2021-07-07 18:29:29.647454982 +0200 @@ -1,0 +2,29 @@ +Mon Jul 5 09:58:53 UTC 2021 - Callum Farmer <gm...@opensuse.org> + +- Update tack to 1.09-20210619 + + Fix scan-build warning about unused assignment + + Autoconf fixes + +------------------------------------------------------------------- +Mon Jun 28 05:52:41 UTC 2021 - Dr. Werner Fink <wer...@suse.de> + +- Add ncurses patch 20210626 + + add configure option --disable-root-access, which tells ncurses to + disallow most file-opens by setuid processes. + + use default colors in pccon "op" -TD + + correct rmacs/smacs in aaa+dec, aaa+rv -TD + + add hpterm-color2 and hp98550-color (Martin Trusler) + + regenerate man-html documentation. +- Remove setfsuid code from patch ncurses-6.2.dif as now upstream solved +- Correct offset of patch ncurses-5.9-ibm327x.dif and ncurses-6.2.dif + +------------------------------------------------------------------- +Mon Jun 21 07:50:36 UTC 2021 - Dr. Werner Fink <wer...@suse.de> + +- Add ncurses patch 20210619 + + improve configure-macro used for dependencies of --disable-leaks such + as --with-valgrind + + trim trailing blanks from files +- Remove trailing space in patch ncurses-6.2.dif + +------------------------------------------------------------------- Old: ---- tack-1.09-20200220.tgz New: ---- tack-1.09-20210619.tgz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ncurses.spec ++++++ --- /var/tmp/diff_new_pack.OSPKXX/_old 2021-07-07 18:29:30.359449394 +0200 +++ /var/tmp/diff_new_pack.OSPKXX/_new 2021-07-07 18:29:30.363449363 +0200 @@ -81,7 +81,7 @@ Source3: README.devel Source4: ncurses-rpmlintrc # Latest tack can be found at ftp://ftp.invisible-island.net/pub/ncurses/current/ -Source5: ftp://ftp.invisible-island.net/pub/ncurses/current/tack-1.09-20200220.tgz +Source5: ftp://ftp.invisible-island.net/pub/ncurses/current/tack-1.09-20210619.tgz Source6: edit.sed Source7: baselibs.conf Source8: cursescheck @@ -517,6 +517,7 @@ --with-pcre2 \ %endif --disable-stripping \ + --disable-root-access \ --disable-root-environ \ --disable-termcap \ --disable-overwrite \ @@ -612,13 +613,10 @@ export BUILD_INFOCMP=$PWD/progs/infocmp.build EOF pushd ncurses/ - TERMINFO=$PWD/tmp - export TERMINFO - mkdir -p $TERMINFO . ${PWD}/../.build_tic $BUILD_TIC -I -r -e $FALLBK ../misc/terminfo.src > terminfo.src $BUILD_TIC -o $TERMINFO -s terminfo.src - sh -e ./tinfo/MKfallback.sh $TERMINFO ../misc/terminfo.src $BUILD_TIC $BUILD_INFOCMP ${FALLBK//,/ } > fallback.c + sh -e ./tinfo/MKfallback.sh $PWD/tmp_info ../misc/terminfo.src $BUILD_TIC $BUILD_INFOCMP ${FALLBK//,/ } > fallback.c rm -rf $TERMINFO unset TERMINFO cp -p fallback.c ../fallback.c.build ++++++ ncurses-5.9-ibm327x.dif ++++++ --- /var/tmp/diff_new_pack.OSPKXX/_old 2021-07-07 18:29:30.435448798 +0200 +++ /var/tmp/diff_new_pack.OSPKXX/_new 2021-07-07 18:29:30.435448798 +0200 @@ -4,7 +4,7 @@ --- misc/terminfo.src +++ misc/terminfo.src 2018-10-29 10:23:47.271511864 +0000 -@@ -17417,8 +17417,8 @@ hazel|exec80|h80|he80|Hazeltine Executiv +@@ -17506,8 +17506,8 @@ hazel|exec80|h80|he80|Hazeltine Executiv # ibm327x|line mode IBM 3270 style, ++++++ ncurses-6.2-patches.tar.bz2 ++++++ ++++ 112538 lines of diff (skipped) ++++++ ncurses-6.2.dif ++++++ --- /var/tmp/diff_new_pack.OSPKXX/_old 2021-07-07 18:29:32.519432444 +0200 +++ /var/tmp/diff_new_pack.OSPKXX/_new 2021-07-07 18:29:32.519432444 +0200 @@ -1,25 +1,21 @@ --- - aclocal.m4 | 40 ++++++++-------- - configure | 42 +++++++++------- - include/curses.h.in | 5 +- - include/termcap.h.in | 2 - include/tic.h | 4 - - man/man_db.renames | 2 - man/ncurses.3x | 4 + - misc/gen-pkgconfig.in | 8 +++ - misc/terminfo.src | 107 ++++++++++++++++++++++++++++++++++++------- - ncurses/Makefile.in | 2 - ncurses/curses.priv.h | 2 - ncurses/run_cmd.sh | 11 ++++ - ncurses/tinfo/MKfallback.sh | 10 +++- - ncurses/tinfo/access.c | 28 +++++++++++ - 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 - - test/tracemunch | 2 - 20 files changed, 233 insertions(+), 70 deletions(-) + aclocal.m4 | 40 +++++++++------- + configure | 42 +++++++++-------- + include/curses.h.in | 5 +- + include/termcap.h.in | 2 + include/tic.h | 4 - + man/man_db.renames | 2 + man/ncurses.3x | 4 + + misc/gen-pkgconfig.in | 8 +++ + misc/terminfo.src | 107 +++++++++++++++++++++++++++++++++++++------- + ncurses/Makefile.in | 2 + ncurses/run_cmd.sh | 11 ++++ + ncurses/tinfo/MKfallback.sh | 14 ++++- + ncurses/tinfo/lib_setup.c | 3 + + progs/Makefile.in | 4 - + test/test.priv.h | 4 - + test/tracemunch | 2 + 16 files changed, 190 insertions(+), 64 deletions(-) --- aclocal.m4 +++ aclocal.m4 2021-06-07 07:18:38.416598899 +0000 @@ -152,7 +148,7 @@ done --- configure +++ configure 2021-06-07 07:18:38.420598827 +0000 -@@ -5849,7 +5849,7 @@ echo $ECHO_N "checking for an rpath opti +@@ -5850,7 +5850,7 @@ echo $ECHO_N "checking for an rpath opti fi ;; (linux*|gnu*|k*bsd*-gnu|freebsd*) @@ -161,7 +157,7 @@ ;; (openbsd[2-9].*|mirbsd*) LD_RPATH_OPT="-Wl,-rpath," -@@ -7451,7 +7451,7 @@ echo "${ECHO_T}$with_pcre2" >&6 +@@ -7452,7 +7452,7 @@ echo "${ECHO_T}$with_pcre2" >&6 if test "x$with_pcre2" != xno ; then cf_with_pcre2_ok=no @@ -170,7 +166,7 @@ do if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "$cf_with_pcre2"; then -@@ -14555,12 +14555,15 @@ cat >>$cf_edit_man <<CF_EOF +@@ -14573,12 +14573,15 @@ cat >>$cf_edit_man <<CF_EOF echo "? missing rename for \$cf_source" cf_target="\$cf_source" fi @@ -188,7 +184,7 @@ sed -f "$cf_man_alias" \\ CF_EOF -@@ -14570,7 +14573,7 @@ cat >>$cf_edit_man <<CF_EOF +@@ -14588,7 +14591,7 @@ cat >>$cf_edit_man <<CF_EOF CF_EOF else cat >>$cf_edit_man <<CF_EOF @@ -197,7 +193,7 @@ CF_EOF fi -@@ -14610,7 +14613,7 @@ cat >>$cf_edit_man <<CF_EOF +@@ -14628,7 +14631,7 @@ cat >>$cf_edit_man <<CF_EOF mv \$TMP.$cf_so_strip \$TMP fi fi @@ -206,7 +202,7 @@ CF_EOF fi -@@ -14619,23 +14622,23 @@ case "$MANPAGE_FORMAT" in +@@ -14637,23 +14640,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 @@ -236,7 +232,7 @@ for cf_alias in \$aliases do if test "\$section" = 1 ; then -@@ -14644,7 +14647,7 @@ cat >>$cf_edit_man <<CF_EOF +@@ -14662,7 +14665,7 @@ cat >>$cf_edit_man <<CF_EOF if test "$MANPAGE_SYMLINKS" = yes ; then if test -f "\$cf_alias\${suffix}" ; then @@ -245,7 +241,7 @@ then continue fi -@@ -14654,18 +14657,18 @@ CF_EOF +@@ -14672,18 +14675,18 @@ CF_EOF case "x$LN_S" in (*-f) cat >>$cf_edit_man <<CF_EOF @@ -267,7 +263,7 @@ echo ".so \$cf_source" >\$TMP CF_EOF if test -n "$cf_compress" ; then -@@ -14685,9 +14688,9 @@ cat >>$cf_edit_man <<CF_EOF +@@ -14703,9 +14706,9 @@ cat >>$cf_edit_man <<CF_EOF ) ) elif test "\$verb" = removing ; then @@ -280,7 +276,7 @@ ) test -d "\$cf_subdir\${section}" && test -n "\$aliases" && ( -@@ -14707,6 +14710,7 @@ cat >>$cf_edit_man <<CF_EOF +@@ -14725,6 +14728,7 @@ cat >>$cf_edit_man <<CF_EOF # echo ".hy 0" cat \$TMP fi @@ -319,7 +315,7 @@ +#include <termios.h> #include <sys/types.h> - #undef NCURSES_OSPEED + #undef NCURSES_OSPEED --- include/tic.h +++ include/tic.h 2021-06-07 07:18:38.420598827 +0000 @@ -237,12 +237,12 @@ struct user_table_entry @@ -576,7 +572,7 @@ 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=, -@@ -7535,7 +7598,7 @@ pty|4bsd pseudo teletype, +@@ -7585,7 +7648,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 @@ -585,7 +581,7 @@ am, mir, xenl, cols#80, lines#24, bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=\r, -@@ -7548,6 +7611,13 @@ eterm|gnu emacs term.el terminal emulati +@@ -7598,6 +7661,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, @@ -599,7 +595,7 @@ # 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, -@@ -7675,7 +7745,7 @@ screen|VT 100/ANSI X3.64 virtual termina +@@ -7725,7 +7795,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, @@ -608,7 +604,7 @@ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, 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~, -@@ -7795,6 +7865,13 @@ screen.xterm-xfree86|screen.xterm-new|sc +@@ -7845,6 +7915,13 @@ screen.xterm-xfree86|screen.xterm-new|sc use=xterm+x11mouse, use=xterm-new, #:screen.xterm|screen for modern xterm, #: use=screen.xterm-new, @@ -622,7 +618,7 @@ # 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, -@@ -7882,7 +7959,7 @@ screen2|old VT 100/ANSI X3.64 virtual te +@@ -7932,7 +8009,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, @@ -631,7 +627,7 @@ 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, -@@ -9780,7 +9857,7 @@ hp700-wy|HP700/41 emulating wyse30, +@@ -9868,7 +9945,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, @@ -640,7 +636,7 @@ 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, -@@ -17427,7 +17504,7 @@ ibm3101|i3101|IBM 3101-10, +@@ -17516,7 +17593,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, @@ -649,7 +645,7 @@ 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 -@@ -17685,7 +17762,7 @@ lft|lft-pc850|LFT-PC850|IBM LFT PC850 De +@@ -17774,7 +17851,7 @@ lft|lft-pc850|LFT-PC850|IBM LFT PC850 De tbc=\E[3g, use=ecma+index, # "Megapel" refers to the display adapter, which was used with the IBM RT # aka IBM 6150. @@ -669,17 +665,6 @@ ./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 2021-06-07 07:18:38.424598755 +0000 -@@ -2277,6 +2277,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 2021-06-07 07:18:38.424598755 +0000 @@ -0,0 +1,11 @@ @@ -696,7 +681,18 @@ +exec ${1+"$@"} --- ncurses/tinfo/MKfallback.sh +++ ncurses/tinfo/MKfallback.sh 2021-06-07 07:18:38.424598755 +0000 -@@ -74,6 +74,12 @@ else +@@ -66,14 +66,22 @@ if test $# != 0 ; then + TERMINFO=`pwd`/$tmp_info + export TERMINFO + ++ test -d "$TERMINFO" || mkdir -p "$TERMINFO" ++ + TERMINFO_DIRS=$TERMINFO:$terminfo_dir + export TERMINFO_DIRS + +- "$tic_path" -x "$terminfo_src" >&2 ++ "$tic_path" -o "$TERMINFO" -x "$terminfo_src" >&2 + else tmp_info= fi @@ -709,7 +705,7 @@ cat <<EOF /* This file was generated by $0 */ -@@ -95,7 +101,7 @@ EOF +@@ -95,7 +103,7 @@ EOF for x in "$@" do echo "/* $x */" @@ -718,7 +714,7 @@ done cat <<EOF -@@ -106,7 +112,7 @@ EOF +@@ -106,7 +114,7 @@ EOF for x in "$@" do echo "$comma /* $x */" @@ -727,50 +723,6 @@ comma="," done ---- ncurses/tinfo/access.c -+++ ncurses/tinfo/access.c 2021-06-07 07:18:38.424598755 +0000 -@@ -31,6 +31,10 @@ - * Author: Thomas E. Dickey * - ****************************************************************************/ - -+#ifdef linux -+# include <sys/fsuid.h> -+#endif -+ - #include <curses.priv.h> - - #include <ctype.h> -@@ -111,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 2021-06-07 07:18:38.424598755 +0000 @@ -613,6 +613,9 @@ _nc_locale_breaks_acs(TERMINAL *termp) @@ -783,71 +735,6 @@ if (strstr(env, "linux")) { result = 1; /* always broken */ } else if (strstr(env, "screen") != 0 ---- ncurses/tinfo/read_entry.c -+++ ncurses/tinfo/read_entry.c 2021-06-07 07:18:38.424598755 +0000 -@@ -551,6 +551,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, BIN_R)) == 0) { - TR(TRACE_DATABASE, ("cannot open terminfo %s (errno=%d)", filename, errno)); -@@ -571,6 +572,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 2021-06-07 07:18:38.424598755 +0000 -@@ -323,14 +323,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; -@@ -1125,8 +1129,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]); - - /* -@@ -1138,6 +1144,7 @@ _nc_read_termcap_entry(const char *const - - (void) fclose(fp); - } -+ _nc_fseid(); - } - } - if (copied != 0) --- progs/Makefile.in +++ progs/Makefile.in 2021-06-07 07:18:38.424598755 +0000 @@ -101,7 +101,7 @@ CFLAGS_LIBTOOL = $(CCFLAGS) ++++++ tack-1.09-20200220.tgz -> tack-1.09-20210619.tgz ++++++ ++++ 19902 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/tack-1.09-20200220/CHANGES new/tack-1.09-20210619/CHANGES --- old/tack-1.09-20200220/CHANGES 2020-02-21 02:55:16.000000000 +0100 +++ new/tack-1.09-20210619/CHANGES 2021-06-20 00:58:22.000000000 +0200 @@ -1,3 +1,467 @@ +2021-06-19 Thomas E. Dickey <dic...@invisible-island.net> + + * Makefile.in: update copyright + + * sysdep.c: scan-build warning about unused assignment + + * Makefile.in: adjust rules to work with --program-suffix + + * configure: regen + + * configure.in: add AC_ARG_PROGRAM to get --program-suffix, etc. + + * configure: regen + + * aclocal.m4: resync with my-autoconf + + * package/debian/changelog, package/tack.spec, tack.h: bump + +2021-05-24 Thomas E. Dickey <dic...@invisible-island.net> + + * config.guess: 2021-05-24 (repaired) + From: Dmitry V. Levin <l...@altlinux.org> + config.guess: fix shellcheck warning SC2154 + + While, according to Plan 9 documentation, the environment variable + $cputype is set to the name of the kernel's CPU's architecture, + shellcheck warns that cputype is referenced but not assigned. + Be on the safe side and do not use cputype if it is not defined + or empty. + + * config.guess (*:Plan9:*:*): Fix shellcheck warning SC2154. + + * config.guess: 2021-05-24 (repaired) + From: Dmitry V. Levin <l...@altlinux.org> + config.guess: remove redundant quotes in case commands + + According to the GNU Autoconf Portable Shell Programming manual, + the Bourne shell does not systematically split variables and back-quoted + expressions, in particular on the right-hand side of assignments and in + the argument of 'case'. + + The change is made automatically using the following command: + $ sed -E -i 's/(\<case )"(\$[^"]+)"( in\>)/\1\2\3/' config.guess + + * config.guess: Simplify case commands by removing quotes around the + argument. + + Suggested-by: Jacob Bachmeyer <j...@gnu.org> + + * config.guess: 2021-05-24 (repaired) + From: Dmitry V. Levin <l...@altlinux.org> + config.guess: simplify exit status workaround on alphaev67-dec-osf5.1 + + Commit 29865ea8a5622cdd80b7a69a0afa78004b4cd311 introduced an exit trap + reset before exiting to avoid a spurious non-zero exit status on + alphaev67-dec-osf5.1. Simplify that code a bit by moving the exit trap + reset around. + + * config.guess (alpha:OSF1:*:*): Reset exit trap earlier. + * doc/config.guess.1: Regenerate. + +2021-04-30 Thomas E. Dickey <dic...@invisible-island.net> + + * config.sub: 2021-04-30 (repaired) + From: Maciej W. Rozycki <ma...@orcam.me.uk> + config.sub: Handle MIPS R3 and R5 ISA levels with CPU names + + Complement binutils commit ae52f4830604 ("Add MIPS r3 and r5 support.") + and recognize MIPS CPU patterns for the R3 and R5 ISA levels, used by + GAS to set defaults. + + * config.sub (mipsisa32r3, mipsisa32r3el, mipsisa32r5, mipsisa32r5el, + mipsisa64r3, mipsisa64r3el, mipsisa64r5, mipsisa64r5el): Recognize. + * doc/config.sub.1: Regenerate. + * testsuite/config-sub.data: Add test cases. + + Signed-off-by: Dmitry V. Levin <l...@altlinux.org> + +2021-04-29 Thomas E. Dickey <dic...@invisible-island.net> + + * fun.c: + rewrite the meta-key test to show the input character in readable form + (from unctrl) in addition to hex. also, make a second pass with the + meta-mode turned off. + + * package/debian/changelog, package/tack.spec, tack.h: bump + +2021-04-21 Thomas E. Dickey <dic...@invisible-island.net> + + * config.guess, config.sub: 2021-04-21 (repaired) + From: Vineet Gupta <vineet.gup...@synopsys.com> + Recognize arc64 + + This paves way for setting up arc64 software ecosystem. + + $ make check + cd testsuite && bash config-guess.sh && rm uname + PASS: config.guess checks (136 tests) + cd testsuite && bash config-sub.sh + PASS: config.sub checks (853 tests) + PASS: config.sub idempotency checks (790 tests) + PASS: config.sub canonicalise each config.guess testcase (136 tests) + + * config.guess (arc64:Linux:*:*): Recognize. + * config.sub (arc64): Likewise. + * doc/config.guess.1: Regenerate. + * doc/config.sub.1: Likewise. + * testsuite/config-guess.data: Add a test case for arc64. + * testsuite/config-sub.data (arc64, arc*-elf): Add test cases. + + Signed-off-by: Vineet Gupta <vgu...@synopsys.com> + Signed-off-by: Dmitry V. Levin <l...@altlinux.org> + +2021-04-16 Thomas E. Dickey <dic...@invisible-island.net> + + * config.guess: 2021-04-16 (repaired) + From: Purple Rain <purpler...@secbsd.org> + config.guess: add SecBSD support + + * config.guess (*:SecBSD:*:*): Recognize. + * doc/config.guess.1: Regenerate. + * testsuite/config-guess.data: Add a test case. + + Signed-off-by: Dmitry V. Levin <l...@altlinux.org> + + * config.sub: 2021-04-16 (repaired) + From: Purple Rain <purpler...@secbsd.org> + config.sub: add SecBSD support + + * config.sub (secbsd*): Recognize. + * doc/config.sub.1: Regenerate. + * testsuite/config-sub.data: Add x86_64-secbsd. + + Signed-off-by: Dmitry V. Levin <l...@altlinux.org> + +2021-04-03 Thomas E. Dickey <dic...@invisible-island.net> + + * configure: regen + + * aclocal.m4: resync with my-autoconf + +2021-03-24 Thomas E. Dickey <dic...@invisible-island.net> + + * configure: regen + + * configure.in: minor fixes, per shellcheck + + * package/debian/changelog, package/tack.spec, tack.h: bump + + * tack.h: updates to work with _Noreturn changes in ncurses + +2021-03-22 Thomas E. Dickey <dic...@invisible-island.net> + + * configure: regen + + * aclocal.m4: resync with my-autoconf + +2021-03-10 Thomas E. Dickey <dic...@invisible-island.net> + + * config.sub: 2021-03-10 (repaired) + From: Idan Horo <idan.horow...@gmail.com> + config.sub: Add support for SerenityOS + + * config.sub (serenity*): Recognize. + * doc/config.sub.1: Regenerate. + * testsuite/config-sub.data: Add i386-serenity. + + Signed-off-by: Dmitry V. Levin <l...@altlinux.org> + +2021-01-25 Thomas E. Dickey <dic...@invisible-island.net> + + * config.guess: 2021-01-25 (repaired) + From: Kalamatee <kalama...@gmail.com> + config.guess: update AROS system detection + + * config.guess: Recognize *:AROS:*:*. + * doc/config.guess.1: Regenerate. + * testsuite/config-guess.data: Add test cases. + + Signed-off-by: Dmitry V. Levin <l...@altlinux.org> + +2021-01-19 Thomas E. Dickey <dic...@invisible-island.net> + + * config.guess: 2021-01-19 (repaired) + From: M. Levinson <mlev...@users.sourceforge.net> + config.guess: fix shell variable quoting bug + + * config.guess (*:NetBSD:*:*): Spell out the full sysctl command twice + instead of using a shell variable. + * doc/config.guess.1: Regenerate. + + Fixes: 827c77253b396c07306927b2a4b794a3251c48eb + Signed-off-by: Dmitry V. Levin <l...@altlinux.org> + +2021-01-07 Thomas E. Dickey <dic...@invisible-island.net> + + * config.sub: 2021-01-08 (repaired) + From: Peixing Xin <peixing....@windriver.com> + config.sub: recognize four-part configuration name for VxWorks + + For example: + + armv7m-wrs-vxworks-eabihf + armv7-wrs-vxworks-eabihf + i686-wrs-vxworks-simlinux + i686-wrs-vxworks-simwindows + powerpc-wrs-vxworks-spe + x86_64-wrs-vxworks-simlinux + x86_64-wrs-vxworks-simwindows + + * config.sub: Recognize four-part configuration name for VxWorks. + * doc/config.guess.1: Regenerate. + * testsuite/config-sub.data: Add test cases. + + Co-authored-by: John Ericson <g...@johnericson.me> + Signed-off-by: Dmitry V. Levin <l...@altlinux.org> + +2021-01-06 Thomas E. Dickey <dic...@invisible-island.net> + + * config.sub: 2021-01-07 (repaired) + From: Alan Modra <amo...@gmail.com> + config.sub: accept OS of eabi* and gnueabi* + + Commit 5e531d391852 broke powerpc-eabivle: + + $ ./config.sub powerpc-eabivle + Invalid configuration `powerpc-eabivle': OS `eabivle' not recognized + + Also powerpc-eabisim and probably some arm configurations. + + * config.sub: Accept OS of eabi* and gnueabi*. + * testsuite/config-sub.data: Add powerpc-eabisim and powerpc-eabivle. + + Signed-off-by: Dmitry V. Levin <l...@altlinux.org> + +2021-01-01 Thomas E. Dickey <dic...@invisible-island.net> + + * config.guess, config.sub: 2021-01-01 (repaired) + From: Dmitry V. Levin <l...@altlinux.org> + Update copyright years + + * config.guess: Update copyright years. + * config.sub: Likewise. + * doc/config.guess.1: Regenerate. + * doc/config.sub.1: Likewise. + +2020-12-31 Thomas E. Dickey <dic...@invisible-island.net> + + * config.guess, config.sub: 2020-12-31 (repaired) + From: Kito Cheng <kito.ch...@sifive.com> + Recognize riscv32be and riscv64be + + Recently RISC-V community got patches big-endian support for binutils, + and we'd like to accept that, however before accepting that I think it + would be better to upstream config.sub and config.guess change here :) + + It's my check result on Ubuntu 18.04: + + $ make check + cd testsuite && bash config-guess.sh && rm uname + PASS: config.guess checks (131 tests) + cd testsuite && bash config-sub.sh + PASS: config.sub checks (830 tests) + PASS: config.sub idempotency checks (767 tests) + PASS: config.sub canonicalise each config.guess testcase (131 tests) + + * config.guess (riscv32be:Linux:*:*, riscv64be:Linux:*:*): Recognize. + * config.sub (riscv32be, riscv64be): Likewise. + * doc/config.guess.1: Regenerate. + * doc/config.sub.1: Likewise. + * testsuite/config-guess.data: Add test cases for riscv32be, and riscv64be. + * testsuite/config-sub.data (riscv32be, riscv64be): Add test cases. + + Signed-off-by: Dmitry V. Levin <l...@altlinux.org> + +2020-12-03 Thomas E. Dickey <dic...@invisible-island.net> + + * config.guess, config.sub: 2020-12-22 (repaired) + From: Xiaotian Wu <wuxiaot...@loongson.cn> + Recognize loongarch32, loongarch64, and loongarchx32 + + * config.guess (loongarch32:Linux:*:*, loongarch64:Linux:*:*, + loongarchx32:Linux:*:*): Recognize. + * config.sub (loongarch32, loongarch64, loongarchx32): Likewise. + * doc/config.guess.1: Regenerate. + * doc/config.sub.1: Likewise. + * testsuite/config-guess.data: Add test cases for loongarch32, + loongarch64, and loongarchx32. + * testsuite/config-sub.data (loongarch32, loongarch64, loongarchx32): + Add test cases. + + Signed-off-by: Dmitry V. Levin <l...@altlinux.org> + +2020-12-01 Thomas E. Dickey <dic...@invisible-island.net> + + * config.sub: 2020-12-02 (repaired) + From: Dmitry V. Levin <l...@altlinux.org> + config.sub: recognize thumbv7* + + * config.sub (thumbv7*): Recognize. + * testsuite/config-sub.data (thumbv7): New test. + + Reported-by: Karl Berry <k...@freefriends.org> + Link: https://lists.gnu.org/archive/html/config-patches/2020-12/msg00001.html + +2020-11-28 Thomas E. Dickey <dic...@invisible-island.net> + + * tack.h, pad.c: + improve interaction in padding tests by ensuring a time-delay happens for the + cases where the terminal itself has no delays + + * configure: regen + + * tackgen.c: fix a memory-leak + + * tack.c: prefer exit_terminfo to _nc_free_tinfo + + * configure.in: add check for exit_terminfo + + * configure: regen + + * aclocal.m4: resync with my-autoconf + + * package/debian/changelog, package/tack.spec, tack.h: bump + +2020-11-21 Thomas E. Dickey <dic...@invisible-island.net> + + * tack.1: cleanup using check-manpage + + * configure: regen + + * aclocal.m4: resync with my-autoconf + + * configure.in: suppress checks for X + + * package/debian/changelog, package/tack.spec, tack.h: bump + +2020-11-19 Thomas E. Dickey <dic...@invisible-island.net> + + * config.guess, config.sub: 2020-11-17 (repaired) + From: Dmitry V. Levin <l...@altlinux.org> + .gitattributes: specify a custom git merge driver for the ChangeLog file + + * config.guess, config.sub: 2020-11-19 (repaired) + From: Dmitry V. Levin <l...@altlinux.org> + Update URLs of the latest version of config.guess and config.sub scripts + + Prefer cgit URLs over gitweb as the former are usually served faster: + $ time -f %e wget -q 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess' + 1.06 + $ time -f %e wget -q 'https://git.savannah.gnu.org/cgit/config.git/plain/config.guess' + 0.73 + + * config.guess: Prefer cgit URLs over gitweb. + (timestamp): Update. + * config.sub: Likewise. + * doc/config.guess.1: Regenerate. + * doc/config.sub.1: Likewise. + +2020-11-06 Thomas E. Dickey <dic...@invisible-island.net> + + * config.guess, config.sub: 2020-11-07 (repaired) + From: Ben Elliston <b...@gnu.org> + Update timestamps. + + * config.sub: 2020-10-13 (repaired) + From: Ben Elliston <b...@gnu.org> + * config.sub, config.guess: Replace backtick `..` substitutions + with POSIX $(..) command substitutions throughout. + * Makefile (shellcheck): Don't exclude message SC2006. + + * config.guess: 2020-10-22 (repaired) + From: Ben Elliston <b...@gnu.org> + * config.sub, config.guess: Replace backtick `..` substitutions + with POSIX $(..) command substitutions throughout. + * Makefile (shellcheck): Don't exclude message SC2006. + +2020-10-21 Thomas E. Dickey <dic...@invisible-island.net> + + * config.guess: 2020-10-22 + From: Rin Okuyama <r...@netbsd.org> + * config.guess (*:NetBSD:*:*): Handle aarch64eb. + * testsuite/config-guess.data: Add test cases. + + Signed-off-by: Ben Elliston <b...@gnu.org> + +2020-10-14 Thomas E. Dickey <dic...@invisible-island.net> + + * config.sub: 2020-10-13 + From: Ben Elliston <b...@gnu.org> + Fix whitespace problem in config.sub. + +2020-10-13 Thomas E. Dickey <dic...@invisible-island.net> + + * config.sub: 2020-10-13 + From: Ben Elliston <b...@gnu.org> + * config.sub (i*86-pc-os2-emx): Recognise correctly. + * testsuite/config-sub.data: Add OS/2 tests to avoid regressions. + +2020-09-26 Thomas E. Dickey <dic...@invisible-island.net> + + * config.sub: 2020-09-08 + From: Fabrice Fontaine <fontaine.fabr...@gmail.com> + * config.sub (uclinux-uclibc*): Fix detection. + * testsuite/config-sub.data: Add a test case to avoid regression. + + Signed-off-by: Ben Elliston <b...@gnu.org> + +2020-09-20 Thomas E. Dickey <dic...@invisible-island.net> + + * config.guess: 2020-09-19 + From: Bruno Haible <br...@clisp.org> + * config.guess: Don't use 'ldd --version' to determine the presence of + musl libc, as this fails on Alpine Linux 3.10. + + Signed-off-by: Ben Elliston <b...@gnu.org> + +2020-09-07 Thomas E. Dickey <dic...@invisible-island.net> + + * config.sub: 2020-09-08 + From: Elad Lahav <e2la...@gmail.com> + * config.sub: Fix regression in QNX recognition. + * testsuite/config-sub.data: Add some test cases. + + Signed-off-by: Ben Elliston <b...@gnu.org> + +2020-08-16 Thomas E. Dickey <dic...@invisible-island.net> + + * config.guess, config.sub: 2020-08-17 + From: Issam E. Maghni <issam.e.mag...@mailbox.org> + * config.guess: Replace "if [ EXPR ]" with "if test EXPR". + * config.sub: Likewise. + * testsuite/config-guess.sh: Likewise. + * testsuite/config-sub.sh: Likewise. + + Signed-off-by: Ben Elliston <b...@gnu.org> + +2020-07-12 Thomas E. Dickey <dic...@invisible-island.net> + + * config.guess: 2020-07-12 + From: Ben Elliston <b...@gnu.org> + * config.guess (arm64:Darwin:*:*): Recognise. + * testsuite/config-guess.data: Add a test case. + +2020-07-10 Thomas E. Dickey <dic...@invisible-island.net> + + * config.sub: 2020-07-10 + From: Ben Elliston <b...@gnu.org> + * config.sub (case $cpu): Whitespace fix. + + * config.sub: 2020-06-28 + From: Keno Fischer <k...@juliacomputing.com> + * config.sub (arm64-*): Canonicalise to aarch64-*. + + Signed-off-by: Ben Elliston <b...@gnu.org> + +2020-06-28 Thomas E. Dickey <dic...@invisible-island.net> + + * config.sub: 2020/06/28 + +2020-06-14 Thomas E. Dickey <dic...@invisible-island.net> + + * config.guess: 2020/04/26 + 2020-02-20 Thomas E. Dickey <dic...@invisible-island.net> * sysdep.c: gcc-warning diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/tack-1.09-20200220/configure.in new/tack-1.09-20210619/configure.in --- old/tack-1.09-20200220/configure.in 2020-02-02 15:47:18.000000000 +0100 +++ new/tack-1.09-20210619/configure.in 2021-06-19 23:50:59.000000000 +0200 @@ -1,5 +1,5 @@ dnl*************************************************************************** -dnl Copyright 2017-2019,2020 Thomas E. Dickey * +dnl Copyright 2017-2020,2021 Thomas E. Dickey * dnl Copyright 2007-2015,2017 Free Software Foundation, Inc. * dnl * dnl Permission is hereby granted, free of charge, to any person obtaining a * @@ -29,7 +29,7 @@ dnl dnl Author: Thomas E. Dickey 2007-on dnl -dnl $Id: configure.in,v 1.42 2020/02/02 14:47:18 tom Exp $ +dnl $Id: configure.in,v 1.46 2021/06/19 21:50:59 tom Exp $ dnl This is a simple configuration-script for tack which makes it simpler to dnl build outside the ncurses tree (provided that ncurses was configured using dnl the --with-ticlib option). @@ -48,10 +48,12 @@ CF_INHERIT_SCRIPT(config.sub) CF_CHECK_CACHE +AC_ARG_PROGRAM AC_PROG_MAKE_SET AC_PROG_CC AC_PROG_CPP +CF_WITHOUT_X CF_PROG_INSTALL CF_PROG_LINT CF_MAKEFLAGS @@ -70,6 +72,7 @@ DESTDIR="" AC_SUBST(DESTDIR) DFT_DEP_SUFFIX="" AC_SUBST(DFT_DEP_SUFFIX) DFT_OBJ_SUBDIR=`pwd|sed -e's:.*/::'` AC_SUBST(DFT_OBJ_SUBDIR) +DFT_LWR_MODEL="normal" AC_SUBST(DFT_LWR_MODEL) DFT_UPR_MODEL="NORMAL" AC_SUBST(DFT_UPR_MODEL) EXTRA_LDFLAGS="" AC_SUBST(EXTRA_LDFLAGS) LDFLAGS_SHARED="" AC_SUBST(LDFLAGS_SHARED) @@ -126,8 +129,8 @@ # The CF_*CURSES_CONFIG stuff provides curses/ncurses, which may include tinfo. # Check if (a) we have tinfo library and (b) if we need ncurses library too. -cf_curses_lib=$cf_cv_screen$cf_cf_libtype -cf_tinfo_lib=tinfo$cf_cf_libtype +cf_curses_lib=$cf_cv_screen$cf_cv_libtype +cf_tinfo_lib=tinfo$cf_cv_libtype # If we do not have and/or do not need tinfo, reset cf_tinfo_lib to empty. AC_CHECK_FUNC(setupterm,[ @@ -160,6 +163,7 @@ ) AC_CHECK_FUNCS( \ +exit_terminfo \ _nc_free_tinfo \ gettimeofday \ select \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/tack-1.09-20200220/fun.c new/tack-1.09-20210619/fun.c --- old/tack-1.09-20200220/fun.c 2020-02-14 23:16:53.000000000 +0100 +++ new/tack-1.09-20210619/fun.c 2021-04-30 01:57:37.000000000 +0200 @@ -1,5 +1,5 @@ /* -** Copyright 2017,2020 Thomas E. Dickey +** Copyright 2017-2020,2021 Thomas E. Dickey ** Copyright 1997-2013,2017 Free Software Foundation, Inc. ** ** This file is part of TACK. @@ -21,7 +21,7 @@ #include <tack.h> -MODULE_ID("$Id: fun.c,v 1.30 2020/02/14 22:16:53 tom Exp $") +MODULE_ID("$Id: fun.c,v 1.31 2021/04/29 23:57:37 tom Exp $") #define COPY_1(target, source) sprintf(target, "%.*s", (int)sizeof(target) - 1, source) @@ -502,6 +502,18 @@ return 1; } +static int +put_reply(int col, int limit, const char *reply) +{ + int step = (int) strlen(reply); + if ((col += step) >= limit) { + put_crlf(); + col = step; + } + put_str(reply); + return col; +} + /* ** funkey_meta(test_list, status, ch) ** @@ -514,7 +526,8 @@ int *ch) { if (has_meta_key) { - int i, j, k, len; + int i, j, k, len, pass; + const char *s; char outbuf[256]; put_crlf(); @@ -525,31 +538,45 @@ put_crlf(); } } - ptext("Begin meta key test. (km) (smm) (rmm) Hit any key"); - ptext(" with the meta key. The character will be"); - ptext(" displayed in hex. If the meta key is working"); - ptext(" then the most significant bit will be set. Type"); - ptextln(" 'end' to exit."); - tty_raw(1, ALLOW_PARITY); - tc_putp(meta_on); - - for (i = j = k = len = 0; i != 'e' || j != 'n' || k != 'd';) { - i = j; - j = k; - k = getchp(ALLOW_PARITY); - if (k == EOF) { - break; - } - if ((len += 3) >= columns) { - put_crlf(); - len = 3; - } - sprintf(outbuf, "%02X ", k); - put_str(outbuf); - k &= STRIP_PARITY; + for (pass = 0; pass < 2; ++pass) { + if (pass) { + ptext("Continue meta key test."); + } else { + ptext("Begin meta key test. (km) (smm) (rmm)"); + } + ptext(" Hit any key while pressing the meta key."); + ptext(" The character will be displayed in hex."); + if (pass) { + ptext(" Meta mode is off;"); + ptext(" the meta key should have no effect."); + } else { + ptext(" If the meta key is working,"); + ptext(" then the most significant bit will be set."); + } + put_crlf(); + ptextln("Type 'end' to exit."); + tty_raw(1, ALLOW_PARITY); + tc_putp(meta_on); + + for (i = j = k = len = 0; i != 'e' || j != 'n' || k != 'd';) { + i = j; + j = k; + k = getchp(ALLOW_PARITY); + if (k == EOF) { + break; + } + sprintf(outbuf, "%02X ", k); + len = put_reply(len, columns, outbuf); + if ((s = unctrl(k)) != NULL) { + sprintf(outbuf, "(%s) ", s); + len = put_reply(len, columns, outbuf); + } + k &= STRIP_PARITY; + } + if (!pass) + tc_putp(meta_off); + put_crlf(); } - tc_putp(meta_off); - put_crlf(); tty_set(); put_crlf(); } else { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/tack-1.09-20200220/package/debian/changelog new/tack-1.09-20210619/package/debian/changelog --- old/tack-1.09-20200220/package/debian/changelog 2020-02-21 01:02:10.000000000 +0100 +++ new/tack-1.09-20210619/package/debian/changelog 2021-06-19 23:28:22.000000000 +0200 @@ -1,3 +1,33 @@ +tack (1.09+20210619) unstable; urgency=low + + * maintenance updates + + -- Thomas E. Dickey <dic...@invisible-island.net> Sat, 19 Jun 2021 17:27:48 -0400 + +tack (1.09+20210429) unstable; urgency=low + + * maintenance updates + + -- Thomas E. Dickey <dic...@invisible-island.net> Thu, 29 Apr 2021 17:13:04 -0400 + +tack (1.09+20210324) unstable; urgency=low + + * maintenance updates + + -- Thomas E. Dickey <dic...@invisible-island.net> Wed, 24 Mar 2021 16:41:32 -0400 + +tack (1.09+20201128) unstable; urgency=low + + * maintenance updates + + -- Thomas E. Dickey <dic...@invisible-island.net> Sat, 28 Nov 2020 08:26:15 -0500 + +tack (1.09+20201121) unstable; urgency=low + + * maintenance updates + + -- Thomas E. Dickey <dic...@invisible-island.net> Sat, 21 Nov 2020 13:53:51 -0500 + tack (1.09+20200220) unstable; urgency=low * maintenance updates diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/tack-1.09-20200220/package/tack.spec new/tack-1.09-20210619/package/tack.spec --- old/tack-1.09-20200220/package/tack.spec 2020-02-21 01:02:10.000000000 +0100 +++ new/tack-1.09-20210619/package/tack.spec 2021-06-19 23:28:22.000000000 +0200 @@ -1,8 +1,8 @@ Summary: terminfo action checker %define AppProgram tack %define AppVersion 1.09 -%define AppRelease 20200220 -# $XTermId: tack.spec,v 1.21 2020/02/21 00:02:10 tom Exp $ +%define AppRelease 20210619 +# $XTermId: tack.spec,v 1.26 2021/06/19 21:28:22 tom Exp $ Name: %{AppProgram} Version: %{AppVersion} Release: %{AppRelease} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/tack-1.09-20200220/pad.c new/tack-1.09-20210619/pad.c --- old/tack-1.09-20200220/pad.c 2020-02-02 15:47:18.000000000 +0100 +++ new/tack-1.09-20210619/pad.c 2020-11-28 16:53:32.000000000 +0100 @@ -20,8 +20,9 @@ */ #include <tack.h> +#include <time.h> -MODULE_ID("$Id: pad.c,v 1.17 2020/02/02 14:47:18 tom Exp $") +MODULE_ID("$Id: pad.c,v 1.18 2020/11/28 15:53:32 tom Exp $") /* test the pad counts on the terminal */ @@ -77,6 +78,7 @@ tt_putp(cap); putchp(letter); i++; + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 0); if (l >= lines) { @@ -196,6 +198,7 @@ SLOW_TERMINAL_EXIT; } NEXT_LETTER; + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 0); ptext("All the dots should line up. "); @@ -239,6 +242,7 @@ SLOW_TERMINAL_EXIT; } NEXT_LETTER; + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 0); ptext("All the dots should line up. "); @@ -382,6 +386,7 @@ tt_tputs(clr_eos, repeats); } NEXT_LETTER; + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 1); ptext(end_message); @@ -438,6 +443,7 @@ putchp(letter); put_crlf(); NEXT_LETTER; + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 0); ptext(all_lines); @@ -490,6 +496,7 @@ putchp(letter); put_crlf(); NEXT_LETTER; + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 0); ptext(all_lines); @@ -540,6 +547,7 @@ putchp(letter); put_crlf(); NEXT_LETTER; + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 0); ptext(all_lines); @@ -582,6 +590,7 @@ tt_putp(exit_delete_mode); putchp(letter); } + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 0); home_down(); @@ -634,6 +643,7 @@ putchp(letter); put_crlf(); NEXT_LETTER; + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 0); home_down(); @@ -692,6 +702,7 @@ putchp(letter); put_crlf(); NEXT_LETTER; + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 0); ptext(all_lines); @@ -734,6 +745,7 @@ tt_putp(exit_insert_mode); putchp(letter); } + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 0); home_down(); @@ -789,6 +801,7 @@ putchp(letter); NEXT_LETTER; put_crlf(); + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 0); ptext(all_lines); @@ -853,6 +866,7 @@ putchp(letter); NEXT_LETTER; put_crlf(); + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 0); ptext(all_lines); @@ -891,6 +905,7 @@ do { tt_putp(insert_character); tt_putp(delete_character); + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 1); ptextln(xch1); @@ -939,6 +954,7 @@ } put_crlf(); NEXT_LETTER; + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 0); ptextln(all_lines); @@ -998,6 +1014,7 @@ SLOW_TERMINAL_EXIT; } NEXT_LETTER; + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 0); tt_putparm(cursor_address, 1, line_count = r, char_count = c); @@ -1046,6 +1063,7 @@ SLOW_TERMINAL_EXIT; } NEXT_LETTER; + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 0); pad_done_message(t, state, ch); @@ -1094,6 +1112,7 @@ } go_home(); NEXT_LETTER; + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 0); pad_done_message(t, state, ch); @@ -1146,6 +1165,7 @@ } else { tt_putparm(parm_rindex, repeats, repeats, 0); } + ENSURE_DELAY; } while (still_testing()); put_str("This line should be on the bottom.\r"); @@ -1214,6 +1234,7 @@ } else { tt_putparm(parm_insert_line, repeats, repeats, 0); } + ENSURE_DELAY; } while (still_testing()); put_str("This line should be on the bottom.\r"); @@ -1289,6 +1310,7 @@ } else { tt_putparm(parm_index, repeats, repeats, 0); } + ENSURE_DELAY; } while (still_testing()); put_str("This line should be on the top.\r"); @@ -1359,6 +1381,7 @@ } else { tt_putparm(parm_delete_line, repeats, repeats, 0); } + ENSURE_DELAY; } while (still_testing()); home_down(); @@ -1422,6 +1445,7 @@ tt_putp(insert_line); put_cr(); tt_putp(delete_line); + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 0); home_down(); @@ -1468,6 +1492,7 @@ tt_putp(restore_cursor); putchp('X'); } + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 0); home_down(); @@ -1514,6 +1539,7 @@ sprintf(temp, "%d\r", test_complete); put_str(temp); put_ind(); + ENSURE_DELAY; } while (still_testing()); ptextln("(csr) is broken."); for (i = augment; i > 1; i--) { @@ -1557,6 +1583,7 @@ tt_putp(restore_cursor); putchp('X'); } + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 0); home_down(); @@ -1600,6 +1627,7 @@ tt_putp(save_cursor); tt_putparm(change_scroll_region, 1, 0, lines - 1); tt_putp(restore_cursor); + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 0); put_str(" "); @@ -1640,6 +1668,7 @@ } tt_putparm(change_scroll_region, 1, 0, lines - 1); tt_putparm(cursor_address, 1, lines - 1, (int) strlen(every_line)); + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 0); put_str(" "); @@ -1707,6 +1736,7 @@ } putln("N"); } + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 0); ptextln("Letters on the screen other than Ns at the right margin indicate failure."); @@ -1754,6 +1784,7 @@ put_mode(exit_standout_mode); putchp('X'); } + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 0); @@ -1800,6 +1831,7 @@ put_mode(exit_alt_charset_mode); putchp(letter); } + ENSURE_DELAY; } while (still_testing()); pad_test_shutdown(t, 0); @@ -1839,6 +1871,7 @@ do { put_str("Erase this!"); tt_putp(clear_screen); + ENSURE_DELAY; } while (still_testing()); ChangeTermInfo(xon_xoff, save_xon_xoff); pad_test_shutdown(t, 1); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/tack-1.09-20200220/sysdep.c new/tack-1.09-20210619/sysdep.c --- old/tack-1.09-20200220/sysdep.c 2020-02-21 02:55:16.000000000 +0100 +++ new/tack-1.09-20210619/sysdep.c 2021-06-20 00:55:44.000000000 +0200 @@ -1,5 +1,5 @@ /* -** Copyright 2017-2019,2020 Thomas E. Dickey +** Copyright 2017-2020,2021 Thomas E. Dickey ** Copyright 1997-2010,2012 Free Software Foundation, Inc. ** ** This file is part of TACK. @@ -44,7 +44,7 @@ #endif #endif -MODULE_ID("$Id: sysdep.c,v 1.33 2020/02/21 01:55:16 tom Exp $") +MODULE_ID("$Id: sysdep.c,v 1.34 2021/06/19 22:55:44 tom Exp $") #ifdef TERMIOS #define PUT_TTY(fd, buf) tcsetattr(fd, TCSAFLUSH, buf) @@ -426,7 +426,7 @@ s = buf; fflush(stdout); /* ATT unix may return 0 or 1, Berkeley Unix should be 1 */ - while ((l = (int) read(fileno(stdin), s, (size_t) 1)) <= 0) { + while (read(fileno(stdin), s, (size_t) 1) <= 0) { ; /* EMPTY */ } ++s; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/tack-1.09-20200220/tack.1 new/tack-1.09-20210619/tack.1 --- old/tack-1.09-20200220/tack.1 2020-02-18 02:57:20.000000000 +0100 +++ new/tack-1.09-20210619/tack.1 2020-11-21 20:17:42.000000000 +0100 @@ -27,14 +27,13 @@ .\" authorization. * .\"*************************************************************************** .\" -.\" $Id: tack.1,v 1.8 2020/02/18 01:57:20 tom Exp $ +.\" $Id: tack.1,v 1.9 2020/11/21 19:17:42 tom Exp $ .TH tack 1 "" .ie \n(.g .ds `` \(lq .el .ds `` `` .ie \n(.g .ds '' \(rq .el .ds '' '' .ds n 5 -.ds d @TERMINFO@ .SH NAME \fBtack\fR \- \fIterminfo\fR action checker .SH SYNOPSIS @@ -55,7 +54,7 @@ .PP \fBTack\fR presents a series of screen-painting and interactive tests in ways which are intended to make any mismatches between the -terminfo entry and reality visually obvious. +terminfo entry and reality visually obvious. \fBTack\fR also provides tools that can help in understanding how the terminal operates. .SS OPTIONS @@ -65,16 +64,16 @@ .TP .I "\-i" Usually \fBtack\fR will send the reset and init strings to the terminal -when the program starts up. The \fI\-i\fR option will inhibit the -terminal initialization. +when the program starts up. +The \fI\-i\fR option will inhibit the terminal initialization. .TP .I "\-l" Start \fBtack\fP with the log-file \*(``tack.log\*('' opened. This is also a menu item. .TP .I "\-t" -Tell \fBtack\fR to override the terminfo settings for basic terminal -functions. When this option is set \fBtack\fR will translate +Tell \fBtack\fR to override the terminfo settings for basic terminal functions. +When this option is set, \fBtack\fR will translate .RS .PP (cr) to \\r, @@ -98,40 +97,48 @@ Display the version information and exit. .TP .I "term" -Terminfo terminal name to be tested. If not present then the $TERM -environment variable will be used. +Terminfo terminal name to be tested. +If not present, then the $TERM environment variable will be used. .SH OVERVIEW Since \fBtack\fR is designed to test terminfo entries it is not possible -to rely on the correctness of the terminfo data base. Because of this -the menuing system used with \fBtack\fR is vary primitive. When a -menu is printed it will scroll the entire screen. To compensate -for this verbose menu system \fBtack\fR permits menu selection -type ahead. +to rely on the correctness of the terminfo data base. +Because of this, the menuing system used with \fBtack\fR is very primitive. +When a menu is printed, it will scroll the entire screen. +To compensate for this verbose menu system, +\fBtack\fR permits menu selection type ahead. If you already know what action you would like \fBtack\fR to perform then you can enter that value immediately and avoid the menu display. When in doubt the question mark (?) is a good character to type. -A carriage return will execute the default action. These default +A carriage return will execute the default action. +These default actions are designed to run all the standard tests. .PP When \fBtack\fR first comes up it will display some basic information -about the terminal. Take some time to verify this information. -If it is wrong many of the subsequent tests will fail. The most -important item is the screen size. If the screen size is wrong there -is no point in proceeding. (home) and (clear) are also critical -to the success of subsequent tests. The values of (cr) (ind) +about the terminal. +Take some time to verify this information. +If it is wrong many of the subsequent tests will fail. +The most important item is the screen size. +If the screen size is wrong, there is no point in proceeding. +(home) and (clear) are also critical +to the success of subsequent tests. +The values of (cr) (ind) (cub1) and (ht) may effect the tests if they are defined incorrectly. If they are undefined \fBtack\fR will set them to reasonable defaults. The last two entries on the display are the enquire and acknowledge strings. These strings are taken from the user strings (u9) and (u8). .PP By now you must be wondering why the terminfo names are enclosed -in parenthesis. This has no profound meaning other than it makes -them stand out. The \fBtack\fR program uses this convention any time -it displays a terminfo name. Remember that \fBtack\fR is designed to +in parenthesis. +This has no profound meaning other than it makes +them stand out. +The \fBtack\fR program uses this convention any time +it displays a terminfo name. +Remember that \fBtack\fR is designed to rely on as little of the terminfo entry as possible. .SH CREATING NEW ENTRIES \fBTack\fR has a number of tools that are designed to help gather -information about the terminal. Although these functions are not +information about the terminal. +Although these functions are not dependent on terminal type, you may wish to execute \fBtack\fR with options \fI\-it\fR. This will turn off initialization and default the standard entries. @@ -140,19 +147,26 @@ the \*(``tools\*('' entry. .PP \fBEcho tool\fR: All data typed from the keyboard will be echoed back -to the terminal. Control characters are not translated to the up arrow format -but are sent as control characters. This allows you to test an escape -sequence and see what it actually does. You may also elect to +to the terminal. +Control characters are not translated to the up arrow format +but are sent as control characters. +This allows you to test an escape +sequence and see what it actually does. +You may also elect to \fBenable hex output on echo tool\fR this will echo the characters in -hexadecimal. Once the test is running you may enter the \*(``lines\*('' +hexadecimal. +Once the test is running you may enter the \*(``lines\*('' or \*(``columns\*('' keywords which will display a pattern that will help -you determine your screen size. A complete list of keywords will -be displayed when the test starts. Type \*(``help\*('' to redisplay +you determine your screen size. +A complete list of keywords will +be displayed when the test starts. +Type \*(``help\*('' to redisplay the list of available commands. .PP \fBReply tool\fR: This tool acts much like the echo tool, but control characters that are sent from the terminal more than one character -after a carriage return will be expanded to the up arrow format. For example +after a carriage return will be expanded to the up arrow format. +For example on a standard ANSI terminal you may type: CR ESC [ c @@ -161,50 +175,65 @@ ^[ [ ? 6 c .PP -\fBANSI sgr display\fR: This test assumes you have an ANSI terminal. It +\fBANSI sgr display\fR: This test assumes you have an ANSI terminal. +It goes through attribute numbers 0 to 79, displaying each in turn and using that -SGR number to write the text. This shows you which of the SGR -modes are actually implemented by the terminal. Note: some terminals (such as -Tektronix color) use the private use characters to augment the functionality of -the SGR command. These private use characters may be interjected into the +SGR number to write the text. +This shows you which of the SGR +modes are actually implemented by the terminal. +Note: some terminals (such as Tektronix color) +use the private use characters to augment the functionality of the SGR command. +These private use characters may be interjected into the escape sequence by typing the character ( <, =, >, ? ) after the original display has been shown. .PP \fBANSI status reports\fR: This test queries the terminal in standard -ANSI/VT-100 fashion. The results of this test may help +ANSI/VT-100 fashion. +The results of this test may help determine what options are supported by your terminal. .PP \fBANSI character sets\fR: This test displays the character sets available on a ANSI/VT-100 style terminal. Character sets on a real VT-100 terminal are usually defined with smacs=\\E(0 and rmacs=\\E(B. The first character after the -escape defines the font bank. The second character defines the -character set. This test allows you to view any of the possible -combinations. Private use character sets are defined by the digits. +escape defines the font bank. +The second character defines the +character set. +This test allows you to view any of the possible +combinations. +Private use character sets are defined by the digits. Standard character sets are located in the alphabetic range. .SH VERIFYING AN EXISTING ENTRY .PP You can verify the correctness of an entry with the \*(``begin testing\*('' -function. This entry is the default action and will be chosen -if you hit carriage return (or enter). This will bring up a +function. +This entry is the default action and will be chosen +if you hit carriage return (or enter). +This will bring up a secondary menu that allows you to select more specific tests. .PP The general philosophy of the program is, for each capability, to send an appropriate test pattern to the terminal then send a description of -what the user should expect. Occasionally (as when checking function-key +what the user should expect. +Occasionally (as when checking function-key capabilities) the program will ask you to enter input for it to check. .PP If the test fails then you have the option of dynamically changing -the terminfo entry and re-running the test. This is done with -the \*(``edit terminfo\*('' menu item. The edit submenu allows you to change +the terminfo entry and re-running the test. +This is done with +the \*(``edit terminfo\*('' menu item. +The edit submenu allows you to change the offending terminfo entry and immediately retest the capability. The edit menu lets you do other things with the terminfo, such as; display the entire terminfo entry, display which caps have been tested and display which caps cannot -be tested. This menu also allows you to write the newly modified -terminfo to disc. If you have made any modifications to the +be tested. +This menu also allows you to write the newly modified +terminfo to disc. +If you have made any modifications to the terminfo \fBtack\fR will ask you if you want to save the file -to disc before it exits. The filename will be the same as the terminal name. +to disc before it exits. +The filename will be the same as the terminal name. After the program exits you can run the tic(1M) compiler on the new terminfo to install it in the terminfo data base. .PP @@ -224,35 +253,46 @@ break at higher speeds. .PP Similar problems result if the host machine is simply sending characters at a -sustained rate faster than the terminal can buffer and process them. In either +sustained rate faster than the terminal can buffer and process them. +In either case, when the terminal cannot process them and cannot tell the host to stop -soon enough, it will just drop them. The dropped characters could be text, +soon enough, it will just drop them. +The dropped characters could be text, escape sequences or the escape character itself, causing some really -strange-looking displays. This kind of glitch is called an \fIoverrun\fR. +strange-looking displays. +This kind of glitch is called an \fIoverrun\fR. .PP In terminfo entries, you can attach a \fIpad time\fR to each string capability -that is a number of milliseconds to delay after sending it. This will give +that is a number of milliseconds to delay after sending it. +This will give the terminal time to catch up and avoid overruns. .PP If you are running a software terminal emulator, or you are on an X pseudo-tty, or your terminal is on an RS-232C line which correctly handles RTS/CTS -hardware flow control, then pads are not strictly necessary. However, some +hardware flow control, then pads are not strictly necessary. +However, some display packages (such as \fBncurses\fP(3X)) use the pad counts to calculate the fastest way to implement certain functions. For example: scrolling the screen may be faster than deleting the top line. .PP One common way to avoid overruns is with XON/XOFF handshaking. But even this handshake may have problems at high baud rates. -This is a result of the way XON/XOFF works. The terminal tells -the host to stop with an XOFF. When the host gets this character, it stops -sending. However, there is a small amount of time between the stop request and -the actual stop. During this window, the terminal must continue to accept -characters even though it has told the host to stop. If the terminal sends -the stop request too late, then its internal buffer will overflow. If it sends -the stop character too early, then the terminal is not getting the most -efficient use out of its internal buffers. In a real application at high baud -rates, a terminal could get a dozen or more characters before the host gets -around to suspending transmission. Connecting the terminal over a network +This is a result of the way XON/XOFF works. +The terminal tells the host to stop with an XOFF. +When the host gets this character, it stops sending. +However, there is a small amount of time between the stop request and +the actual stop. +During this window, the terminal must continue to accept +characters even though it has told the host to stop. +If the terminal sends +the stop request too late, then its internal buffer will overflow. +If it sends the stop character too early, +then the terminal is not getting the most +efficient use out of its internal buffers. +In a real application at high baud rates, +a terminal could get a dozen or more characters before the host gets +around to suspending transmission. +Connecting the terminal over a network will make the problem much worse. .PP (RTS/CTS handshaking does not have this problem because the UARTs are @@ -261,10 +301,12 @@ .PP .SS Timing your terminal .PP -In order to get accurate timings from your terminal \fBtack\fR +In order to get accurate timings from your terminal \fBtack\fR needs to know when the terminal has finished processing all the -characters that were sent. This requires a different type of handshaking -than the XON/XOFF that is supported by most terminals. \fBTack\fR +characters that were sent. +This requires a different type of handshaking +than the XON/XOFF that is supported by most terminals. +\fBTack\fR needs to send a request to the terminal and wait for its reply. Many terminals will respond with an ACK when they receive an ENQ. This is the preferred method since the sequence is short. @@ -278,9 +320,10 @@ ESC [ ? 1 ; 0 c \fBTack\fR assumes that (u9) is the enquire sequence and that (u8) is the -acknowledge string. A VT-100 style terminal could set u9=\\E[c +acknowledge string. +A VT-100 style terminal could set u9=\\E[c and u8=\\E[?1;0c. -Acknowledge strings fall into two categories. +Acknowledge strings fall into two categories. .TP 4 1) Strings with a unique terminating character and, @@ -289,15 +332,18 @@ strings of fixed length. .PP The acknowledge string for the VT-100 is of the first type since -it always ends with the letter \*(``c\*(''. Some Tektronics terminals -have fixed length acknowledge strings. \fBTack\fR supports both +it always ends with the letter \*(``c\*(''. +Some Tektronix terminals +have fixed length acknowledge strings. +\fBTack\fR supports both types of strings by scanning for the terminating character until the length of the expected acknowledge string has arrived. (u8) should be set to some typical acknowledge that will be returned when (u9) is sent. .PP \fBTack\fR will test this sequence before running any of the pad -tests or the function key tests. \fBTack\fR will ask you the following: +tests or the function key tests. +\fBTack\fR will ask you the following: Hit lower case g to start testing... @@ -307,7 +353,8 @@ .PP .SS Testing and Repairing Pad Timings .PP -The pad timings in distributed terminfo entries are often incorrect. One +The pad timings in distributed terminfo entries are often incorrect. +One major motivation for this program is to make it relatively easy to tune these timings. .PP @@ -316,37 +363,47 @@ function (this is also part of the \*(``normal test sequence\*('' function). .PP The key to determining pad times is to find out the effective baud rate of -the terminal. The effective baud rate determines the number of characters +the terminal. +The effective baud rate determines the number of characters per second that the terminal can accept without either handshaking or -losing data. This rate is frequently less than the nominal cps rate on the +losing data. +This rate is frequently less than the nominal cps rate on the RS-232 line. .PP \fBTack\fR uses the effective baud rate to judge the duration of the test and how much a particular escape sequence will perturb the terminal. .PP Each pad test has two associated variables that can be tweaked to help verify -the correctness of the pad timings. One is the pad test length. The other is -the pad multiplier, which is used if the pad prefix includes \*(``*\*(''. In curses -use, it is often the first parameter of the capability (if there is one). +the correctness of the pad timings. +One is the pad test length. +The other is the pad multiplier, +which is used if the pad prefix includes \*(``*\*(''. +In curses use, +it is often the first parameter of the capability (if there is one). For a capability like (dch) or (il) this will be the number of character positions or lines affected, respectively. .PP \fBTack\fR will run the pad tests and display the results to the terminal. On capabilities that have multipliers \fBtack\fR will not tell you -if the pad needs the multiplier or not. You must make this decision +if the pad needs the multiplier or not. +You must make this decision yourself by rerunning the test with a different multiplier. If the padding changes in proportion to the multiplier than the -multiplier is required. If the multiplier has little or no effect on +multiplier is required. +If the multiplier has little or no effect on the suggested padding then the multiplier is not needed. Some capabilities will take several runs to get a good feel for -the correct values. You may wish to make the test longer -to get more accurate results. System load will also effect the +the correct values. +You may wish to make the test longer +to get more accurate results. +System load will also effect the results (a heavily loaded system will not stress the terminal as much, possibly leading to pad timings that are too short). .PP .SH NOTE The tests done at the beginning of the program are assumed to be correct later -in the code. In particular, \fBtack\fR displays the number of lines and +in the code. +In particular, \fBtack\fR displays the number of lines and columns indicated in the terminfo entry as part of its initial output. If these values are wrong a large number of tests will fail or give incorrect results. @@ -354,12 +411,15 @@ .TP 12 tack.log If logging is enabled then all characters written to the terminal -will also be written to the log file. This gives you the ability -to see how the tests were performed. This feature is disabled by default. +will also be written to the log file. +This gives you the ability +to see how the tests were performed. +This feature is disabled by default. .TP 12 .I "term" If you make changes to the terminfo entry \fBtack\fR will save -the new terminfo to a file. The file will have the same name +the new terminfo to a file. +The file will have the same name as the terminal name. .SH SEE ALSO \fBterminfo\fR(\*n), \fBncurses\fR(3X), \fBtic\fR(1M), \fBinfocmp\fR(1M). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/tack-1.09-20200220/tack.c new/tack-1.09-20210619/tack.c --- old/tack-1.09-20200220/tack.c 2020-02-21 02:03:49.000000000 +0100 +++ new/tack-1.09-20210619/tack.c 2020-11-28 14:47:02.000000000 +0100 @@ -23,7 +23,7 @@ #include <stdarg.h> #include <unistd.h> -MODULE_ID("$Id: tack.c,v 1.37 2020/02/21 01:03:49 tom Exp $") +MODULE_ID("$Id: tack.c,v 1.38 2020/11/28 13:47:02 tom Exp $") /* This program is designed to test terminfo, not curses. Therefore @@ -706,7 +706,9 @@ del_curterm(cur_term); tack_edit_leaks(); tack_fun_leaks(); -#ifdef HAVE__NC_FREE_TINFO +#if defined(HAVE_EXIT_TERMINFO) + exit_terminfo(code); +#elif defined(HAVE__NC_FREE_TINFO) _nc_free_tinfo(code); #else exit(code); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/tack-1.09-20200220/tack.h new/tack-1.09-20210619/tack.h --- old/tack-1.09-20200220/tack.h 2020-02-21 01:02:10.000000000 +0100 +++ new/tack-1.09-20210619/tack.h 2021-06-19 23:28:22.000000000 +0200 @@ -1,5 +1,5 @@ /* -** Copyright 2017-2019,2020 Thomas E. Dickey +** Copyright 2017-2020,2021 Thomas E. Dickey ** Copyright 1997-2015,2017 Free Software Foundation, Inc. ** ** This file is part of TACK. @@ -19,7 +19,7 @@ ** Boston, MA 02110-1301, USA */ -/* $Id: tack.h,v 1.84 2020/02/21 00:02:10 tom Exp $ */ +/* $Id: tack.h,v 1.91 2021/06/19 21:28:22 tom Exp $ */ #ifndef NCURSES_TACK_H_incl #define NCURSES_TACK_H_incl 1 @@ -28,7 +28,7 @@ #define MAJOR_VERSION 1 #define MINOR_VERSION 9 -#define PATCH_VERSION 20200220 +#define PATCH_VERSION 20210619 #ifdef HAVE_CONFIG_H #include <ncurses_cfg.h> @@ -131,10 +131,10 @@ extern void tack_edit_leaks(void); extern void tack_fun_leaks(void); #ifdef HAVE__NC_FREE_TINFO -extern void _nc_free_tinfo(int) GCC_NORETURN; +extern GCC_NORETURN void _nc_free_tinfo(int); #endif #ifndef ExitProgram -extern void ExitProgram(int) GCC_NORETURN; +extern GCC_NORETURN void ExitProgram(int); #endif #else #define ExitProgram(code) exit(code) @@ -260,6 +260,7 @@ /* definitions for pad.c */ +#define ENSURE_DELAY if (!tt_delay_used) napms(10) #define EXIT_CONDITION (no_alarm_event && (tt_delay_used < tt_delay_max)) #define SLOW_TERMINAL_EXIT if (!test_complete && !EXIT_CONDITION) { break; } #define CAP_NOT_FOUND if (auto_pad_mode) return diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/tack-1.09-20200220/tackgen.c new/tack-1.09-20210619/tackgen.c --- old/tack-1.09-20200220/tackgen.c 2020-02-02 15:47:18.000000000 +0100 +++ new/tack-1.09-20210619/tackgen.c 2020-11-28 14:52:54.000000000 +0100 @@ -27,7 +27,7 @@ #include <curses.h> #include <term.h> -/* $Id: tackgen.c,v 1.12 2020/02/02 14:47:18 tom Exp $ */ +/* $Id: tackgen.c,v 1.13 2020/11/28 13:52:54 tom Exp $ */ #define DATA_FMT "DATA(\t%3d,\t\"%s\",%s%s%s),\t/* %s */\n" @@ -147,6 +147,8 @@ printf("#endif /* NAME_ENTRY_DATA */\n"); + free(values); + return EXIT_SUCCESS; } #else