diff --git a/ChangeLog b/ChangeLog index 3f10da681b6ddefb4bf2779d702751f902f7a331..b3f3e1e6d48145a4867a048440c7e7a26ab21723 100644 --- a/ChangeLog +++ b/ChangeLog @@ -274,7 +274,7 @@ CVS code - the status when we're in the file browser, since Pico doesn't. (DLR) do_cursorpos() - - Simplify, and remove unneeded assert. (DLR) + - Remove unneeded assert. (DLR) - configure.ac: - Since we only use vsnprintf() now, remove the tests for snprintf(). (DLR) diff --git a/src/winio.c b/src/winio.c index a42722562d642812958afaf85a287a64a6eac0f3..236e5f2a0126010c9753c0fc5e9219988bd293bc 100644 --- a/src/winio.c +++ b/src/winio.c @@ -3823,6 +3823,7 @@ void display_main_list(void) * display the current cursor position next time. */ void do_cursorpos(bool constant) { + filestruct *f; char c; size_t i, cur_xpt = xplustabs() + 1; size_t cur_lenpt = strlenpt(openfile->current->data) + 1; @@ -3830,12 +3831,16 @@ void do_cursorpos(bool constant) assert(openfile->fileage != NULL && openfile->current != NULL); - i = (openfile->current->prev != NULL) ? - get_totsize(openfile->fileage, openfile->current->prev) : 0; + f = openfile->current->next; c = openfile->current->data[openfile->current_x]; + + openfile->current->next = NULL; openfile->current->data[openfile->current_x] = '\0'; - i += mbstrlen(openfile->current->data); + + i = get_totsize(openfile->fileage, openfile->current); + openfile->current->data[openfile->current_x] = c; + openfile->current->next = f; /* Check whether totsize is correct. If it isn't, there is a bug * somewhere. */