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(¤t->data[current_x])); + strcpy(tmp->data, ¤t->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 \n" "Language-Team: LANGUAGE \n"