From 41820311cc78ea8556084358f0978f12b9a251eb Mon Sep 17 00:00:00 2001 From: FireNX70 Date: Wed, 26 Jun 2024 22:44:10 +0200 Subject: [PATCH] fix: Off-by-one error in "Export selection to file" (#1774) ### Problem description Export selection to file would never finish and wouldn't export the last byte. ### Implementation description It was just a simple off by one when using the selection's end address to calculate the remaining data size. Add one to the remaining size calculation. ### Additional things Fixes https://github.com/WerWolv/ImHex/issues/1733, https://github.com/WerWolv/ImHex/issues/1619 and https://github.com/WerWolv/ImHex/issues/1597. --- plugins/builtin/source/content/main_menu_items.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/builtin/source/content/main_menu_items.cpp b/plugins/builtin/source/content/main_menu_items.cpp index baf5ee8cd..7cb26ff63 100644 --- a/plugins/builtin/source/content/main_menu_items.cpp +++ b/plugins/builtin/source/content/main_menu_items.cpp @@ -200,7 +200,7 @@ namespace hex::plugin::builtin { auto selection = ImHexApi::HexEditor::getSelection(); for (u64 address = selection->getStartAddress(); address <= selection->getEndAddress(); address += bytes.size()) { - bytes.resize(std::min(bytes.size(), selection->getEndAddress() - address)); + bytes.resize(std::min(bytes.size(), selection->getEndAddress() - address + 1)); provider->read(address, bytes.data(), bytes.size()); outputFile.writeVector(bytes);