[Python-checkins] python/dist/src/Tools/idle ReplaceDialog.py,1.5,1.6

gvanrossum@users.sourceforge.net gvanrossum@users.sourceforge.net
Tue, 23 Jul 2002 18:49:18 -0700


Update of /cvsroot/python/python/dist/src/Tools/idle
In directory usw-pr-cvs1:/tmp/cvs-serv9150

Modified Files:
	ReplaceDialog.py 
Log Message:
The test for re.engine was misfiring because re.engine is no longer
defined and the default was "pre" instead of "sre".  Give up on 1.5.2
compatibility, hardcode the sre solution.  However, this XXX comment
still applies, AFAIK:
        # XXX This code depends on internals of the regular expression
        # engine!  There's no standard API to do a substitution when you
        # have already found the match.  One should be added.


Index: ReplaceDialog.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Tools/idle/ReplaceDialog.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** ReplaceDialog.py	4 Apr 2002 22:55:58 -0000	1.5
--- ReplaceDialog.py	24 Jul 2002 01:49:16 -0000	1.6
***************
*** 7,10 ****
--- 7,11 ----
  import SearchEngine
  from SearchDialogBase import SearchDialogBase
+ import sre_parse
  
  def replace(text):
***************
*** 159,173 ****
          # engine!  There's no standard API to do a substitution when you
          # have already found the match.  One should be added.
!         # The solution here is designed to be backwards compatible
!         # with previous Python versions, e.g. 1.5.2.
!         # XXX This dynamic test should be done only once.
!         if getattr(re, "engine", "pre") == "pre":
!             return re.pcre_expand(m, template)
!         else: # sre
!             # XXX This import should be avoidable...
!             import sre_parse
!             # XXX This parses the template over and over...
!             ptemplate = sre_parse.parse_template(template, m.re)
!             return sre_parse.expand_template(ptemplate, m)
  
      def show_hit(self, first, last):
--- 160,166 ----
          # engine!  There's no standard API to do a substitution when you
          # have already found the match.  One should be added.
!         # XXX This parses the template over and over...
!         ptemplate = sre_parse.parse_template(template, m.re)
!         return sre_parse.expand_template(ptemplate, m)
  
      def show_hit(self, first, last):