All pastes #2439773 Raw Edit

Someone

public unlisted diff v1 · immutable
#2439773 ·published 2013-08-28 07:21 UTC
rendered paste body
diff --git a/src/diffviewer/search.c b/src/diffviewer/search.cindex 19176af..b7bbc10 100644--- a/src/diffviewer/search.c+++ b/src/diffviewer/search.c@@ -118,19 +118,6 @@ mcdiffview_dialog_search (WDiff * dview)         return FALSE;     } -#ifdef HAVE_CHARSET-    {-        GString *tmp;--        tmp = str_convert_to_input (exp);-        if (tmp != NULL)-        {-            g_free (exp);-            exp = g_string_free (tmp, FALSE);-        }-    }-#endif-     g_free (dview->search.last_string);     dview->search.last_string = exp; @@ -254,7 +241,12 @@ dview_search_cmd (WDiff * dview)         return;      dview->search.handle->search_type = mcdiffview_search_options.type;-    dview->search.handle->is_all_charsets = mcdiffview_search_options.all_codepages;+#ifdef HAVE_CHARSET+    dview->search.handle->is_all_charsets = mcdiffview_search_options.all_codepages+            || cp_source != cp_display;+#else+    dview->search.handle->is_all_charsets = FALSE;+#endif     dview->search.handle->is_case_sensitive = mcdiffview_search_options.case_sens;     dview->search.handle->whole_words = mcdiffview_search_options.whole_words; diff --git a/src/editor/editcmd.c b/src/editor/editcmd.cindex ee7cff7..e9d9886 100644--- a/src/editor/editcmd.c+++ b/src/editor/editcmd.c@@ -875,25 +875,6 @@ editcmd_find (WEdit * edit, gsize * len) /* --------------------------------------------------------------------------------------------- */  static char *-edit_replace_cmd__conv_to_display (char *str)-{-#ifdef HAVE_CHARSET-    GString *tmp;--    tmp = str_convert_to_display (str);-    if (tmp != NULL)-    {-        if (tmp->len != 0)-            return g_string_free (tmp, FALSE);-        g_string_free (tmp, TRUE);-    }-#endif-    return g_strdup (str);-}--/* --------------------------------------------------------------------------------------------- */--static char * edit_replace_cmd__conv_to_input (char *str) { #ifdef HAVE_CHARSET@@ -2446,9 +2427,6 @@ edit_replace_cmd (WEdit * edit, int again)     static char *saved2 = NULL;     char *input1 = NULL;        /* user input from the dialog */     char *input2 = NULL;-    GString *input2_str = NULL;-    char *disp1 = NULL;-    char *disp2 = NULL;     long times_replaced = 0;     gboolean once_found = FALSE; @@ -2466,55 +2444,52 @@ edit_replace_cmd (WEdit * edit, int again)      if (again)     {-        input1 = g_strdup (saved1 ? saved1 : "");-        input2 = g_strdup (saved2 ? saved2 : "");+        input1 = saved1 != NULL ? saved1 : "";+        input2 = saved2 != NULL ? saved2 : "";     }     else     {-        char *tmp_inp1, *tmp_inp2;+        char *disp1, *disp2; -        disp1 = edit_replace_cmd__conv_to_display (saved1 ? saved1 : (char *) "");-        disp2 = edit_replace_cmd__conv_to_display (saved2 ? saved2 : (char *) "");+        disp1 = saved1 != NULL ? saved1 : (char *) "";+        disp2 = saved2 != NULL ? saved2 : (char *) "";          edit_push_undo_action (edit, KEY_PRESS + edit->start_display);          editcmd_dialog_replace_show (edit, disp1, disp2, &input1, &input2); -        g_free (disp1);-        g_free (disp2);-         if (input1 == NULL || *input1 == '\0')         {+            g_free (input1);+            g_free (input2);             edit->force = REDRAW_COMPLETELY;-            goto cleanup;+            return;         } -        tmp_inp1 = input1;-        tmp_inp2 = input2;-        input1 = edit_replace_cmd__conv_to_input (input1);-        input2 = edit_replace_cmd__conv_to_input (input2);-        g_free (tmp_inp1);-        g_free (tmp_inp2);--        g_free (saved1), saved1 = g_strdup (input1);-        g_free (saved2), saved2 = g_strdup (input2);+        g_free (saved1);+        g_free (saved2);+        saved1 = input1;+        saved2 = input2;          mc_search_free (edit->search);         edit->search = NULL;     } -    input2_str = g_string_new (input2);-     if (!edit->search)     {         edit->search = mc_search_new (input1, -1);         if (edit->search == NULL)         {             edit->search_start = edit->buffer.curs1;-            goto cleanup;+            return;         }         edit->search->search_type = edit_search_options.type;-        edit->search->is_all_charsets = edit_search_options.all_codepages;+#ifdef HAVE_CHARSET+        edit->search->is_all_charsets = edit_search_options.all_codepages+            || cp_source != cp_display;+#else+        edit->search->is_all_charsets = FALSE;+#endif         edit->search->is_case_sensitive = edit_search_options.case_sens;         edit->search->whole_words = edit_search_options.whole_words;         edit->search->search_fn = edit_search_cmd_callback;@@ -2551,7 +2526,7 @@ edit_replace_cmd (WEdit * edit, int again)         if ((edit->search_start >= 0) && (edit->search_start < edit->buffer.size))         {             gsize i;-            GString *repl_str;+            char *input2_conv, *repl_str;              edit->found_start = edit->search_start;             i = edit->found_len = len;@@ -2577,11 +2552,7 @@ edit_replace_cmd (WEdit * edit, int again)                 /*so that undo stops at each query */                 edit_push_key_press (edit);                 /* and prompt 2/3 down */-                disp1 = edit_replace_cmd__conv_to_display (saved1);-                disp2 = edit_replace_cmd__conv_to_display (saved2);-                prompt = editcmd_dialog_replace_prompt_show (edit, disp1, disp2, -1, -1);-                g_free (disp1);-                g_free (disp2);+                prompt = editcmd_dialog_replace_prompt_show (edit, saved1, saved2, -1, -1);                  if (prompt == B_REPLACE_ALL)                     edit->replace_mode = 1;@@ -2600,12 +2571,14 @@ edit_replace_cmd (WEdit * edit, int again)                 }             } -            repl_str = mc_search_prepare_replace_str (edit->search, input2_str);+            input2_conv = edit_replace_cmd__conv_to_input (input2);+            repl_str = mc_search_prepare_replace_str2 (edit->search, input2_conv);+            g_free (input2_conv);              if (edit->search->error != MC_SEARCH_E_OK)             {                 edit_error_dialog (_("Replace"), edit->search->error_str);-                g_string_free (repl_str, TRUE);+                g_free (repl_str);                 break;             } @@ -2613,11 +2586,11 @@ edit_replace_cmd (WEdit * edit, int again)             for (i = 0; i < len; i++)                 edit_delete (edit, TRUE); -            for (i = 0; i < repl_str->len; i++)-                edit_insert (edit, repl_str->str[i]);+            for (i = 0; repl_str[i] != '\0'; i++)+                edit_insert (edit, repl_str[i]); -            edit->found_len = repl_str->len;-            g_string_free (repl_str, TRUE);+            edit->found_len = i;+            g_free (repl_str);             times_replaced++;              /* so that we don't find the same string again */@@ -2657,12 +2630,6 @@ edit_replace_cmd (WEdit * edit, int again)      if ((edit->replace_mode == 1) && (times_replaced != 0))         message (D_NORMAL, _("Replace"), _("%ld replacements made"), times_replaced);--  cleanup:-    g_free (input1);-    g_free (input2);-    if (input2_str != NULL)-        g_string_free (input2_str, TRUE); }  /* --------------------------------------------------------------------------------------------- */@@ -2712,7 +2679,12 @@ edit_search_cmd (WEdit * edit, gboolean again)             else             {                 edit->search->search_type = edit_search_options.type;-                edit->search->is_all_charsets = edit_search_options.all_codepages;+#ifdef HAVE_CHARSET+                edit->search->is_all_charsets = edit_search_options.all_codepages+                    || cp_source != cp_display;+#else+                edit->search->is_all_charsets = FALSE;+#endif                 edit->search->is_case_sensitive = edit_search_options.case_sens;                 edit->search->whole_words = edit_search_options.whole_words;                 edit->search->search_fn = edit_search_cmd_callback;diff --git a/src/editor/editcmd_dialogs.c b/src/editor/editcmd_dialogs.cindex 865ef3d..3c03c0b 100644--- a/src/editor/editcmd_dialogs.c+++ b/src/editor/editcmd_dialogs.c@@ -145,19 +145,6 @@ editcmd_dialog_search_show (WEdit * edit)     if (dialog_result == B_USER)         search_create_bookmark = TRUE; -#ifdef HAVE_CHARSET-    {-        GString *tmp;--        tmp = str_convert_to_input (search_text);-        if (tmp != NULL)-        {-            g_free (search_text);-            search_text = g_string_free (tmp, FALSE);-        }-    }-#endif-     g_free (edit->last_search_string);     edit->last_search_string = search_text;     mc_search_free (edit->search);@@ -166,7 +153,12 @@ editcmd_dialog_search_show (WEdit * edit)     if (edit->search != NULL)     {         edit->search->search_type = edit_search_options.type;-        edit->search->is_all_charsets = edit_search_options.all_codepages;+#ifdef HAVE_CHARSET+        edit->search->is_all_charsets = edit_search_options.all_codepages+            || cp_source != cp_display;+#else+        edit->search->is_all_charsets = FALSE;+#endif         edit->search->is_case_sensitive = edit_search_options.case_sens;         edit->search->whole_words = edit_search_options.whole_words;         edit->search->search_fn = edit_search_cmd_callback;diff --git a/src/viewer/actions_cmd.c b/src/viewer/actions_cmd.cindex 7ea556d..a022b0e 100644--- a/src/viewer/actions_cmd.c+++ b/src/viewer/actions_cmd.c@@ -159,7 +159,12 @@ mcview_continue_search_cmd (mcview_t * view)             else             {                 view->search->search_type = mcview_search_options.type;-                view->search->is_all_charsets = mcview_search_options.all_codepages;+#ifdef HAVE_CHARSET+                view->search->is_all_charsets = mcview_search_options.all_codepages+                    || cp_source != cp_display;+#else+                view->search->is_all_charsets = FALSE;+#endif                 view->search->is_case_sensitive = mcview_search_options.case_sens;                 view->search->whole_words = mcview_search_options.whole_words;                 view->search->search_fn = mcview_search_cmd_callback;diff --git a/src/viewer/dialogs.c b/src/viewer/dialogs.cindex 8fba696..a0f7637 100644--- a/src/viewer/dialogs.c+++ b/src/viewer/dialogs.c@@ -124,19 +124,6 @@ mcview_dialog_search (mcview_t * view)         return FALSE;     } -#ifdef HAVE_CHARSET-    {-        GString *tmp;--        tmp = str_convert_to_input (exp);-        if (tmp != NULL)-        {-            g_free (exp);-            exp = g_string_free (tmp, FALSE);-        }-    }-#endif-     g_free (view->last_search_string);     view->last_search_string = exp;     mcview_nroff_seq_free (&view->search_nroff_seq);@@ -147,7 +134,12 @@ mcview_dialog_search (mcview_t * view)     if (view->search != NULL)     {         view->search->search_type = mcview_search_options.type;-        view->search->is_all_charsets = mcview_search_options.all_codepages;+#ifdef HAVE_CHARSET+        view->search->is_all_charsets = mcview_search_options.all_codepages+            || cp_source != cp_display;+#else+        view->search->is_all_charsets = FALSE;+#endif         view->search->is_case_sensitive = mcview_search_options.case_sens;         view->search->whole_words = mcview_search_options.whole_words;         view->search->search_fn = mcview_search_cmd_callback;