summaryrefslogtreecommitdiff
blob: 4b3df2ee35b7690cb58ecf10e578ce4c59d084fe (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
From c4aded6c8f63471b30fe171072e11407929301ac Mon Sep 17 00:00:00 2001
From: Tim Harder <radhermit@gmail.com>
Date: Tue, 11 Apr 2017 05:17:52 -0400
Subject: [PATCH] Check for termcap support in split tinfo libs

Previously only the main ncurses libs were checked leading to users with
enabled unicode support (ncursesw) and split tinfo libs running into
segfaults since the checks would fallback to setting TERMCAP_LIB=-lcurses.

Fixes #568.
---
 tools/ax_lib_readline.m4 | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/tools/ax_lib_readline.m4 b/tools/ax_lib_readline.m4
index 1be9125..24ca194 100644
--- a/tools/ax_lib_readline.m4
+++ b/tools/ax_lib_readline.m4
@@ -34,16 +34,19 @@ fi
 AC_CACHE_VAL(bash_cv_termcap_lib,
 [AC_CHECK_FUNC(tgetent, bash_cv_termcap_lib=libc,
 if test "$ax_cv_curses_which" = "ncursesw"; then
-	[AC_CHECK_LIB(ncursesw, tgetent, bash_cv_termcap_lib=libncursesw)]
+	[AC_CHECK_LIB(ncursesw, tgetent, bash_cv_termcap_lib=libncursesw,
+		[AC_CHECK_LIB(tinfow, tgetent, bash_cv_termcap_lib=libtinfow)]
+	)]
 elif test "$ax_cv_curses_which" = "ncurses"; then
-	[AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses)]
+	[AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses,
+		[AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo)]
+	)]
 elif test "$ax_cv_curses_which" = "plaincurses"; then
 	[AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses)]
 else
 	[AC_CHECK_LIB(termcap, tgetent, bash_cv_termcap_lib=libtermcap,
-		[AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo,
-			bash_cv_termcap_lib=gnutermcap
-	)])]
+		bash_cv_termcap_lib=gnutermcap
+	)]
 fi
 )])
 if test "X$_bash_needmsg" = "Xyes"; then
@@ -57,6 +60,9 @@ TERMCAP_DEP="./lib/termcap/libtermcap.a"
 elif test $bash_cv_termcap_lib = libtermcap && test -z "$prefer_curses"; then
 TERMCAP_LIB=-ltermcap
 TERMCAP_DEP=
+elif test $bash_cv_termcap_lib = libtinfow; then
+TERMCAP_LIB=-ltinfow
+TERMCAP_DEP=
 elif test $bash_cv_termcap_lib = libtinfo; then
 TERMCAP_LIB=-ltinfo
 TERMCAP_DEP=
-- 
2.12.0