about summary refs log tree commit diff
path: root/blaze822.c
diff options
context:
space:
mode:
authorChristian Neukirchen <chneukirchen@gmail.com>2016-07-11 16:28:22 +0200
committerChristian Neukirchen <chneukirchen@gmail.com>2016-07-11 16:28:22 +0200
commitaa08ae31a07c06eac641d037ea63a22c5c6256b0 (patch)
tree4855b5b09ae47b1d400e31cc8fa26cc8d9160740 /blaze822.c
parenta0bdb93c68bfe9f7941c7204514c40756bd0a88f (diff)
downloadmblaze-aa08ae31a07c06eac641d037ea63a22c5c6256b0.tar.gz
mblaze-aa08ae31a07c06eac641d037ea63a22c5c6256b0.tar.xz
mblaze-aa08ae31a07c06eac641d037ea63a22c5c6256b0.zip
extract main loop
Diffstat (limited to 'blaze822.c')
-rw-r--r--blaze822.c28
1 files changed, 10 insertions, 18 deletions
diff --git a/blaze822.c b/blaze822.c
index 45165be..f55c00d 100644
--- a/blaze822.c
+++ b/blaze822.c
@@ -354,33 +354,25 @@ blaze822_hdr_(struct message *mesg, char *hdr, size_t hdrlen)
 	return v;
 }
 
-#if 0
 int
-main(int argc, char *argv[])
+blaze822_loop(int argc, char *argv[], void (*cb)(char *))
 {
-	char *s;
-	
 	char *line = 0;
 	size_t linelen = 0;
-	int read;
-
+	ssize_t rd;
 	int i = 0;
 
-	if (argc == 1 || (argc == 2 && strcmp(argv[1], "-") == 0)) {
-		while ((read = getdelim(&line, &linelen, '\n', stdin)) != -1) {
-			if (line[read-1] == '\n') line[read-1] = 0;
-			oneline(file);
+	if (argc == 0 || (argc == 1 && strcmp(argv[0], "-") == 0)) {
+		while ((rd = getdelim(&line, &linelen, '\n', stdin)) != -1) {
+			if (line[rd-1] == '\n')
+				line[rd-1] = 0;
+			cb(line);
 			i++;
 		}
 	} else {
-		for (i = 1; i < argc; i++) {
-			oneline(file);
-		}
-		i--;
+		for (i = 0; i < argc; i++)
+			cb(argv[i]);
 	}
 
-	printf("%d mails scanned\n", i);
-
-	return 0;
+	return i;
 }
-#endif