Commit 09f39cbe authored by Chris Allegretta's avatar Chris Allegretta
Browse files

Fix for bugu #54

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@518 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
No related merge requests found
Showing with 12 additions and 10 deletions
+12 -10
...@@ -94,11 +94,11 @@ ...@@ -94,11 +94,11 @@
browser..) (52) [FIXED] browser..) (52) [FIXED]
- Alt speller argument (-s, --speller) does not take a string argument of - Alt speller argument (-s, --speller) does not take a string argument of
more than one word. (53) [FIXED]. 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 ** ** Open BUGS **
$Id$ $Id$
- Cut to end cutting (-k) causes segfaults (try cutting "- Backup making
(filename~)?" line in TODO file) (discovred by
higuita@cadernoverde.com) (54).
CVS code - CVS code -
- configure.in: - configure.in:
- Autoconf compatibility fixes (Pavel Roskin) - 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 nano-0.9.99pre2 - 01/31/2001
General General
......
...@@ -174,24 +174,23 @@ int do_cut_text(void) ...@@ -174,24 +174,23 @@ int do_cut_text(void)
if (ISSET(MARK_ISSET)) { if (ISSET(MARK_ISSET)) {
if (current->lineno == mark_beginbuf->lineno) { if (current->lineno == mark_beginbuf->lineno) {
tmp = copy_node(current); tmp = copy_node(current);
newsize = abs(strlen(&current->data[mark_beginx]) - newsize = abs(mark_beginx - current_x) + 1;
strlen(&current->data[current_x]));
tmpstr = nmalloc(newsize); tmpstr = nmalloc(newsize + 1);
if (current_x < mark_beginx) { if (current_x < mark_beginx) {
strncpy(tmpstr, &current->data[current_x], newsize); strncpy(tmpstr, &current->data[current_x], newsize);
memmove(&current->data[current_x], memmove(&current->data[current_x],
&current->data[mark_beginx], &current->data[mark_beginx],
strlen(&current->data[mark_beginx] - newsize)); strlen(&current->data[mark_beginx]) + 1);
} else { } else {
strncpy(tmpstr, &current->data[mark_beginx], newsize); strncpy(tmpstr, &current->data[mark_beginx], newsize);
memmove(&current->data[mark_beginx], memmove(&current->data[mark_beginx],
&current->data[current_x], &current->data[current_x],
strlen(&current->data[current_x] - newsize)); strlen(&current->data[current_x]) + 1);
current_x = mark_beginx; current_x = mark_beginx;
update_cursor(); update_cursor();
} }
tmpstr[newsize] = 0; tmpstr[newsize - 1] = 0;
tmp->data = tmpstr; tmp->data = tmpstr;
add_to_cutbuffer(tmp); add_to_cutbuffer(tmp);
dump_buffer(cutbuffer); dump_buffer(cutbuffer);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment