Commits


build a cache of hashes for each thread The idea is to use this cache to spot changed threads and re-export all the mail of the threads that changed. This will allow to add thread navigation hints on each exported mail and have them up-to-date. This makes the "skip if already exported" logic in mexp redundant and incomplete. pe will decide whether to export or not, and mexp blindly do the work.


pe: restrict pledge the children are pre-forked, so at runtime only "stdio" is needed.


set binmode utf8 for the page file handler avoids the "Wide character in print at ./mkindex line 152, <> line 2751" warnings.


fix last sender name/date in the index pick up the *latest* From/Date for the indexes, not what happened to be the last mail rendered in that thread. spotted by stsp@


mkindex: show the latest date/sender per thread


"humanize" the attachment size


woops, don't extract if already did


retire filter-export; set everything to filter-ignore


don't rely on filter-export anymore Instead, parse the output of `mshow -t' and extract, one by one, the interesting parts. This allows to generate a better listing (we know name and size!) and to decide how to call the files (the extension is important for httpd!)


export image/gif, jpeg and png too


use (part) of the original file name instead of the message-id


urlencode the mail/thread id reminded by semarie@, thanks!


style


use File::Temp for the index pages; specify why it's not using tmppath we can't use the tmppath pledge promise as File::Temp checks whether /tmp exists. We could unveil("/tmp", "r") and use `tmppath', but it seem misleading. (noticed after semarie@ reminded me of `tmppath')


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')