[gedit] Regex search: do not unescape search text



commit 2589ef2a84ed5992663346776c0df68d22126384
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Wed Aug 28 13:55:54 2013 +0200

    Regex search: do not unescape search text
    
    \n, \t and \r are already supported by the regex search. No need to
    unescape those character sequences.

 gedit/gedit-replace-dialog.c |   19 +++++++++++++------
 gedit/gedit-view-frame.c     |   21 +++++++++++++--------
 2 files changed, 26 insertions(+), 14 deletions(-)
---
diff --git a/gedit/gedit-replace-dialog.c b/gedit/gedit-replace-dialog.c
index 2e305cb..6ec132a 100644
--- a/gedit/gedit-replace-dialog.c
+++ b/gedit/gedit-replace-dialog.c
@@ -475,18 +475,25 @@ search_text_entry_changed (GtkEditable        *editable,
                           GeditReplaceDialog *dialog)
 {
        const gchar *search_text;
-       gchar *unescaped_search_text;
 
        search_text = gtk_entry_get_text (GTK_ENTRY (editable));
 
-       unescaped_search_text = gtk_source_utils_unescape_search_text (search_text);
+       if (gtk_source_search_settings_get_regex_enabled (dialog->priv->search_settings))
+       {
+               gtk_source_search_settings_set_search_text (dialog->priv->search_settings,
+                                                           search_text);
+       }
+       else
+       {
+               gchar *unescaped_search_text = gtk_source_utils_unescape_search_text (search_text);
 
-       gtk_source_search_settings_set_search_text (dialog->priv->search_settings,
-                                                   unescaped_search_text);
+               gtk_source_search_settings_set_search_text (dialog->priv->search_settings,
+                                                           unescaped_search_text);
 
-       update_responses_sensitivity (dialog);
+               g_free (unescaped_search_text);
+       }
 
-       g_free (unescaped_search_text);
+       update_responses_sensitivity (dialog);
 }
 
 /* TODO: move in gedit-document.c and share it with gedit-view-frame */
diff --git a/gedit/gedit-view-frame.c b/gedit/gedit-view-frame.c
index f4a71de..5fe089d 100644
--- a/gedit/gedit-view-frame.c
+++ b/gedit/gedit-view-frame.c
@@ -701,20 +701,25 @@ install_update_entry_tag_idle (GeditViewFrame *frame)
 static void
 update_search_text (GeditViewFrame *frame)
 {
-       const gchar *entry_text;
-       gchar *unescaped_entry_text;
-
-       entry_text = gtk_entry_get_text (GTK_ENTRY (frame->priv->search_entry));
+       const gchar *entry_text = gtk_entry_get_text (GTK_ENTRY (frame->priv->search_entry));
 
        g_free (frame->priv->search_text);
        frame->priv->search_text = g_strdup (entry_text);
 
-       unescaped_entry_text = gtk_source_utils_unescape_search_text (entry_text);
+       if (gtk_source_search_settings_get_regex_enabled (frame->priv->search_settings))
+       {
+               gtk_source_search_settings_set_search_text (frame->priv->search_settings,
+                                                           entry_text);
+       }
+       else
+       {
+               gchar *unescaped_entry_text = gtk_source_utils_unescape_search_text (entry_text);
 
-       gtk_source_search_settings_set_search_text (frame->priv->search_settings,
-                                                   unescaped_entry_text);
+               gtk_source_search_settings_set_search_text (frame->priv->search_settings,
+                                                           unescaped_entry_text);
 
-       g_free (unescaped_entry_text);
+               g_free (unescaped_entry_text);
+       }
 }
 
 static void


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