line too long?

Katsuhiro Kondou kondou at nec.co.jp
Mon Apr 2 02:40:07 UTC 2001


In article <Pine.BSF.4.33.0104012152380.91376-100000 at mobile.hub.org>,
	The Hermit Hacker <scrappy at hub.org> wrote;

} news.hub.org> makehistory -b -f history.n -O -l 300000 -I
} makehistory: Line 100903 is too long

Sounds like certain overview data is too large(>8192) for QIOread().
I dont't think this happens so often, and we can skip this like
overchan does.  Attached should work for it.
-- 
Katsuhiro Kondou

Index: makehistory.c
===================================================================
RCS file: /home/kondou/news/inn/repository/inn/expire/makehistory.c,v
retrieving revision 1.87
diff -u -r1.87 makehistory.c
--- makehistory.c	2001/03/26 22:37:40	1.87
+++ makehistory.c	2001/04/02 02:37:48
@@ -262,7 +262,15 @@
 	Fork ? _exit(1) : exit(1);
     }
 
-    for (count = 1; (line = QIOread(qp)) != NULL ; ++count) {
+    for (count = 1; ; ++count) {
+	line = QIOread(qp);
+	if (line == NULL) {
+	    if (QIOtoolong(qp)) {
+		fprintf(stderr, "makehistory: Line %d is too long\n", count);
+		continue;
+	    } else
+		break;
+	}
 	if ((p = strchr(line, '\t')) == NULL 
 	    || (q = strchr(p+1, '\t')) == NULL
 	    || (r = strchr(q+1, '\t')) == NULL) {
@@ -304,11 +312,6 @@
 	}
     }
     /* Check for errors and close. */
-    if (QIOtoolong(qp)) {
-	fprintf(stderr, "makehistory: Line %d is too long\n", count);
-	OVclose();
-	Fork ? _exit(1) : exit(1);
-    }
     if (QIOerror(qp)) {
 	(void)fprintf(stderr, "makehistory: Can't read sorted tmp file %s, %s\n", 
 		      SortedTmpPath, strerror(errno));


More information about the inn-workers mailing list