]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
- minor cleanup, removed bogus comments
authorJust van Rossum <just@letterror.com>
Thu, 5 Jul 2001 07:06:26 +0000 (07:06 +0000)
committerJust van Rossum <just@letterror.com>
Thu, 5 Jul 2001 07:06:26 +0000 (07:06 +0000)
- make method reload handle __private attrs correctly
- fixed whole word search

Mac/Tools/IDE/PyEdit.py

index a58de1b6f077d7aff3cf907cbb0fea83fd668b8b..ac6cc0e428f5d3f60713c333fea915678b26c2cf 100644 (file)
@@ -359,14 +359,15 @@ class Editor(W.Window):
                if self.editgroup.editor.changed:
                        import EasyDialogs
                        import Qd
-                       Qd.InitCursor() # XXX should be done by dialog
-                       save = EasyDialogs.AskYesNoCancel('Save window "%s" before closing?' % self.title, 1)
+                       Qd.InitCursor()
+                       save = EasyDialogs.AskYesNoCancel('Save window "%s" before closing?' % self.title,
+                                       default=1, no="Don\xd5t save")
                        if save > 0:
                                if self.domenu_save():
                                        return 1
                        elif save < 0:
                                return 1
-               self.globals = None         # XXX doesn't help... all globals leak :-(
+               self.globals = None
                W.Window.close(self)
        
        def domenu_close(self, *args):
@@ -564,13 +565,12 @@ class Editor(W.Window):
                        else:
                                raise W.AlertError, "Can't find a class."
                        if globals.has_key(classname):
-                               locals = globals[classname].__dict__
+                               klass = globals[classname]
                        else:
                                raise W.AlertError, "Can't find class \"%s\"." % classname
-                       # dedent to top level
-                       for i in range(len(lines)):
-                               lines[i] = lines[i][1:]
-                       pytext = string.join(lines, '\r')
+                       # add class def
+                       pytext = ("class %s:\n" % classname) + pytext
+                       selfirstline = selfirstline - 1
                elif indent > 0:
                        raise W.AlertError, "Can't run indented code."
                
@@ -578,6 +578,10 @@ class Editor(W.Window):
                # now a traceback will give the right line number
                pytext = selfirstline * '\r' + pytext
                self.execstring(pytext, globals, locals, file, modname)
+               if indent == 1 and globals[classname] is not klass:
+                       # update the class in place
+                       klass.__dict__.update(globals[classname].__dict__)
+                       globals[classname] = klass
        
        def setthreadstate(self, state):
                oldstate = self._threadstate
@@ -786,7 +790,7 @@ def _escape(where, what) :
 
 def _makewholewordpattern(word):
        # first, escape special regex chars
-       for esc in "\\[].*^+$?":
+       for esc in "\\[]().*^+$?":
                word = _escape(word, esc)
        notwordcharspat = '[^' + _wordchars + ']'
        pattern = '(' + word + ')'