Commit Briefs
create temp files in /tmp and don't allow writes to "."
there's little point to use pledge/unveil and then allow the program to modify itself...
refactor the parsing into the module
change the mscan format string to siplify the parsing, and refactor the parsing code into the module for reuse. pe is an exception in that it doesn't care about the format string, it just need to decide if the current line starts a new thread or not, that's why it doesn't use the newly introduced `parse'. The new format simplifies pe too though.
mexp: defer skip test after $tid is set
otherwise we run with an undef $tid when processing new replies to existing threads.
don't export the mbox
this wasn't a good idea as the mbox contains sensitive data (IP addresses, hostnames and whatnot). Not good to publish on the web. Reminded by Stefan
parallelize exporting
mexp is the slowest part of the pipeline. Try to speed it up by paralellizing it. this adds a `pe' scripts that sits in front on N mexp childs and dispatch threads to them, while still outputting the unchanged lines for mkindex. Unscientific testing has shown that this effectively reduces the time for a full export, even if not linearly. (4 jobs cut the time in half, 8 jobs was just barely faster)