Maël wrote:The big-file support means undo after save cannot be implemented without copying the entire file, which would be slow.
Just my thoughts. With planned internal script support, both modification and undo operations could be done by the same script engine:
1. modification -> (script) log <addr1>, <original_value1>; mov <addr1>, <new_value1>; log <addr2>, <original_value2>; mov <addr2>, <new_value2>; ...
2. undo -> (script) mov <addr1>, <original_value1>; mov <addr2>, <original_value2>; ...
The logging (i.e. remembering of the previous values) could be done by the script engine internally.
Such approach assumes all the user operations are first transformed to the internal script commands which are executed then. Of course, this may need architecture re-design of HxD.