Switch to side-by-side view

--- a
+++ b/src/bincimapmime/trbinc.cc
@@ -0,0 +1,87 @@
+#ifndef 	lint
+static char rcsid [] = "@(#$Id: trbinc.cc,v 1.1 2005-03-25 09:40:27 dockes Exp $  (C) 1994 CDKIT";
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <errno.h>
+#include <string.h>
+#include <fcntl.h>
+
+#include "mime.h"
+
+static char *thisprog;
+
+static char usage [] =
+    "trbinc <mboxfile> \n\n"
+    ;
+static void
+Usage(void)
+{
+    fprintf(stderr, "%s: usage:\n%s", thisprog, usage);
+    exit(1);
+}
+
+static int     op_flags;
+#define OPT_MOINS 0x1
+#define OPT_s	  0x2 
+#define OPT_b	  0x4 
+
+#define DEFCOUNT 10
+
+const char *hnames[] = {"Subject", "Content-type"};
+int nh = sizeof(hnames) / sizeof(char *);
+
+int main(int argc, char **argv)
+{
+    int count = DEFCOUNT;
+    
+    thisprog = argv[0];
+    argc--; argv++;
+
+    while (argc > 0 && **argv == '-') {
+	(*argv)++;
+	if (!(**argv))
+	    /* Cas du "adb - core" */
+	    Usage();
+	while (**argv)
+	    switch (*(*argv)++) {
+	    case 's':	op_flags |= OPT_s; break;
+	    case 'b':	op_flags |= OPT_b; if (argc < 2)  Usage();
+		if ((sscanf(*(++argv), "%d", &count)) != 1) 
+		    Usage(); 
+		argc--; 
+		goto b1;
+	    default: Usage();	break;
+	    }
+    b1: argc--; argv++;
+    }
+
+    if (argc != 1)
+	Usage();
+
+    char *mfile = *argv++;argc--;
+    int fd;
+    if ((fd = open(mfile, 0)) < 0) {
+	perror("Opening");
+	exit(1);
+    }
+    Binc::MimeDocument doc;
+    doc.parseFull(fd);
+
+    if (!doc.isHeaderParsed() && !doc.isAllParsed()) {
+	fprintf(stderr, "Parse error\n");
+	exit(1);
+    }
+    close(fd);
+    Binc::HeaderItem hi;
+    for (int i = 0; i < nh ; i++) {
+	if (!doc.h.getFirstHeader(hnames[i], hi)) {
+	    fprintf(stderr, "No %s\n", hnames[i]);
+	    exit(1);
+	}
+	printf("%s: %s\n", hnames[i], hi.getValue().c_str());
+    }
+    exit(0);
+}