nano

nano with my custom patches
git clone git://bsandro.tech/nano
Log | Files | Refs | README | LICENSE

commit ee43ea6a749856051b2d7ea1cfc2c20ca5095452
parent d4cf1fd0ca6a5f39cf34dc94d84bd3337658f0da
Author: David Lawrence Ramsey <pooka109@gmail.com>
Date:   Sun, 22 Apr 2007 15:04:05 +0000

in backup_lines(), avoid a segfault when the mark begins and ends on the
line after the last line of the paragraph


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4099 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

Diffstat:
MChangeLog | 5+++++
Msrc/text.c | 11+++++++++--
2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,8 @@ +2007-04-22 David Lawrence Ramsey <pooka109@gmail.com> + + * text.c (backup_lines): Avoid a segfault when the mark begins + and ends on the line after the last line of the paragraph. + 2007-04-21 David Lawrence Ramsey <pooka109@gmail.com> * files.c (do_writeout): If we're in restricted mode, we're not diff --git a/src/text.c b/src/text.c @@ -1212,9 +1212,16 @@ void backup_lines(filestruct *first_line, size_t par_len) * line, putting first_line, edittop, current, and mark_begin at the * same lines in the copied paragraph that they had in the original * paragraph. */ - if (openfile->current != openfile->fileage) + if (openfile->current != openfile->fileage) { top = openfile->current->prev; - else +#ifndef NANO_TINY + if (old_mark_set && + openfile->current->lineno == mb_lineno_save) { + openfile->mark_begin = openfile->current; + openfile->mark_begin_x = mark_begin_x_save; + } +#endif + } else top = openfile->current; for (i = par_len; i > 0 && top != NULL; i--) { if (top->lineno == fl_lineno_save)