From f27c69703df0feebb16a5df56bd92e6402748dbe Mon Sep 17 00:00:00 2001
From: Chris Allegretta <chrisa@asty.org>
Date: Tue, 12 Feb 2002 01:57:24 +0000
Subject: [PATCH] - winio.c:do_cursorpos() - Rewritten to show col place as
 well as charcter place, without needing an entirely separate flag

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1067 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
---
 ChangeLog | 10 +++++-----
 nano.c    | 12 ++----------
 winio.c   | 41 +++++++++++++++++------------------------
 3 files changed, 24 insertions(+), 39 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index ffd1a40d..bc38b72b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,15 +1,15 @@
 CVS code -
-- General
-	- New flag RELATIVECHARS to show column positino relative to
-	  the current line instead of the current file.  New flag 
-	  -C, --relative, changes to do_cursorpos().
 - Makefile.am:
 	- Add SYSCONFDIR to DEFS, so we can have an /etc/nanorc.
 	- Change localedir line to 1.0's version.
-- rcfile.c
+- rcfile.c:
   parse_next_rege()
 	- Allow " symbol to be in regex without leading \ by checking
 	  for *ptr+1 is not the end of the regex.
+- winio.c:
+  do_cursorpos()
+	- Rewritten to show col place as well as charcter place, without
+	  needing an entirely separate flag.
 - utils.c:
   strstrwrapper()
 	- NANO_SMALL test was backwards (Ken Tyler).
diff --git a/nano.c b/nano.c
index c93cde08..61f45642 100644
--- a/nano.c
+++ b/nano.c
@@ -409,9 +409,6 @@ void usage(void)
     printf(_("Usage: nano [GNU long option] [option] +LINE <file>\n\n"));
     printf(_("Option		Long option		Meaning\n"));
 
-    printf
-	(_
-	 (" -C 		--relative		Show relative col position with ^C\n"));
 #ifndef NANO_SMALL
     printf
 	(_
@@ -492,7 +489,6 @@ void usage(void)
 #else
     printf(_("Usage: nano [option] +LINE <file>\n\n"));
     printf(_("Option		Meaning\n"));
-    printf(_(" -C 		Show relative col position with ^C\n"));
 #ifndef NANO_SMALL
     printf(_(" -D 		Write file in DOS format\n"));
 #endif
@@ -2740,7 +2736,6 @@ int main(int argc, char *argv[])
 	{"smooth", 0, 0, 'S'},
 #endif
 	{"keypad", 0, 0, 'K'},
-	{"relative", 0, 0, 'C'},
 	{0, 0, 0, 0}
     };
 #endif
@@ -2761,18 +2756,15 @@ int main(int argc, char *argv[])
 #endif /* ENABLE_NANORC */
 
 #ifdef HAVE_GETOPT_LONG
-    while ((optchr = getopt_long(argc, argv, "h?CDFKMRST:Vabcefgijklmo:pr:s:tvwxz",
+    while ((optchr = getopt_long(argc, argv, "h?DFKMRST:Vabcefgijklmo:pr:s:tvwxz",
 				 long_options, &option_index)) != EOF) {
 #else
     while ((optchr =
-	    getopt(argc, argv, "h?CDFKMRST:Vabcefgijklmo:pr:s:tvwxz")) != EOF) {
+	    getopt(argc, argv, "h?DFKMRST:Vabcefgijklmo:pr:s:tvwxz")) != EOF) {
 #endif
 
 	switch (optchr) {
 
-	case 'C':
-	    SET(RELATIVECHARS);
-	    break;
 #ifndef NANO_SMALL
 	case 'D':
 	    SET(DOS_FILE);
diff --git a/winio.c b/winio.c
index e685e2d8..9d7826bd 100644
--- a/winio.c
+++ b/winio.c
@@ -1585,7 +1585,7 @@ void previous_line(void)
 int do_cursorpos(int constant)
 {
     filestruct *fileptr;
-    float linepct = 0.0, bytepct = 0.0;
+    float linepct = 0.0, bytepct = 0.0, colpct = 0.0;
     long i = 0, j = 0;
     static long old_i = -1, old_totsize = -1;
 
@@ -1598,32 +1598,24 @@ int do_cursorpos(int constant)
     if (old_totsize == -1)
 	old_totsize = totsize;
 
-    if (ISSET(RELATIVECHARS)) {
-
-	if (strlen(current->data) == 0)
-	    bytepct = 0;
-	else
-	    bytepct = 100 * current_x / strlen(current->data);
-
-	old_i = -1;
-	i = current_x;
-	j = strlen(current->data);
+    if (strlen(current->data) == 0)
+	colpct = 0;
+    else
+	colpct = 100 * current_x / strlen(current->data);
 
-    } else {
-	for (fileptr = fileage; fileptr != current && fileptr != NULL;
-	     fileptr = fileptr->next)
-	    i += strlen(fileptr->data) + 1;
+    for (fileptr = fileage; fileptr != current && fileptr != NULL;
+	 fileptr = fileptr->next)
+	i += strlen(fileptr->data) + 1;
 
-	if (fileptr == NULL)
-	    return -1;
+    if (fileptr == NULL)
+	return -1;
 
-	i += current_x;
+    i += current_x;
 
-	j = totsize;
+    j = totsize;
 
-	if (totsize > 0)
-	    bytepct = 100 * i / totsize;
-    }
+    if (totsize > 0)
+	bytepct = 100 * i / totsize;
 
     if (totlines > 0)
 	 linepct = 100 * current->lineno / totlines;
@@ -1638,8 +1630,9 @@ int do_cursorpos(int constant)
        character values have changed */
     if (!constant || (old_i != i || old_totsize != totsize)) {
 	statusbar(_
-		  ("line %d of %d (%.0f%%), character %ld of %ld (%.0f%%)"),
-		  current->lineno, totlines, linepct, i, j, bytepct);
+		  ("line %d/%d (%.0f%%), col %ld/%ld (%.0f%%), char %ld/%ld (%.0f%%)"),
+		  current->lineno, totlines, linepct, current_x, 
+		  strlen(current->data), colpct, i, j, bytepct);
     }
 
     old_i = i;
-- 
GitLab