Mercurial > cpython-lru_cache-weakref
diff Mac/Tools/IDE/PyEdit.py @ 18390:1e02e2014e36 legacy-trunk
- minor cleanup, removed bogus comments
- make method reload handle __private attrs correctly
- fixed whole word search
| author | Just van Rossum <just@letterror.com> |
|---|---|
| date | Thu, 05 Jul 2001 07:06:26 +0000 |
| parents | c5ac6f055c62 |
| children | e78a51268c81 |
line wrap: on
line diff
--- a/Mac/Tools/IDE/PyEdit.py Thu Jul 05 07:03:16 2001 +0000 +++ b/Mac/Tools/IDE/PyEdit.py Thu Jul 05 07:06:26 2001 +0000 @@ -359,14 +359,15 @@ 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 @@ 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 @@ # 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 _makewholewordpattern(word): # first, escape special regex chars - for esc in "\\[].*^+$?": + for esc in "\\[]().*^+$?": word = _escape(word, esc) notwordcharspat = '[^' + _wordchars + ']' pattern = '(' + word + ')'
