From 60cce4e53d0e0153aefc11a2ef3bd4251dd0c77a 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 76f13b46d2..17aeab0726 100644 --- a/src/vtbackend/CMakeLists.txt +++ b/src/vtbackend/CMakeLists.txt @@ -104,6 +104,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 9b68045aa5..d612eb6607 100644 --- a/src/vtbackend/TerminalState.cpp +++ b/src/vtbackend/TerminalState.cpp @@ -15,6 +15,8 @@ #include #include +#include + namespace terminal { @@ -29,9 +31,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 4baec9f7d9..e9830a8279 100644 --- a/src/vtbackend/TerminalState.h +++ b/src/vtbackend/TerminalState.h @@ -30,6 +30,8 @@ #include +#include + #include #include @@ -206,7 +208,7 @@ struct TerminalState // Hyperlink related // HyperlinkStorage hyperlinks {}; - std::regex urlPattern; + regex_dfa::RegExpr urlPattern; std::string windowTitle {}; std::stack savedWindowTitles {};