Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package rehex for openSUSE:Factory checked in at 2025-12-20 21:46:45 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rehex (Old) and /work/SRC/openSUSE:Factory/.rehex.new.1928 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rehex" Sat Dec 20 21:46:45 2025 rev:18 rq:1323766 version:0.63.4 Changes: -------- --- /work/SRC/openSUSE:Factory/rehex/rehex.changes 2025-09-09 20:30:59.555116397 +0200 +++ /work/SRC/openSUSE:Factory/.rehex.new.1928/rehex.changes 2025-12-20 21:49:28.686610870 +0100 @@ -1,0 +2,9 @@ +Sat Dec 13 16:30:54 UTC 2025 - Andrea Manzini <[email protected]> + +- Update to 0.63.4: + * Save selected value colour map in default view + * Fix blurry text/icons when using DPI scaling under modern Windows + * Fix crash when pressing enter in search for value and search for byte + sequence dialogs + +------------------------------------------------------------------- Old: ---- rehex-0.63.3.tar.gz New: ---- rehex-0.63.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rehex.spec ++++++ --- /var/tmp/diff_new_pack.4Z4OcS/_old 2025-12-20 21:49:29.338637922 +0100 +++ /var/tmp/diff_new_pack.4Z4OcS/_new 2025-12-20 21:49:29.346638254 +0100 @@ -18,7 +18,7 @@ Name: rehex -Version: 0.63.3 +Version: 0.63.4 Release: 0 Summary: Reverse Engineers' Hex Editor License: GPL-2.0-only ++++++ rehex-0.63.3.tar.gz -> rehex-0.63.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rehex-0.63.3/CHANGES.txt new/rehex-0.63.4/CHANGES.txt --- old/rehex-0.63.3/CHANGES.txt 2025-09-08 22:44:10.000000000 +0200 +++ new/rehex-0.63.4/CHANGES.txt 2025-11-22 17:45:55.000000000 +0100 @@ -1,3 +1,12 @@ +Version 0.63.4 (2025-11-22): + + * Save selected value colour map in default view (#268). + + * Fix blurry text/icons when using DPI scaling under moden Windows (#267). + + * Fix crash when pressing enter in search for value and search for byte + sequence dialogs (#272). + Version 0.63.3 (2025-09-08): * Add option to change bitmap visualisation image background to a diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rehex-0.63.3/Makefile new/rehex-0.63.4/Makefile --- old/rehex-0.63.3/Makefile 2025-09-08 22:44:10.000000000 +0200 +++ new/rehex-0.63.4/Makefile 2025-11-22 17:45:55.000000000 +0100 @@ -138,7 +138,7 @@ # Define this for releases # NOTE: This *MUST* be of the form a.b.c where each component is an integer to fit the format of # macOS version numbers and Windows version info resources. -VERSION := 0.63.3 +VERSION := 0.63.4 ifdef VERSION LONG_VERSION := Version $(VERSION) @@ -154,8 +154,8 @@ GIT_COMMIT_TIME ?= $(call shell-or-die,git log -1 --format="%ct") - VERSION := e317aae0272534a4631143819631a5cf7c1ee87d - LONG_VERSION := Snapshot e317aae0272534a4631143819631a5cf7c1ee87d + VERSION := 850f8d79d8c8b3a87be5ebbdc9abf1b214bd5e3f + LONG_VERSION := Snapshot 850f8d79d8c8b3a87be5ebbdc9abf1b214bd5e3f endif DEPDIR := .d @@ -873,8 +873,8 @@ git ls-files | xargs cp --parents -t rehex-$(VERSION)/ # Inline any references to the HEAD commit sha/timestamp - sed -i -e "s|\$e317aae0272534a4631143819631a5cf7c1ee87d|e317aae0272534a4631143819631a5cf7c1ee87d|g" rehex-$(VERSION)/Makefile - sed -i -e "s|\$1757363993|1757363993|g" rehex-$(VERSION)/Makefile + sed -i -e "s|\$850f8d79d8c8b3a87be5ebbdc9abf1b214bd5e3f|850f8d79d8c8b3a87be5ebbdc9abf1b214bd5e3f|g" rehex-$(VERSION)/Makefile + sed -i -e "s|\$1763829681|1763829681|g" rehex-$(VERSION)/Makefile endif # Generate reproducible tarball. All files use git commit timestamp. @@ -882,7 +882,7 @@ LC_ALL=C sort -z | \ tar \ --format=ustar \ - --mtime=@1757363993 \ + --mtime=@1763829681 \ --owner=0 --group=0 --numeric-owner \ --no-recursion --null -T - \ -cf - | \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rehex-0.63.3/doc/ldoc.config.ld new/rehex-0.63.4/doc/ldoc.config.ld --- old/rehex-0.63.3/doc/ldoc.config.ld 2025-09-08 22:44:10.000000000 +0200 +++ new/rehex-0.63.4/doc/ldoc.config.ld 2025-11-22 17:45:55.000000000 +0100 @@ -3,9 +3,6 @@ full_description = "\ Documentation for the API available to Lua plugins. You should probably start with the \ [rehex](modules/rehex.html) module. \ -\ -**NOTE**: This API is very new and lacking in features. If you can't find a way to do what you \ -want with it, please open an issue on the [GitHub page](https://www.github.com/solemnwarning/rehex/). \ " format = 'markdown' sort = true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rehex-0.63.3/msvc/vcpkg-deploy/vcpkg-deploy.vcxproj new/rehex-0.63.4/msvc/vcpkg-deploy/vcpkg-deploy.vcxproj --- old/rehex-0.63.3/msvc/vcpkg-deploy/vcpkg-deploy.vcxproj 2025-09-08 22:44:10.000000000 +0200 +++ new/rehex-0.63.4/msvc/vcpkg-deploy/vcpkg-deploy.vcxproj 2025-11-22 17:45:55.000000000 +0100 @@ -63,7 +63,9 @@ <GenerateDebugInformation>true</GenerateDebugInformation> </Link> <PreBuildEvent> - <Command>cd "$(SolutionDir)" + <Command>set VCPKG_VISUAL_STUDIO_PATH=$(VsInstallRoot) + +cd "$(SolutionDir)" "$(ProjectDir)install_vcpkg_dependencies.bat" x64-windows-static-v143 "$(TargetDir)"</Command> </PreBuildEvent> </ItemDefinitionGroup> @@ -83,6 +85,7 @@ set REHEX_WINSDK_INCLUDES=$(WindowsSDK_IncludePath) set REHEX_WINSDK_LIBDIRS=$(UniversalCRT_LibraryPath_x86)$(WindowsSDK_LibraryPath_x86) set VCPKG_KEEP_ENV_VARS=REHEX_SOLUTION_DIR;REHEX_WINSDK_INCLUDES;REHEX_WINSDK_LIBDIRS +set VCPKG_VISUAL_STUDIO_PATH=$(VsInstallRoot) cd "$(SolutionDir)" "$(ProjectDir)install_vcpkg_dependencies.bat" x86-windows-static-enlyze "$(TargetDir)" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rehex-0.63.3/msvc/version.bat new/rehex-0.63.4/msvc/version.bat --- old/rehex-0.63.3/msvc/version.bat 2025-09-08 22:44:10.000000000 +0200 +++ new/rehex-0.63.4/msvc/version.bat 2025-11-22 17:45:55.000000000 +0100 @@ -1,7 +1,7 @@ @echo off -set LONG_VERSION=Version 0.63.3 -set SHORT_VERSION=0.63.3 -set VERSION_WORDS=0,63,3,0 +set LONG_VERSION=Version 0.63.4 +set SHORT_VERSION=0.63.4 +set VERSION_WORDS=0,63,4,0 exit /b 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rehex-0.63.3/res/rehex.exe.manifest new/rehex-0.63.4/res/rehex.exe.manifest --- old/rehex-0.63.3/res/rehex.exe.manifest 2025-09-08 22:44:10.000000000 +0200 +++ new/rehex-0.63.4/res/rehex.exe.manifest 2025-11-22 17:45:55.000000000 +0100 @@ -26,4 +26,10 @@ <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" /> </application> </compatibility> + <asmv3:application> + <asmv3:windowsSettings> + <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware> + <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2</dpiAwareness> + </asmv3:windowsSettings> + </asmv3:application> </assembly> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rehex-0.63.3/src/AppSettings.cpp new/rehex-0.63.4/src/AppSettings.cpp --- old/rehex-0.63.3/src/AppSettings.cpp 2025-09-08 22:44:10.000000000 +0200 +++ new/rehex-0.63.4/src/AppSettings.cpp 2025-11-22 17:45:55.000000000 +0100 @@ -29,6 +29,7 @@ preferred_asm_syntax(AsmSyntax::INTEL), goto_offset_base(GotoOffsetBase::AUTO), highlight_colours(HighlightColourMap::defaults()), + default_byte_colour_map(-1), main_window_commands(MainWindow::get_template_commands()), cursor_nav_mode(CursorNavMode::BYTE), goto_offset_modal(true), @@ -153,6 +154,12 @@ wxGetApp().printf_error("Error loading value colour maps: %s\n", e.what()); } } + + long default_byte_colour_map = config->ReadLong("default-byte-colour-map", -1); + if(default_byte_colour_map == -1 || byte_colour_maps.find(default_byte_colour_map) != byte_colour_maps.end()) + { + this->default_byte_colour_map = default_byte_colour_map; + } if(config->HasGroup("main-window-accelerators")) { @@ -230,6 +237,8 @@ i->second->save(config); } } + + config->Write("default-byte-colour-map", (long)(default_byte_colour_map)); { config->DeleteGroup("main-window-accelerators"); @@ -304,6 +313,12 @@ { if(byte_colour_maps.find(i->first) == byte_colour_maps.end()) { + if(i->first == default_byte_colour_map) + { + /* The default byte colour map has been deleted. */ + default_byte_colour_map = -1; + } + i = this->byte_colour_maps.erase(i); } else{ @@ -317,6 +332,22 @@ wxPostEvent(this, event); } +int REHex::AppSettings::get_default_byte_colour_map() const +{ + return default_byte_colour_map; +} + +void REHex::AppSettings::set_default_byte_colour_map(int id) +{ + if(byte_colour_maps.find(id) != byte_colour_maps.end()) + { + default_byte_colour_map = id; + } + else{ + default_byte_colour_map = -1; + } +} + const REHex::WindowCommandTable &REHex::AppSettings::get_main_window_commands() const { return main_window_commands; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rehex-0.63.3/src/AppSettings.hpp new/rehex-0.63.4/src/AppSettings.hpp --- old/rehex-0.63.3/src/AppSettings.hpp 2025-09-08 22:44:10.000000000 +0200 +++ new/rehex-0.63.4/src/AppSettings.hpp 2025-11-22 17:45:55.000000000 +0100 @@ -72,6 +72,9 @@ std::map< int, std::shared_ptr<const ByteColourMap> > get_byte_colour_maps() const; void set_byte_colour_maps(const std::map<int, ByteColourMap> &byte_colour_maps); + + int get_default_byte_colour_map() const; + void set_default_byte_colour_map(int id); const WindowCommandTable &get_main_window_commands() const; void set_main_window_accelerators(const WindowCommandTable &new_accelerators); @@ -91,6 +94,7 @@ GotoOffsetBase goto_offset_base; HighlightColourMap highlight_colours; std::map< int, std::shared_ptr<ByteColourMap> > byte_colour_maps; + int default_byte_colour_map; WindowCommandTable main_window_commands; CursorNavMode cursor_nav_mode; bool goto_offset_modal; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rehex-0.63.3/src/MainWindow.luadoc new/rehex-0.63.4/src/MainWindow.luadoc --- old/rehex-0.63.3/src/MainWindow.luadoc 2025-09-08 22:44:10.000000000 +0200 +++ new/rehex-0.63.4/src/MainWindow.luadoc 2025-11-22 17:45:55.000000000 +0100 @@ -1,5 +1,5 @@ --- --- The main application window. Future versions of rehex may support multiple of these. +-- The main application window(s). -- @classmod rehex.MainWindow --- Get the currently active document. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rehex-0.63.3/src/Tab.cpp new/rehex-0.63.4/src/Tab.cpp --- old/rehex-0.63.3/src/Tab.cpp 2025-09-08 22:44:10.000000000 +0200 +++ new/rehex-0.63.4/src/Tab.cpp 2025-11-22 17:45:55.000000000 +0100 @@ -1483,6 +1483,20 @@ int dsm_type = config->Read("data-map-scrollbar-type", (int)(data_map_scrollbar_type)); set_dsm_type((DataMapScrollbarType)(dsm_type)); + + int default_byte_colour_map = wxGetApp().settings->get_default_byte_colour_map(); + if(default_byte_colour_map >= 0) + { + auto maps = wxGetApp().settings->get_byte_colour_maps(); + + auto map_it = maps.find(default_byte_colour_map); + assert(map_it != maps.end()); + + if(map_it != maps.end()) + { + doc_ctrl->set_byte_colour_map(map_it->second); + } + } } void REHex::Tab::init_default_tools() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rehex-0.63.3/src/mainwindow.cpp new/rehex-0.63.4/src/mainwindow.cpp --- old/rehex-0.63.3/src/mainwindow.cpp 2025-09-08 22:44:10.000000000 +0200 +++ new/rehex-0.63.4/src/mainwindow.cpp 2025-11-22 17:45:55.000000000 +0100 @@ -2018,6 +2018,24 @@ #endif tab->save_view(config); + + /* Find the selected byte colour map (if any) in the map list and save it as the default. The + * default is managed by AppSettings to keep it in sync with the map list. + */ + + auto maps = wxGetApp().settings->get_byte_colour_maps(); + int default_map = -1; + + for(auto i = maps.begin(); i != maps.end(); ++i) + { + if(i->second == tab->doc_ctrl->get_byte_colour_map()) + { + default_map = i->first; + break; + } + } + + wxGetApp().settings->set_default_byte_colour_map(default_map); } void REHex::MainWindow::OnGithub(wxCommandEvent &event) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rehex-0.63.3/src/search.cpp new/rehex-0.63.4/src/search.cpp --- old/rehex-0.63.3/src/search.cpp 2025-09-08 22:44:10.000000000 +0200 +++ new/rehex-0.63.4/src/search.cpp 2025-11-22 17:45:55.000000000 +0100 @@ -79,7 +79,7 @@ REHex::Search::Search(wxWindow *parent, SharedDocumentPointer &doc, const char *title): wxDialog(parent, wxID_ANY, title), doc(doc), range_begin(0), range_end(-1), align_to(1), align_from(0), match_found_at(-1), running(false), - search_end_focus(NULL), + m_saved_focus(NULL), timer(this, ID_TIMER), auto_close(false), auto_wrap(false), @@ -336,12 +336,14 @@ * enter in, we stash the control and current selection (includes cursor position) so we can * restore it when the search is finished. */ - - wxComboBox *control = dynamic_cast<wxComboBox*>(event.GetEventObject()); + + wxWindow *control = dynamic_cast<wxWindow*>(event.GetEventObject()); assert(control != NULL); - search_end_focus = control; - control->GetSelection(&search_end_focus_from, &search_end_focus_to); + if(control != NULL) + { + save_focus(control); + } if(wxGetKeyState(WXK_SHIFT)) { @@ -362,13 +364,7 @@ if(progress->WasCancelled()) { end_search(); - - if(search_end_focus != NULL) - { - search_end_focus->SetFocus(); - search_end_focus->SetSelection(search_end_focus_from, search_end_focus_to); - search_end_focus = NULL; - } + restore_focus(); if(auto_close) { @@ -422,12 +418,7 @@ } } - if(search_end_focus != NULL) - { - search_end_focus->SetFocus(); - search_end_focus->SetSelection(search_end_focus_from, search_end_focus_to); - search_end_focus = NULL; - } + restore_focus(); if(auto_close) { @@ -616,6 +607,50 @@ } } +void REHex::Search::save_focus(wxWindow *control) +{ + m_saved_focus = control; + + wxTextCtrl *tc = dynamic_cast<wxTextCtrl*>(control); + if(tc != NULL) + { + tc->GetSelection(&m_saved_focus_from, &m_saved_focus_to); + return; + } + + wxComboBox *cb = dynamic_cast<wxComboBox*>(control); + if(cb != NULL) + { + cb->GetSelection(&m_saved_focus_from, &m_saved_focus_to); + return; + } +} + +void REHex::Search::restore_focus() +{ + if(m_saved_focus == NULL) + { + return; + } + + m_saved_focus->SetFocus(); + + wxTextCtrl *tc = dynamic_cast<wxTextCtrl*>(m_saved_focus); + if(tc != NULL) + { + tc->SetSelection(m_saved_focus_from, m_saved_focus_to); + } + else{ + wxComboBox *cb = dynamic_cast<wxComboBox*>(m_saved_focus); + if(cb != NULL) + { + cb->SetSelection(m_saved_focus_from, m_saved_focus_to); + } + } + + m_saved_focus = NULL; +} + wxArrayString REHex::Search::Text::search_history; std::set<REHex::Search::Text*> REHex::Search::Text::instances; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/rehex-0.63.3/src/search.hpp new/rehex-0.63.4/src/search.hpp --- old/rehex-0.63.3/src/search.hpp 2025-09-08 22:44:10.000000000 +0200 +++ new/rehex-0.63.4/src/search.hpp 2025-11-22 17:45:55.000000000 +0100 @@ -76,8 +76,11 @@ SearchDirection search_direction; - wxComboBox *search_end_focus; - long search_end_focus_from, search_end_focus_to; + wxWindow *m_saved_focus; + long m_saved_focus_from, m_saved_focus_to; + + void save_focus(wxWindow *control); + void restore_focus(); wxProgressDialog *progress; wxTimer timer;
