commit a90e6c32400e84aa94c9463823a68a131e2d155e
parent 36536670c8c52c9cc9ab994c233979f97a5d523b
Author: David Lawrence Ramsey <pooka109@gmail.com>
Date: Mon, 9 Jul 2007 23:24:37 +0000
in do_replace_loop(), fix problem where replacing e.g. single-byte
characters with multibyte ones could result in openfile->totsize's being
miscalculated
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4130 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
Diffstat:
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/ChangeLog b/ChangeLog
@@ -7,6 +7,9 @@
has_blank_mbchars): Simplify by using for loops instead of while
loops where possible, to match the single-byte versions of these
functions.
+ * search.c (do_replace_loop): Fix problem where replacing e.g.
+ single-byte characters with multibyte ones could result in
+ openfile->totsize's being miscalculated.
2007-07-06 David Lawrence Ramsey <pooka109@gmail.com>
diff --git a/src/search.c b/src/search.c
@@ -827,7 +827,8 @@ ssize_t do_replace_loop(
openfile->current_x += match_len + length_change - 1;
/* Cleanup. */
- openfile->totsize += length_change;
+ openfile->totsize += mbstrlen(copy) -
+ mbstrlen(openfile->current->data);
free(openfile->current->data);
openfile->current->data = copy;