Discovered a few new and exciting bugs, but it will take a bit of time to fix and test. Maybe towards the end of the week.
- Books authored with HTML named character references (—, , … ) were not actually processed and could lose text (ampersands) in the worst case. This requires a book authored with HTML named entities such as — or . Files using only real Unicode characters, numeric references, or XML's five predefined entities (&, <, >, ', " ) are unaffected. Losing ampersands additionally requires an undefined entity, which in EPUB 3 is an epubcheck error (operations on valid EPUB3 files should be safe). Relatively rare, but possible.
- If a whole book operation fails in the middle, reverting completely to previous state might not work. Shouldn't be an issue if the operation fully completes.
- With Use unicode characters instead of entities unticked, punctuation inside `style`, `script`, `pre`, `code`, `kbd`, `samp` and `var` was rewritten as numeric references, not left as is as would've been the intent. Rare-ish.
These are something that occur in relatively rare circumstances, but still worth fixing. Once these potentially destructive bugs are squashed, I will probably put this up into the index so it can be installed via the plugin manager interface.