]> err.no Git - util-linux/commitdiff
text-utils: fix the more command compilation against termcap
authorKarel Zak <kzak@redhat.com>
Mon, 4 Jun 2007 13:16:18 +0000 (15:16 +0200)
committerKarel Zak <kzak@redhat.com>
Tue, 5 Jun 2007 21:35:42 +0000 (23:35 +0200)
The build-sys (text-utils/Makefile.am) allows to compile against
ncurses and termcap. The termcap version is broken in more.c.

Signed-off-by: Karel Zak <kzak@redhat.com>
text-utils/more.c

index 982edbece6d4c0437d52549ea6f541c7d9f76fc3..db2fa4d2046a13fc1846befbe538b064ebd96ec7 100644 (file)
@@ -167,12 +167,13 @@ struct {
 extern char    PC;             /* pad character */
 
 #ifdef HAVE_NCURSES_H
-#include <ncurses.h>
+# include <ncurses.h>
 #elif defined(HAVE_NCURSES_NCURSES_H)
-#include <ncurses/ncurses.h>
+# include <ncurses/ncurses.h>
 #endif
 
-#include <term.h>                      /* include after <curses.h> */
+#if defined(HAVE_NCURSES_H) || defined(HAVE_NCURSES_NCURSES_H)
+# include <term.h>                     /* include after <curses.h> */
 
 static void
 my_putstring(char *s) {
@@ -204,6 +205,46 @@ my_tgoto(const char *cap, int col, int row) {
      return tparm(cap, col, row);
 }
 
+#elif defined(HAVE_LIBTERMCAP)          /* !ncurses */
+
+#include <termcap.h>
+
+char termbuffer[4096];
+char tcbuffer[4096];
+char *strbuf = termbuffer;
+
+static void
+my_putstring(char *s) {
+     tputs (s, 1, putchar);
+}
+
+static void
+my_setupterm(const char *term, int fildes, int *errret) {
+     *errret = tgetent(tcbuffer, term);
+}
+
+static int
+my_tgetnum(char *s, char *ss) {
+     return tgetnum(s);
+}
+
+static int
+my_tgetflag(char *s, char *ss) {
+     return tgetflag(s);
+}
+
+static char *
+my_tgetstr(char *s, char *ss) {
+     return tgetstr(s, &strbuf);
+}
+
+static char *
+my_tgoto(const char *cap, int col, int row) {
+     return tgoto(cap, col, row);
+}
+
+#endif /* HAVE_LIBTERMCAP */
+
 static void
 idummy(int *kk) {}