From a90e6c32400e84aa94c9463823a68a131e2d155e Mon Sep 17 00:00:00 2001 From: David Lawrence Ramsey Date: Mon, 9 Jul 2007 23:24:37 +0000 Subject: [PATCH] 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 --- ChangeLog | 3 +++ src/search.c | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 04a76926..3ed253cc 100644 --- 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 diff --git a/src/search.c b/src/search.c index a1e5d644..4761623d 100644 --- 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; -- 2.39.5