Blob Blame History Raw
diff --git a/src/editor/editcmd.c b/src/editor/editcmd.c
index 0e8bb1d..f568bdf 100644
--- a/src/editor/editcmd.c
+++ b/src/editor/editcmd.c
@@ -1785,7 +1785,6 @@ edit_replace_cmd (WEdit * edit, int again)
 
         if ((edit->search_start >= 0) && (edit->search_start < edit->last_byte))
         {
-            gboolean replace_yes;
             gsize i;
 
             edit->found_start = edit->search_start;
@@ -1794,11 +1793,11 @@ edit_replace_cmd (WEdit * edit, int again)
             edit_cursor_move (edit, edit->search_start - edit->curs1);
             edit_scroll_screen_over_cursor (edit);
 
-            replace_yes = TRUE;
-
             if (edit->replace_mode == 0)
             {
                 int l;
+                int prompt;
+
                 l = edit->curs_row - edit->num_widget_lines / 3;
                 if (l > 0)
                     edit_scroll_downward (edit, l);
@@ -1814,52 +1813,49 @@ edit_replace_cmd (WEdit * edit, int again)
                 /* 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);
 
-                switch (editcmd_dialog_replace_prompt_show (edit, disp1, disp2, -1, -1))
-                {
-                case B_ENTER:
-                    replace_yes = TRUE;
-                    break;
-                case B_SKIP_REPLACE:
-                    replace_yes = FALSE;
-                    break;
-                case B_REPLACE_ALL:
+                if (prompt == B_REPLACE_ALL)
                     edit->replace_mode = 1;
-                    break;
-                case B_CANCEL:
-                    replace_yes = FALSE;
+                else if (prompt == B_SKIP_REPLACE)
+                {
+                    if (edit_search_options.backwards)
+                        edit->search_start--;
+                    else
+                        edit->search_start++;
+                    continue; /* loop */
+                }
+                else if (prompt == B_CANCEL)
+                {
                     edit->replace_mode = -1;
-                    break;
+                    break; /* loop */
                 }
-                g_free (disp1);
-                g_free (disp2);
             }
 
-            if (replace_yes)
+            /* don't process string each time */
+            if (tmp_str == NULL)
             {
-                /* don't process string each time */
-                if (tmp_str == NULL)
-                {
-                    tmp_str = g_string_new (input2);
-                    repl_str = mc_search_prepare_replace_str (edit->search, tmp_str);
+                tmp_str = g_string_new (input2);
+                repl_str = mc_search_prepare_replace_str (edit->search, tmp_str);
 
-                    if (edit->search->error != MC_SEARCH_E_OK)
-                    {
-                        edit_error_dialog (_("Replace"), edit->search->error_str);
-                        break;
-                    }
+                if (edit->search->error != MC_SEARCH_E_OK)
+                {
+                    edit_error_dialog (_("Replace"), edit->search->error_str);
+                    break;
                 }
+            }
 
-               /* delete then insert new */
-                for (i = 0; i < len; i++)
-                    edit_delete (edit, 1);
+              /* delete then insert new */
+            for (i = 0; i < len; i++)
+                edit_delete (edit, 1);
 
-                for (i = 0; i < repl_str->len; i++)
-                    edit_insert (edit, repl_str->str[i]);
+            for (i = 0; i < repl_str->len; i++)
+                edit_insert (edit, repl_str->str[i]);
 
-                edit->found_len = repl_str->len;
-                times_replaced++;
-            }
+            edit->found_len = repl_str->len;
+            times_replaced++;
 
             /* so that we don't find the same string again */
             if (edit_search_options.backwards)