Evaluator rewrite, diffing view and more
Documentation
A new documentation for ImHex (mainly the pattern language right now) is in the works and can be found here: https://imhex.werwolv.net/docs. It is a lot more detailed than the one found on the Wiki here and contains information about all the new features as well. Check it out!
Changelog
Additions
- Added support for loading multiple files/data sources simultaneously
- Added Binary Diffing view
- Added
Quit ImHex
option toFile
menu - Added
Follow system theme
option - Added Chinese (Simplified) Localization. Many thanks to @xtexChooser
Pattern Language
- Rewrote entire evaluation engine
- Made Evaluator a lot simpler and faster
- Function parameters now require a type definition
- Strings may now be passed to functions using the
str
type - Added check to prevent huge arrays from being generated (can be overridden with a pragma)
- Added cast expression
- Added
std::format
- It and
std::print
now use libfmt / C++'s std::format syntax
- It and
- Allow passing variables of custom types to functions
- Added multi-variable declaration for functions
- Many more under-the-hood changess
[[format]]
attribute to override the way values are displayed- Added Unit tests
- This will hopefully help with things breaking in the pattern language randomly
- Unnecessary semicolons are now ignored
- Added
std::mem::read_string
built-in function
Improvements
- **On Windows, resources are now placed in the AppData folder in addition to next to the executable``
- Fixed format-security warnings. Thanks to @russkel
- Moved all Hex Editor settings to the settings menu
- Restructured the settings menu into multiple tabs
- Fixed footer items jumping around a lot when updating
- Removed
View
suffix from all View names in the Views menu. Thanks to @xtexChooser - Fixed pattern language evaluator "lagging" behind when Automatic evaluation is active
Bug fixes
- Fixed settings not being initialized correctly sometimes and causing crashes
- No more crashes when settings have been set to invalid values
- Fixed recent files not updating properly
- Fixed Resize File option crashing
- Fixed crash when creating arrays with negative size.
- Fixed
parent
keyword not working correctly - Fixed constants store page not getting cleared correctly on reload
- Fixed feedback button URL
- Fixed padding not working correctly
- Fixed enums not counting properly
- Fixed bitfields not respecting endian setting
- Fixed language selection combo box crashing in some circumstances
- Fixed settings menu closing when changing language
- Fixed Regex replacer tool
- Fixed TTY console crashing if no COM ports are available. Thanks to @xtexChooser
If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!