From 878ced39bfeb3536bae30793da55f08bd94adad0 Mon Sep 17 00:00:00 2001
From: Chris Allegretta <chrisa@asty.org>
Date: Mon, 22 Oct 2001 20:05:34 +0000
Subject: [PATCH] - nano.c:do_prev_word() - Fixed  goofy logic setting x pos to
 value of last line when hitting the beginning of first line, prog should
 simply abort.

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

diff --git a/ChangeLog b/ChangeLog
index d3bfb5a9..52bf278f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -26,7 +26,9 @@ CVS code -
 	  (David Lawrence Ramsey).
 - nano.c:
 	- New function do_prev_word, similar to do_next_word.  Hard coded as
-	  Alt-space, as next word is hard coded as control-space.
+	  Alt-space, as next word is hard coded as control-space. Fixed
+	  goofy logic setting x pos to value of last line when hitting the
+	  beginning of first line, prog should simply abort.
 - rcfile.c:
 	- Fix incorrect number of rc options (David Lawrence Ramsey).
 - po/sv.po:
diff --git a/nano.c b/nano.c
index 70bd99b4..b7d550bf 100644
--- a/nano.c
+++ b/nano.c
@@ -839,9 +839,10 @@ void do_prev_word(void)
 	    if (i == 0) {
 		if (fileptr->prev != NULL)
 		    i = strlen(fileptr->prev->data) - 1;
-		else if (fileptr == fileage && filebot != NULL)
-		    i = strlen(filebot->data) - 1;
-
+		else if (fileptr == fileage && filebot != NULL) {
+		    current_x = 0;
+		    return;
+		}
 		continue;
 	    }
 	}
@@ -862,8 +863,10 @@ void do_prev_word(void)
 	}
 	if (fileptr->prev != NULL)
 	    i = strlen(fileptr->prev->data) - 1;
-	else if (fileptr == fileage && filebot != NULL)
-	    i = strlen(filebot->data) - 1;
+	else if (fileptr == fileage && filebot != NULL) {
+	    current_x = 0;
+	    return;
+	}
     }
     if (fileptr == NULL)
 	current = fileage;
-- 
GitLab