commit 09f39cbec6c1d337517e22e0514e76daf9ce44ca
parent a8785e0793a482125199e7738214c445f9d8f893
Author: Chris Allegretta <chrisa@asty.org>
Date: Mon, 5 Feb 2001 13:43:23 +0000
Fix for bugu #54
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@518 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
Diffstat:
3 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/BUGS b/BUGS
@@ -94,11 +94,11 @@
browser..) (52) [FIXED]
- Alt speller argument (-s, --speller) does not take a string argument of
more than one word. (53) [FIXED].
+- Cut to end cutting (-k) causes segfaults (try cutting "- Backup making
+ (filename~)?" line in TODO file) (discovred by
+ higuita@cadernoverde.com) (54) [FIXED].
+
** Open BUGS **
$Id$
-- Cut to end cutting (-k) causes segfaults (try cutting "- Backup making
- (filename~)?" line in TODO file) (discovred by
- higuita@cadernoverde.com) (54).
-
diff --git a/ChangeLog b/ChangeLog
@@ -1,6 +1,9 @@
CVS code -
- configure.in:
- Autoconf compatibility fixes (Pavel Roskin)
+- cut.c:
+ do_cut_text()
+ - marked text cut fixes (Rocco) (Fixes bug #54).
nano-0.9.99pre2 - 01/31/2001
General
diff --git a/cut.c b/cut.c
@@ -174,24 +174,23 @@ int do_cut_text(void)
if (ISSET(MARK_ISSET)) {
if (current->lineno == mark_beginbuf->lineno) {
tmp = copy_node(current);
- newsize = abs(strlen(¤t->data[mark_beginx]) -
- strlen(¤t->data[current_x]));
+ newsize = abs(mark_beginx - current_x) + 1;
- tmpstr = nmalloc(newsize);
+ tmpstr = nmalloc(newsize + 1);
if (current_x < mark_beginx) {
strncpy(tmpstr, ¤t->data[current_x], newsize);
memmove(¤t->data[current_x],
¤t->data[mark_beginx],
- strlen(¤t->data[mark_beginx] - newsize));
+ strlen(¤t->data[mark_beginx]) + 1);
} else {
strncpy(tmpstr, ¤t->data[mark_beginx], newsize);
memmove(¤t->data[mark_beginx],
¤t->data[current_x],
- strlen(¤t->data[current_x] - newsize));
+ strlen(¤t->data[current_x]) + 1);
current_x = mark_beginx;
update_cursor();
}
- tmpstr[newsize] = 0;
+ tmpstr[newsize - 1] = 0;
tmp->data = tmpstr;
add_to_cutbuffer(tmp);
dump_buffer(cutbuffer);