1
0
mirror of synced 2025-01-09 13:11:38 +01:00
ImHex/plugins/builtin/source/content
paxcut 382a62343d
fix: Fixes for breakpoints (#1923)
WARNING: this PR won't compile unless [PR 132 from pattern language
repository](https://github.com/WerWolv/PatternLanguage/pull/132) is
merged first. Some changes here are shared by at least another PR to
this repository but there should not be any conflicts as the shared
changes are identical.

### Problem description
fix: Editing patterns with breakpoints sets behaves unexpectedly. As a
simple example, set a breakpoint and insert a blank line somewhere
before the breakpoint location. The breakpoint will appear to move but
in reality it hasn't. To see this set another breakpoint elsewhere in
the file and the old one will be displayed where it is really located
at.

The reason for this and many other problems with breakpoints is that
currently ImHex keeps two set of breakpoints in text editor and in
evaluator that are independent of each other, ie, changes to one don't
affect the other. This PR aims at synchronizing the two sets through the
per provider breakpoints that exist in view pattern editor.

### Implementation description

It accomplishes this by making the text editor version of breakpoints
the principal source of vectors and the ones in evaluator the effective
version. The first allows one to modify the text around and at the
breakpoint and notify others that the changes have induced changes in
the breakpoint locations. The effective breakpoints allow the insertion
and deletion of breakpoints.

View pattern editor is where breakpoints are updated. It receives
notifications from text editor about changes and then makes sure the
version in evaluator is updated with those changes. View pattern editor
also manages breakpoint addition and deletion so before making changes
it gets a copy of the current ones from text editor, sets the ones in
evaluator, uses the evaluator functions to add or delete breakpoints and
finally sets the text editor version with the new version.
2024-11-24 12:06:44 +01:00
..
data_processor_nodes impr: Run data processor in a worker task 2024-07-11 23:30:54 +02:00
helpers impr: Handle demangling of identifiers without leading underscore 2024-07-11 20:38:22 +02:00
pl_visualizers fix: Multiple issues causing visualizers to crash when used _slightly_ incorrectly 2024-07-10 20:50:58 +02:00
popups/hex_editor fix: Task names not displaying correctly anymore 2024-07-27 14:09:52 +02:00
providers fix: Use machine headers to auto select arch for macOS process memory provider (#1910) 2024-11-24 11:21:29 +01:00
tools feat: Added a quarter precision (8 bits) button to IEEE 745 tool (#1868) 2024-09-15 15:22:35 +02:00
tutorials impr: Code style improvements 2023-12-27 16:33:49 +01:00
views fix: Fixes for breakpoints (#1923) 2024-11-24 12:06:44 +01:00
achievements.cpp fix: Ambiguous conversion to UnlocalizedString 2024-01-21 14:31:19 +01:00
background_services.cpp impr: Fix various issues with runtime-generated language strings 2024-08-03 11:32:17 +02:00
command_line_interface.cpp impr: Handle demangling of identifiers without leading underscore 2024-07-11 20:38:22 +02:00
command_palette_commands.cpp fix: Build issues due to unused variables 2024-01-21 21:39:50 +01:00
communication_interface.cpp refactor: Better interface for the event system 2023-12-08 10:29:44 +01:00
data_formatters.cpp feat: Added CSV, TSV and JSON as export options for Find results (#1673) 2024-06-18 20:57:55 +00:00
data_information_sections.cpp impr: Added data size widget 2024-05-19 10:21:54 +02:00
data_inspector.cpp fix: Misspelling of Endianness (#1609) 2024-03-28 22:25:28 +01:00
data_processor_nodes.cpp refactor: Split data processor nodes in several files (#1419) 2023-11-13 23:36:39 +01:00
data_visualizers.cpp impr: Further optimize ImGui text rendering 2024-06-27 17:09:20 +02:00
events.cpp impr: Make unsaved changes popup behave more like in other applications 2024-04-23 21:02:16 +02:00
file_extraction.cpp fix: Replace old defaults path system with a new one 2024-06-22 10:44:55 +02:00
file_handlers.cpp fix: Replace old defaults path system with a new one 2024-06-22 10:44:55 +02:00
global_actions.cpp impr: Make unsaved changes popup behave more like in other applications 2024-04-23 21:02:16 +02:00
init_tasks.cpp impr: Make all task names properly translatable 2024-07-27 16:29:06 +02:00
main_menu_items.cpp impr: Make all task names properly translatable 2024-07-27 16:29:06 +02:00
minimap_visualizers.cpp impr: Make the highlights minimap visualizer the default 2024-06-26 19:12:20 +02:00
out_of_box_experience.cpp fix: Sub windows being used incorrectly 2024-06-26 19:11:31 +02:00
pl_builtin_functions.cpp impr: Handle demangling of identifiers without leading underscore 2024-07-11 20:38:22 +02:00
pl_pragmas.cpp fix: Multiple race conditions with pattern sorting 2024-10-22 16:20:08 +02:00
pl_visualizers.cpp fix: Multiple issues causing visualizers to crash when used _slightly_ incorrectly 2024-07-10 20:50:58 +02:00
project.cpp fix: Remove accidentally committed test code 2024-06-22 23:03:54 +02:00
providers.cpp fix: Don't try to compile process memory provider into Web build 2024-06-07 20:32:04 +02:00
recent.cpp impr: Make all task names properly translatable 2024-07-27 16:29:06 +02:00
report_generators.cpp impr: Optimize api includes 2023-11-30 11:23:12 +01:00
settings_entries.cpp impr: Fix various issues with runtime-generated language strings 2024-08-03 11:32:17 +02:00
themes.cpp build: Updated ImGui, libfmt and libyara 2024-07-01 22:00:08 +02:00
tools_entries.cpp feat: Added simple HTTP request tool 2024-01-04 00:38:21 +01:00
ui_items.cpp impr: Fix various issues with runtime-generated language strings 2024-08-03 11:32:17 +02:00
views.cpp impr: Allow views to opt out of having their open state saved 2024-05-19 21:51:55 +02:00
welcome_screen.cpp impr: Make all task names properly translatable 2024-07-27 16:29:06 +02:00
window_decoration.cpp fix: Sidebar panels not being resizable anymore properly 2024-07-16 18:15:28 +02:00
workspaces.cpp feat: Allow workspaces to be deleted the same way as layouts 2024-02-28 22:10:48 +01:00