+/*
+ * getcap-style interface for the old printcap routines.
+ *
+ * !!!USE THIS INTERFACE ONLY IF YOU DON'T HAVE THE REAL GETCAP!!!
+ */
+
+static char *pbp; /* pointer into pbuf for pgetstr() */
+static char pbuf[BUFSIZ]; /* buffer for capability strings */
+extern char line[]; /* buffer for printcap entries */
+
+int
+cgetnext(bp, db_array)
+ register char **bp;
+ char **db_array;
+{
+ int ret;
+ char *strdup();
+
+ pbp = pbuf;
+ ret = getprent(line);
+ *bp = strdup(line);
+ return (ret);
+}
+
+int
+cgetent(bp, db_array, name)
+ char **bp, **db_array, *name;
+{
+ int i;
+
+ *bp = line;
+ pbp = pbuf;
+ i = pgetent(*bp, name);
+ if (i < 0)
+ return (-2);
+ else if (i == 0)
+ return (-1);
+ else
+ return (0);
+}
+
+char *
+cgetcap(buf, cap, type)
+ char *buf, *cap;
+ int type;
+{
+ return ((char *) pgetflag(cap));
+}
+
+int
+cgetstr(buf, cap, str)
+ char *buf, *cap;
+ char **str;
+{
+ char *pgetstr __P((char *, char **));
+
+ if (pbp >= pbuf+BUFSIZ) {
+ write(2, "Capability string buffer overflow\n", 34);
+ return (-1);
+ }
+ return ((*str = pgetstr(cap, &pbp)) == NULL ? -1 : 0);
+}
+
+int
+cgetnum(buf, cap, num)
+ char *buf, *cap;
+ long *num;
+{
+ return ((*num = pgetnum(cap)) < 0 ? -1 : 0);
+}
+
+int
+cgetclose()
+{
+ void endprent __P((void));
+
+ endprent();
+ return (0);
+}
+
+