1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
$NetBSD: patch-bf,v 1.1 2000/01/18 01:09:25 christos 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));
}
}
}
|