URI:
       ttester.c - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
       ttester.c (1417B)
       ---
            1 #include <u.h>
            2 #include <libc.h>
            3 #include <ctype.h>
            4 #include <String.h>
            5 #include "message.h"
            6 
            7 Message *root;
            8 
            9 void
           10 prindent(int i)
           11 {
           12         for(; i > 0; i--)
           13                 print(" ");
           14 }
           15 
           16 void
           17 prstring(int indent, char *tag, String *s)
           18 {
           19         if(s == nil)
           20                 return;
           21         prindent(indent+1);
           22         print("%s %s\n", tag, s_to_c(s));
           23 }
           24 
           25 void
           26 info(int indent, int mno, Message *m)
           27 {
           28         int i;
           29         Message *nm;
           30 
           31         prindent(indent);
           32         print("%d%c %d ", mno, m->allocated?'*':' ', m->end - m->start);
           33         if(m->unixfrom != nil)
           34                 print("uf %s ", s_to_c(m->unixfrom));
           35         if(m->unixdate != nil)
           36                 print("ud %s ", s_to_c(m->unixdate));
           37         print("\n");
           38         prstring(indent, "from:", m->from822);
           39         prstring(indent, "sender:", m->sender822);
           40         prstring(indent, "to:", m->to822);
           41         prstring(indent, "cc:", m->cc822);
           42         prstring(indent, "reply-to:", m->replyto822);
           43         prstring(indent, "subject:", m->subject822);
           44         prstring(indent, "date:", m->date822);
           45         prstring(indent, "filename:", m->filename);
           46         prstring(indent, "type:", m->type);
           47         prstring(indent, "charset:", m->charset);
           48 
           49         i = 1;
           50         for(nm = m->part; nm != nil; nm = nm->next){
           51                 info(indent+1, i++, nm);
           52         }
           53 }
           54 
           55 
           56 void
           57 main(int argc, char **argv)
           58 {
           59         char *err;
           60         char *mboxfile;
           61 
           62         ARGBEGIN{
           63         }ARGEND;
           64 
           65         if(argc > 0)
           66                 mboxfile = argv[0];
           67         else
           68                 mboxfile = "./mbox";
           69 
           70         root = newmessage(nil);
           71 
           72         err = readmbox(mboxfile, &root->part);
           73         if(err != nil){
           74                 fprint(2, "boom: %s\n", err);
           75                 exits(0);
           76         }
           77 
           78         info(0, 1, root);
           79 
           80         exits(0);
           81 }