Branch: refs/heads/document-messages Author: Nick Treleaven nick.treleaven@btinternet.com Committer: Nick Treleaven nick.treleaven@btinternet.com Date: Tue, 03 Jan 2012 16:21:12 Commit: f0ca50cf20995ed6faf7720e5e6134135c655cba https://github.com/geany/geany/commit/f0ca50cf20995ed6faf7720e5e6134135c655c...
Log Message: ----------- Fix showing Find/Replace regex errors on status bar
Modified Paths: -------------- src/search.c
Modified: src/search.c 15 files changed, 13 insertions(+), 2 deletions(-) =================================================================== @@ -150,6 +150,8 @@ enum
static gchar **search_get_argv(const gchar **argv_prefix, const gchar *dir);
+static GRegex *compile_regex(const gchar *str, gint sflags); +
static void on_find_replace_checkbutton_toggled(GtkToggleButton *togglebutton, gpointer user_data); @@ -1236,7 +1238,14 @@ gint search_mark_all(GeanyDocument *doc, const gchar *search_text, gint flags) gtk_widget_grab_focus(find_dlg.entry); return; } - if (settings.find_escape_sequences && ~search_data.flags & SCFIND_REGEXP) + if (search_data.flags & SCFIND_REGEXP) + { + GRegex *regex = compile_regex(search_data.text, search_data.flags); + g_regex_unref(regex); + if (!regex) + goto fail; + } + else if (settings.find_escape_sequences) { if (! utils_str_replace_escape(search_data.text, FALSE)) goto fail; @@ -1364,8 +1373,10 @@ static void replace_in_session(GeanyDocument *doc,
if (search_flags_re & SCFIND_REGEXP) { + GRegex *regex = compile_regex(find, search_flags_re); + g_regex_unref(regex); /* find escapes will be handled by GRegex */ - if (! utils_str_replace_escape(replace, TRUE)) + if (!regex || !utils_str_replace_escape(replace, TRUE)) goto fail; } else if (search_replace_escape_re)
@@ Diff output truncated at 100000 characters. @@
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: TBD).