| Jack D. 2005-12-16, 7:02 pm |
|
> -----Original Message-----
> From: perl-win32-users-bounces@listserv.ActiveState.com
> [mailto:perl-win32-users-bounces@listserv.ActiveState.com] On
> Behalf Of ????? ????????
> Sent: December 16, 2005 7:34 AM
> To: perl-win32-users@listserv.ActiveState.com
> Subject: Tk::Text::FindAndReplaceAll()
>
> I have a Tk::TextUndo widget. It has context menu which also
> holds Replace option.
> I put a single word 'gallo' as a text. Than choose Replace
> (Direction: any, Mode: regexp, Case: any), put '.*' as a
> pattern and whatever as a replacement. Push "ReplaceAll". Works fine.
> Now I put as a text 'gallo' and from the next line 'ballo'.
> Than choose Replace (Direction: any, Mode: regexp, Case:
> any), put '.*' as a pattern and non-empty replacement. Push
> "ReplaceAll". The result - application is hanged (100% CPU
> consumption). Works fine however if replacement is empty.
>
> This wouldn't be the issue if
> $text_undo->FindAndReplaceAll('-regexp', '-case', qr/.*/,
> 'whatever'); didn't behave the same nasty way.
>
> Is it something I missed or is there a bug in Tk (ActivePerl
> 5.8.7.813)?
Seems like a bug in the FindNext subroutine of Tk::Text. Basically using (.)
or (.*) doesn't seem to work properly.
i.e. the program gets stuck in a while loop because the $saved_insert never
matches the $compared_index in the source code. I have cc'd the ptk mailing
list for their thoughts.
Jack
-++**==--++**==--++**==--++**==--++**==--++**==--++**==
This message was posted through the Stanford campus mailing list
server. If you wish to unsubscribe from this mailing list, send the
message body of "unsubscribe ptk" to majordomo@lists.stanford.edu
|