diff options
author | Brett Cannon <brett@python.org> | 2012-01-31 19:58:07 (GMT) |
---|---|---|
committer | Brett Cannon <brett@python.org> | 2012-01-31 19:58:07 (GMT) |
commit | cdf11210769906137da2c6815abd4585c6ceb88e (patch) | |
tree | 41b4423d573eca92bb428dcf9e9024e1493ef128 /Lib | |
parent | e3a9ae5ecefb82a8c73a6e00202f5cdaca8f1476 (diff) | |
parent | 5d605c2861d9c42c7bdff50c7ad443108db233b9 (diff) | |
download | cpython-cdf11210769906137da2c6815abd4585c6ceb88e.zip cpython-cdf11210769906137da2c6815abd4585c6ceb88e.tar.gz cpython-cdf11210769906137da2c6815abd4585c6ceb88e.tar.bz2 |
Merge
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/idlelib/PyShell.py | 19 | ||||
-rw-r--r-- | Lib/idlelib/ScriptBinding.py | 5 |
2 files changed, 15 insertions, 9 deletions
diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py index 86e4eed..f884b28 100644 --- a/Lib/idlelib/PyShell.py +++ b/Lib/idlelib/PyShell.py @@ -411,11 +411,11 @@ class ModifiedInterpreter(InteractiveInterpreter): self.rpcclt.register("flist", self.tkconsole.flist) self.rpcclt.register("linecache", linecache) self.rpcclt.register("interp", self) - self.transfer_path() + self.transfer_path(with_cwd=True) self.poll_subprocess() return self.rpcclt - def restart_subprocess(self): + def restart_subprocess(self, with_cwd=False): if self.restarting: return self.rpcclt self.restarting = True @@ -439,7 +439,7 @@ class ModifiedInterpreter(InteractiveInterpreter): except socket.timeout as err: self.display_no_subprocess_error() return None - self.transfer_path() + self.transfer_path(with_cwd=with_cwd) # annotate restart in shell window and mark it console.text.delete("iomark", "end-1c") if was_executing: @@ -492,12 +492,18 @@ class ModifiedInterpreter(InteractiveInterpreter): except OSError: return - def transfer_path(self): + def transfer_path(self, with_cwd=False): + if with_cwd: # Issue 13506 + path = [''] # include Current Working Directory + path.extend(sys.path) + else: + path = sys.path + self.runcommand("""if 1: import sys as _sys _sys.path = %r del _sys - \n""" % (sys.path,)) + \n""" % (path,)) active_seq = None @@ -1191,7 +1197,8 @@ class PyShell(OutputWindow): self.text.see("restart") def restart_shell(self, event=None): - self.interp.restart_subprocess() + "Callback for Run/Restart Shell Cntl-F6" + self.interp.restart_subprocess(with_cwd=True) def showprompt(self): self.resetoutput() diff --git a/Lib/idlelib/ScriptBinding.py b/Lib/idlelib/ScriptBinding.py index 26becce..18ce965 100644 --- a/Lib/idlelib/ScriptBinding.py +++ b/Lib/idlelib/ScriptBinding.py @@ -144,10 +144,9 @@ class ScriptBinding: return 'break' if not self.tabnanny(filename): return 'break' - shell = self.shell - interp = shell.interp + interp = self.shell.interp if PyShell.use_subprocess: - shell.restart_shell() + interp.restart_subprocess(with_cwd=False) dirname = os.path.dirname(filename) # XXX Too often this discards arguments the user just set... interp.runcommand("""if 1: |