summaryrefslogtreecommitdiffstats
path: root/meta/recipes-extended/slang/slang/terminfo_fixes.patch
blob: 331b7f02e4598beddab65e5b3d47f747a174e1ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
From 2a75095638002d37a2f9c7aeb0ec54f271b0a1c4 Mon Sep 17 00:00:00 2001
From: Joe Slater <joe.slater@windriver.com>
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 <joe.slater@windriver.com>

---
 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
+