summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2004-02-26 12:40:53 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2004-02-26 12:40:53 +0000
commit8b8cc745d952bbeebb474d884b0a63e4ff08400f (patch)
treeed54171ba242d107e48f9cffe259641dc77ee501
parent67b03b2f2c3ee90b7c5fce5932aa5388e8c10d5f (diff)
downloadzsh-8b8cc745d952bbeebb474d884b0a63e4ff08400f.tar.gz
zsh-8b8cc745d952bbeebb474d884b0a63e4ff08400f.zip
19460: Another go at fixing the terminfo configuration problem
-rw-r--r--ChangeLog6
-rw-r--r--Src/Modules/terminfo.c26
-rw-r--r--Src/Modules/terminfo.mdd4
-rw-r--r--configure.ac6
4 files changed, 25 insertions, 17 deletions
diff --git a/ChangeLog b/ChangeLog
index 116e42937..e7621a1a4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2004-02-26 Peter Stephenson <pws@csr.com>
+
+ * 19460: configure.ac, Src/Modules/terminfo.c,
+ Src/Modules/terminfo.mdd: Another go at fixing the terminfo
+ configuration problems.
+
2004-02-25 Doug Kearns <djkea2@mugca.its.monash.edu.au>
* 19458: Completion/Unix/Command/_raggle: new completion for raggle
diff --git a/Src/Modules/terminfo.c b/Src/Modules/terminfo.c
index f869e0e36..548e52bfb 100644
--- a/Src/Modules/terminfo.c
+++ b/Src/Modules/terminfo.c
@@ -29,12 +29,18 @@
#define USES_TERM_H 1
#include "terminfo.mdh"
-#include "terminfo.pro"
+#if defined(HAVE_TIGETFLAG) && defined(HAVE_CURSES_H)
+# define USE_TERMINFO_MODULE 1
+#else
+# undef USE_TERMINFO_MODULE
+#endif
+
+#include "terminfo.pro"
static char terminfo_nam[] = "terminfo";
/**/
-#ifdef HAVE_TIGETSTR
+#ifdef USE_TERMINFO_MODULE
/* The following two undefs are needed for Solaris 2.6 */
# ifdef VINTR
@@ -44,9 +50,7 @@ static char terminfo_nam[] = "terminfo";
# undef offsetof
# endif
-# ifdef HAVE_CURSES_H
-# include <curses.h>
-# endif
+# include <curses.h>
# ifdef HAVE_TERM_H
# include <term.h>
# endif
@@ -123,19 +127,19 @@ bin_echoti(char *name, char **argv, Options ops, int func)
}
/**/
-#else /* !HAVE_TIGETSTR */
+#else /* !USE_TERMINFO_MODULE */
#define bin_echoti bin_notavail
/**/
-#endif /* !HAVE_TIGETSTR */
+#endif /* !USE_TERMINFO_MODULE */
static struct builtin bintab[] = {
BUILTIN("echoti", 0, bin_echoti, 1, -1, 0, NULL, NULL),
};
/**/
-#ifdef HAVE_TIGETSTR
+#ifdef USE_TERMINFO_MODULE
/* Empty dummy function for special hash parameters. */
@@ -361,7 +365,7 @@ scanterminfo(HashTable ht, ScanFunc func, int flags)
}
/**/
-#endif /* HAVE_TIGETSTR */
+#endif /* USE_TERMINOF_MODULE */
/**/
int
@@ -374,7 +378,7 @@ setup_(Module m)
int
boot_(Module m)
{
-#ifdef HAVE_TIGETSTR
+#ifdef USE_TERMINFO_MODULE
# ifdef HAVE_SETUPTERM
int errret;
@@ -394,7 +398,7 @@ boot_(Module m)
int
cleanup_(Module m)
{
-#ifdef HAVE_TIGETSTR
+#ifdef USE_TERMINFO_MODULE
Param pm;
if ((pm = (Param) paramtab->getnode(paramtab, terminfo_nam)) &&
diff --git a/Src/Modules/terminfo.mdd b/Src/Modules/terminfo.mdd
index da79e9768..7d88dfb27 100644
--- a/Src/Modules/terminfo.mdd
+++ b/Src/Modules/terminfo.mdd
@@ -1,13 +1,13 @@
name=zsh/terminfo
-link='if test "x$ac_cv_func_tigetstr" = xyes; then
+link='if test "x$ac_cv_func_tigetflag" = xyes -a "x$ac_cv_header_curses_h" = xyes; then
if test "x$zsh_cv_shared_tigetstr" = xyes; then
echo either
else
echo static
fi
else
- echo either;
+ echo no;
fi
'
load=yes
diff --git a/configure.ac b/configure.ac
index 0a85f5bc8..740e98067 100644
--- a/configure.ac
+++ b/configure.ac
@@ -620,8 +620,7 @@ AH_TEMPLATE([HAVE_STRNAMES],
AH_TEMPLATE([TERM_H_NEEDS_CURSES_H],
[Define if term.h chokes without curses.h.])
AC_SEARCH_LIBS(tgetent, [$termcap_curses_order])
-case "$LIBS" in
-*curses*)
+AC_SEARCH_LIBS(tigetflag, [$termcap_curses_order])
AC_CHECK_HEADERS(curses.h, [],
[AC_CACHE_CHECK(for Solaris 8 curses.h mistake, ac_cv_header_curses_solaris,
AC_TRY_COMPILE([#include <curses.h>], [],
@@ -683,8 +682,7 @@ AC_TRY_LINK([#include <curses.h>
#include <term.h>], [char **test = strnames; printf(*test);],
AC_DEFINE(HAVE_STRNAMES) strnames=yes, strnames=no)
AC_MSG_RESULT($strnames)
-]);;
-esac
+])
dnl Some systems (Solaris 2.x, Linux Redhat 5.x) require
dnl libnsl (Network Services Library) to find yp_all