diff --git a/guake/boxes.py b/guake/boxes.py index ef8fc189f..5093dac26 100644 --- a/guake/boxes.py +++ b/guake/boxes.py @@ -18,6 +18,7 @@ from guake.callbacks import TerminalContextMenuCallbacks from guake.dialogs import PromptResetColorsDialog from guake.dialogs import RenameDialog +from guake.globals import PCRE2_MULTILINE from guake.menus import mk_tab_context_menu from guake.menus import mk_terminal_context_menu from guake.utils import HidePrevention @@ -363,7 +364,7 @@ def on_search_entry_keypress(self, widget, event): self.search_prev = True def reset_term_search(self, term): - term.search_set_gregex(GLib.Regex("", 0, 0), 0) + term.search_set_regex(None, 0) term.search_find_next() def set_search(self, widget): @@ -378,9 +379,10 @@ def set_search(self, widget): # Set search regex on term self.searchstring = text - self.searchre = GLib.Regex(text, 0, 0) - term.search_set_gregex(self.searchre, 0) - + self.searchre = Vte.Regex.new_for_search( + text, -1, Vte.REGEX_FLAGS_DEFAULT | PCRE2_MULTILINE + ) + term.search_set_regex(self.searchre, 0) self.do_search(None) def do_search(self, widget): diff --git a/guake/globals.py b/guake/globals.py index c3269ec1b..fcc03264e 100644 --- a/guake/globals.py +++ b/guake/globals.py @@ -110,3 +110,7 @@ def is_run_from_git_workdir(): # Tabs session schema version TABS_SESSION_SCHEMA_VERSION = 2 + +# Constants for vte regex matching are documented in the pcre2 api: +# https://www.pcre.org/current/doc/html/pcre2api.html +PCRE2_MULTILINE = 0x00000400 diff --git a/releasenotes/notes/fix_search_vte0.46-b92145bc1e572521.yaml b/releasenotes/notes/fix_search_vte0.46-b92145bc1e572521.yaml new file mode 100644 index 000000000..33755a5fe --- /dev/null +++ b/releasenotes/notes/fix_search_vte0.46-b92145bc1e572521.yaml @@ -0,0 +1,3 @@ +fixes: + - | + Update search box to work with updated regex vte apis for v0.46+, #1752