When writing e.g. language bindings it can be useful to call function pointers with arbitrary type signatures. This is where LibFFI comes in! I'll see if I can report which Linux From Scratch component uses it...
This includes a bit of cross-CPU code & data handling data layout, call into Java, cross-platform memory management, collections, attaching closures to callbacks, mmaped SELinux access control, error reporting, & wrappers around CPU-specific code.
Today I'm skimming the rest of PeePDF to describe what checks it performs & its underlying infrastructure.
Underlying infrastructure which includes cross-platform terminal abstractions, collections utilities, string utilities (ASCII-only it appears), evaluating specified PDF filters,
I see more of them rolling their own decryption; at least they're not rolling their own encryption! And integrating it into the PDF parsing.
There's a fairly-straightforward parser gathering stats.
I've already mentioned that there's a REPL, including commands for outputting the bytes of the opened file, the file's changelog, inserting a new "object" into the PDF file, apply PDF encoding or decoding filters to a given file or strings or a PDF object, decrypt the file, load a file to embed into the open PDF, encrypt the PDF file (I wouldn't trust this), output parsing errors, close the REPL, extract embedded files, hash some data, output stats, analyse or beautify embedded JS, ...
I'm reflecting upon accessibility in the arts.
I don't have answers, only questions!
What does making visual art tools (e.g. Krita & Blender) accessibility to the blind mean? Is this even desirable?
Can we non-obviously (i.e. aside from using captions) make movies which are accessible to both the blind & the deaf? Might (as I rewatch it) Spiderverse be an example?
How about videogame settings? Is online multiplayer a good thing?
With that Spiderverse example I acknowledge the scene where an alternate (from Miles Morales's perspective) Peter Parker's sharing his backstory with the visuals undermining what he's saying. If you're blind or deaf I don't think that joke would come across as well.
Then there's the whole question of feeling cultural expected to partake in much of the same media!
Before publishing tech we retold stories by word of mouth, then again computers have personalization potential!
After parsing & validating commandline arguments with fallbacks PeePDF's primary codepath initializes, parses prefix of, hashes, intermediate-parses, & parses the given file. Not all that different from Poppler! Before possibly uploading the PDF's hash to VirusTotal.Com incorporating its response into the output.
Then it choose between several different output formats! Maybe it reformats the parsed PDF to XML via LXML. Or to JSON. Or with or without adding colours to the terminal...