From: David Lawrence Ramsey Date: Thu, 15 Jan 2004 05:47:03 +0000 (+0000) Subject: add DB's fix for a do_replace_loop() segfault X-Git-Tag: v1.3.2~71 X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=41151ac50d8cf928ca2ff75fea328ef9869b44b7;p=nano.git add DB's fix for a do_replace_loop() segfault git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1627 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- diff --git a/ChangeLog b/ChangeLog index ff460eb5..06a252f4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,6 +9,11 @@ CVS code - - Move the call to raw() on systems that don't define _POSIX_VDISABLE outside the main input/output loop, as it doesn't need to be called every time through the loop. (DLR) +- search.c: + do_replace_loop() + - Fix segfault when doing a regex replace of a string that + matches inside a line (e.g. replace the "b" in "abc" with + anything). (David Benbennick) - winio.c: do_credits() - Use nanosleep() instead of usleep(). The latter is only diff --git a/src/search.c b/src/search.c index 51d73aa1..69f9eba2 100644 --- a/src/search.c +++ b/src/search.c @@ -722,7 +722,7 @@ int do_replace_loop(const char *prevanswer, const filestruct *begin, #ifdef HAVE_REGEX_H /* Set the bol_eol flag if we're doing a bol and/or eol regex * replace ("^", "$", or "^$"). */ - if (ISSET(USE_REGEXP) && regexec(&search_regexp, prevanswer, 1, NULL, REG_NOTBOL | REG_NOTEOL) == REG_NOMATCH) + if (ISSET(USE_REGEXP) && regexec(&search_regexp, prevanswer, 0, NULL, REG_NOTBOL | REG_NOTEOL) == REG_NOMATCH) bol_eol = 1; #endif