nano

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

commit 8ffc33cd891a9008a70185f736b074e06b5044a3
parent ee7b0956789c6c43f2073ecb9c2864d777b5b398
Author: Benno Schulenberg <bensberg@justemail.net>
Date:   Sun, 26 Jul 2015 08:20:28 +0000

Finding each zero-length match only once, when doing regex replacements.


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

Diffstat:
MChangeLog | 4++++
Msrc/search.c | 6++++++
2 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,7 @@ +2015-07-26 Benno Schulenberg <bensberg@justemail.net> + * src/search.c (do_replace_loop): When doing regex replacements, find + each zero-length match only once. This fixes Savannah bug #45626. + 2015-07-25 Benno Schulenberg <bensberg@justemail.net> * src/global.c (shortcut_init, strtosc), src/files.c (savefile), doc/man/nanorc.5, doc/texinfo/nano.texi: Add a new bindable function, diff --git a/src/search.c b/src/search.c @@ -757,6 +757,12 @@ ssize_t do_replace_loop( #endif } +#ifdef HAVE_REGEX_H + /* Don't find the same zero-length match again. */ + if (match_len == 0) + match_len++; +#endif + /* Set the cursor at the last character of the replacement * text, so searching will resume after the replacement * text. Note that current_x might be set to (size_t)-1