diff --git a/src/editor/editcmd.c b/src/editor/editcmd.c
index 8e53f05..0851ffc 100644
a
|
b
|
edit_replace_cmd (WEdit * edit, int again) |
1688 | 1688 | char *disp2 = NULL; |
1689 | 1689 | long times_replaced = 0; |
1690 | 1690 | gboolean once_found = FALSE; |
1691 | | GString *repl_str = NULL, *tmp_str = NULL; |
1692 | 1691 | |
1693 | 1692 | if (!edit) |
1694 | 1693 | { |
… |
… |
edit_replace_cmd (WEdit * edit, int again) |
1787 | 1786 | if ((edit->search_start >= 0) && (edit->search_start < edit->last_byte)) |
1788 | 1787 | { |
1789 | 1788 | gsize i; |
| 1789 | GString *tmp_str, *repl_str; |
1790 | 1790 | |
1791 | 1791 | edit->found_start = edit->search_start; |
1792 | 1792 | i = edit->found_len = len; |
… |
… |
edit_replace_cmd (WEdit * edit, int again) |
1836 | 1836 | } |
1837 | 1837 | |
1838 | 1838 | /* don't process string each time */ |
1839 | | if (tmp_str == NULL) |
1840 | | { |
1841 | | tmp_str = g_string_new (input2); |
1842 | | repl_str = mc_search_prepare_replace_str (edit->search, tmp_str); |
| 1839 | tmp_str = g_string_new (input2); |
| 1840 | repl_str = mc_search_prepare_replace_str (edit->search, tmp_str); |
| 1841 | g_string_free (tmp_str, TRUE); |
1843 | 1842 | |
1844 | | if (edit->search->error != MC_SEARCH_E_OK) |
1845 | | { |
1846 | | edit_error_dialog (_("Replace"), edit->search->error_str); |
1847 | | break; |
1848 | | } |
| 1843 | if (edit->search->error != MC_SEARCH_E_OK) |
| 1844 | { |
| 1845 | edit_error_dialog (_("Replace"), edit->search->error_str); |
| 1846 | g_string_free (repl_str, TRUE); |
| 1847 | break; |
1849 | 1848 | } |
1850 | 1849 | |
1851 | 1850 | /* delete then insert new */ |
… |
… |
edit_replace_cmd (WEdit * edit, int again) |
1856 | 1855 | edit_insert (edit, repl_str->str[i]); |
1857 | 1856 | |
1858 | 1857 | edit->found_len = repl_str->len; |
| 1858 | g_string_free (repl_str, TRUE); |
1859 | 1859 | times_replaced++; |
1860 | 1860 | |
1861 | 1861 | /* so that we don't find the same string again */ |
… |
… |
edit_replace_cmd (WEdit * edit, int again) |
1863 | 1863 | edit->search_start--; |
1864 | 1864 | else |
1865 | 1865 | { |
1866 | | edit->search_start += repl_str->len; |
| 1866 | edit->search_start += edit->found_len; |
1867 | 1867 | |
1868 | 1868 | if (edit->search_start >= edit->last_byte) |
1869 | 1869 | break; |
… |
… |
edit_replace_cmd (WEdit * edit, int again) |
1887 | 1887 | } |
1888 | 1888 | while (edit->replace_mode >= 0); |
1889 | 1889 | |
1890 | | if (tmp_str != NULL) |
1891 | | g_string_free (tmp_str, TRUE); |
1892 | | if (repl_str != NULL) |
1893 | | g_string_free (repl_str, TRUE); |
1894 | | |
1895 | 1890 | edit_scroll_screen_over_cursor (edit); |
1896 | 1891 | edit->force |= REDRAW_COMPLETELY; |
1897 | 1892 | edit_render_keypress (edit); |