]> Zhao Yanbai Git Server - minix.git/commitdiff
cleanup of libterminfo introduction
authorBen Gras <ben@minix3.org>
Wed, 20 Jul 2011 13:44:59 +0000 (15:44 +0200)
committerBen Gras <ben@minix3.org>
Wed, 20 Jul 2011 16:39:02 +0000 (18:39 +0200)
. don't install minix <termcap.h> as libterminfo
  has its own (but still install it in /usr/include.ack)
. forget minix termcap functions in -lcompat_minix
. make commands use -lterminfo in netbsd libc compile mode

commands/Makefile.inc
lib/nbsd_libcompat_minix/Makefile
lib/nbsd_libcompat_minix/include/Makefile.inc
lib/nbsd_libcompat_minix/include/termcap.h [deleted file]
lib/nbsd_libcompat_minix/termcap.c [deleted file]

index f10e293fb042e438f61957a47bc8e10223d0097e..f927292cc403c0ac729d4d86bc8feb2725a683b3 100644 (file)
@@ -1,6 +1,6 @@
 .if (${NBSD_LIBC} != "no")
 CPPFLAGS+= -D_MINIX -D_NETBSD_SOURCE -D_MINIX_COMPAT
-LDADD+= -lminlib -lcompat_minix -lasyn
+LDADD+= -lminlib -lcompat_minix -lasyn -lterminfo
 .else
 CPPFLAGS+= -D_MINIX -D_POSIX_SOURCE
 .endif
index f91adba7a5e1ba72a6caecb6655f068543613991..619fdcb5a58938000ef766beccbd3bfeb1fc714b 100644 (file)
@@ -24,12 +24,6 @@ SRCS+= nlist.c
 # NetBSD's 'mtab' format.
 SRCS+= mtab.c
 
-# Termcap. 
-# Included in the Minix libc. 
-#
-# Should be removed once we switch to terminfo.
-SRCS+= termcap.c
-
 # Minix legacy passwd format
 # These should be removed when we switch to
 # NetBSD's 'passwd' db-based format.
index c07ff671577b7c6b349deb1aff52e9012fb958b9..88965f3e8b720f93a7fea4934f32c9d40cd57a54 100644 (file)
@@ -2,7 +2,7 @@
 
 INCSDIR= /usr/include
 
-INCS+= configfile.h termcap.h
+INCS+= configfile.h
 INCS+=         compat/a.out.h compat/regexp.h compat/syslog.h \
        compat/pwd.h
 INCS+= net/gen/netdb.h net/gen/resolv.h net/gen/nameser.h
