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
master
David Lawrence Ramsey 2007-07-09 23:24:37 +00:00
parent 36536670c8
commit a90e6c3240
2 changed files with 5 additions and 1 deletions

View File

@ -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>

View File

@ -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;