From 04f65f2e173ca6ae4c0b429f75d63e2f63fde308 Mon Sep 17 00:00:00 2001
From: David Lawrence Ramsey <pooka109@gmail.com>
Date: Mon, 1 Aug 2005 02:18:05 +0000
Subject: [PATCH] revert previous simplification, as it only moved complexity
 from one place to another, and add formatting fixes to the old code

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2957 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
---
 ChangeLog   |  2 +-
 src/winio.c | 11 ++++++++---
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 3f10da68..b3f3e1e6 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 a4272256..236e5f2a 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. */
-- 
GitLab