From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <3085e9cd8dd12b1b65bb3756ef516be1@plan9.bell-labs.com> To: 9fans@cse.psu.edu From: "Russ Cox" MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Subject: [9fans] acme history Date: Thu, 6 Mar 2003 10:02:50 -0500 Topicbox-Message-UUID: 7b964764-eacb-11e9-9e20-41e7f4b1d025 #include #include #include void showmail(void); void showedit(void); void usage(void) { fprint(2, "usage: ahist\n"); exits("usage"); } void main(int argc, char**) { int fd; if(argc != 1) usage(); if(chdir("/mnt/acme/new") < 0) sysfatal("chdir /mnt/acme/new: %r"); if((fd = open("body", OWRITE)) < 0) sysfatal("open body: %r"); dup(fd, 1); close(fd); if((fd = open("ctl", OWRITE)) < 0) sysfatal("open ctl: %r"); fprint(fd, "name /history\n"); close(fd); switch(fork()){ case -1: sysfatal("fork: %r"); case 0: showmail(); _exits(nil); default: showedit(); _exits(nil); } } void showmail(void) { int fd; Plumbmsg *m; fd = plumbopen("showmail", OREAD); while((m = plumbrecv(fd)) != nil){ print("%s\n", m->data); plumbfree(m); } } void showedit(void) { int fd; Plumbmsg *m; char *addr, *filename; fd = plumbopen("edit", OREAD); while((m = plumbrecv(fd)) != nil){ addr = plumblookup(m->attr, "addr"); filename = plumblookup(m->attr, "filename"); if(filename == nil) filename = m->data; if(addr && addr[0]) print("%s:%s\n", filename, addr); else print("%s\n", filename); plumbfree(m); } }