aboutsummaryrefslogtreecommitdiff
path: root/editors/imhex
diff options
context:
space:
mode:
authorMANTANI Nobutaka <nobutaka@FreeBSD.org>2022-08-20 17:48:07 +0000
committerMANTANI Nobutaka <nobutaka@FreeBSD.org>2022-08-20 17:49:51 +0000
commitae224e77132da69c16cce9499331de12de1a1d9b (patch)
tree1a65bb7c44f6d82eca61169c68ee0ba6f519341c /editors/imhex
parent04b86d3e963ecb0cd693a4503eeff8eda777e2e2 (diff)
downloadports-ae224e77132da69c16cce9499331de12de1a1d9b.tar.gz
ports-ae224e77132da69c16cce9499331de12de1a1d9b.zip
editors/imhex: Update to 1.21.2
Diffstat (limited to 'editors/imhex')
-rw-r--r--editors/imhex/Makefile14
-rw-r--r--editors/imhex/distinfo22
-rw-r--r--editors/imhex/files/patch-cmake_build__helpers.cmake6
-rw-r--r--editors/imhex/files/patch-lib_external_libromfs_generator_include_embedder.hpp21
-rw-r--r--editors/imhex/files/patch-lib_external_pattern__language_lib_CMakeLists.txt11
-rw-r--r--editors/imhex/files/patch-lib_external_pattern__language_lib_include_pl_core_ast_ast__node__bitfield.hpp11
-rw-r--r--editors/imhex/files/patch-lib_external_pattern__language_lib_include_pl_core_token.hpp235
-rw-r--r--editors/imhex/files/patch-lib_external_pattern__language_lib_include_pl_token.hpp235
-rw-r--r--editors/imhex/files/patch-lib_external_pattern__language_lib_source_pl_helpers_file.cpp (renamed from editors/imhex/files/patch-lib_external_pattern__language_lib_source_helpers_file.cpp)14
-rw-r--r--editors/imhex/files/patch-lib_external_pattern__language_lib_source_pl_lib_std_string.cpp (renamed from editors/imhex/files/patch-lib_external_pattern__language_lib_source_pl_libstd_string.cpp)6
-rw-r--r--editors/imhex/files/patch-lib_libimhex_CMakeLists.txt16
-rw-r--r--editors/imhex/files/patch-lib_libimhex_include_hex_data__processor_node.hpp10
-rw-r--r--editors/imhex/files/patch-lib_libimhex_source_api_imhex__api.cpp19
-rw-r--r--editors/imhex/files/patch-lib_libimhex_source_helpers_file.cpp10
-rw-r--r--editors/imhex/files/patch-main_source_init_tasks.cpp20
-rw-r--r--editors/imhex/files/patch-plugins_builtin_source_content_providers_disk__provider.cpp7
-rw-r--r--editors/imhex/files/patch-plugins_builtin_source_content_views_view__find.cpp4
-rw-r--r--editors/imhex/files/patch-plugins_builtin_source_content_views_view__hex__editor.cpp4
-rw-r--r--editors/imhex/files/patch-plugins_builtin_source_content_views_view__pattern__editor.cpp11
-rw-r--r--editors/imhex/files/patch-plugins_builtin_source_pattern__drawer.cpp11
-rw-r--r--editors/imhex/pkg-plist6
21 files changed, 385 insertions, 308 deletions
diff --git a/editors/imhex/Makefile b/editors/imhex/Makefile
index 4c6d8ef7284d..53cfed07ab71 100644
--- a/editors/imhex/Makefile
+++ b/editors/imhex/Makefile
@@ -1,5 +1,5 @@
PORTNAME= imhex
-PORTVERSION= 1.20.0
+PORTVERSION= 1.21.2
DISTVERSIONPREFIX= v
CATEGORIES= editors
MASTER_SITES= https://git.sr.ht/~danyspin97/xdgpp/blob/f01f810714443d0f10c333d4d1d9c0383be41375/:xdg
@@ -24,7 +24,8 @@ EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} \
WerWolv-PatternLanguage-${GH_TAG_PATTERN_LANGUAGE}_GH0${EXTRACT_SUFX}
BUILD_DEPENDS= glm>0:math/glm \
- nlohmann-json>0:devel/nlohmann-json
+ 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 \
@@ -50,14 +51,13 @@ GH_TUPLE= btzy:nativefiledialog-extended:${GH_TAG_NATIVEFILEDIALOG}:nativefiledi
GH_TAG_CAPSTONE= d5141c0
GH_TAG_FMT= c4ee726
-GH_TAG_IMHEX_PATTERNS= eda13b2
-GH_TAG_LIBROMFS= 58757f6
-GH_TAG_NATIVEFILEDIALOG= 3311592
-GH_TAG_PATTERN_LANGUAGE= a8c4479
+GH_TAG_IMHEX_PATTERNS= 15548b9
+GH_TAG_LIBROMFS= 8c8556d
+GH_TAG_NATIVEFILEDIALOG= 6967d28
+GH_TAG_PATTERN_LANGUAGE= fd6bb38
GH_TAG_YARA= d5a7565
CMAKE_ARGS= -DUSE_SYSTEM_CURL=ON -DUSE_SYSTEM_NLOHMANN_JSON=ON -DIMHEX_STRIP_RELEASE=OFF -DIMHEX_PLUGINS_IN_SHARE=ON
-CXXFLAGS+= -fPIC
PORTDOCS= README.md
diff --git a/editors/imhex/distinfo b/editors/imhex/distinfo
index ae7979966eaf..ac034b341dc7 100644
--- a/editors/imhex/distinfo
+++ b/editors/imhex/distinfo
@@ -1,19 +1,19 @@
-TIMESTAMP = 1659725742
+TIMESTAMP = 1661008814
SHA256 (imhex/xdg.hpp) = 2e08ce74adb71ff9b9aa9e1c999733fccd4b00967b9cf0c0e51dbf049392a9ec
SIZE (imhex/xdg.hpp) = 7674
-SHA256 (imhex/WerWolv-ImHex-v1.20.0_GH0.tar.gz) = 10cd0a696b7de825e2151ae88082c1e9ce8d1ad44aa4fbb9421025c44598beca
-SIZE (imhex/WerWolv-ImHex-v1.20.0_GH0.tar.gz) = 10654355
-SHA256 (imhex/btzy-nativefiledialog-extended-3311592_GH0.tar.gz) = 8485f3ef81f0882f357482178f29360e29a2957507b35dec7057dcf33e6f628b
-SIZE (imhex/btzy-nativefiledialog-extended-3311592_GH0.tar.gz) = 411759
+SHA256 (imhex/WerWolv-ImHex-v1.21.2_GH0.tar.gz) = 621f569ca105b7567ae076b2d6764413e6ac3619833172d7506f994101b86108
+SIZE (imhex/WerWolv-ImHex-v1.21.2_GH0.tar.gz) = 10738148
+SHA256 (imhex/btzy-nativefiledialog-extended-6967d28_GH0.tar.gz) = 67575871aca25f6b448831183851656d95cee5af773ac7b2a1f7f887f6d874d6
+SIZE (imhex/btzy-nativefiledialog-extended-6967d28_GH0.tar.gz) = 412145
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-eda13b2_GH0.tar.gz) = 4f7d3c39592c2cc53b1ded6e077b053a1c1a8017ba8b0902197fac65298c40ae
-SIZE (imhex/WerWolv-ImHex-Patterns-eda13b2_GH0.tar.gz) = 4666034
-SHA256 (imhex/WerWolv-PatternLanguage-a8c4479_GH0.tar.gz) = a1afee4cb170377296f7d8e4b123e3009cd0054bdb1f52d8011dd297e1afcb60
-SIZE (imhex/WerWolv-PatternLanguage-a8c4479_GH0.tar.gz) = 269760
-SHA256 (imhex/WerWolv-libromfs-58757f6_GH0.tar.gz) = be53d72ac61c75cfb1b6f0cd8d961ab4a25b1cae95c43aae9a67feb0f185e3a1
-SIZE (imhex/WerWolv-libromfs-58757f6_GH0.tar.gz) = 3864
+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-libromfs-8c8556d_GH0.tar.gz) = 46364edcf21a4cbe7c48094e755751aa03704a9c1efe3be5add5f52a15690474
+SIZE (imhex/WerWolv-libromfs-8c8556d_GH0.tar.gz) = 3868
diff --git a/editors/imhex/files/patch-cmake_build__helpers.cmake b/editors/imhex/files/patch-cmake_build__helpers.cmake
index 0d0d1a798f82..658333ed0c52 100644
--- a/editors/imhex/files/patch-cmake_build__helpers.cmake
+++ b/editors/imhex/files/patch-cmake_build__helpers.cmake
@@ -1,6 +1,6 @@
---- cmake/build_helpers.cmake.orig 2022-08-05 10:52:34 UTC
+--- cmake/build_helpers.cmake.orig 2022-08-14 12:54:20 UTC
+++ cmake/build_helpers.cmake
-@@ -352,17 +352,9 @@ function(downloadImHexPatternsFiles dest)
+@@ -367,17 +367,9 @@ function(downloadImHexPatternsFiles dest)
set(PATTERNS_BRANCH ImHex-v${IMHEX_VERSION})
endif ()
@@ -19,7 +19,7 @@
endforeach ()
endif ()
-@@ -370,7 +362,6 @@ endfunction()
+@@ -385,7 +377,6 @@ endfunction()
macro(setupCompilerWarnings target)
set(IMHEX_COMMON_FLAGS "-Wall -Wextra -Werror")
diff --git a/editors/imhex/files/patch-lib_external_libromfs_generator_include_embedder.hpp b/editors/imhex/files/patch-lib_external_libromfs_generator_include_embedder.hpp
deleted file mode 100644
index 3abd57283287..000000000000
--- a/editors/imhex/files/patch-lib_external_libromfs_generator_include_embedder.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
---- lib/external/libromfs/generator/include/embedder.hpp.orig 2022-07-07 16:28:45 UTC
-+++ lib/external/libromfs/generator/include/embedder.hpp
-@@ -20,13 +20,13 @@ R"embedder(
-
- #define RESOURCE(name, path) \
- __asm__ ( \
-- ".global _" #name "\n" \
-- ".global _" #name "_size\n" \
-- "_" #name ":\n" \
-+ ".global " #name "\n" \
-+ ".global " #name "_size\n" \
-+ #name ":\n" \
- ".incbin \"" path "\"\n" \
- ".align 8\n" \
-- "_" #name "_size:\n" \
-- ".int _" #name "_size - _" #name " - 1\n" \
-+ #name "_size:\n" \
-+ ".int " #name "_size - " #name " - 1\n" \
- ".align 8\n" \
- )
-
diff --git a/editors/imhex/files/patch-lib_external_pattern__language_lib_CMakeLists.txt b/editors/imhex/files/patch-lib_external_pattern__language_lib_CMakeLists.txt
new file mode 100644
index 000000000000..871b7d4466b3
--- /dev/null
+++ b/editors/imhex/files/patch-lib_external_pattern__language_lib_CMakeLists.txt
@@ -0,0 +1,11 @@
+--- lib/external/pattern_language/lib/CMakeLists.txt.orig 2022-08-18 14:28:54 UTC
++++ lib/external/pattern_language/lib/CMakeLists.txt
+@@ -1,7 +1,7 @@
+ cmake_minimum_required(VERSION 3.16)
+ project(libpl)
+
+-set(CMAKE_CXX_STANDARD 20)
++set(CMAKE_CXX_STANDARD 23)
+
+ if (LIBPL_SHARED_LIBRARY)
+ set(LIBRARY_TYPE SHARED)
diff --git a/editors/imhex/files/patch-lib_external_pattern__language_lib_include_pl_core_ast_ast__node__bitfield.hpp b/editors/imhex/files/patch-lib_external_pattern__language_lib_include_pl_core_ast_ast__node__bitfield.hpp
new file mode 100644
index 000000000000..cc4198d9685b
--- /dev/null
+++ b/editors/imhex/files/patch-lib_external_pattern__language_lib_include_pl_core_ast_ast__node__bitfield.hpp
@@ -0,0 +1,11 @@
+--- lib/external/pattern_language/lib/include/pl/core/ast/ast_node_bitfield.hpp.orig 2022-08-18 14:31:33 UTC
++++ lib/external/pattern_language/lib/include/pl/core/ast/ast_node_bitfield.hpp
+@@ -86,7 +86,6 @@ namespace pl::core::ast {
+
+ private:
+ std::vector<std::unique_ptr<ASTNode>> m_entries;
+- mutable size_t m_bitOffset = 0x00;
+ };
+
+ }
+\ No newline at end of file
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
new file mode 100644
index 000000000000..3ea7d313dc01
--- /dev/null
+++ b/editors/imhex/files/patch-lib_external_pattern__language_lib_include_pl_core_token.hpp
@@ -0,0 +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
+@@ -153,9 +153,9 @@ namespace pl::core {
+
+ using Literal = std::variant<char, bool, u128, i128, double, std::string, ptrn::Pattern *>;
+ using ValueTypes = std::variant<Keyword, Identifier, Operator, Literal, ValueType, Separator>;
++ // 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 {
+
+ 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-lib_external_pattern__language_lib_include_pl_token.hpp b/editors/imhex/files/patch-lib_external_pattern__language_lib_include_pl_token.hpp
deleted file mode 100644
index d8832acb9a55..000000000000
--- a/editors/imhex/files/patch-lib_external_pattern__language_lib_include_pl_token.hpp
+++ /dev/null
@@ -1,235 +0,0 @@
---- lib/external/pattern_language/lib/include/pl/token.hpp.orig 2022-07-26 16:45:45 UTC
-+++ lib/external/pattern_language/lib/include/pl/token.hpp
-@@ -148,9 +148,9 @@ namespace pl {
-
- using Literal = std::variant<char, bool, u128, i128, double, std::string, Pattern *>;
- using ValueTypes = std::variant<Keyword, Identifier, Operator, Literal, ValueType, Separator>;
-+ // 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);
- }
-@@ -306,128 +306,128 @@ namespace pl {
-
- namespace tkn {
-
-- constexpr inline Token createToken(const pl::Token::Type type, const pl::Token::ValueTypes &value) {
-+ inline Token createToken(const pl::Token::Type type, const pl::Token::ValueTypes &value) {
- return { type, value, 0, 0 };
- }
-
- namespace Keyword {
-
-- constexpr auto If = createToken(pl::Token::Type::Keyword, Token::Keyword::If);
-- constexpr auto Else = createToken(pl::Token::Type::Keyword, Token::Keyword::Else);
-- constexpr auto While = createToken(pl::Token::Type::Keyword, Token::Keyword::While);
-- constexpr auto For = createToken(pl::Token::Type::Keyword, Token::Keyword::For);
-- constexpr auto Return = createToken(pl::Token::Type::Keyword, Token::Keyword::Return);
-- constexpr auto Break = createToken(pl::Token::Type::Keyword, Token::Keyword::Break);
-- constexpr auto Continue = createToken(pl::Token::Type::Keyword, Token::Keyword::Continue);
-- constexpr auto Struct = createToken(pl::Token::Type::Keyword, Token::Keyword::Struct);
-- constexpr auto Enum = createToken(pl::Token::Type::Keyword, Token::Keyword::Enum);
-- constexpr auto Union = createToken(pl::Token::Type::Keyword, Token::Keyword::Union);
-- constexpr auto Function = createToken(pl::Token::Type::Keyword, Token::Keyword::Function);
-- constexpr auto Bitfield = createToken(pl::Token::Type::Keyword, Token::Keyword::Bitfield);
-- constexpr auto LittleEndian = createToken(pl::Token::Type::Keyword, Token::Keyword::LittleEndian);
-- constexpr auto BigEndian = createToken(pl::Token::Type::Keyword, Token::Keyword::BigEndian);
-- constexpr auto Parent = createToken(pl::Token::Type::Keyword, Token::Keyword::Parent);
-- constexpr auto Namespace = createToken(pl::Token::Type::Keyword, Token::Keyword::Namespace);
-- constexpr auto Using = createToken(pl::Token::Type::Keyword, Token::Keyword::Using);
-- constexpr auto This = createToken(pl::Token::Type::Keyword, Token::Keyword::This);
-- constexpr auto In = createToken(pl::Token::Type::Keyword, Token::Keyword::In);
-- constexpr auto Out = createToken(pl::Token::Type::Keyword, Token::Keyword::Out);
-+ inline auto If = createToken(pl::Token::Type::Keyword, Token::Keyword::If);
-+ inline auto Else = createToken(pl::Token::Type::Keyword, Token::Keyword::Else);
-+ inline auto While = createToken(pl::Token::Type::Keyword, Token::Keyword::While);
-+ inline auto For = createToken(pl::Token::Type::Keyword, Token::Keyword::For);
-+ inline auto Return = createToken(pl::Token::Type::Keyword, Token::Keyword::Return);
-+ inline auto Break = createToken(pl::Token::Type::Keyword, Token::Keyword::Break);
-+ inline auto Continue = createToken(pl::Token::Type::Keyword, Token::Keyword::Continue);
-+ inline auto Struct = createToken(pl::Token::Type::Keyword, Token::Keyword::Struct);
-+ inline auto Enum = createToken(pl::Token::Type::Keyword, Token::Keyword::Enum);
-+ inline auto Union = createToken(pl::Token::Type::Keyword, Token::Keyword::Union);
-+ inline auto Function = createToken(pl::Token::Type::Keyword, Token::Keyword::Function);
-+ inline auto Bitfield = createToken(pl::Token::Type::Keyword, Token::Keyword::Bitfield);
-+ inline auto LittleEndian = createToken(pl::Token::Type::Keyword, Token::Keyword::LittleEndian);
-+ inline auto BigEndian = createToken(pl::Token::Type::Keyword, Token::Keyword::BigEndian);
-+ inline auto Parent = createToken(pl::Token::Type::Keyword, Token::Keyword::Parent);
-+ inline auto Namespace = createToken(pl::Token::Type::Keyword, Token::Keyword::Namespace);
-+ inline auto Using = createToken(pl::Token::Type::Keyword, Token::Keyword::Using);
-+ inline auto This = createToken(pl::Token::Type::Keyword, Token::Keyword::This);
-+ inline auto In = createToken(pl::Token::Type::Keyword, Token::Keyword::In);
-+ inline auto Out = createToken(pl::Token::Type::Keyword, Token::Keyword::Out);
-
- }
-
- namespace Literal {
-
-- constexpr auto Identifier = [](const std::string &name = { }) -> Token { return createToken(pl::Token::Type::Identifier, Token::Identifier(name)); };
-- constexpr auto Numeric = [](const Token::Literal &value = { }) -> Token { return createToken(pl::Token::Type::Integer, value); };
-- constexpr auto String = [](const std::string &value = { }) -> Token { return createToken(pl::Token::Type::String, Token::Literal(value)); };
-+ inline auto Identifier = [](const std::string &name = { }) -> Token { return createToken(pl::Token::Type::Identifier, Token::Identifier(name)); };
-+ inline auto Numeric = [](const Token::Literal &value = { }) -> Token { return createToken(pl::Token::Type::Integer, value); };
-+ inline auto String = [](const std::string &value = { }) -> Token { return createToken(pl::Token::Type::String, Token::Literal(value)); };
-
- }
-
- namespace Operator {
-
-- constexpr auto Plus = createToken(pl::Token::Type::Operator, Token::Operator::Plus);
-- constexpr auto Minus = createToken(pl::Token::Type::Operator, Token::Operator::Minus);
-- constexpr auto Star = createToken(pl::Token::Type::Operator, Token::Operator::Star);
-- constexpr auto Slash = createToken(pl::Token::Type::Operator, Token::Operator::Slash);
-- constexpr auto Percent = createToken(pl::Token::Type::Operator, Token::Operator::Percent);
-- constexpr auto LeftShift = createToken(pl::Token::Type::Operator, Token::Operator::LeftShift);
-- constexpr auto RightShift = createToken(pl::Token::Type::Operator, Token::Operator::RightShift);
-- constexpr auto BitAnd = createToken(pl::Token::Type::Operator, Token::Operator::BitAnd);
-- constexpr auto BitOr = createToken(pl::Token::Type::Operator, Token::Operator::BitOr);
-- constexpr auto BitXor = createToken(pl::Token::Type::Operator, Token::Operator::BitXor);
-- constexpr auto BitNot = createToken(pl::Token::Type::Operator, Token::Operator::BitNot);
-- constexpr auto BoolEqual = createToken(pl::Token::Type::Operator, Token::Operator::BoolEqual);
-- constexpr auto BoolNotEqual = createToken(pl::Token::Type::Operator, Token::Operator::BoolNotEqual);
-- constexpr auto BoolLessThan = createToken(pl::Token::Type::Operator, Token::Operator::BoolLessThan);
-- constexpr auto BoolGreaterThan = createToken(pl::Token::Type::Operator, Token::Operator::BoolGreaterThan);
-- constexpr auto BoolLessThanOrEqual = createToken(pl::Token::Type::Operator, Token::Operator::BoolLessThanOrEqual);
-- constexpr auto BoolGreaterThanOrEqual = createToken(pl::Token::Type::Operator, Token::Operator::BoolGreaterThanOrEqual);
-- constexpr auto BoolAnd = createToken(pl::Token::Type::Operator, Token::Operator::BoolAnd);
-- constexpr auto BoolOr = createToken(pl::Token::Type::Operator, Token::Operator::BoolOr);
-- constexpr auto BoolNot = createToken(pl::Token::Type::Operator, Token::Operator::BoolNot);
-- constexpr auto BoolXor = createToken(pl::Token::Type::Operator, Token::Operator::BoolXor);
-- constexpr auto Dollar = createToken(pl::Token::Type::Operator, Token::Operator::Dollar);
-- constexpr auto Colon = createToken(pl::Token::Type::Operator, Token::Operator::Colon);
-- constexpr auto ScopeResolution = createToken(pl::Token::Type::Operator, Token::Operator::ScopeResolution);
-- constexpr auto TernaryConditional = createToken(pl::Token::Type::Operator, Token::Operator::TernaryConditional);
-- constexpr auto AddressOf = createToken(pl::Token::Type::Operator, Token::Operator::AddressOf);
-- constexpr auto SizeOf = createToken(pl::Token::Type::Operator, Token::Operator::SizeOf);
-- constexpr auto At = createToken(pl::Token::Type::Operator, Token::Operator::At);
-- constexpr auto Assign = createToken(pl::Token::Type::Operator, Token::Operator::Assign);
-+ inline auto Plus = createToken(pl::Token::Type::Operator, Token::Operator::Plus);
-+ inline auto Minus = createToken(pl::Token::Type::Operator, Token::Operator::Minus);
-+ inline auto Star = createToken(pl::Token::Type::Operator, Token::Operator::Star);
-+ inline auto Slash = createToken(pl::Token::Type::Operator, Token::Operator::Slash);
-+ inline auto Percent = createToken(pl::Token::Type::Operator, Token::Operator::Percent);
-+ inline auto LeftShift = createToken(pl::Token::Type::Operator, Token::Operator::LeftShift);
-+ inline auto RightShift = createToken(pl::Token::Type::Operator, Token::Operator::RightShift);
-+ inline auto BitAnd = createToken(pl::Token::Type::Operator, Token::Operator::BitAnd);
-+ inline auto BitOr = createToken(pl::Token::Type::Operator, Token::Operator::BitOr);
-+ inline auto BitXor = createToken(pl::Token::Type::Operator, Token::Operator::BitXor);
-+ inline auto BitNot = createToken(pl::Token::Type::Operator, Token::Operator::BitNot);
-+ inline auto BoolEqual = createToken(pl::Token::Type::Operator, Token::Operator::BoolEqual);
-+ inline auto BoolNotEqual = createToken(pl::Token::Type::Operator, Token::Operator::BoolNotEqual);
-+ inline auto BoolLessThan = createToken(pl::Token::Type::Operator, Token::Operator::BoolLessThan);
-+ inline auto BoolGreaterThan = createToken(pl::Token::Type::Operator, Token::Operator::BoolGreaterThan);
-+ inline auto BoolLessThanOrEqual = createToken(pl::Token::Type::Operator, Token::Operator::BoolLessThanOrEqual);
-+ inline auto BoolGreaterThanOrEqual = createToken(pl::Token::Type::Operator, Token::Operator::BoolGreaterThanOrEqual);
-+ inline auto BoolAnd = createToken(pl::Token::Type::Operator, Token::Operator::BoolAnd);
-+ inline auto BoolOr = createToken(pl::Token::Type::Operator, Token::Operator::BoolOr);
-+ inline auto BoolNot = createToken(pl::Token::Type::Operator, Token::Operator::BoolNot);
-+ inline auto BoolXor = createToken(pl::Token::Type::Operator, Token::Operator::BoolXor);
-+ inline auto Dollar = createToken(pl::Token::Type::Operator, Token::Operator::Dollar);
-+ inline auto Colon = createToken(pl::Token::Type::Operator, Token::Operator::Colon);
-+ inline auto ScopeResolution = createToken(pl::Token::Type::Operator, Token::Operator::ScopeResolution);
-+ inline auto TernaryConditional = createToken(pl::Token::Type::Operator, Token::Operator::TernaryConditional);
-+ inline auto AddressOf = createToken(pl::Token::Type::Operator, Token::Operator::AddressOf);
-+ inline auto SizeOf = createToken(pl::Token::Type::Operator, Token::Operator::SizeOf);
-+ inline auto At = createToken(pl::Token::Type::Operator, Token::Operator::At);
-+ inline auto Assign = createToken(pl::Token::Type::Operator, Token::Operator::Assign);
-
- }
-
- namespace ValueType {
-
-- constexpr auto CustomType = createToken(pl::Token::Type::ValueType, Token::ValueType::CustomType);
-- constexpr auto Padding = createToken(pl::Token::Type::ValueType, Token::ValueType::Padding);
-- constexpr auto Unsigned = createToken(pl::Token::Type::ValueType, Token::ValueType::Unsigned);
-- constexpr auto Signed = createToken(pl::Token::Type::ValueType, Token::ValueType::Signed);
-- constexpr auto FloatingPoint = createToken(pl::Token::Type::ValueType, Token::ValueType::FloatingPoint);
-- constexpr auto Auto = createToken(pl::Token::Type::ValueType, Token::ValueType::Auto);
-- constexpr auto Any = createToken(pl::Token::Type::ValueType, Token::ValueType::Any);
-+ inline auto CustomType = createToken(pl::Token::Type::ValueType, Token::ValueType::CustomType);
-+ inline auto Padding = createToken(pl::Token::Type::ValueType, Token::ValueType::Padding);
-+ inline auto Unsigned = createToken(pl::Token::Type::ValueType, Token::ValueType::Unsigned);
-+ inline auto Signed = createToken(pl::Token::Type::ValueType, Token::ValueType::Signed);
-+ inline auto FloatingPoint = createToken(pl::Token::Type::ValueType, Token::ValueType::FloatingPoint);
-+ inline auto Auto = createToken(pl::Token::Type::ValueType, Token::ValueType::Auto);
-+ inline auto Any = createToken(pl::Token::Type::ValueType, Token::ValueType::Any);
-
-- constexpr auto Unsigned8Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Unsigned8Bit);
-- constexpr auto Unsigned16Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Unsigned16Bit);
-- constexpr auto Unsigned24Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Unsigned24Bit);
-- constexpr auto Unsigned32Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Unsigned32Bit);
-- constexpr auto Unsigned48Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Unsigned48Bit);
-- constexpr auto Unsigned64Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Unsigned64Bit);
-- constexpr auto Unsigned96Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Unsigned96Bit);
-- constexpr auto Unsigned128Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Unsigned128Bit);
-+ inline auto Unsigned8Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Unsigned8Bit);
-+ inline auto Unsigned16Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Unsigned16Bit);
-+ inline auto Unsigned24Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Unsigned24Bit);
-+ inline auto Unsigned32Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Unsigned32Bit);
-+ inline auto Unsigned48Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Unsigned48Bit);
-+ inline auto Unsigned64Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Unsigned64Bit);
-+ inline auto Unsigned96Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Unsigned96Bit);
-+ inline auto Unsigned128Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Unsigned128Bit);
-
-- constexpr auto Signed8Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Signed8Bit);
-- constexpr auto Signed16Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Signed16Bit);
-- constexpr auto Signed24Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Signed24Bit);
-- constexpr auto Signed32Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Signed32Bit);
-- constexpr auto Signed48Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Signed48Bit);
-- constexpr auto Signed64Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Signed64Bit);
-- constexpr auto Signed96Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Signed96Bit);
-- constexpr auto Signed128Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Signed128Bit);
-+ inline auto Signed8Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Signed8Bit);
-+ inline auto Signed16Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Signed16Bit);
-+ inline auto Signed24Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Signed24Bit);
-+ inline auto Signed32Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Signed32Bit);
-+ inline auto Signed48Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Signed48Bit);
-+ inline auto Signed64Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Signed64Bit);
-+ inline auto Signed96Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Signed96Bit);
-+ inline auto Signed128Bit = createToken(pl::Token::Type::ValueType, Token::ValueType::Signed128Bit);
-
-- constexpr auto Float = createToken(pl::Token::Type::ValueType, Token::ValueType::Float);
-- constexpr auto Double = createToken(pl::Token::Type::ValueType, Token::ValueType::Double);
-+ inline auto Float = createToken(pl::Token::Type::ValueType, Token::ValueType::Float);
-+ inline auto Double = createToken(pl::Token::Type::ValueType, Token::ValueType::Double);
-
-- constexpr auto Boolean = createToken(pl::Token::Type::ValueType, Token::ValueType::Boolean);
-+ inline auto Boolean = createToken(pl::Token::Type::ValueType, Token::ValueType::Boolean);
-
-- constexpr auto Character = createToken(pl::Token::Type::ValueType, Token::ValueType::Character);
-- constexpr auto Character16 = createToken(pl::Token::Type::ValueType, Token::ValueType::Character16);
-- constexpr auto String = createToken(pl::Token::Type::ValueType, Token::ValueType::String);
-+ inline auto Character = createToken(pl::Token::Type::ValueType, Token::ValueType::Character);
-+ inline auto Character16 = createToken(pl::Token::Type::ValueType, Token::ValueType::Character16);
-+ inline auto String = createToken(pl::Token::Type::ValueType, Token::ValueType::String);
-
- }
-
- namespace Separator {
-
-- constexpr auto Comma = createToken(pl::Token::Type::Separator, Token::Separator::Comma);
-- constexpr auto LeftParenthesis = createToken(pl::Token::Type::Separator, Token::Separator::LeftParenthesis);
-- constexpr auto RightParenthesis = createToken(pl::Token::Type::Separator, Token::Separator::RightParenthesis);
-- constexpr auto LeftBracket = createToken(pl::Token::Type::Separator, Token::Separator::LeftBracket);
-- constexpr auto RightBracket = createToken(pl::Token::Type::Separator, Token::Separator::RightBracket);
-- constexpr auto LeftBrace = createToken(pl::Token::Type::Separator, Token::Separator::LeftBrace);
-- constexpr auto RightBrace = createToken(pl::Token::Type::Separator, Token::Separator::RightBrace);
-- constexpr auto Dot = createToken(pl::Token::Type::Separator, Token::Separator::Dot);
-- constexpr auto Semicolon = createToken(pl::Token::Type::Separator, Token::Separator::Semicolon);
-- constexpr auto EndOfProgram = createToken(pl::Token::Type::Separator, Token::Separator::EndOfProgram);
-+ inline auto Comma = createToken(pl::Token::Type::Separator, Token::Separator::Comma);
-+ inline auto LeftParenthesis = createToken(pl::Token::Type::Separator, Token::Separator::LeftParenthesis);
-+ inline auto RightParenthesis = createToken(pl::Token::Type::Separator, Token::Separator::RightParenthesis);
-+ inline auto LeftBracket = createToken(pl::Token::Type::Separator, Token::Separator::LeftBracket);
-+ inline auto RightBracket = createToken(pl::Token::Type::Separator, Token::Separator::RightBracket);
-+ inline auto LeftBrace = createToken(pl::Token::Type::Separator, Token::Separator::LeftBrace);
-+ inline auto RightBrace = createToken(pl::Token::Type::Separator, Token::Separator::RightBrace);
-+ inline auto Dot = createToken(pl::Token::Type::Separator, Token::Separator::Dot);
-+ inline auto Semicolon = createToken(pl::Token::Type::Separator, Token::Separator::Semicolon);
-+ inline auto EndOfProgram = createToken(pl::Token::Type::Separator, Token::Separator::EndOfProgram);
-
- }
-
diff --git a/editors/imhex/files/patch-lib_external_pattern__language_lib_source_helpers_file.cpp b/editors/imhex/files/patch-lib_external_pattern__language_lib_source_pl_helpers_file.cpp
index 571fabd78504..493d143c3cf4 100644
--- a/editors/imhex/files/patch-lib_external_pattern__language_lib_source_helpers_file.cpp
+++ b/editors/imhex/files/patch-lib_external_pattern__language_lib_source_pl_helpers_file.cpp
@@ -1,6 +1,6 @@
---- lib/external/pattern_language/lib/source/helpers/file.cpp.orig 2022-07-05 14:00:57 UTC
-+++ lib/external/pattern_language/lib/source/helpers/file.cpp
-@@ -20,12 +20,12 @@ namespace pl::fs {
+--- lib/external/pattern_language/lib/source/pl/helpers/file.cpp.orig 2022-08-14 15:37:26 UTC
++++ lib/external/pattern_language/lib/source/pl/helpers/file.cpp
+@@ -19,12 +19,12 @@ namespace pl::hlp::fs {
this->m_file = _wfopen(path.c_str(), L"w+b");
#else
if (mode == File::Mode::Read)
@@ -16,7 +16,7 @@
#endif
}
-@@ -53,7 +53,7 @@ namespace pl::fs {
+@@ -52,7 +52,7 @@ namespace pl::hlp::fs {
void File::seek(u64 offset) {
@@ -25,7 +25,7 @@
}
void File::close() {
-@@ -138,10 +138,10 @@ namespace pl::fs {
+@@ -137,10 +137,10 @@ namespace pl::hlp::fs {
size_t File::getSize() const {
if (!isValid()) return 0;
@@ -40,12 +40,12 @@
if (size < 0)
return 0;
-@@ -152,7 +152,7 @@ namespace pl::fs {
+@@ -151,7 +151,7 @@ namespace pl::hlp::fs {
void File::setSize(u64 size) {
if (!isValid()) return;
- auto result = ftruncate64(fileno(this->m_file), size);
+ auto result = ftruncate(fileno(this->m_file), size);
- pl::unused(result);
+ hlp::unused(result);
}
diff --git a/editors/imhex/files/patch-lib_external_pattern__language_lib_source_pl_libstd_string.cpp b/editors/imhex/files/patch-lib_external_pattern__language_lib_source_pl_lib_std_string.cpp
index 585fca11d7d1..9c419ffccee2 100644
--- a/editors/imhex/files/patch-lib_external_pattern__language_lib_source_pl_libstd_string.cpp
+++ b/editors/imhex/files/patch-lib_external_pattern__language_lib_source_pl_lib_std_string.cpp
@@ -1,6 +1,6 @@
---- lib/external/pattern_language/lib/source/pl/libstd/string.cpp.orig 2022-07-05 14:26:01 UTC
-+++ lib/external/pattern_language/lib/source/pl/libstd/string.cpp
-@@ -33,7 +33,7 @@ namespace pl::libstd::string {
+--- lib/external/pattern_language/lib/source/pl/lib/std/string.cpp.orig 2022-08-14 15:35:34 UTC
++++ lib/external/pattern_language/lib/source/pl/lib/std/string.cpp
+@@ -35,7 +35,7 @@ namespace pl::lib::libstd::string {
const auto signIndex = index >> (sizeof(index) * 8 - 1);
const auto absIndex = (index ^ signIndex) - signIndex;
#else
diff --git a/editors/imhex/files/patch-lib_libimhex_CMakeLists.txt b/editors/imhex/files/patch-lib_libimhex_CMakeLists.txt
index 1aa13a5835d3..cc5d449b4c4b 100644
--- a/editors/imhex/files/patch-lib_libimhex_CMakeLists.txt
+++ b/editors/imhex/files/patch-lib_libimhex_CMakeLists.txt
@@ -1,10 +1,10 @@
---- lib/libimhex/CMakeLists.txt.orig 2022-08-05 10:52:34 UTC
+--- lib/libimhex/CMakeLists.txt.orig 2022-08-14 12:54:20 UTC
+++ lib/libimhex/CMakeLists.txt
-@@ -10,7 +10,6 @@ set_target_properties(imgui PROPERTIES POSITION_INDEPE
- add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../external/microtar ${CMAKE_CURRENT_BINARY_DIR}/external/microtar EXCLUDE_FROM_ALL)
- set_target_properties(microtar PROPERTIES POSITION_INDEPENDENT_CODE ON)
+@@ -26,7 +26,6 @@ set(FPHSA_NAME_MISMATCHED ON CACHE BOOL "")
+ find_package(PkgConfig REQUIRED)
--set(NFD_PORTAL ON CACHE BOOL "Use Portals for Linux file dialogs" FORCE)
- set(NFD_USE_ALLOWEDCONTENTTYPES OFF CACHE BOOL "Disable allowedContentTypes for macOS file dialogs" FORCE)
- add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../external/nativefiledialog ${CMAKE_CURRENT_BINARY_DIR}/external/nativefiledialog EXCLUDE_FROM_ALL)
- set_target_properties(nfd PROPERTIES POSITION_INDEPENDENT_CODE ON)
+ if (NOT USE_SYSTEM_NFD)
+- set(NFD_PORTAL ON CACHE BOOL "Use Portals for Linux file dialogs" FORCE)
+ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../external/nativefiledialog ${CMAKE_CURRENT_BINARY_DIR}/external/nativefiledialog EXCLUDE_FROM_ALL)
+ set_target_properties(nfd PROPERTIES POSITION_INDEPENDENT_CODE ON)
+ set(NFD_LIBRARIES nfd)
diff --git a/editors/imhex/files/patch-lib_libimhex_include_hex_data__processor_node.hpp b/editors/imhex/files/patch-lib_libimhex_include_hex_data__processor_node.hpp
new file mode 100644
index 000000000000..a42bdab95f2b
--- /dev/null
+++ b/editors/imhex/files/patch-lib_libimhex_include_hex_data__processor_node.hpp
@@ -0,0 +1,10 @@
+--- lib/libimhex/include/hex/data_processor/node.hpp.orig 2022-08-14 15:02:06 UTC
++++ lib/libimhex/include/hex/data_processor/node.hpp
+@@ -45,6 +45,7 @@ namespace hex::dp {
+ struct NodeError {
+ Node *node;
+ std::string message;
++ NodeError(Node *n, std::string m) : node(n), message(m) {};
+ };
+
+ void resetOutputData() {
diff --git a/editors/imhex/files/patch-lib_libimhex_source_api_imhex__api.cpp b/editors/imhex/files/patch-lib_libimhex_source_api_imhex__api.cpp
new file mode 100644
index 000000000000..a38d2f10790f
--- /dev/null
+++ b/editors/imhex/files/patch-lib_libimhex_source_api_imhex__api.cpp
@@ -0,0 +1,19 @@
+--- lib/libimhex/source/api/imhex_api.cpp.orig 2022-08-17 21:25:52 UTC
++++ lib/libimhex/source/api/imhex_api.cpp
+@@ -4,6 +4,7 @@
+ #include <hex/api/event.hpp>
+ #include <hex/providers/provider.hpp>
+
++#include <range/v3/algorithm.hpp>
+ #include <utility>
+ #include <unistd.h>
+
+@@ -260,7 +261,7 @@ namespace hex {
+ }
+
+ bool isDirty() {
+- return std::ranges::any_of(s_providers, [](const auto &provider) {
++ return ranges::any_of(s_providers, [](const auto &provider) {
+ return provider->isDirty();
+ });
+ }
diff --git a/editors/imhex/files/patch-lib_libimhex_source_helpers_file.cpp b/editors/imhex/files/patch-lib_libimhex_source_helpers_file.cpp
index 2373a25e000c..f0d74435b58e 100644
--- a/editors/imhex/files/patch-lib_libimhex_source_helpers_file.cpp
+++ b/editors/imhex/files/patch-lib_libimhex_source_helpers_file.cpp
@@ -1,6 +1,6 @@
---- lib/libimhex/source/helpers/file.cpp.orig 2022-07-04 19:53:18 UTC
+--- lib/libimhex/source/helpers/file.cpp.orig 2022-08-17 21:25:52 UTC
+++ lib/libimhex/source/helpers/file.cpp
-@@ -16,12 +16,12 @@ namespace hex::fs {
+@@ -17,12 +17,12 @@ namespace hex::fs {
this->m_file = _wfopen(path.c_str(), L"w+b");
#else
if (mode == File::Mode::Read)
@@ -16,7 +16,7 @@
#endif
}
-@@ -49,7 +49,7 @@ namespace hex::fs {
+@@ -50,7 +50,7 @@ namespace hex::fs {
void File::seek(u64 offset) {
@@ -25,7 +25,7 @@
}
void File::close() {
-@@ -134,10 +134,10 @@ namespace hex::fs {
+@@ -135,10 +135,10 @@ namespace hex::fs {
size_t File::getSize() const {
if (!isValid()) return 0;
@@ -40,7 +40,7 @@
if (size < 0)
return 0;
-@@ -148,7 +148,7 @@ namespace hex::fs {
+@@ -149,7 +149,7 @@ namespace hex::fs {
void File::setSize(u64 size) {
if (!isValid()) return;
diff --git a/editors/imhex/files/patch-main_source_init_tasks.cpp b/editors/imhex/files/patch-main_source_init_tasks.cpp
new file mode 100644
index 000000000000..97f2f64982b8
--- /dev/null
+++ b/editors/imhex/files/patch-main_source_init_tasks.cpp
@@ -0,0 +1,20 @@
+--- main/source/init/tasks.cpp.orig 2022-08-20 13:59:16 UTC
++++ main/source/init/tasks.cpp
+@@ -4,6 +4,7 @@
+ #include <imgui_freetype.h>
+
+ #include <hex/api/content_registry.hpp>
++#include <hex/api/project_file_manager.hpp>
+ #include <hex/ui/view.hpp>
+ #include <hex/helpers/net.hpp>
+ #include <hex/helpers/fs.hpp>
+@@ -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_providers_disk__provider.cpp b/editors/imhex/files/patch-plugins_builtin_source_content_providers_disk__provider.cpp
index 058bc825f254..2269f67780d5 100644
--- a/editors/imhex/files/patch-plugins_builtin_source_content_providers_disk__provider.cpp
+++ b/editors/imhex/files/patch-plugins_builtin_source_content_providers_disk__provider.cpp
@@ -1,12 +1,13 @@
---- plugins/builtin/source/content/providers/disk_provider.cpp.orig 2022-03-03 13:32:30 UTC
+--- plugins/builtin/source/content/providers/disk_provider.cpp.orig 2022-08-14 12:54:20 UTC
+++ plugins/builtin/source/content/providers/disk_provider.cpp
-@@ -17,7 +17,9 @@
+@@ -18,8 +18,9 @@
#include <sys/stat.h>
#include <sys/types.h>
+# if !defined(__FreeBSD__)
#define lseek lseek64
+-
+# endif
#elif defined(OS_MACOS)
+
#include <fcntl.h>
- #include <unistd.h>
diff --git a/editors/imhex/files/patch-plugins_builtin_source_content_views_view__find.cpp b/editors/imhex/files/patch-plugins_builtin_source_content_views_view__find.cpp
index 1d4e2b2cf385..f05750165eea 100644
--- a/editors/imhex/files/patch-plugins_builtin_source_content_views_view__find.cpp
+++ b/editors/imhex/files/patch-plugins_builtin_source_content_views_view__find.cpp
@@ -1,6 +1,6 @@
---- plugins/builtin/source/content/views/view_find.cpp.orig 2022-08-05 19:36:42 UTC
+--- plugins/builtin/source/content/views/view_find.cpp.orig 2022-08-17 21:25:52 UTC
+++ plugins/builtin/source/content/views/view_find.cpp
-@@ -247,7 +247,7 @@ namespace hex::plugin::builtin {
+@@ -236,7 +236,7 @@ namespace hex::plugin::builtin {
auto sequence = hex::decodeByteString(settings.sequence);
auto occurrence = reader.begin();
while (true) {
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 57f838771c5e..211e587b0096 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,6 +1,6 @@
---- plugins/builtin/source/content/views/view_hex_editor.cpp.orig 2022-07-26 14:13:07 UTC
+--- 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
-@@ -208,7 +208,7 @@ namespace hex::plugin::builtin {
+@@ -250,7 +250,7 @@ namespace hex::plugin::builtin {
reader.seek(this->m_searchPosition.value_or(editor->getSelection().getStartAddress()));
constexpr static auto searchFunction = [](const auto &haystackBegin, const auto &haystackEnd, const auto &needleBegin, const auto &needleEnd) {
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
new file mode 100644
index 000000000000..59dc184fb2d7
--- /dev/null
+++ b/editors/imhex/files/patch-plugins_builtin_source_content_views_view__pattern__editor.cpp
@@ -0,0 +1,11 @@
+--- 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
new file mode 100644
index 000000000000..73a8ad7e7f02
--- /dev/null
+++ b/editors/imhex/files/patch-plugins_builtin_source_pattern__drawer.cpp
@@ -0,0 +1,11 @@
+--- 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 4e07839b195f..d04fe16cc826 100644
--- a/editors/imhex/pkg-plist
+++ b/editors/imhex/pkg-plist
@@ -1,5 +1,5 @@
bin/imhex
-lib/libimhex.so.1.20.0
+lib/libimhex.so.1.21.2
share/applications/imhex.desktop
%%DATADIR%%/constants/_schema.json
%%DATADIR%%/constants/crc16.json
@@ -31,6 +31,7 @@ share/applications/imhex.desktop
%%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
@@ -40,6 +41,7 @@ share/applications/imhex.desktop
%%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
@@ -60,6 +62,7 @@ share/applications/imhex.desktop
%%DATADIR%%/includes/type/ip.pat
%%DATADIR%%/includes/type/leb128.pat
%%DATADIR%%/includes/type/mac.pat
+%%DATADIR%%/includes/type/path.pat
%%DATADIR%%/includes/type/time.pat
%%DATADIR%%/magic/nintendo_switch_magic
%%DATADIR%%/magic/portable_executable_magic
@@ -69,6 +72,7 @@ share/applications/imhex.desktop
%%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