github WerWolv/ImHex v1.23.1
Pattern language speed improvements and bug fixes

latest releases: v1.35.4, v1.35.3, v1.35.2...
2 years ago

Changelog

Improvements

  • Pre-fill the size field of the "Remove bytes" popup with the current selection size

Bug Fixes

  • Fixed ImHex crashing on some Linux systems when trying to open a file
  • Fixed "Copy As..." function (but also others) having their second-to-last byte wrong

Pattern Language

  • TONS of speed improvements
    • Prevent debug mode string formatting from occurring on non-debug mode
    • Improved stringification of pattern performance
    • Improved function calling performance
    • Improved flattening performance of static arrays
    • Prevent accessing values through the dot syntax unnecessarily copying data

Previous Changelog

Additions

  • Added many new Copy As... options
    • Current Address
    • Base64
    • Lua array
    • Go array
    • Crystal array
    • Swift arrary
    • Pascal array
  • Added zsync file to releases. Thanks a lot to @iTrooz
    • This file can be used to auto-update the AppImage
  • Added "Require full match" toggle to Regex finder
  • Added reset button to Find view to clear the currently found items
  • Pattern Database files are now included by default in the Flatpak build. Thanks to @ColinKinloch
  • Added support to open multiple files at once through the command line

Improvements

  • Improved formatting of ASCII Text area and HTML Copy as... output
  • Disabled FPS displaying in release builds
  • Improved rendering of patterns in the pattern data view
  • Removed unused space in hex editor footer
  • Improved load times of ImHex on some systems
  • Pattern evaluation can now be aborted with the task stop button

Bug Fixes

  • Fixed crash when resizing a file
  • Fixed graphical artifacts on welcome screen footer
  • Fixed welcome screen settings button only working sometimes
  • Fixed rendering of pattern array entries
  • Fixed searching for invalid sequences in the Find view to yield way too many results
  • Fixed sequence escape codes being parsed incorrectly
  • Fixed opening files in an existing instance of ImHex not always working correctly
  • Fixed the dangerous function popup reappearing constantly

Pattern Language

  • Added support for enum ranges
    • If values in a range have the same meaning, you can now use MY_ENUM_VALUE = 0x10 ... 0x20 to have the formatter display all values in that range as such.
  • Added references
    • If you need to use a variable in a function without copying it onto the heap (for performance reasons or if you have pointers inside your structure), you can now use the ref keyword before your parameter type to turn it into a reference.
  • Added #ifdef, #ifndef, #endif, #error and #define without a value
    • Applications can also set their own global defines, for example ImHex sets the __IMHEX__ and __IMHEX_VERSION__ macro by default
  • Allow using declarations to change the name of builtin types
  • Added optional endian parameter to std::mem::read_unsigned and std::mem::read_signed
  • Improved Lexer, Parser and Preprocessor performance
  • Massively improved function call and formatting performance
  • Improved color highlighting
  • Improved bitfield value visualization
    • Bitfields are now displayed as { FLAG_A | FLAG_B | VALUE(123) }
  • Fixed out of bounds read when having a comment at the end of the file
  • Fixed local variable assignments not always working correctly
  • Fixed cast issues when passing enums to functions
  • Fixed pattern limit from applying after evaluation has already finished
  • Fixed #pargma once not working correctly
  • Fixed subtraction of two unsigned values yielding unexpected results
  • Fixed stringifying variables not outputting their formatted value
  • Fixed casts incrementing current offset
  • Fixed reading bytes when a non-zero base address is being used
  • Fixed parsing of attributes following r-values

If you like my work, please consider supporting me on GitHub Sponsors, Patreon or PayPal. Thanks a lot!

GitHub donate button Patreon donate button PayPal donate button

Don't miss a new ImHex release

NewReleases is sending notifications on new releases.