Commit Graph

2768 Commits

Author SHA1 Message Date
WerWolv
bc644e324a impr: Add extra suffixes for regular / bold / italic font variations 2025-07-26 14:30:30 +02:00
WerWolv
8782be593d feat: Added ability to draw Bold and Italic text 2025-07-26 14:22:50 +02:00
WerWolv
2998cc0fd7 impr: Cleanup font loading 2025-07-26 14:01:31 +02:00
WerWolv
e85216d9a6 impr: Remove duplicated string functions and use libwolv ones instead 2025-07-26 13:35:08 +02:00
WerWolv
be6a90675b fix: Some cell visualizer types not updating their values correctly 2025-07-26 11:58:30 +02:00
WerWolv
c1545b57c9 impr: Cleanup font loading API, fix CJK glyphs being rendered way too large 2025-07-25 23:06:44 +02:00
paxcut
8f3d07ea69 fix: imported patterns used for inheritance were not highlighted. (#2356)
The problem was that imported files didn't have token sequences to
obtain the UDT variables. The fix was to create maps from the file name
to the token sequence and then process each imported file to obtain all
the variables needed. Function variables are skipped since they can be
part of the code.
There are also some minor code style corrections and a fix in the text
editor where the last line of a selection was not being deleted.
2025-07-25 12:16:02 -07:00
WerWolv
da8be3ec3c fix: Scrolling and ID collision in simplified pattern value editor 2025-07-25 14:44:24 +02:00
WerWolv
574c039cc8 fix: Add missing language key, make sure simple pattern value editor sorting is stable 2025-07-24 23:42:02 +02:00
WerWolv
e0180b718f feat: Added simplified pattern value editor 2025-07-24 23:29:13 +02:00
WerWolv
a9ce71c481 impr: Make close button on macOS close providers if any are open instead of closing ImHex 2025-07-24 21:37:49 +02:00
Nik
2e200a2ab8 git: Properly verify that plugins built from the plugin template can be loaded by ImHex (#2352) 2025-07-24 20:35:02 +02:00
WerWolv
0e720a1e02 fix: Hex editor insert mode inserting or removing too many bytes 2025-07-24 19:28:46 +02:00
WerWolv
601b13cf42 fix: Crash when opening selection view 2025-07-24 18:32:30 +02:00
WerWolv
f6860015eb fix: Rendering of insert cursor in hex editor 2025-07-24 18:13:02 +02:00
WerWolv
99a9752ee9 fix: bfloat16 language key 2025-07-24 14:39:42 +02:00
WerWolv
8f2638be30 fix: Wrong menu items getting triggered when same shortcut is defined in multiple views 2025-07-23 20:06:53 +02:00
WerWolv
a3eb057215 build: Allow ccache to properly cache msvc builds 2025-07-22 23:47:24 +02:00
WerWolv
59695dcad6 fix: Content store still displaying updates after updating 2025-07-22 23:03:31 +02:00
WerWolv
aa6e461340 feat: Added support for view-specific menu items and main menus 2025-07-22 22:32:45 +02:00
paxcut
e18d583a00 feat: Added experimental external editor support. (#2347)
Users can now synchronize the content of the pattern editor with a file
on disk when exporting a pattern. Any modifications made in the pattern
editor are automatically saved to the file and when the pattern editor
gains focus it will automatically load any changes to the file on disk.
This feature is brand new and can have unforeseen problems so test it
fully before risking losing work.

Added major changes to how the text editor handles utf8 characters with
the added ability to obtain them using the [] operator and column
coordinates as indices. Sanitize coordinates was renamed to Set
Coordinates and can be used instead of the constructor to guarantee no
out of range asserts and/or exceptions. Improved move left and right
readability and cursor accuracy when clicking. Fixed single character
selection by double-clicking it. Deleted old and unused code and other
changes that I can't remember about atm.
2025-07-22 11:52:44 +02:00
WerWolv
22c9d77909 fix: Don't draw the same pattern tooltip multiple times 2025-07-21 12:43:47 +02:00
WerWolv
55b3b3a188 impr: Display all patterns in hover tooltip when hovering over a larger hex editor cell 2025-07-21 11:19:49 +02:00
WerWolv
c93e5ba183 git: Put remote plugin under LGPLv2.1 to support the cases where libssh2 is using OpenSSL internally 2025-07-21 09:55:22 +02:00
paxcut
5df8ec78aa improv: removing tabs (#2345)
These changes are part of an effort aimed at removing tabs from ImHex
that started some time ago. Here text preprocessing is removed from all
the places were it was done before and moved to the places where files
are read that go in the pattern editor with two notable exceptions.
1) Pattern import reads patterns in order to present a list that can be
filtered.That can safely ignore preprocessing since only needs to get
information needed to filter.
2) The pattern editor can incorporate text from the clipboard so that
needs to be preprocessed as well.

find/replace is unable to add tabs or carriage returns so this should
cover all angles.
2025-07-20 13:10:45 -07:00
WerWolv
cc6590d780 fix: Remove unused variable 2025-07-20 11:36:34 +02:00
WerWolv
9ce18d1a42 feat: Added bfloat and fp24 data inspector entries 2025-07-20 11:11:51 +02:00
WerWolv
9ff8d42143 fix: Reordering of toolbar items not working correctly
Fixes #2343
2025-07-20 11:07:47 +02:00
WerWolv
17ab429a8c fix: Intel Hex and Motorola SREC providers always being at least 1 byte long 2025-07-20 00:46:20 +02:00
WerWolv
5df50ef380 fix: Make Banner button more visible 2025-07-20 00:44:08 +02:00
WerWolv
8da007af6c impr: Make version info in about screen selectable
#2341
2025-07-20 00:40:33 +02:00
WerWolv
f053b94f68 impr: Replace reload provider icon with actual reload icon
#2343
2025-07-20 00:35:49 +02:00
WerWolv
d02ea09529 fix: Many issues and code style of the TTY console 2025-07-17 20:13:27 +02:00
WerWolv
79333593bf fix: Pattern Editor footer moving around when switching tabs 2025-07-17 20:13:09 +02:00
WerWolv
de62a4c71e impr: Better icon centering in icon buttons 2025-07-17 20:12:38 +02:00
paxcut
24732b304b fix: more problems with bytes per row. (#2338)
The scrollbar, mini map and the segment delimiters were also using the
incorrect bytes per row value when changing data size forced a change in
the number of bytes per row. From the definition of the new value it
follows that bytesPerRow/bytesPercell == m_bytesPerRow/bytesPerCell, so
it is not necessary to switch it when it is divided by that quantity.
2025-07-16 13:23:14 -07:00
WerWolv
5744ad588f impr: Better icon sizes for process list 2025-07-16 10:33:24 +02:00
paxcut
5ea021d57a fix: fix for issue 2334 (#2337)
The error was that if `m_bytesPerRow` was not divisible by the number of
bytes per column then ImHex would crash but wouldn't crash if it was.
When `m_bytesPerRow` is not equal to the resultant bytes per row
obtained by the product of column count and bytes per column, then the
later bytes per row were be allocated but the former bytes per row were
being written causing heap corruption and crashes.

Instead of resetting `m_bytePerRow` when it can't be used, a new
variable (`bytesPerRow`) is created with the correct value and used in
the rest of the function. This way if the user goes back to choose a
data size that divides the old `m_bytesPerRow` then the number would
still be available and not overwritten. Test indicate that this approach
works and previous crashes are eliminated while producing the desired
output.
2025-07-15 23:55:52 -07:00
paxcut
38c5868029 feat: added matched bracket highlights + updating pattern language library (#2335)
Added clion-like bracket matching feature with shortcut to go to the
other one. Also improved some cumbersome repeated function call.
Added support for using negative indices in coordinates so -1 is the last 
line or column, -2 the previous, etc..
Pattern library has fixes for column errors being incorrectly set for lines
containing tabs that are not replaced by 4 spaces.
2025-07-15 18:47:33 -07:00
WerWolv
de9efe6c4d fix: Cut off text display of toolbar items 2025-07-15 22:04:36 +02:00
WerWolv
88ce3a2490 fix: Default toolbar items not showing up in settings window 2025-07-15 22:04:19 +02:00
WerWolv
7454221b3b fix: Goto address not updating when switching between jump modes 2025-07-14 18:39:05 +02:00
C3pa
fcc4709ed9 fix: Multiple typos (#2333)
Fix a typo in `screenshot_descriptions.json` reported in #2330. While I
was presented with the contributing doc, I came across another typo
that's fixed in the second commit.
2025-07-14 17:01:52 +02:00
WerWolv
aeb77559a7 build: Properly link against OpenSSL and LibCrypto 2025-07-14 16:49:17 +02:00
WerWolv
9acaf33410 impr: Allow GDB Provider to work without NoAckMode, added run length encoding support 2025-07-14 16:25:25 +02:00
WerWolv
4146047cdb build: Link against OpenSSL when needed 2025-07-14 01:57:13 +02:00
WerWolv
18e02fbf5c impr: Split up optional provider features into multiple abstract interfaces 2025-07-14 00:37:12 +02:00
WerWolv
b94519362c impr: Make gdb provider use cached provider 2025-07-14 00:06:17 +02:00
WerWolv
1e59a82c59 fix: More build issues 2025-07-13 20:07:46 +02:00
WerWolv
830be0b0d3 build: Fix more build issues 2025-07-13 20:07:46 +02:00