Commit Briefs
urlencode the mail/thread id
reminded by semarie@, thanks!
specify why it's not using tmppath pledge promise
in theory `mexp' could use the tmppath pledge promise and drop unveil("/tmp/", "rwc") BUT File::Temp checks whether /tmp exists. Another option would be to unveil("/tmp", "r") and use tmppath, but that could seem misleading. (noticed after semarie@ reminded me of `tmppath')
fix the Date header on the raw email too
while here also drops a useless chomp
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.