[gedit/wip/search-fixes] Regex search: escape selection with g_regex_escape_string()



commit 80657e6f467fbf40961537d9fc8cb9771b138f15
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Wed Aug 28 14:05:16 2013 +0200

    Regex search: escape selection with g_regex_escape_string()

 gedit/gedit-replace-dialog.c |   11 ++++++++++-
 gedit/gedit-view-frame.c     |   11 ++++++++++-
 2 files changed, 20 insertions(+), 2 deletions(-)
---
diff --git a/gedit/gedit-replace-dialog.c b/gedit/gedit-replace-dialog.c
index 6ec132a..2845927 100644
--- a/gedit/gedit-replace-dialog.c
+++ b/gedit/gedit-replace-dialog.c
@@ -562,7 +562,16 @@ show_cb (GeditReplaceDialog *dialog)
 
        if (selection_exists && selection != NULL && selection_length < 80)
        {
-               gchar *escaped_selection = gtk_source_utils_escape_search_text (selection);
+               gchar *escaped_selection;
+
+               if (gtk_source_search_settings_get_regex_enabled (dialog->priv->search_settings))
+               {
+                       escaped_selection = g_regex_escape_string (selection, -1);
+               }
+               else
+               {
+                       escaped_selection = gtk_source_utils_escape_search_text (selection);
+               }
 
                gtk_entry_set_text (GTK_ENTRY (dialog->priv->search_text_entry),
                                    escaped_selection);
diff --git a/gedit/gedit-view-frame.c b/gedit/gedit-view-frame.c
index 5fe089d..07d3211 100644
--- a/gedit/gedit-view-frame.c
+++ b/gedit/gedit-view-frame.c
@@ -1232,7 +1232,16 @@ init_search_entry (GeditViewFrame *frame)
 
                if (selection_exists && (search_text != NULL) && (selection_len <= 160))
                {
-                       gchar *search_text_escaped = gtk_source_utils_escape_search_text (search_text);
+                       gchar *search_text_escaped;
+
+                       if (gtk_source_search_settings_get_regex_enabled (frame->priv->search_settings))
+                       {
+                               search_text_escaped = g_regex_escape_string (search_text, -1);
+                       }
+                       else
+                       {
+                               search_text_escaped = gtk_source_utils_escape_search_text (search_text);
+                       }
 
                        gtk_entry_set_text (GTK_ENTRY (frame->priv->search_entry),
                                            search_text_escaped);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]