Check for termcap.h too.
authorTaylor R Campbell <campbell@mumble.net>
Mon, 9 Aug 2010 16:36:32 +0000 (16:36 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Mon, 9 Aug 2010 16:36:32 +0000 (16:36 +0000)
Assume that term.h or termcap.h defines BC, UP, PC, & ospeed.

Work around !*@#@^!*#%!^&$@!%# stupidity in NetBSD with ospeed.

src/microcode/configure.ac
src/microcode/tterm.c

index b7fb859cf20aff5525fa868fb666052c6200af8b..edb9474bb29f7eda1889093e32cd48b3270ade68 100644 (file)
@@ -692,7 +692,7 @@ dnl by pretending we know the format -- without bringing in the local
 dnl termcap reimplementation.
 
 dnl Go for whatever header files we can.
-AC_CHECK_HEADERS([ncurses.h curses.h term.h])
+AC_CHECK_HEADERS([ncurses.h curses.h term.h termcap.h])
 
 if test "x${with_termcap}" = xyes; then
 
@@ -756,6 +756,7 @@ no) ;;
            OPTIONAL_BASES="${OPTIONAL_BASES} tparam"
        fi
     fi
+    ;;
 esac
 
 dnl The OpenSSL crypto library provides support for blowfish and MD5.
index f84dea0102880310ef58c14b24ad17b40c14e6ad..5bab8980807443aa474b7273fcbd1087bb318bb4 100644 (file)
@@ -45,8 +45,18 @@ USA.
 #  endif
 #endif
 
-#if defined(HAVE_TERM_H)
-#  include <term.h>
+/* Some instances of curses.h (I'm looking at you, NetBSD) not only
+   declare an external variable ospeed, but also define it to be a
+   macro expanding to a function call.  WTF?  Unix sucks.  */
+#undef ospeed
+
+#if defined(HAVE_TERM_H) || defined(HAVE_TERMCAP_H)
+#  ifdef HAVE_TERM_H
+#    include <term.h>
+#  endif
+#  ifdef HAVE_TERMCAP_H
+#   include <termcap.h>
+#  endif
 #else
    extern int tgetent (char *, const char *);
    extern int tgetnum (const char *);
@@ -54,13 +64,13 @@ USA.
    extern char * tgetstr (const char *, char **);
    extern char * tgoto (const char *, int, int);
    extern int tputs (const char *, int, int (*) (int));
+   extern char * BC;
+   extern char * UP;
+   extern char PC;
+   extern speed_t ospeed;
 #endif
 
 extern char * tparam (const char *, void *, int, ...);
-extern char * BC;
-extern char * UP;
-extern char PC;
-extern speed_t ospeed;
 
 #ifndef TERMCAP_BUFFER_SIZE
 #define TERMCAP_BUFFER_SIZE 2048