Commit 0e581b35 authored by David Lawrence Ramsey's avatar David Lawrence Ramsey
Browse files

make sure that the current position in the history list is properly set

to the bottom if we cancel out of the prompt


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2890 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
parent 24b15630
Showing with 21 additions and 3 deletions
+21 -3
......@@ -75,6 +75,9 @@ CVS code -
contains invalid multibyte characters interpreted as normal
characters. Changes to mbstrncasecmp(), mbstrcasestr(),
mbrevstrcasestr(), findnextstr(), and do_replace_loop(). (DLR)
- Make sure that the current position in the history list is
properly set to the bottom if we cancel out of the prompt.
New function history_reset(); changes to nanogetstr(). (DLR)
- files.c:
open_file()
- Assert that filename isn't NULL, and don't do anything special
......
......@@ -517,6 +517,7 @@ void do_find_bracket(void);
bool history_has_changed(void);
#endif
void history_init(void);
void history_reset(const filestruct *h);
filestruct *find_history(filestruct *h_start, filestruct *h_end, const
char *s, size_t len);
void update_history(filestruct **h, const char *s);
......
......@@ -1185,6 +1185,15 @@ void history_init(void)
replacebot = replace_history;
}
/* Set the current position in the history list h to the bottom. */
void history_reset(const filestruct *h)
{
if (h == search_history)
search_history = searchbot;
else if (h == replace_history)
replace_history = replacebot;
}
/* Return the first node containing the first len characters of the
* string s in the history list, starting at h_start and ending at
* h_end, or NULL if there isn't one. */
......
......@@ -2642,9 +2642,14 @@ int nanogetstr(bool allow_tabs, const char *buf, const char *curranswer,
}
#ifndef NANO_SMALL
/* Free magichistory if we need to. */
if (magichistory != NULL)
free(magichistory);
/* Set the current position in the history list to the bottom and
* free magichistory, if we need to. */
if (history_list != NULL) {
history_reset(*history_list);
if (magichistory != NULL)
free(magichistory);
}
#endif
/* We finished putting in an answer or ran a normal shortcut's
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment