From 2a75095638002d37a2f9c7aeb0ec54f271b0a1c4 Mon Sep 17 00:00:00 2001 From: Joe Slater Date: Tue, 1 Aug 2017 12:36:53 -0700 Subject: [PATCH] slang: fix terminfo related problems Do not use the JD_TERMCAP macro since we cannot get the terminfo from ncurses pkg-config, but fix the macro to not reference host directories. Also add src/test/Makefile.in so that we can use -ltermcap if we want to. Upstream isn't going to take this, as it forces blank values and removes functionality without replacing it. Upstream-Status: Inappropriate [see above] Signed-off-by: Joe Slater --- autoconf/aclocal.m4 | 8 +--- autoconf/configure.ac | 11 +++++- src/test/Makefile.in | 90 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 100 insertions(+), 9 deletions(-) create mode 100644 src/test/Makefile.in diff --git a/autoconf/aclocal.m4 b/autoconf/aclocal.m4 index b2dfcd3..5f94ed3 100644 --- a/autoconf/aclocal.m4 +++ b/autoconf/aclocal.m4 @@ -509,15 +509,9 @@ then else MISC_TERMINFO_DIRS="" fi -JD_Terminfo_Dirs="$MISC_TERMINFO_DIRS \ - /usr/lib/terminfo \ - /usr/share/terminfo \ - /usr/share/lib/terminfo \ - /usr/local/lib/terminfo \ - /etc/terminfo /lib/terminfo" TERMCAP=-ltermcap -for terminfo_dir in $JD_Terminfo_Dirs +for terminfo_dir in $MISC_TERMINFO_DIRS do if test -d $terminfo_dir then diff --git a/autoconf/configure.ac b/autoconf/configure.ac index 8e11e13..9e6402c 100644 --- a/autoconf/configure.ac +++ b/autoconf/configure.ac @@ -250,7 +250,14 @@ AC_CHECK_SIZEOF(size_t) JD_CHECK_LONG_LONG JD_LARGE_FILE_SUPPORT -JD_TERMCAP +dnl Do not use JD_TERMCAP, since we cannot get terminfo from ncurses*-config anymore. +dnl Set TERMCAP=-ltermcap and AC_DEFINE(USE_TERMCAP,1,[Define to use termcap]) +dnl to use libtermcap. +TERMCAP="" +MISC_TERMINFO_DIRS="" +AC_SUBST(TERMCAP)dnl +AC_SUBST(MISC_TERMINFO_DIRS)dnl + JD_GCC_WARNINGS JD_SET_OBJ_SRC_DIR(src) @@ -365,7 +372,7 @@ AC_CONFIG_HEADER(src/sysconf.h:src/config.hin) dnl AC_CONFIG_SUBDIRS(demo) AC_OUTPUT(Makefile:autoconf/Makefile.in \ - src/Makefile slsh/Makefile modules/Makefile demo/Makefile \ + src/Makefile src/test/Makefile slsh/Makefile modules/Makefile demo/Makefile \ slang.pc:autoconf/slangpc.in \ ) diff --git a/src/test/Makefile.in b/src/test/Makefile.in new file mode 100644 index 0000000..4b7307f --- /dev/null +++ b/src/test/Makefile.in @@ -0,0 +1,90 @@ +# -*- make -*- +TEST_SCRIPTS_SLC = argv syntax scircuit eqs sscanf loops arith array strops \ + bstring pack stdio assoc selfload struct nspace path ifeval anytype arrmult \ + time utf8 except bugs list regexp method deref naninf overflow sort \ + longlong signal dollar req docfun debug qualif compare break multline \ + stack misc posixio posdir proc math + +TEST_SCRIPTS_NO_SLC = autoload nspace2 prep + +TEST_SCRIPTS = $(TEST_SCRIPTS_SLC) $(TEST_SCRIPTS_NO_SLC) + +TEST_PGM = sltest +MEMCHECK = valgrind --tool=memcheck --leak-check=yes --leak-resolution=med --num-callers=20 +RUN_TEST_PGM = ./$(TEST_PGM) +SLANGINC = .. +SLANGLIB = ../$(ARCH)objs +OTHER_LIBS = -lm @TERMCAP@ +OTHER_CFLAGS = + +runtests: $(TEST_PGM) cleantmp + @tests=""; \ + for test in $(TEST_SCRIPTS); \ + do \ + tests="$$tests $$test.sl"; \ + done; \ + for test in $(TEST_SCRIPTS_SLC); \ + do \ + tests="$$tests $$test.slc"; \ + done; \ + MAKERUNNING=1 ./runtests.sh $$tests +# @touch $(TEST_PGM).c + +update: $(TEST_PGM) cleantmp + @tests=""; \ + for X in $(TEST_SCRIPTS); \ + do \ + if [ ! -e lastrun/$$X.sl ] || [ $$X.sl -nt lastrun/$$X.sl ] ; \ + then \ + tests="$$tests $$X.sl"; \ + fi \ + done; \ + for X in $(TEST_SCRIPTS_SLC); \ + do \ + if [ ! -e lastrun/$$X.slc ] || [ $$X.sl -nt lastrun/$$X.slc ] ; \ + then \ + tests="$$tests $$X.slc"; \ + fi \ + done; \ + if test -n "$$tests"; \ + then \ + MAKERUNNING=1 ./runtests.sh $$tests; \ + fi +# @touch $(TEST_PGM).c + +memcheck_runtests: $(TEST_PGM) cleantmp + @echo "" + @echo "Running tests:" + @echo "" + -@for X in $(TEST_SCRIPTS); \ + do \ + $(MEMCHECK) --log-file=log.$${X} $(RUN_TEST_PGM) $$X.sl; \ + grep ERROR log.$${X}; grep 'lost: [^0]' log.$${X}; \ + $(MEMCHECK) --log-file=log.$${X}_u $(RUN_TEST_PGM) -utf8 $$X.sl; \ + grep ERROR log.$${X}_u; grep 'lost: [^0]' log.$${X}_u; \ + done +# touch $(TEST_PGM).c + +memcheck_runtests_slc: $(TEST_PGM) cleantmp + @echo "" + @echo "Running tests:" + @echo "" + -@for X in $(TEST_SCRIPTS_SLC); \ + do \ + $(MEMCHECK) --log-file=log.$${X}_c $(RUN_TEST_PGM) $$X.slc; \ + $(MEMCHECK) --log-file=log.$${X}_uc $(RUN_TEST_PGM) -utf8 $$X.slc; \ + done +# touch $(TEST_PGM).c + +memcheck: memcheck_runtests memcheck_runtests_slc + +$(TEST_PGM): $(TEST_PGM).c assoc.c list.c $(SLANGLIB)/libslang.a + $(CC) $(CFLAGS) $(OTHER_CFLAGS) $(LDFLAGS) $(TEST_PGM).c -o $(TEST_PGM) -I$(SLANGINC) -L$(SLANGLIB) -lslang $(OTHER_LIBS) +cleantmp: + -/bin/rm -rf tmpfile*.* tmpdir*.* +clean: cleantmp + -/bin/rm -f *~ *.o *.log log.pid* *.slc log.* *.log-* +distclean: clean + /bin/rm -f $(TEST_PGM) $(TEST_PGM).gcda $(TEST_PGM).gcno +.PHONY: clean memcheck runtests memcheck_runtests_slc memcheck_runtests cleantmp +