diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | Src/Modules/terminfo.c | 26 | ||||
-rw-r--r-- | Src/Modules/terminfo.mdd | 4 | ||||
-rw-r--r-- | configure.ac | 6 |
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 |