From da9ac1b547af048579422570620717bd5257958b Mon Sep 17 00:00:00 2001 From: Christian Parpart Date: Tue, 30 May 2023 01:58:12 +0200 Subject: [PATCH] wip Signed-off-by: Christian Parpart --- src/vtbackend/CMakeLists.txt | 1 + src/vtbackend/TerminalState.cpp | 6 +++--- src/vtbackend/TerminalState.h | 4 +++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/vtbackend/CMakeLists.txt b/src/vtbackend/CMakeLists.txt index 4ad0ab1cf1..039ef91b79 100644 --- a/src/vtbackend/CMakeLists.txt +++ b/src/vtbackend/CMakeLists.txt @@ -103,6 +103,7 @@ target_link_libraries(vtbackend PUBLIC fmt::fmt-header-only range-v3::range-v3 ${LIBUNICODE_LIBS} + regex_dfa vtparser vtpty ) diff --git a/src/vtbackend/TerminalState.cpp b/src/vtbackend/TerminalState.cpp index 7b1fb76a8d..b850815e5c 100644 --- a/src/vtbackend/TerminalState.cpp +++ b/src/vtbackend/TerminalState.cpp @@ -2,6 +2,8 @@ #include #include +#include + namespace terminal { @@ -16,9 +18,7 @@ TerminalState::TerminalState(Terminal& terminal): te->discardImage(*image); } }, hyperlinks { HyperlinkCache { 1024 } }, - urlPattern { settings.urlPattern, - std::regex_constants::ECMAScript | std::regex_constants::optimize - | std::regex_constants::icase }, + urlPattern { regex_dfa::RegExprParser {}.parse(settings.urlPattern) }, sequencer { terminal }, parser { std::ref(sequencer) }, viCommands { terminal }, diff --git a/src/vtbackend/TerminalState.h b/src/vtbackend/TerminalState.h index cc875dbcfa..7940465c25 100644 --- a/src/vtbackend/TerminalState.h +++ b/src/vtbackend/TerminalState.h @@ -18,6 +18,8 @@ #include +#include + #include #include @@ -194,7 +196,7 @@ struct TerminalState // Hyperlink related // HyperlinkStorage hyperlinks {}; - std::regex urlPattern; + regex_dfa::RegExpr urlPattern; std::string windowTitle {}; std::stack savedWindowTitles {};