Fixed build on Cygwin by adding configure check for ncurses/termcap.h.
[mmh] / uip / termsbr.c
index 556158d..4804776 100644 (file)
@@ -2,23 +2,22 @@
 /*
  * termsbr.c -- termcap support
  *
- * $Id$
+ * This code is Copyright (c) 2002, by the authors of nmh.  See the
+ * COPYRIGHT file in the root directory of the nmh distribution for
+ * complete copyright information.
  */
 
 #include <h/mh.h>
 
-#ifdef HAVE_TERMIOS_H
-# include <termios.h>
-#else
-# ifdef HAVE_TERMIO_H
-#  include <termio.h>
-# else
-#  include <sgtty.h>
-# endif
-#endif
+#include <termios.h>
 
+/* It might be better to tie this to the termcap_curses_order in
+   configure.ac.  It would be fine to check for ncurses/termcap.h
+   first on Linux, it's a symlink to termcap.h.  */
 #ifdef HAVE_TERMCAP_H
 # include <termcap.h>
+#elif defined (HAVE_NCURSES_TERMCAP_H)
+# include <ncurses/termcap.h>
 #endif
 
 /* <sys/ioctl.h> is need anyway for ioctl()
 # define TXTSIZ BUFSIZ
 #endif
 
+#ifdef notdef_lyndon_posix
+
+/*
+       XXX No current termcap should need this.  If your compile barfs,
+       email details to lyndon@orthanc.ca.  This code will vanish soon ...
+*/
 /*
  * These variables are sometimes defined in,
  * and needed by the termcap library.
  */
-#ifdef HAVE_OSPEED
-# ifdef MUST_DEFINE_OSPEED
+# ifdef HAVE_OSPEED
+#  ifdef MUST_DEFINE_OSPEED
 extern short ospeed;
 extern char PC;
-# endif
-#else
+#  endif
+# else
 short ospeed;
 char PC;
-#endif
+# endif
+
+#endif /* notdef_lyndon_posix */
 
 static long speedcode;
 
@@ -79,16 +86,7 @@ read_termcap(void)
     char termbuf[TXTSIZ];
 #endif
 
-#ifdef HAVE_TERMIOS_H
     struct termios tio;
-#else
-# ifdef HAVE_TERMIO_H
-    struct termio tio;
-# else
-    struct sgttyb tio;
-# endif
-#endif
-
     static int inited = 0;
 
     if (inited++)
@@ -101,22 +99,14 @@ read_termcap(void)
  * If possible, we let tgetent allocate its own termcap buffer
  */
 #ifdef TGETENT_ACCEPTS_NULL
-    if (tgetent (NULL, term) <= 0)
-       return
+    if (tgetent (NULL, term) != TGETENT_SUCCESS)
+       return;
 #else
-    if (tgetent (termbuf, term) <= 0)
+    if (tgetent (termbuf, term) != TGETENT_SUCCESS)
        return;
 #endif
 
-#ifdef HAVE_TERMIOS_H
     speedcode = cfgetospeed(&tio);
-#else
-# ifdef HAVE_TERMIO_H
-    speedcode = ioctl(fileno(stdout), TCGETA, &tio) != NOTOK ? tio.c_cflag & CBAUD : 0;
-# else
-    speedcode = ioctl(fileno(stdout), TIOCGETP, (char *) &tio) != NOTOK ? tio.sg_ospeed : 0;
-# endif
-#endif
 
     HC = tgetflag ("hc");