commit 5c3a22dbd695f746556909275d87a9550c9cf20e
parent b70510f4beef09c61aa9a8f6b4b1322989dcc109
Author: Benno Schulenberg <bensberg@telfort.nl>
Date: Tue, 7 Apr 2020 19:19:26 +0200
tweaks: rename a function, to be more precise, and reshuffle some things
Diffstat:
2 files changed, 19 insertions(+), 25 deletions(-)
diff --git a/src/proto.h b/src/proto.h
@@ -478,7 +478,7 @@ void go_looking(void);
ssize_t do_replace_loop(const char *needle, bool whole_word_only,
const linestruct *real_current, size_t *real_current_x);
void do_replace(void);
-void ask_for_replacement(void);
+void ask_for_and_do_replacements(void);
void goto_line_posx(ssize_t line, size_t pos_x);
void do_gotolinecolumn(ssize_t line, ssize_t column, bool use_answer,
bool interactive);
diff --git a/src/search.c b/src/search.c
@@ -125,15 +125,13 @@ void search_init(bool replacing, bool keep_the_answer)
#endif
}
- /* When not doing a regular-expression search, just search;
- * otherwise compile the search string, and only search when
- * the expression is valid. */
- if (!ISSET(USE_REGEXP) || regexp_init(last_search)) {
- if (replacing)
- ask_for_replacement();
- else
- go_looking();
- }
+ if (ISSET(USE_REGEXP) && !regexp_init(last_search))
+ break;
+
+ if (replacing)
+ ask_for_and_do_replacements();
+ else
+ go_looking();
break;
}
@@ -690,18 +688,20 @@ void do_replace(void)
}
}
-/* Ask the user what the already given search string should be replaced with. */
-void ask_for_replacement(void)
+/* Ask the user what to replace the search string with, and do the replacements. */
+void ask_for_and_do_replacements(void)
{
- linestruct *edittop_save, *begin;
- size_t firstcolumn_save, begin_x;
+ linestruct *was_edittop = openfile->edittop;
+ size_t was_firstcolumn = openfile->firstcolumn;
+ linestruct *beginline = openfile->current;
+ size_t begin_x = openfile->current_x;
ssize_t numreplaced;
int response = do_prompt(FALSE, FALSE, MREPLACEWITH, "",
/* TRANSLATORS: This is a prompt. */
&replace_history, edit_refresh, _("Replace with"));
#ifdef ENABLE_HISTORIES
- /* If the replace string is not "", add it to the replace history list. */
+ /* When not "", add the replace string to the replace history list. */
if (response == 0)
update_history(&replace_history, answer);
#endif
@@ -713,18 +713,12 @@ void ask_for_replacement(void)
} else if (response > 0)
return;
- /* Save where we are. */
- edittop_save = openfile->edittop;
- firstcolumn_save = openfile->firstcolumn;
- begin = openfile->current;
- begin_x = openfile->current_x;
-
- numreplaced = do_replace_loop(last_search, FALSE, begin, &begin_x);
+ numreplaced = do_replace_loop(last_search, FALSE, beginline, &begin_x);
/* Restore where we were. */
- openfile->edittop = edittop_save;
- openfile->firstcolumn = firstcolumn_save;
- openfile->current = begin;
+ openfile->edittop = was_edittop;
+ openfile->firstcolumn = was_firstcolumn;
+ openfile->current = beginline;
openfile->current_x = begin_x;
refresh_needed = TRUE;