about summary refs log tree commit diff
path: root/hdr.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 /hdr.c
parenta0bdb93c68bfe9f7941c7204514c40756bd0a88f (diff)
downloadmblaze-aa08ae31a07c06eac641d037ea63a22c5c6256b0.tar.gz
mblaze-aa08ae31a07c06eac641d037ea63a22c5c6256b0.tar.xz
mblaze-aa08ae31a07c06eac641d037ea63a22c5c6256b0.zip
extract main loop
Diffstat (limited to 'hdr.c')
-rw-r--r--hdr.c30
1 files changed, 8 insertions, 22 deletions
diff --git a/hdr.c b/hdr.c
index 63485b4..03ac985 100644
--- a/hdr.c
+++ b/hdr.c
@@ -13,8 +13,11 @@
 
 #include "blaze822.h"
 
+static size_t l;
+static char *hdr;
+
 void
-header(char *hdr, size_t l, char *file)
+header(char *file)
 {
 	struct message *msg;
 
@@ -30,14 +33,8 @@ header(char *hdr, size_t l, char *file)
 int
 main(int argc, char *argv[])
 {
-	char *line = 0;
-	size_t linelen = 0;
-	int read;
-
-	int i = 0;
-
-	size_t l = strlen(argv[1])+2;
-        char *hdr = malloc(l);
+	l = strlen(argv[1])+2;
+        hdr = malloc(l);
 	hdr[0] = 0;
 	char *s = hdr+1;
 	char *t = argv[1];
@@ -45,19 +42,8 @@ main(int argc, char *argv[])
 		*s++ = tolower(*t++);
 	*s = ':';
 
-	if (argc == 2 || (argc == 3 && strcmp(argv[1], "-") == 0)) {
-		while ((read = getdelim(&line, &linelen, '\n', stdin)) != -1) {
-			if (line[read-1] == '\n') line[read-1] = 0;
-			header(hdr, l, line);
-			i++;
-		}
-	} else {
-		for (i = 2; i < argc; i++) {
-			header(hdr, l, argv[i]);
-		}
-		i--;
-	}
-
+	int i = blaze822_loop(argc-2, argv+2, header);
+	
 	printf("%d mails scanned\n", i);
 	
 	return 0;