Erwin Brandstetter wrote:
> Di Dave!
>
> Testing 1.6.0 rev: 5641
>
> dpage@postgresql.org wrote:
>> Erwin Brandstetter wrote:
>>> # One more cornercase for "Find and Replace". Try to replace multiple
>>> occurrences of 'abc' with 'abcd' and see for yourself ..
>>> Seems like "Replace" continues the search at the _beginning_ of the
>>> newly inserted text. If the search string is included in the replace
>>> string, we end up in an endless loop.
>>> Might be easy to fix by continuing the search _after_ the replaced
>>> string. ("Find" seems to do it right.)
>>
>> OK, got that one.
>
> Almost. :) You nailed the case abc -> abcd. But you missed the case abc
> -> dabc.
> Looks like you continue to search one character after beginn of replaced
> text. The proper solution would be to continue the search at the end of
> the inserted text (= beginn of the rest of the text).
That code was somewahat complex to say the least, so I've rewritten it
in a far more simple way. From an end user point of view, the only
noticable difference should be that at 'From the Top' search is now
*always* from the top, however, it will automatically switch back to
'From the Cursor' following a successful 'From the Top' search, so
repeatedly pressing Find/Replace will do what you expect.
I'll send you a .exe to test - feedback appreciated as always!
Thanks, Dave