From 293849eb69b16343e8e9a166866baa708438566f Mon Sep 17 00:00:00 2001
From: Chris Allegretta <chrisa@asty.org>
Date: Thu, 27 Jul 2000 05:09:22 +0000
Subject: [PATCH] This should finish the -k functionality.  Would someone be
 kind enough to test this against Pico and send me a comparison?

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@132 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
---
 cut.c       | 22 ++++++++++++++++------
 po/nano.pot |  2 +-
 2 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/cut.c b/cut.c
index 290309a1..dbe1b461 100644
--- a/cut.c
+++ b/cut.c
@@ -153,9 +153,6 @@ int do_cut_text(void)
     if (ISSET(CUT_TO_END) && !ISSET(MARK_ISSET)) {
 	if (current_x == strlen(current->data))
 	{
-
-	    /* FIXME - We really need to put this data into the
-	       cutbuffer, not delete it and forget about it. */
 	    do_delete();
 	    SET(KEEP_CUTBUFFER);
 	    marked_cut = 2;
@@ -315,7 +312,6 @@ int do_uncut_text(void)
 
 	    placewewant = xplustabs();
 	    update_cursor();
-	    renumber(current);
 	} else {		/* yuck -- no kidding! */
 	    tmp = current->next;
 	    /* New beginning */
@@ -358,13 +354,27 @@ int do_uncut_text(void)
 
 	    i = editbot->lineno;
 
-	    renumber(current);
-
 	    current = newend;
 	    if (i <= newend->lineno)
 		edit_update(current);
 	}
 
+	/* If marked cut == 2, that means that we're doing a cut to end
+	   and we don't want anything else on the line, so we have to
+	   screw up all the work we just did and separate the line.  There
+	   must be a better way to do this, but not at 1AM on a work night. */
+
+	if (marked_cut == 2 && current_x != strlen(current->data)) {
+	    tmp = make_new_node(current);
+	    tmp->data = nmalloc(strlen(&current->data[current_x]));
+	    strcpy(tmp->data, &current->data[current_x]);
+	    tmp->next = current->next;
+	    current->next = tmp;
+	    tmp->prev = current;
+	    current->data[current_x] = 0;
+	    current->data = nrealloc(current->data, strlen(current->data) + 1);	    
+	}
+	renumber(current);
 	dump_buffer(fileage);
 	dump_buffer(cutbuffer);
 	set_modified();
diff --git a/po/nano.pot b/po/nano.pot
index 5dafffd2..cf8547d7 100644
--- a/po/nano.pot
+++ b/po/nano.pot
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2000-07-27 00:27-0400\n"
+"POT-Creation-Date: 2000-07-27 01:11-0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
-- 
GitLab