61 lines
1.1 KiB
Text
61 lines
1.1 KiB
Text
$NetBSD: patch-bf,v 1.1.1.1 2002/05/25 12:25:52 markd Exp $
|
|
|
|
--- etc/papd/printcap.c.orig Sat Aug 16 19:20:28 1997
|
|
+++ etc/papd/printcap.c Mon Jan 17 19:40:24 2000
|
|
@@ -159,6 +159,7 @@
|
|
char ibuf[BUFSIZ];
|
|
char *cp2;
|
|
int tf;
|
|
+ int skip;
|
|
|
|
hopcount = 0;
|
|
tbuf = bp;
|
|
@@ -177,7 +178,7 @@
|
|
cp2 = getenv("TERM");
|
|
if (cp2==(char *) 0 || strcmp(name,cp2)==0) {
|
|
strcpy(bp,cp);
|
|
- return(tnchktc());
|
|
+ return(tnchktc(cap));
|
|
} else {
|
|
tf = open(cap, 0);
|
|
}
|
|
@@ -191,6 +192,7 @@
|
|
#endif
|
|
if (tf < 0)
|
|
return (-1);
|
|
+ skip = 0;
|
|
for (;;) {
|
|
cp = bp;
|
|
for (;;) {
|
|
@@ -204,12 +206,20 @@
|
|
}
|
|
c = ibuf[i++];
|
|
if (c == '\n') {
|
|
- if (cp > bp && cp[-1] == '\\'){
|
|
+ if (!skip && cp > bp && cp[-1] == '\\'){
|
|
cp--;
|
|
continue;
|
|
}
|
|
- break;
|
|
+ skip = 0;
|
|
+ if (cp == bp)
|
|
+ continue;
|
|
+ else
|
|
+ break;
|
|
}
|
|
+ if (c == '#' && cp == bp)
|
|
+ skip++;
|
|
+ if (skip)
|
|
+ continue;
|
|
if (cp >= bp+BUFSIZ) {
|
|
write(2,"Termcap entry too long\n", 23);
|
|
break;
|
|
@@ -223,7 +233,7 @@
|
|
*/
|
|
if (tnamatch(name)) {
|
|
close(tf);
|
|
- return(tnchktc());
|
|
+ return(tnchktc(cap));
|
|
}
|
|
}
|
|
}
|