Changed msg_style and msg_delim to be file static to m_getfld.c
[mmh] / uip / termsbr.c
index 77af468..fa33fac 100644 (file)
@@ -2,28 +2,32 @@
 /*
  * 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()
 #ifdef GWINSZ_IN_SYS_IOCTL
+*/
 # include <sys/ioctl.h>
+/*
 #endif
+*/
+
 #ifdef WINSIZE_IN_PTEM
 # include <sys/stream.h>
 # include <sys/ptem.h>
 # define TXTSIZ BUFSIZ
 #endif
 
-/*
- * These variables are sometimes defined in,
- * and needed by the termcap library.
- */
-#ifdef HAVE_OSPEED
-# ifdef MUST_DEFINE_OSPEED
-extern short ospeed;
-extern char PC;
-# endif
-#else
-short ospeed;
-char PC;
-#endif
-
 static long speedcode;
 
 static int initLI = 0;
@@ -67,23 +57,14 @@ static char termcap[TXTSIZ];
 static void
 read_termcap(void)
 {
-    char *bp, *cp;
+    char *cp;
     char *term;
 
 #ifndef TGETENT_ACCEPTS_NULL
     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++)
@@ -96,22 +77,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");
 
@@ -122,8 +95,6 @@ read_termcap(void)
 
     cp = termcap;
     CL = tgetstr ("cl", &cp);
-    if ((bp = tgetstr ("pc", &cp)))
-       PC = *bp;
     if (tgetnum ("sg") <= 0) {
        SE = tgetstr ("se", &cp);
        SO = tgetstr ("so", &cp);
@@ -170,7 +141,7 @@ sc_length (void)
 static int
 outc (int c)
 {
-    putchar(c);
+    return putchar(c);
 }