summaryrefslogtreecommitdiff
path: root/net/netatalk/patches/patch-bf
blob: 99adf75d6cff54f1dbb5143942cbbb1ebeba38cb (plain)
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));
 		}
 	}
 }