Commit Graph

241 Commits

Author SHA1 Message Date
WerWolv 7da8a5b1d8 patterns: Unified expression body parsing 2021-09-26 18:27:18 +02:00
WerWolv ae9f4fa876 patterns: Increased highlighting performance 2021-09-26 02:23:27 +02:00
WerWolv aab865fe25 patterns: Fix member access inside if body 2021-09-26 02:22:50 +02:00
WerWolv 62656f4c51 tests: Added pointer test 2021-09-25 23:31:37 +02:00
WerWolv b323d711cf patterns: Respect endianess when accessing rvalues 2021-09-25 22:46:16 +02:00
WerWolv 9b4cf917d9 patterns: Fixed recursive types 2021-09-25 22:03:55 +02:00
WerWolv ba97573f93 patterns: Fixed pointers not working correctly 2021-09-25 18:45:23 +02:00
WerWolv a8526585cb patterns: Fixed string access 2021-09-25 14:52:34 +02:00
WerWolv 3850349eae patterns: Fixed enum entry scope resolution 2021-09-25 14:52:17 +02:00
WerWolv 71be77c54b patterns: Fix boolean operations and cast syntax 2021-09-24 12:15:50 +02:00
WerWolv 93c1fbd65e patterns: Fixed function parameters being set in the wrong order 2021-09-24 11:34:06 +02:00
WerWolv 2edd6cd6c4 patterns: Added inheritance for structs 2021-09-24 00:47:34 +02:00
WerWolv 6713f65040 patterns: Added `auto` type 2021-09-23 23:43:16 +02:00
WerWolv e57481b87c tools: Added file shredder, splitter and combiner 2021-09-22 17:56:06 +02:00
WerWolv 755642862f patterns: Added recursion and array size limit pragma 2021-09-22 00:45:04 +02:00
WerWolv d1c05174b6 patterns: Allow casting integers to `str` 2021-09-21 23:45:45 +02:00
WerWolv c051f5d3e7
patterns: Rewrite evaluation engine (#306)
* patterns: Rewrite most of the evaluator to mainly use polymorphism instead of just RTTI

* patterns: Fixed a couple of AST memory leaks

* patterns: Parse string operations correctly

* patterns: Various fixes and cleanup

* patterns: Implement primitive function definitions

Function parameters now need to provide their type in the definition

* patterns: Added function variable definition and assignment

* patterns: Added remaining function statements

* patterns: Added unsized and while-sized arrays

* patterns: Added multi variable declarations to functions

* patterns: Added std::format built-in function

* patterns: Allow passing custom types to functions

* patterns: Added attributes and new "format" attribute

* patterns: Use libfmt for std::print instead of custom version

* patterns: Remove unnecessary string compare function

* pattern: Fix preprocessor directives

* patterns: Fix unit tests

* patterns: Added cast expression

* patterns: Handle endianess in function parameters

* patterns: Added casting to different endian

* patterns: Added 'str' type for functions
2021-09-21 21:29:18 +02:00
WerWolv ed9e463550 ui: Added diff view 2021-09-21 19:54:13 +02:00
WerWolv 26a0352851 tests: Fixed unit test compiling 2021-09-21 02:48:41 +02:00
WerWolv 8631cb0c2a sys: Allow multiple files to be loaded simultaneously 2021-09-21 02:29:54 +02:00
WerWolv fef072f721 ui: Moved hex editor settings to settings menu 2021-09-20 23:40:36 +02:00
WerWolv c5cd6422c6 fix: Settings menu closing when changing language 2021-09-20 20:42:30 +02:00
WerWolv bf493c5763 ui: Add follow system theme option 2021-09-16 22:23:51 +02:00
WerWolv 1df64031c8 patterns: Fix bitfield member access 2021-09-12 20:29:05 +02:00
WerWolv ea2d181741 utils: Fix file wrapper 2021-09-12 20:29:05 +02:00
WerWolv 132fc181cd patterns: Fix bitfields with unaligned sizes
Correction for #292
2021-09-12 14:28:13 +02:00
WerWolv 86096708da patterns: Fixed bitfields not respecting endian setting
Various other improvements. Fixes #292
2021-09-12 13:08:52 +02:00
WerWolv 635f0606e0 patterns: Fixed enums not counting properly 2021-09-11 23:14:22 +02:00
WerWolv 8396e40fa0 tests: Added initial test structure 2021-09-11 14:41:18 +02:00
WerWolv ccac2e497d sys: Finish implementing constants view and its store 2021-09-09 12:58:44 +02:00
WerWolv a8c9e96b72 fix: Inverted logic when checking for libmagic error 2021-09-09 01:56:48 +02:00
WerWolv 4b41ae6980 sys: Include correct file for size_t 2021-09-08 16:41:00 +02:00
WerWolv e74c0f5cf5 sys: Tons of long overdue cleanup
- std::string -> const std::string& where needed
- Added a FileIO abstraction class
- Fixed recent files not updating
- Removed localization file from global include
- Renamed lang to pattern_language/pl
- Renamed EventFileDropped to RequestFileOpen
2021-09-08 15:18:24 +02:00
WerWolv d7707bae62 fix: Multiple definitions of literals 2021-09-06 23:08:02 +02:00
WerWolv ee7c6a91a7 patterns: Add optimization for arrays of statically sized types 2021-09-06 20:35:38 +02:00
WerWolv 6879cf765f sys: Cleanup libmagic mess 2021-09-06 16:15:05 +02:00
WerWolv f29febdc86 patterns: Fix unions causing crashes on cleanup 2021-09-03 10:30:40 +02:00
WerWolv 4b40546750 views: Add simple pattern, library and magics store 2021-09-03 02:34:40 +02:00
WerWolv fcfaaacdcc patterns: Fix enum constant resolution 2021-09-03 02:33:45 +02:00
WerWolv 68d72eac16 sys: Move imhex path resolution away from utils 2021-09-03 02:33:15 +02:00
WerWolv 82cb7917e4 ui: Added half floats to data inspector 2021-09-01 00:23:45 +02:00
WerWolv 5d4b998be4 sys: Added missing optional header include 2021-08-31 20:03:08 +02:00
WerWolv 5f63db4a34 ui: Add first unifont plane by default 2021-08-31 15:22:00 +02:00
WerWolv 32eddbf581 ui: Fix wide characters and utf-8 display in inspector 2021-08-30 19:12:46 +02:00
WerWolv ef9f0cfca7 sys: Fixed broken concept 2021-08-30 19:12:19 +02:00
WerWolv 633fa7213a sys: More compile time improvements 2021-08-29 22:15:18 +02:00
WerWolv 02d31d2d2a sys: First attempt at reducing build times 2021-08-29 14:18:45 +02:00
WerWolv f60f9f9fc9 patterns: Fix endian settings not applying to char16 2021-08-29 11:10:48 +02:00
WerWolv 12f975fa70 tools: Added input buttons to the calculator 2021-08-28 18:15:20 +02:00
WerWolv c1751f39ae tools: Added wikipedia term definition search 2021-08-28 16:02:53 +02:00
WerWolv 3138d2c4a2 tools: Added Anonfiles uploader 2021-08-28 00:45:59 +02:00
WerWolv d0aec62997 patterns: Move builtin functions to namespace. Add string functions 2021-08-27 09:56:20 +02:00
WerWolv c053d54d10 patterns: Add multi-variable declarations 2021-08-25 17:54:47 +02:00
WerWolv 9289ebf4c9 patterns: Initial namespace support 2021-08-25 17:07:01 +02:00
WerWolv d3a227d0bc sys: Fixed open webpage command, added run command 2021-08-22 21:43:31 +02:00
WerWolv 6e0249d6ea sys: Bye bye glad 2021-08-21 15:03:44 +02:00
WerWolv 72cf94106c ui: Add interface scaling setting. Closes #7, #283 2021-08-21 13:55:21 +02:00
WerWolv 8ad0239bca ui/ux: Implement toolbar button functions 2021-08-21 13:53:50 +02:00
WerWolv 37d2d58d2f ui: Added toolbar 2021-08-21 00:52:11 +02:00
WerWolv b66304fc91 ui: Use borderless window on Windows 2021-08-18 22:36:46 +02:00
WerWolv 4d677f430b sys: Save project backup if ImHex crashes 2021-08-17 13:41:44 +02:00
WerWolv f8ed89ee2c patterns: Allow bitfield fields to be accessed as like other members 2021-08-16 23:05:23 +02:00
WerWolv 0093d4418e ui: Added icons to welcome screen 2021-08-04 14:01:24 +02:00
WerWolv d345508195 fix: ImHex should crash less often now when exiting 2021-07-31 17:11:10 +02:00
WerWolv e8d77f8269 sys: Embed resources into rodata 2021-07-31 17:10:19 +02:00
WerWolv 330b4504dc sys: Updated curl, libfmt, nativefiledialog and yara to latest version 2021-07-28 13:23:50 +02:00
WerWolv 2ccf8e777c sys: Added create file and resize option
Fixes #172
2021-07-27 21:07:36 +02:00
WerWolv 405b97e4d3
fix: is_integral and is_signed causing errors on >= gcc 11
This fixes #265
2021-07-19 01:11:28 +02:00
WerWolv 35c7f826bc views: Added constants search view 2021-06-26 01:18:33 +02:00
WerWolv 1e1cdb0ef0 patterns: Fixed multiple parse and evaluate issues 2021-06-22 16:04:47 +02:00
WerWolv fde5b39495 patterns: Added function while loops 2021-06-21 00:21:38 +02:00
WerWolv c9fae32ddf patterns: Added function if statements, improved returns 2021-06-20 23:46:13 +02:00
WerWolv 7f0bdc95da patterns: Added support for declaring custom functions 2021-06-20 21:22:31 +02:00
WerWolv b4b2c41b34 patterns: Added `hidden` attribute 2021-06-17 23:42:43 +02:00
WerWolv 21f8fb4090 patterns: Added while statement for array sizing 2021-06-17 23:13:58 +02:00
WerWolv 0d11f4460f nodes: Allow data processor content to be stored in project files 2021-05-18 18:06:47 +02:00
WerWolv ee2b412a10 nodes: Added primitive saving and loading mechanism
Not fully integrated yet. Also doesn't yet save any node settings, just nodes and links
2021-05-17 23:17:58 +02:00
WerWolv 4029c333ed patterns: Added UTF-16 character type and string parsing 2021-05-02 20:13:37 +02:00
WerWolv 32d47456de patterns: Added array index syntax to rvalues and turned addressof/sizeof into operators 2021-04-21 10:17:42 +02:00
WerWolv 1f2fe6b93d sys: Merge splash screen and ImHex into one application
This fixes so many issues the previous implementation had, especially on Unix
2021-04-20 21:46:48 +02:00
WerWolv ebbbcafe5c
sys: Implement more functionality into splash screen (#223)
* build: Add libcurl

* build: Stop the whole static linking on Windows mess. There's no use anymore

* sys: Added update detector and moved some startup tasks to splash screen

* sys: Updated ImHex icon

* fix: Settings button on welcome page once again works

* build: Fix build on Linux

* sys: Fixed splash window not searching all paths for resources
2021-04-18 20:24:42 +02:00
WerWolv 93e1c4c4e8 sys: Drastically revamp the relative vs absolute address mess 2021-04-16 21:50:15 +02:00
WerWolv 771bb22962 sys: Improve shortcut api 2021-04-16 19:43:54 +02:00
WerWolv a3b3eeb56a ui: Improve how pointers are displayed in pattern data view 2021-04-16 15:59:13 +02:00
WerWolv 386ae7d8c3 fix: Using pointers no longer crashes ImHex 2021-04-15 15:56:39 +02:00
WerWolv 2e338ebc01 fix: Properly localize Undo and Redo 2021-04-14 09:03:41 +02:00
WerWolv 8314b147d5 patterns: Fix sign extension for signed types.
Fixes #216
2021-04-13 22:30:57 +02:00
WerWolv cab3410d23 patterns: Fix members getting added multiple times 2021-04-13 22:08:02 +02:00
WerWolv 45b00c8b5f patterns: Make placements respect set base addresses and discard out of bounds variables 2021-04-13 21:50:24 +02:00
WerWolv 950598911c patterns: Allow usage of types within itself and used out-of-order 2021-04-13 20:40:21 +02:00
WerWolv 8a485575f5 ui: Added recent files to File menu 2021-04-13 08:41:59 +02:00
WerWolv 959988a670 fix: Stop all views from opening automatically on launch 2021-04-12 21:08:36 +02:00
WerWolv 907f25c231 patterns: Added `parent` keyword to access members of the parent struct 2021-04-12 20:49:37 +02:00
WerWolv 2f19ff768d sys: Improved ScopeGuard syntax a lot 2021-03-31 22:54:43 +02:00
WerWolv a2c80e3fd6 patterns: Fixed enum constant literals not being interpreted as correct type 2021-03-31 22:10:06 +02:00
WerWolv 356273d71e bug: Fix binary value in base converter being shifted by one
Fixes #212
2021-03-30 18:38:28 +02:00
WerWolv 147aefc7e5 ux: Add close file button to file menu 2021-03-29 22:44:35 +02:00
WerWolv 0cc7004d0d ux: Show currently loaded file name in window name 2021-03-29 22:44:23 +02:00
WerWolv d805d976a6 sys: Replace the terrible event manager with a much better one 2021-03-27 11:36:36 +01:00
WerWolv 688ca01b1b ux: Added undo and redo option 2021-03-26 21:43:24 +01:00