diff --git a/editors/imhex/Makefile b/editors/imhex/Makefile index d159f8127f5c..316c3a256064 100644 --- a/editors/imhex/Makefile +++ b/editors/imhex/Makefile @@ -1,93 +1,97 @@ PORTNAME= imhex -PORTVERSION= 1.21.2 +PORTVERSION= 1.22.0 DISTVERSIONPREFIX= v CATEGORIES= editors MASTER_SITES= https://git.sr.ht/~danyspin97/xdgpp/blob/f01f810714443d0f10c333d4d1d9c0383be41375/:xdg DISTFILES= xdg.hpp:xdg DIST_SUBDIR= imhex MAINTAINER= nobutaka@FreeBSD.org COMMENT= Hex editor for reverse engineers and programmers WWW= https://github.com/WerWolv/ImHex LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/LICENSE NOT_FOR_ARCHS= i386 powerpc NOT_FOR_ARCHS_REASON= __uint128_t and __int128_t are not supported EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} \ btzy-nativefiledialog-extended-${GH_TAG_NATIVEFILEDIALOG}_GH0${EXTRACT_SUFX} \ capstone-engine-capstone-${GH_TAG_CAPSTONE}_GH0${EXTRACT_SUFX} \ + CLIUtils-CLI11-${GH_TAG_CLI11}_GH0${EXTRACT_SUFX} \ fmtlib-fmt-${GH_TAG_FMT}_GH0${EXTRACT_SUFX} \ VirusTotal-yara-${GH_TAG_YARA}_GH0${EXTRACT_SUFX} \ WerWolv-libromfs-${GH_TAG_LIBROMFS}_GH0${EXTRACT_SUFX} \ WerWolv-ImHex-Patterns-${GH_TAG_IMHEX_PATTERNS}_GH0${EXTRACT_SUFX} \ WerWolv-PatternLanguage-${GH_TAG_PATTERN_LANGUAGE}_GH0${EXTRACT_SUFX} BUILD_DEPENDS= glm>0:math/glm \ nlohmann-json>0:devel/nlohmann-json \ ${LOCALBASE}/include/range/v3/range.hpp:devel/range-v3 LIB_DEPENDS= libcurl.so:ftp/curl \ libfreetype.so:print/freetype2 \ libglfw.so:graphics/glfw \ libharfbuzz.so:print/harfbuzz \ libmbedtls.so:security/mbedtls \ libtre.so:textproc/libtre USES= cmake gl gnome pkgconfig python:3.8+ xorg USE_GL= gl USE_GNOME= cairo gdkpixbuf2 gtk30 USE_XORG= x11 xcb xau xdmcp USE_GITHUB= yes GH_ACCOUNT= WerWolv GH_PROJECT= ImHex GH_TUPLE= btzy:nativefiledialog-extended:${GH_TAG_NATIVEFILEDIALOG}:nativefiledialog \ capstone-engine:capstone:${GH_TAG_CAPSTONE}:capstone \ + CLIUtils:CLI11:${GH_TAG_CLI11}:cli11 \ fmtlib:fmt:${GH_TAG_FMT}:fmt \ VirusTotal:yara:${GH_TAG_YARA}:yara \ WerWolv:ImHex-Patterns:${GH_TAG_IMHEX_PATTERNS}:imhex_patterns \ WerWolv:PatternLanguage:${GH_TAG_PATTERN_LANGUAGE}:pattern_language \ WerWolv:libromfs:${GH_TAG_LIBROMFS}:libromfs GH_TAG_CAPSTONE= d5141c0 +GH_TAG_CLI11= faea921 GH_TAG_FMT= c4ee726 -GH_TAG_IMHEX_PATTERNS= 15548b9 +GH_TAG_IMHEX_PATTERNS= befd6ef GH_TAG_LIBROMFS= 8c8556d GH_TAG_NATIVEFILEDIALOG= 6967d28 -GH_TAG_PATTERN_LANGUAGE= fd6bb38 +GH_TAG_PATTERN_LANGUAGE= 912af51 GH_TAG_YARA= d5a7565 CMAKE_ARGS= -DUSE_SYSTEM_CURL=ON -DUSE_SYSTEM_NLOHMANN_JSON=ON -DIMHEX_STRIP_RELEASE=OFF -DIMHEX_PLUGINS_IN_SHARE=ON PORTDOCS= README.md OPTIONS_DEFINE= DOCS NLS NLS_USES= gettext .include OSMAJOR=${OSVERSION:C/([0-9]*)[0-9]{5}/\1/} # Before LLVM13 import to the base system .if (${OSMAJOR} == 12 && ${OSVERSION} < 1203505) \ || (${OSMAJOR} == 14 && ${OSVERSION} < 1400042) IGNORE= will not build due to C++20 API functions unavailable in old libc++ .endif post-extract: ${CP} ${DISTDIR}/${DIST_SUBDIR}/xdg.hpp ${WRKSRC}/lib/external/xdgpp ${CP} -R ${WRKSRC_capstone}/* ${WRKSRC}/lib/external/capstone ${CP} -R ${WRKSRC_fmt}/* ${WRKSRC}/lib/external/fmt ${CP} -R ${WRKSRC_libromfs}/* ${WRKSRC}/lib/external/libromfs ${CP} -R ${WRKSRC_nativefiledialog}/* ${WRKSRC}/lib/external/nativefiledialog ${CP} -R ${WRKSRC_pattern_language}/* ${WRKSRC}/lib/external/pattern_language + ${CP} -R ${WRKSRC_cli11}/* ${WRKSRC}/lib/external/pattern_language/external/cli11 ${CP} -R ${WRKSRC_yara}/* ${WRKSRC}/lib/external/yara/yara ${MKDIR} ${WRKDIR}/.build/_deps/imhex_patterns_src ${CP} -R ${WRKSRC_imhex_patterns}/* ${WRKDIR}/.build/_deps/imhex_patterns_src post-install-DOCS-on: ${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR} .include diff --git a/editors/imhex/distinfo b/editors/imhex/distinfo index ac034b341dc7..b171f3b15268 100644 --- a/editors/imhex/distinfo +++ b/editors/imhex/distinfo @@ -1,19 +1,21 @@ -TIMESTAMP = 1661008814 +TIMESTAMP = 1662299909 SHA256 (imhex/xdg.hpp) = 2e08ce74adb71ff9b9aa9e1c999733fccd4b00967b9cf0c0e51dbf049392a9ec SIZE (imhex/xdg.hpp) = 7674 -SHA256 (imhex/WerWolv-ImHex-v1.21.2_GH0.tar.gz) = 621f569ca105b7567ae076b2d6764413e6ac3619833172d7506f994101b86108 -SIZE (imhex/WerWolv-ImHex-v1.21.2_GH0.tar.gz) = 10738148 +SHA256 (imhex/WerWolv-ImHex-v1.22.0_GH0.tar.gz) = 0b35b83e08e7e08314e3fb3da95aa139f260ed3e390ba6926fc69d86af6f644f +SIZE (imhex/WerWolv-ImHex-v1.22.0_GH0.tar.gz) = 10752839 SHA256 (imhex/btzy-nativefiledialog-extended-6967d28_GH0.tar.gz) = 67575871aca25f6b448831183851656d95cee5af773ac7b2a1f7f887f6d874d6 SIZE (imhex/btzy-nativefiledialog-extended-6967d28_GH0.tar.gz) = 412145 +SHA256 (imhex/CLIUtils-CLI11-faea921_GH0.tar.gz) = 84773ee9577e6b719e5a84ad62cc381cf3027756690e1db839eaa50bcafc6c78 +SIZE (imhex/CLIUtils-CLI11-faea921_GH0.tar.gz) = 299718 SHA256 (imhex/capstone-engine-capstone-d5141c0_GH0.tar.gz) = 435d40757928fa73dec19c6d0fbf171bd76341391c8525ce1286927dab44c3e7 SIZE (imhex/capstone-engine-capstone-d5141c0_GH0.tar.gz) = 5761632 SHA256 (imhex/fmtlib-fmt-c4ee726_GH0.tar.gz) = 05ba66b0a9ed040e5cfb07e845a0aa61fdbbb9a0cbd22a1860a303e8cbf343e4 SIZE (imhex/fmtlib-fmt-c4ee726_GH0.tar.gz) = 833672 SHA256 (imhex/VirusTotal-yara-d5a7565_GH0.tar.gz) = 1c908b160f2432a25aefc1e94147949d24bcb79c1412a2be840f767531f3ff7e SIZE (imhex/VirusTotal-yara-d5a7565_GH0.tar.gz) = 1287317 -SHA256 (imhex/WerWolv-ImHex-Patterns-15548b9_GH0.tar.gz) = 0e9abdd115eb9919bc5526f829110c0f31765cb2576eb1e64d9754c1aefda423 -SIZE (imhex/WerWolv-ImHex-Patterns-15548b9_GH0.tar.gz) = 4673034 -SHA256 (imhex/WerWolv-PatternLanguage-fd6bb38_GH0.tar.gz) = acb0721f2c43e0f0e909955fee2e3e8ff9894fedcb945d256edfd56c25a68137 -SIZE (imhex/WerWolv-PatternLanguage-fd6bb38_GH0.tar.gz) = 277785 +SHA256 (imhex/WerWolv-ImHex-Patterns-befd6ef_GH0.tar.gz) = 246a1173ac77a0cf084044f4d4a71e86345dfb942f2a436276b43d7683de0e39 +SIZE (imhex/WerWolv-ImHex-Patterns-befd6ef_GH0.tar.gz) = 5163202 +SHA256 (imhex/WerWolv-PatternLanguage-912af51_GH0.tar.gz) = 9bb0a56a567d26d4f13b2b47dea55a61d4db2c10cca71a195c9fcbb53f00f320 +SIZE (imhex/WerWolv-PatternLanguage-912af51_GH0.tar.gz) = 282718 SHA256 (imhex/WerWolv-libromfs-8c8556d_GH0.tar.gz) = 46364edcf21a4cbe7c48094e755751aa03704a9c1efe3be5add5f52a15690474 SIZE (imhex/WerWolv-libromfs-8c8556d_GH0.tar.gz) = 3868 diff --git a/editors/imhex/files/patch-CMakeLists.txt b/editors/imhex/files/patch-CMakeLists.txt index 01f5b9277ce1..9ad03de1dafd 100644 --- a/editors/imhex/files/patch-CMakeLists.txt +++ b/editors/imhex/files/patch-CMakeLists.txt @@ -1,11 +1,11 @@ ---- CMakeLists.txt.orig 2022-08-05 10:52:34 UTC +--- CMakeLists.txt.orig 2022-09-03 22:05:27 UTC +++ CMakeLists.txt -@@ -21,8 +21,6 @@ project(imhex VERSION ${IMHEX_VERSION}) +@@ -22,8 +22,6 @@ project(imhex VERSION ${IMHEX_VERSION}) # Make sure project is configured correctly setDefaultBuiltTypeIfUnset() -detectBadClone() -verifyCompiler() # List plugin names here. Project name must match folder name set(PLUGINS diff --git a/editors/imhex/files/patch-cmake_build__helpers.cmake b/editors/imhex/files/patch-cmake_build__helpers.cmake index 658333ed0c52..07ee0f97de15 100644 --- a/editors/imhex/files/patch-cmake_build__helpers.cmake +++ b/editors/imhex/files/patch-cmake_build__helpers.cmake @@ -1,29 +1,29 @@ ---- cmake/build_helpers.cmake.orig 2022-08-14 12:54:20 UTC +--- cmake/build_helpers.cmake.orig 2022-09-03 22:05:27 UTC +++ cmake/build_helpers.cmake -@@ -367,17 +367,9 @@ function(downloadImHexPatternsFiles dest) +@@ -374,17 +374,9 @@ function(downloadImHexPatternsFiles dest) set(PATTERNS_BRANCH ImHex-v${IMHEX_VERSION}) endif () - FetchContent_Declare( - imhex_patterns - GIT_REPOSITORY https://github.com/WerWolv/ImHex-Patterns.git - GIT_TAG master - ) - - FetchContent_Populate(imhex_patterns) - set(PATTERNS_FOLDERS_TO_INSTALL constants encodings includes patterns magic) foreach (FOLDER ${PATTERNS_FOLDERS_TO_INSTALL}) - install(DIRECTORY "${imhex_patterns_SOURCE_DIR}/${FOLDER}" DESTINATION ${dest}) + install(DIRECTORY "${CMAKE_BINARY_DIR}/_deps/imhex_patterns_src/${FOLDER}" DESTINATION "share/imhex/") endforeach () endif () -@@ -385,7 +377,6 @@ endfunction() +@@ -392,7 +384,6 @@ endfunction() macro(setupCompilerWarnings target) set(IMHEX_COMMON_FLAGS "-Wall -Wextra -Werror") - set(IMHEX_C_FLAGS "${IMHEX_COMMON_FLAGS} -Wno-restrict -Wno-stringop-overread") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${IMHEX_C_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${IMHEX_C_FLAGS}") diff --git a/editors/imhex/files/patch-lib_external_pattern__language_lib_include_pl_core_token.hpp b/editors/imhex/files/patch-lib_external_pattern__language_lib_include_pl_core_token.hpp index 3ea7d313dc01..9127b98bda28 100644 --- a/editors/imhex/files/patch-lib_external_pattern__language_lib_include_pl_core_token.hpp +++ b/editors/imhex/files/patch-lib_external_pattern__language_lib_include_pl_core_token.hpp @@ -1,235 +1,235 @@ ---- lib/external/pattern_language/lib/include/pl/core/token.hpp.orig 2022-08-20 15:51:46 UTC +--- lib/external/pattern_language/lib/include/pl/core/token.hpp.orig 2022-09-04 13:52:32 UTC +++ lib/external/pattern_language/lib/include/pl/core/token.hpp -@@ -153,9 +153,9 @@ namespace pl::core { +@@ -152,9 +152,9 @@ namespace pl::core { using Literal = std::variant; using ValueTypes = std::variant; + // These changes are necessary for Clang + inline Token(Type type, auto value, u32 line, u32 column) : type(type), value(std::move(value)), line(line), column(column) {} - constexpr Token(Type type, auto value, u32 line, u32 column) : type(type), value(std::move(value)), line(line), column(column) {} - [[nodiscard]] constexpr static inline bool isInteger(const ValueType &type) { return isUnsigned(type) || isSigned(type); } -@@ -431,128 +431,128 @@ namespace pl::core { +@@ -198,128 +198,128 @@ namespace pl::core { namespace tkn { - constexpr inline Token createToken(const core::Token::Type type, const core::Token::ValueTypes &value) { + inline Token createToken(const core::Token::Type type, const core::Token::ValueTypes &value) { return { type, value, 1, 1 }; } namespace Keyword { - constexpr auto If = createToken(core::Token::Type::Keyword, Token::Keyword::If); - constexpr auto Else = createToken(core::Token::Type::Keyword, Token::Keyword::Else); - constexpr auto While = createToken(core::Token::Type::Keyword, Token::Keyword::While); - constexpr auto For = createToken(core::Token::Type::Keyword, Token::Keyword::For); - constexpr auto Return = createToken(core::Token::Type::Keyword, Token::Keyword::Return); - constexpr auto Break = createToken(core::Token::Type::Keyword, Token::Keyword::Break); - constexpr auto Continue = createToken(core::Token::Type::Keyword, Token::Keyword::Continue); - constexpr auto Struct = createToken(core::Token::Type::Keyword, Token::Keyword::Struct); - constexpr auto Enum = createToken(core::Token::Type::Keyword, Token::Keyword::Enum); - constexpr auto Union = createToken(core::Token::Type::Keyword, Token::Keyword::Union); - constexpr auto Function = createToken(core::Token::Type::Keyword, Token::Keyword::Function); - constexpr auto Bitfield = createToken(core::Token::Type::Keyword, Token::Keyword::Bitfield); - constexpr auto LittleEndian = createToken(core::Token::Type::Keyword, Token::Keyword::LittleEndian); - constexpr auto BigEndian = createToken(core::Token::Type::Keyword, Token::Keyword::BigEndian); - constexpr auto Parent = createToken(core::Token::Type::Keyword, Token::Keyword::Parent); - constexpr auto Namespace = createToken(core::Token::Type::Keyword, Token::Keyword::Namespace); - constexpr auto Using = createToken(core::Token::Type::Keyword, Token::Keyword::Using); - constexpr auto This = createToken(core::Token::Type::Keyword, Token::Keyword::This); - constexpr auto In = createToken(core::Token::Type::Keyword, Token::Keyword::In); - constexpr auto Out = createToken(core::Token::Type::Keyword, Token::Keyword::Out); + inline auto If = createToken(core::Token::Type::Keyword, Token::Keyword::If); + inline auto Else = createToken(core::Token::Type::Keyword, Token::Keyword::Else); + inline auto While = createToken(core::Token::Type::Keyword, Token::Keyword::While); + inline auto For = createToken(core::Token::Type::Keyword, Token::Keyword::For); + inline auto Return = createToken(core::Token::Type::Keyword, Token::Keyword::Return); + inline auto Break = createToken(core::Token::Type::Keyword, Token::Keyword::Break); + inline auto Continue = createToken(core::Token::Type::Keyword, Token::Keyword::Continue); + inline auto Struct = createToken(core::Token::Type::Keyword, Token::Keyword::Struct); + inline auto Enum = createToken(core::Token::Type::Keyword, Token::Keyword::Enum); + inline auto Union = createToken(core::Token::Type::Keyword, Token::Keyword::Union); + inline auto Function = createToken(core::Token::Type::Keyword, Token::Keyword::Function); + inline auto Bitfield = createToken(core::Token::Type::Keyword, Token::Keyword::Bitfield); + inline auto LittleEndian = createToken(core::Token::Type::Keyword, Token::Keyword::LittleEndian); + inline auto BigEndian = createToken(core::Token::Type::Keyword, Token::Keyword::BigEndian); + inline auto Parent = createToken(core::Token::Type::Keyword, Token::Keyword::Parent); + inline auto Namespace = createToken(core::Token::Type::Keyword, Token::Keyword::Namespace); + inline auto Using = createToken(core::Token::Type::Keyword, Token::Keyword::Using); + inline auto This = createToken(core::Token::Type::Keyword, Token::Keyword::This); + inline auto In = createToken(core::Token::Type::Keyword, Token::Keyword::In); + inline auto Out = createToken(core::Token::Type::Keyword, Token::Keyword::Out); } namespace Literal { - constexpr auto Identifier = [](const std::string &name = { }) -> Token { return createToken(core::Token::Type::Identifier, Token::Identifier(name)); }; - constexpr auto Numeric = [](const Token::Literal &value = { }) -> Token { return createToken(core::Token::Type::Integer, value); }; - constexpr auto String = [](const std::string &value = { }) -> Token { return createToken(core::Token::Type::String, Token::Literal(value)); }; + inline auto Identifier = [](const std::string &name = { }) -> Token { return createToken(core::Token::Type::Identifier, Token::Identifier(name)); }; + inline auto Numeric = [](const Token::Literal &value = { }) -> Token { return createToken(core::Token::Type::Integer, value); }; + inline auto String = [](const std::string &value = { }) -> Token { return createToken(core::Token::Type::String, Token::Literal(value)); }; } namespace Operator { - constexpr auto Plus = createToken(core::Token::Type::Operator, Token::Operator::Plus); - constexpr auto Minus = createToken(core::Token::Type::Operator, Token::Operator::Minus); - constexpr auto Star = createToken(core::Token::Type::Operator, Token::Operator::Star); - constexpr auto Slash = createToken(core::Token::Type::Operator, Token::Operator::Slash); - constexpr auto Percent = createToken(core::Token::Type::Operator, Token::Operator::Percent); - constexpr auto LeftShift = createToken(core::Token::Type::Operator, Token::Operator::LeftShift); - constexpr auto RightShift = createToken(core::Token::Type::Operator, Token::Operator::RightShift); - constexpr auto BitAnd = createToken(core::Token::Type::Operator, Token::Operator::BitAnd); - constexpr auto BitOr = createToken(core::Token::Type::Operator, Token::Operator::BitOr); - constexpr auto BitXor = createToken(core::Token::Type::Operator, Token::Operator::BitXor); - constexpr auto BitNot = createToken(core::Token::Type::Operator, Token::Operator::BitNot); - constexpr auto BoolEqual = createToken(core::Token::Type::Operator, Token::Operator::BoolEqual); - constexpr auto BoolNotEqual = createToken(core::Token::Type::Operator, Token::Operator::BoolNotEqual); - constexpr auto BoolLessThan = createToken(core::Token::Type::Operator, Token::Operator::BoolLessThan); - constexpr auto BoolGreaterThan = createToken(core::Token::Type::Operator, Token::Operator::BoolGreaterThan); - constexpr auto BoolLessThanOrEqual = createToken(core::Token::Type::Operator, Token::Operator::BoolLessThanOrEqual); - constexpr auto BoolGreaterThanOrEqual = createToken(core::Token::Type::Operator, Token::Operator::BoolGreaterThanOrEqual); - constexpr auto BoolAnd = createToken(core::Token::Type::Operator, Token::Operator::BoolAnd); - constexpr auto BoolOr = createToken(core::Token::Type::Operator, Token::Operator::BoolOr); - constexpr auto BoolNot = createToken(core::Token::Type::Operator, Token::Operator::BoolNot); - constexpr auto BoolXor = createToken(core::Token::Type::Operator, Token::Operator::BoolXor); - constexpr auto Dollar = createToken(core::Token::Type::Operator, Token::Operator::Dollar); - constexpr auto Colon = createToken(core::Token::Type::Operator, Token::Operator::Colon); - constexpr auto ScopeResolution = createToken(core::Token::Type::Operator, Token::Operator::ScopeResolution); - constexpr auto TernaryConditional = createToken(core::Token::Type::Operator, Token::Operator::TernaryConditional); - constexpr auto AddressOf = createToken(core::Token::Type::Operator, Token::Operator::AddressOf); - constexpr auto SizeOf = createToken(core::Token::Type::Operator, Token::Operator::SizeOf); - constexpr auto At = createToken(core::Token::Type::Operator, Token::Operator::At); - constexpr auto Assign = createToken(core::Token::Type::Operator, Token::Operator::Assign); + inline auto Plus = createToken(core::Token::Type::Operator, Token::Operator::Plus); + inline auto Minus = createToken(core::Token::Type::Operator, Token::Operator::Minus); + inline auto Star = createToken(core::Token::Type::Operator, Token::Operator::Star); + inline auto Slash = createToken(core::Token::Type::Operator, Token::Operator::Slash); + inline auto Percent = createToken(core::Token::Type::Operator, Token::Operator::Percent); + inline auto LeftShift = createToken(core::Token::Type::Operator, Token::Operator::LeftShift); + inline auto RightShift = createToken(core::Token::Type::Operator, Token::Operator::RightShift); + inline auto BitAnd = createToken(core::Token::Type::Operator, Token::Operator::BitAnd); + inline auto BitOr = createToken(core::Token::Type::Operator, Token::Operator::BitOr); + inline auto BitXor = createToken(core::Token::Type::Operator, Token::Operator::BitXor); + inline auto BitNot = createToken(core::Token::Type::Operator, Token::Operator::BitNot); + inline auto BoolEqual = createToken(core::Token::Type::Operator, Token::Operator::BoolEqual); + inline auto BoolNotEqual = createToken(core::Token::Type::Operator, Token::Operator::BoolNotEqual); + inline auto BoolLessThan = createToken(core::Token::Type::Operator, Token::Operator::BoolLessThan); + inline auto BoolGreaterThan = createToken(core::Token::Type::Operator, Token::Operator::BoolGreaterThan); + inline auto BoolLessThanOrEqual = createToken(core::Token::Type::Operator, Token::Operator::BoolLessThanOrEqual); + inline auto BoolGreaterThanOrEqual = createToken(core::Token::Type::Operator, Token::Operator::BoolGreaterThanOrEqual); + inline auto BoolAnd = createToken(core::Token::Type::Operator, Token::Operator::BoolAnd); + inline auto BoolOr = createToken(core::Token::Type::Operator, Token::Operator::BoolOr); + inline auto BoolNot = createToken(core::Token::Type::Operator, Token::Operator::BoolNot); + inline auto BoolXor = createToken(core::Token::Type::Operator, Token::Operator::BoolXor); + inline auto Dollar = createToken(core::Token::Type::Operator, Token::Operator::Dollar); + inline auto Colon = createToken(core::Token::Type::Operator, Token::Operator::Colon); + inline auto ScopeResolution = createToken(core::Token::Type::Operator, Token::Operator::ScopeResolution); + inline auto TernaryConditional = createToken(core::Token::Type::Operator, Token::Operator::TernaryConditional); + inline auto AddressOf = createToken(core::Token::Type::Operator, Token::Operator::AddressOf); + inline auto SizeOf = createToken(core::Token::Type::Operator, Token::Operator::SizeOf); + inline auto At = createToken(core::Token::Type::Operator, Token::Operator::At); + inline auto Assign = createToken(core::Token::Type::Operator, Token::Operator::Assign); } namespace ValueType { - constexpr auto CustomType = createToken(core::Token::Type::ValueType, Token::ValueType::CustomType); - constexpr auto Padding = createToken(core::Token::Type::ValueType, Token::ValueType::Padding); - constexpr auto Unsigned = createToken(core::Token::Type::ValueType, Token::ValueType::Unsigned); - constexpr auto Signed = createToken(core::Token::Type::ValueType, Token::ValueType::Signed); - constexpr auto FloatingPoint = createToken(core::Token::Type::ValueType, Token::ValueType::FloatingPoint); - constexpr auto Auto = createToken(core::Token::Type::ValueType, Token::ValueType::Auto); - constexpr auto Any = createToken(core::Token::Type::ValueType, Token::ValueType::Any); + inline auto CustomType = createToken(core::Token::Type::ValueType, Token::ValueType::CustomType); + inline auto Padding = createToken(core::Token::Type::ValueType, Token::ValueType::Padding); + inline auto Unsigned = createToken(core::Token::Type::ValueType, Token::ValueType::Unsigned); + inline auto Signed = createToken(core::Token::Type::ValueType, Token::ValueType::Signed); + inline auto FloatingPoint = createToken(core::Token::Type::ValueType, Token::ValueType::FloatingPoint); + inline auto Auto = createToken(core::Token::Type::ValueType, Token::ValueType::Auto); + inline auto Any = createToken(core::Token::Type::ValueType, Token::ValueType::Any); - constexpr auto Unsigned8Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Unsigned8Bit); - constexpr auto Unsigned16Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Unsigned16Bit); - constexpr auto Unsigned24Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Unsigned24Bit); - constexpr auto Unsigned32Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Unsigned32Bit); - constexpr auto Unsigned48Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Unsigned48Bit); - constexpr auto Unsigned64Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Unsigned64Bit); - constexpr auto Unsigned96Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Unsigned96Bit); - constexpr auto Unsigned128Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Unsigned128Bit); + inline auto Unsigned8Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Unsigned8Bit); + inline auto Unsigned16Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Unsigned16Bit); + inline auto Unsigned24Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Unsigned24Bit); + inline auto Unsigned32Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Unsigned32Bit); + inline auto Unsigned48Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Unsigned48Bit); + inline auto Unsigned64Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Unsigned64Bit); + inline auto Unsigned96Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Unsigned96Bit); + inline auto Unsigned128Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Unsigned128Bit); - constexpr auto Signed8Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Signed8Bit); - constexpr auto Signed16Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Signed16Bit); - constexpr auto Signed24Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Signed24Bit); - constexpr auto Signed32Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Signed32Bit); - constexpr auto Signed48Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Signed48Bit); - constexpr auto Signed64Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Signed64Bit); - constexpr auto Signed96Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Signed96Bit); - constexpr auto Signed128Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Signed128Bit); + inline auto Signed8Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Signed8Bit); + inline auto Signed16Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Signed16Bit); + inline auto Signed24Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Signed24Bit); + inline auto Signed32Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Signed32Bit); + inline auto Signed48Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Signed48Bit); + inline auto Signed64Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Signed64Bit); + inline auto Signed96Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Signed96Bit); + inline auto Signed128Bit = createToken(core::Token::Type::ValueType, Token::ValueType::Signed128Bit); - constexpr auto Float = createToken(core::Token::Type::ValueType, Token::ValueType::Float); - constexpr auto Double = createToken(core::Token::Type::ValueType, Token::ValueType::Double); + inline auto Float = createToken(core::Token::Type::ValueType, Token::ValueType::Float); + inline auto Double = createToken(core::Token::Type::ValueType, Token::ValueType::Double); - constexpr auto Boolean = createToken(core::Token::Type::ValueType, Token::ValueType::Boolean); + inline auto Boolean = createToken(core::Token::Type::ValueType, Token::ValueType::Boolean); - constexpr auto Character = createToken(core::Token::Type::ValueType, Token::ValueType::Character); - constexpr auto Character16 = createToken(core::Token::Type::ValueType, Token::ValueType::Character16); - constexpr auto String = createToken(core::Token::Type::ValueType, Token::ValueType::String); + inline auto Character = createToken(core::Token::Type::ValueType, Token::ValueType::Character); + inline auto Character16 = createToken(core::Token::Type::ValueType, Token::ValueType::Character16); + inline auto String = createToken(core::Token::Type::ValueType, Token::ValueType::String); } namespace Separator { - constexpr auto Comma = createToken(core::Token::Type::Separator, Token::Separator::Comma); - constexpr auto LeftParenthesis = createToken(core::Token::Type::Separator, Token::Separator::LeftParenthesis); - constexpr auto RightParenthesis = createToken(core::Token::Type::Separator, Token::Separator::RightParenthesis); - constexpr auto LeftBracket = createToken(core::Token::Type::Separator, Token::Separator::LeftBracket); - constexpr auto RightBracket = createToken(core::Token::Type::Separator, Token::Separator::RightBracket); - constexpr auto LeftBrace = createToken(core::Token::Type::Separator, Token::Separator::LeftBrace); - constexpr auto RightBrace = createToken(core::Token::Type::Separator, Token::Separator::RightBrace); - constexpr auto Dot = createToken(core::Token::Type::Separator, Token::Separator::Dot); - constexpr auto Semicolon = createToken(core::Token::Type::Separator, Token::Separator::Semicolon); - constexpr auto EndOfProgram = createToken(core::Token::Type::Separator, Token::Separator::EndOfProgram); + inline auto Comma = createToken(core::Token::Type::Separator, Token::Separator::Comma); + inline auto LeftParenthesis = createToken(core::Token::Type::Separator, Token::Separator::LeftParenthesis); + inline auto RightParenthesis = createToken(core::Token::Type::Separator, Token::Separator::RightParenthesis); + inline auto LeftBracket = createToken(core::Token::Type::Separator, Token::Separator::LeftBracket); + inline auto RightBracket = createToken(core::Token::Type::Separator, Token::Separator::RightBracket); + inline auto LeftBrace = createToken(core::Token::Type::Separator, Token::Separator::LeftBrace); + inline auto RightBrace = createToken(core::Token::Type::Separator, Token::Separator::RightBrace); + inline auto Dot = createToken(core::Token::Type::Separator, Token::Separator::Dot); + inline auto Semicolon = createToken(core::Token::Type::Separator, Token::Separator::Semicolon); + inline auto EndOfProgram = createToken(core::Token::Type::Separator, Token::Separator::EndOfProgram); } diff --git a/editors/imhex/files/patch-main_source_init_tasks.cpp b/editors/imhex/files/patch-main_source_init_tasks.cpp deleted file mode 100644 index 97f2f64982b8..000000000000 --- a/editors/imhex/files/patch-main_source_init_tasks.cpp +++ /dev/null @@ -1,20 +0,0 @@ ---- main/source/init/tasks.cpp.orig 2022-08-20 13:59:16 UTC -+++ main/source/init/tasks.cpp -@@ -4,6 +4,7 @@ - #include - - #include -+#include - #include - #include - #include -@@ -228,6 +229,9 @@ namespace hex::init { - delete visualizer; - visualizers.clear(); - } -+ -+ ProjectFile::getHandlers().clear(); -+ ProjectFile::getProviderHandlers().clear(); - - return true; - } diff --git a/editors/imhex/files/patch-plugins_builtin_source_content_data__inspector.cpp b/editors/imhex/files/patch-plugins_builtin_source_content_data__inspector.cpp index 0516ec735415..f5bcbad9ec53 100644 --- a/editors/imhex/files/patch-plugins_builtin_source_content_data__inspector.cpp +++ b/editors/imhex/files/patch-plugins_builtin_source_content_data__inspector.cpp @@ -1,20 +1,20 @@ ---- plugins/builtin/source/content/data_inspector.cpp.orig 2022-08-05 19:30:19 UTC +--- plugins/builtin/source/content/data_inspector.cpp.orig 2022-09-03 22:05:27 UTC +++ plugins/builtin/source/content/data_inspector.cpp -@@ -102,7 +102,7 @@ namespace hex::plugin::builtin { - auto number = hex::signExtend(Size * 8, hex::changeEndianess(value, Size, endian)); +@@ -105,7 +105,7 @@ namespace hex::plugin::builtin { + bool negative = number < 0; - return hex::format(format, negative ? "-" : "", std::abs(number)); + return hex::format(format, negative ? "-" : "", std::abs((long)number)); } template -@@ -282,7 +282,7 @@ namespace hex::plugin::builtin { +@@ -285,7 +285,7 @@ namespace hex::plugin::builtin { auto number = hex::crypt::decodeSleb128(buffer); bool negative = number < 0; - auto value = hex::format(format, negative ? "-" : "", std::abs(number)); + auto value = hex::format(format, negative ? "-" : "", std::abs((long)number)); return [value] { ImGui::TextUnformatted(value.c_str()); return value; }; }, diff --git a/editors/imhex/files/patch-plugins_builtin_source_content_views_view__hex__editor.cpp b/editors/imhex/files/patch-plugins_builtin_source_content_views_view__hex__editor.cpp index 211e587b0096..46ef7fe6c59b 100644 --- a/editors/imhex/files/patch-plugins_builtin_source_content_views_view__hex__editor.cpp +++ b/editors/imhex/files/patch-plugins_builtin_source_content_views_view__hex__editor.cpp @@ -1,11 +1,11 @@ ---- plugins/builtin/source/content/views/view_hex_editor.cpp.orig 2022-08-17 21:25:52 UTC +--- plugins/builtin/source/content/views/view_hex_editor.cpp.orig 2022-09-03 22:05:27 UTC +++ plugins/builtin/source/content/views/view_hex_editor.cpp -@@ -250,7 +250,7 @@ namespace hex::plugin::builtin { - reader.seek(this->m_searchPosition.value_or(editor->getSelection().getStartAddress())); +@@ -288,7 +288,7 @@ namespace hex::plugin::builtin { + reader.seek(this->m_searchPosition.value_or(0x00)); constexpr static auto searchFunction = [](const auto &haystackBegin, const auto &haystackEnd, const auto &needleBegin, const auto &needleEnd) { - return std::search(haystackBegin, haystackEnd, std::boyer_moore_horspool_searcher(needleBegin, needleEnd)); + return std::search(haystackBegin, haystackEnd, needleBegin, needleEnd); }; if (!backwards) { diff --git a/editors/imhex/files/patch-plugins_builtin_source_content_views_view__pattern__editor.cpp b/editors/imhex/files/patch-plugins_builtin_source_content_views_view__pattern__editor.cpp deleted file mode 100644 index 59dc184fb2d7..000000000000 --- a/editors/imhex/files/patch-plugins_builtin_source_content_views_view__pattern__editor.cpp +++ /dev/null @@ -1,11 +0,0 @@ ---- plugins/builtin/source/content/views/view_pattern_editor.cpp.orig 2022-08-20 15:52:06 UTC -+++ plugins/builtin/source/content/views/view_pattern_editor.cpp -@@ -741,7 +741,7 @@ namespace hex::plugin::builtin { - ImGui::TableNextColumn(); - ImGui::TextFormatted("{}", pattern->getEndian() == std::endian::little ? "hex.builtin.common.little"_lang : "hex.builtin.common.big"_lang); - -- if (const auto &comment = pattern->getComment(); comment.has_value()) { -+ if (const auto &comment = pattern->getComment(); comment != nullptr) { - ImGui::TableNextRow(); - ImGui::TableNextColumn(); - ImGui::TextFormatted("{}: ", "hex.builtin.common.comment"_lang); diff --git a/editors/imhex/files/patch-plugins_builtin_source_pattern__drawer.cpp b/editors/imhex/files/patch-plugins_builtin_source_pattern__drawer.cpp deleted file mode 100644 index 73a8ad7e7f02..000000000000 --- a/editors/imhex/files/patch-plugins_builtin_source_pattern__drawer.cpp +++ /dev/null @@ -1,11 +0,0 @@ ---- plugins/builtin/source/pattern_drawer.cpp.orig 2022-08-20 15:51:56 UTC -+++ plugins/builtin/source/pattern_drawer.cpp -@@ -277,7 +277,7 @@ namespace hex { - - - void PatternDrawer::drawCommentTooltip(const pl::ptrn::Pattern &pattern) const { -- if (ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByActiveItem) && pattern.getComment().has_value()) { -+ if (ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByActiveItem) && pattern.getComment() != nullptr) { - ImGui::BeginTooltip(); - ImGui::TextUnformatted(pattern.getComment()->c_str()); - ImGui::EndTooltip(); diff --git a/editors/imhex/pkg-plist b/editors/imhex/pkg-plist index d04fe16cc826..8a1287c227e8 100644 --- a/editors/imhex/pkg-plist +++ b/editors/imhex/pkg-plist @@ -1,95 +1,105 @@ bin/imhex -lib/libimhex.so.1.21.2 +lib/libimhex.so.1.22.0 share/applications/imhex.desktop %%DATADIR%%/constants/_schema.json %%DATADIR%%/constants/crc16.json %%DATADIR%%/constants/crc32.json %%DATADIR%%/constants/http_status.json %%DATADIR%%/constants/linux_errors.json %%DATADIR%%/encodings/arabic_iso.tbl %%DATADIR%%/encodings/arabic_windows.tbl %%DATADIR%%/encodings/ascii.tbl %%DATADIR%%/encodings/ascii_ansi.tbl %%DATADIR%%/encodings/ascii_oem.tbl %%DATADIR%%/encodings/baltic_iso.tbl %%DATADIR%%/encodings/baltic_windows.tbl +%%DATADIR%%/encodings/cyrillic_cp866.tbl %%DATADIR%%/encodings/cyrillic_iso.tbl %%DATADIR%%/encodings/cyrillic_koi8_r.tbl %%DATADIR%%/encodings/cyrillic_koi8_u.tbl %%DATADIR%%/encodings/cyrillic_windows.tbl %%DATADIR%%/encodings/eastern_europe_iso.tbl %%DATADIR%%/encodings/eastern_europe_windows.tbl %%DATADIR%%/encodings/ebcdic.tbl %%DATADIR%%/encodings/euc_jp.tbl +%%DATADIR%%/encodings/euc_kr.tbl %%DATADIR%%/encodings/greek_iso.tbl %%DATADIR%%/encodings/greek_windows.tbl %%DATADIR%%/encodings/hebrew_iso.tbl %%DATADIR%%/encodings/hebrew_windows.tbl %%DATADIR%%/encodings/iso_646.tbl %%DATADIR%%/encodings/iso_6937.tbl %%DATADIR%%/encodings/jis_x_0201.tbl %%DATADIR%%/encodings/jis_x_0211.tbl %%DATADIR%%/encodings/jis_x_0213.tbl %%DATADIR%%/encodings/macintosh.tbl %%DATADIR%%/encodings/pokegen1_en.tbl %%DATADIR%%/encodings/shiftjis.tbl %%DATADIR%%/encodings/thai.tbl %%DATADIR%%/encodings/turkish_iso.tbl %%DATADIR%%/encodings/turkish_windows.tbl %%DATADIR%%/encodings/utf8.tbl %%DATADIR%%/encodings/vietnamese.tbl %%DATADIR%%/includes/cstdint.pat %%DATADIR%%/includes/std/bit.pat %%DATADIR%%/includes/std/cint.pat %%DATADIR%%/includes/std/core.pat %%DATADIR%%/includes/std/ctype.pat %%DATADIR%%/includes/std/file.pat %%DATADIR%%/includes/std/fxpt.pat %%DATADIR%%/includes/std/hash.pat %%DATADIR%%/includes/std/http.pat %%DATADIR%%/includes/std/io.pat %%DATADIR%%/includes/std/limits.pat %%DATADIR%%/includes/std/math.pat %%DATADIR%%/includes/std/mem.pat %%DATADIR%%/includes/std/ptr.pat %%DATADIR%%/includes/std/rustint.pat %%DATADIR%%/includes/std/string.pat %%DATADIR%%/includes/std/sys.pat %%DATADIR%%/includes/std/time.pat %%DATADIR%%/includes/type/byte.pat %%DATADIR%%/includes/type/float16.pat %%DATADIR%%/includes/type/guid.pat %%DATADIR%%/includes/type/ip.pat %%DATADIR%%/includes/type/leb128.pat %%DATADIR%%/includes/type/mac.pat %%DATADIR%%/includes/type/path.pat +%%DATADIR%%/includes/type/size.pat %%DATADIR%%/includes/type/time.pat %%DATADIR%%/magic/nintendo_switch_magic %%DATADIR%%/magic/portable_executable_magic %%DATADIR%%/patterns/afe2.hexpat %%DATADIR%%/patterns/ar.hexpat %%DATADIR%%/patterns/arm_cm_vtor.hexpat +%%DATADIR%%/patterns/bencode.hexpat %%DATADIR%%/patterns/bmp.hexpat %%DATADIR%%/patterns/dds.hexpat %%DATADIR%%/patterns/elf.hexpat %%DATADIR%%/patterns/fs.hexpat %%DATADIR%%/patterns/ico.hexpat %%DATADIR%%/patterns/intel_hex.hexpat %%DATADIR%%/patterns/ip.hexpat %%DATADIR%%/patterns/iso.hexpat %%DATADIR%%/patterns/java_class.hexpat +%%DATADIR%%/patterns/lnk.hexpat %%DATADIR%%/patterns/midi.hexpat %%DATADIR%%/patterns/nacp.hexpat %%DATADIR%%/patterns/nro.hexpat +%%DATADIR%%/patterns/ntag.hexpat +%%DATADIR%%/patterns/ogg.hexpat %%DATADIR%%/patterns/pcap.hexpat %%DATADIR%%/patterns/pe.hexpat %%DATADIR%%/patterns/png.hexpat %%DATADIR%%/patterns/prodinfo.hexpat +%%DATADIR%%/patterns/protobuf.hexpat %%DATADIR%%/patterns/spirv.hexpat +%%DATADIR%%/patterns/stl.hexpat %%DATADIR%%/patterns/tga.hexpat %%DATADIR%%/patterns/uf2.hexpat %%DATADIR%%/patterns/vdf.hexpat +%%DATADIR%%/patterns/vhdx.hexpat %%DATADIR%%/patterns/wav.hexpat %%DATADIR%%/patterns/zip.hexpat %%DATADIR%%/plugins/builtin.hexplug share/pixmaps/imhex.png