1
0
mirror of synced 2024-11-15 11:33:23 +01:00
Commit Graph

231 Commits

Author SHA1 Message Date
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
WerWolv
2a7b698a3d prv: Make data overlays work everywhere, not just in the hex editor view 2021-03-21 14:50:47 +01:00
WerWolv
ef747cc4c0 sys: Explicitly delete views so destructors get called properly 2021-03-16 22:44:37 +01:00
WerWolv
f34b946ea9 patterns: Fixed eval_depth default and preprocessor errors 2021-03-15 08:11:19 +01:00
WerWolv
8423f78586 nodes/patterns: Fixed crashes when recursion occurred 2021-03-07 13:20:33 +01:00
Robin Lambertz
4f98149fa7
api: Fix various crashes on bad settings data. (#186)
getSetting now returns a straight nlohmann::json instead of an optional.
If the data isn't present, it will return a json null.

All accesses to the settings will first check that the data has the
expected type.
2021-03-06 12:40:29 +01:00
WerWolv
4a908a314f lang: Added German translation, improved language handling 2021-03-03 22:26:17 +01:00
WerWolv
188723e888 sys: Replace printf formatting with libfmt 2021-03-03 19:58:22 +01:00
WerWolv
a91afdb6ae ux: Allow copying value from data inspector 2021-03-02 22:09:38 +01:00
WerWolv
b6939654b3 lang: Fix color attribute not being applied to array entries 2021-03-02 14:23:06 +01:00
WerWolv
3e6865ffa9
sys/build: Properly support per-system metadata file paths (#181)
* sys: Move away from metadata paths next to executable in the application

Build system doesn't properly install / pack stuff yet

* build: Updated README to contain better install instructions

* sys: Search for imhex resource files in ~/Application Support

* sys: MAX_PATH -> PATH_MAX

* sys: Seach for imhex resource files in Application Support using NSFileManager (#180)

* sys: Allow for multiple file search paths

Also use install prefix instead of just /usr on Linux

* build: Fixed IMHEX_INSTALL_PREFIX macro definition

* build: Fix duplicate switch entry on Linux

* docs: Updated readme to properly reflect new paths and dependencies

* sys: Install files in their proper paths on linux (#183)

* Install files in their proper paths on linux

* Only create user directories

* Follow the XDG specification on linux

XDG specification specifies how to find config and data directories on
linux systems. Specifically, it says this:

- Data should be written to $XDG_DATA_HOME
- Config should be written to $XDG_CONFIG_HOME
- Data should be read from $XDG_DATA_HOME:$XDG_DATA_DIRS
- Config should be read from $XDG_CONFIG_HOME:$XDG_CONFIG_DIRS

The default values are this:

- XDG_DATA_HOME: $HOME/.local/share
- XDG_CONFIG_HOME: $HOME/.config
- XDG_DATA_DIRS: /usr/share:/usr/local/share
- XDG_CONFIG_DIRS: /etc/xdg

Platforms with non-standard filesystems (like NixOS) will correctly set
up those environment variables, allowing softwares to work unmodified.

In order to make integration as simple as possible, we use a simple
header-only dependency called XDGPP which does all the hard work for us
to find the default directories.

* Look for plugins in all Plugin Paths

If the plugin folder was missing from one of the PluginPaths, we would
immediately stop loading plugins. We now keep looking even if one of the
path is missing.

Co-authored-by: Nichole Mattera <me@nicholemattera.com>
Co-authored-by: Robin Lambertz <unfiltered@roblab.la>
2021-03-01 08:56:49 +01:00