diff --git a/lib/nbsd_libcompat_minix/include/termcap.h b/lib/nbsd_libcompat_minix/include/termcap.h
deleted file mode 100644 (file)
index 5dfc50f..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef _TERMCAP_H
-#define _TERMCAP_H
-
-#include <minix/ansi.h>
-
-_PROTOTYPE( int tgetent, (char *_bp, char *_name)                      );
-_PROTOTYPE( int tgetflag, (char *_id)                                  );
-_PROTOTYPE( int tgetnum, (char *_id)                                   );
-_PROTOTYPE( char *tgetstr, (char *_id, char **_area)                   );
-_PROTOTYPE( char *tgoto, (char *_cm, int _destcol, int _destline)      );
-_PROTOTYPE( int tputs, (char *_cp, int _affcnt, void (*_outc)(int))    );
-
-#endif /* _TERMCAP_H */
diff --git a/lib/nbsd_libcompat_minix/termcap.c b/lib/nbsd_libcompat_minix/termcap.c
deleted file mode 100644 (file)
index 2f08af2..0000000
+++ /dev/null
@@ -1,326 +0,0 @@
-/*
- *     termcap.c       V1.1    20/7/87         agc     Joypace Ltd
- *
- *     Copyright Joypace Ltd, London, UK, 1987. All rights reserved.
- *     This file may be freely distributed provided that this notice
- *     remains attached.
- *
- *     A public domain implementation of the termcap(3) routines.
- *
- *
- *
- *      Klamer Schutte       V1.2    Nov. 1988
- *
- *   - Can match multiple terminal names                [tgetent]
- *   - Removal of **area assignments                    [tgetstr]
- *
- *      Terrence W. Holm     V1.3    May, Sep, Oct.  1988
- *
- *   - Correct when TERM != name and TERMCAP is defined         [tgetent]
- *   - Correct the comparison for the terminal name     [tgetent]
- *   - Correct the value of ^x escapes                  [tgetstr]
- *   - Added %r to reverse row/column                   [tgoto]
- *   - Fixed end of definition test                     [tgetnum/flag/str]
- *
- *      Terrence W. Holm     V1.4    Jan. 1989
- *
- *   - Incorporated Klamer's V1.2 fixes into V1.3
- *   - Added %d, (old %d is now %2)                     [tgoto]
- *   - Allow '#' comments in definition file            [tgetent]
- */
-
-#include <sys/cdefs.h>
-#include <lib.h>
-#include <termcap.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-char *capab = (char *)NULL;            /* the capability itself */
-
-#if 0
-/*  The following are not yet used.  */
-extern short ospeed;           /* output speed */
-extern char PC;                        /* padding character */
-extern char *BC;               /* back cursor movement */
-extern char *UP;               /* up cursor movement */
-#endif
-
-/*
- *     tgetent - get the termcap entry for terminal name, and put it
- *     in bp (which must be an array of 1024 chars). Returns 1 if
- *     termcap entry found, 0 if not found, and -1 if file not found.
- */
-
-int tgetent(bp, name)
-char *bp;
-char *name;
-{
-  FILE *fp;
-  char *file;
-  char *term;
-  short len = strlen(name);
-
-  capab = bp;
-
-  /* If TERMCAP begins with a '/' then use TERMCAP as the path  */
-  /* Name of the termcap definitions file. If TERMCAP is a      */
-  /* Definition and TERM equals "name" then use TERMCAP as the  */
-  /* Definition. Otherwise use "/etc/termcap" as the path name.         */
-
-  if ((file = getenv("TERMCAP")) == (char *)NULL)
-       file = "/etc/termcap";
-  else if (*file != '/')
-       if ((term = getenv("TERM")) != (char *)NULL && strcmp(term, name) == 0) {
-               *bp = '\0';
-               strncat(bp, file, 1023);
-               return(1);
-       } else
-               file = "/etc/termcap";
-
-  if ((fp = fopen(file, "r")) == (FILE *) NULL) {
-       capab = (char *)NULL;           /* no valid termcap  */
-       return(-1);
-  }
-  for (;;) {
-       /* Read in each definition */
-       int def_len = 0;
-       char *cp = bp;
-
-       do {
-               if (fgets(&bp[def_len], (unsigned int)(1024 - def_len), fp) == (char *)NULL) {
-                       fclose(fp);
-                       capab = (char *)NULL;   /* no valid termcap */
-                       return(0);
-               }
-               def_len = strlen(bp) - 2;
-       } while (bp[def_len] == '\\');
-
-       while (isspace(*cp)) cp++;
-
-       /* Comment lines start with a '#'  */
-       if (*cp == '#') continue;
-
-       /* See if any of the terminal names in this definition */
-       /* Match "name".                                                 */
-
-       do {
-               if (strncmp(name, cp, len) == 0 &&
-                   (cp[len] == '|' || cp[len] == ':')) {
-                       fclose(fp);
-                       return(1);
-               }
-               while ((*cp) && (*cp != '|') && (*cp != ':')) cp++;
-       } while (*cp++ == '|');
-  }
-}
-
-
-/*
- *     tgetnum - get the numeric terminal capability corresponding
- *     to id. Returns the value, -1 if invalid.
- */
-
-int tgetnum(id)
-char *id;
-{
-  register char *cp = capab;
-
-  if (cp == (char *)NULL || id == (char *)NULL) return(-1);
-
-  for (;;) {
-       while (*cp++ != ':')
-               if (cp[-1] == '\0') return(-1);
-
-       while (isspace(*cp)) cp++;
-
-       if (strncmp(cp, id, 2) == 0 && cp[2] == '#') return(atoi(cp + 3));
-  }
-}
-
-
-/*
- *     tgetflag - get the boolean flag corresponding to id. Returns -1
- *     if invalid, 0 if the flag is not in termcap entry, or 1 if it is
- *     present.
- */
-
-int tgetflag(id)
-char *id;
-{
-  register char *cp = capab;
-
-  if (cp == (char *)NULL || id == (char *)NULL) return(-1);
-
-  for (;;) {
-       while (*cp++ != ':')
-               if (cp[-1] == '\0') return(0);
-
-       while (isspace(*cp)) cp++;
-
-       if (strncmp(cp, id, 2) == 0) return(1);
-  }
-}
-
-
-/*
- *     tgetstr - get the string capability corresponding to id and place
- *     it in area (advancing area at same time). Expand escape sequences
- *     etc. Returns the string, or NULL if it can't do it.
- */
-
-char *tgetstr(id, area)
-char *id;
-char **area;
-{
-  register char *cp = capab;
-  register char *wsp = *area;  /* workspace pointer  */
-
-  if (cp == (char *)NULL || id == (char *)NULL) return((char *)NULL);
-
-  for (;;) {
-       while (*cp++ != ':')
-               if (cp[-1] == '\0') return((char *)NULL);
-
-       while (isspace(*cp)) cp++;
-
-       if (strncmp(cp, id, 2) == 0 && cp[2] == '=') {
-               for (cp += 3; *cp && *cp != ':'; wsp++, cp++) switch (*cp) {
-                           case '^':
-                               *wsp = *++cp - '@';
-                               break;
-
-                           case '\\':
-                               switch (*++cp) {
-                                   case 'E':
-                                       *wsp = '\033';
-                                       break;
-                                   case 'n':
-                                       *wsp = '\n';
-                                       break;
-                                   case 'r':
-                                       *wsp = '\r';
-                                       break;
-                                   case 't':
-                                       *wsp = '\t';
-                                       break;
-                                   case 'b':
-                                       *wsp = '\b';
-                                       break;
-                                   case 'f':
-                                       *wsp = '\f';
-                                       break;
-                                   case '0':
-                                   case '1':
-                                   case '2':
-                                   case '3':
-                                       {
-                                               int i;
-                                               int t = 0;
-                                               for (i = 0; i < 3 &&
-                                                    isdigit(*cp); ++i, ++cp)
-                                                       t = t * 8 + *cp - '0';
-                                               *wsp = t;
-                                               cp--;
-                                               break;
-                                       }
-                                   default:
-                                       *wsp = *cp;
-                               }
-                               break;
-
-                           default:    *wsp = *cp;
-                       }
-
-               *wsp++ = '\0';
-
-               {
-                       char *ret = *area;
-                       *area = wsp;
-                       return(ret);
-               }
-       }
-  }                            /* end for(;;) */
-}
-
-
-
-/*
- *     tgoto - given the cursor motion string cm, make up the string
- *     for the cursor to go to (destcol, destline), and return the string.
- *     Returns "OOPS" if something's gone wrong, or the string otherwise.
- */
-
-char *tgoto(cm, destcol, destline)
-char *cm;
-int destcol;
-int destline;
-{
-  PRIVATE char ret[24];
-  char *rp = ret;
-  int incr = 0;
-  int argno = 0;
-  int numval;
-
-  for (; *cm; cm++) {
-       if (*cm == '%') {
-               switch (*++cm) {
-                   case 'i':   incr = 1;                               break;
-
-                   case 'r':   argno = 1;                              break;
-
-                   case '+':
-                       numval = (argno == 0 ? destline : destcol);
-                       *rp++ = numval + incr + *++cm;
-                       argno = 1 - argno;
-                       break;
-
-                   case '2':
-                       numval = (argno == 0 ? destline : destcol);
-                       numval = (numval + incr) % 100;
-                       *rp++ = '0' + (numval / 10);
-                       *rp++ = '0' + (numval % 10);
-                       argno = 1 - argno;
-                       break;
-
-                   case 'd':
-                       numval = (argno == 0 ? destline : destcol);
-                       numval = (numval + incr) % 1000;
-                       if (numval > 99) *rp++ = '0' + (numval / 100);
-                       if (numval > 9) *rp++ = '0' + (numval / 10) % 10;
-                       *rp++ = '0' + (numval % 10);
-                       argno = 1 - argno;
-                       break;
-
-                   case '%':   *rp++ = '%';                            break;
-
-                   default:    return("OOPS");
-               }
-
-       } else
-               *rp++ = *cm;
-  }
-
-  *rp = '\0';
-  return(ret);
-}
-
-
-
-/*
- *     tputs - put the string cp out onto the terminal, using the function
- *     outc. This should do padding for the terminal, but I can't find a
- *     terminal that needs padding at the moment...
- */
-
-int tputs(cp, affcnt, outc)
-register char *cp;
-int affcnt;
-_PROTOTYPE( void (*outc), (int ch));
-{
-  if (cp == (char *)NULL) return(1);
-  /* Do any padding interpretation - left null for MINIX just now */
-  while (*cp) (*outc) (*cp++);
-  return(1);
-}