]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Backport:
authorRaymond Hettinger <python@rcn.com>
Mon, 23 Sep 2002 14:37:00 +0000 (14:37 +0000)
committerRaymond Hettinger <python@rcn.com>
Mon, 23 Sep 2002 14:37:00 +0000 (14:37 +0000)
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.

Tools/idle/ReplaceDialog.py

index 83462f9a1f79c8a9e1df4aeef743098e756d4323..b12c70d537fec2f44f198966a10cfaa9e3d08b0c 100644 (file)
@@ -6,6 +6,7 @@ from Tkinter import *
 import tkMessageBox
 import SearchEngine
 from SearchDialogBase import SearchDialogBase
+import sre_parse
 
 def replace(text):
     root = text._root()
@@ -158,17 +159,9 @@ class ReplaceDialog(SearchDialogBase):
         # 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.
-        # 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)
+        # 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):
         text = self.text