Commit 38795289 authored by David Lawrence Ramsey's avatar David Lawrence Ramsey
Browse files

make sure that the statusbar cursor position is always properly reset

when we get out of all statusbar prompts


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3865 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
No related merge requests found
Showing with 16 additions and 13 deletions
+16 -13
CVS code -
- General:
- Make sure that the statusbar cursor position is always
properly reset when we get out of all statusbar prompts.
Changes to do_insertfile(), do_writeout(),
handle_sigwinch(), main(), and do_prompt_abort(). (DLR)
GNU nano 1.9.99pre1 - 2006.08.29
- General:
......
......@@ -766,13 +766,11 @@ void do_insertfile(
if (tmp == NULL)
continue;
/* We have a file now. Indicate this. */
free(answer);
answer = tmp;
/* We have a file now. Indicate this and get out of the
* statusbar prompt cleanly. */
i = 0;
do_prompt_abort();
}
#endif
......@@ -1825,12 +1823,9 @@ int do_writeout(bool exiting)
if (tmp == NULL)
continue;
/* We have a file now. Indicate this. */
free(answer);
answer = tmp;
/* We have a file now. Get out of the statusbar prompt
* cleanly. */
do_prompt_abort();
} else
#endif /* !DISABLE_BROWSER */
#ifndef NANO_TINY
......
......@@ -1088,10 +1088,6 @@ RETSIGTYPE handle_sigwinch(int signal)
COLS = win.ws_col;
LINES = win.ws_row;
/* Just in case we're in the statusbar prompt, reset the statusbar
* cursor position. */
do_prompt_abort();
/* If we've partitioned the filestruct, unpartition it now. */
if (filepart != NULL)
unpartition_filestruct(&filepart);
......@@ -2252,6 +2248,10 @@ int main(int argc, char **argv)
/* Read in and interpret characters. */
do_input(&meta_key, &func_key, &s_or_t, &ran_func, &finished,
TRUE);
/* Just in case we were in the statusbar prompt, reset the
* statusbar cursor position. */
do_prompt_abort();
}
/* We should never get here. */
......
......@@ -1247,10 +1247,13 @@ int do_prompt(bool allow_tabs,
}
/* This function forces a reset of the statusbar cursor position. It
* should only be called after do_prompt(), and is only needed if we
* leave the prompt via something other than Cancel or Enter. */
* should be called when we get out of all statusbar prompts. */
void do_prompt_abort(void)
{
/* Uninitialize the old cursor position in answer. */
old_statusbar_x = (size_t)-1;
old_pww = (size_t)-1;
reset_statusbar_x = TRUE;
}
......
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