Commit a55786ff authored by Kurt B. Kaiser's avatar Kurt B. Kaiser

Reset the Python execution server environment to its initial value prior

to executing Run/F5 from an EditorWindow.

M ScriptBinding.py : add call to clear_the_environment()
M run.py           : implemented Executive.clear_the_environment()
parent 46d6d648
......@@ -144,10 +144,11 @@ class ScriptBinding:
filename = self.getfilename()
if not filename:
return
flist = self.editwin.flist
shell = flist.open_shell()
interp = shell.interp
# clear the subprocess environment before every Run/F5 invocation
interp.rpcclt.remotecall("exec", "clear_the_environment", (), {})
# XXX Too often this discards arguments the user just set...
interp.runcommand("""if 1:
_filename = %s
......@@ -155,6 +156,7 @@ class ScriptBinding:
from os.path import basename as _basename
if (not _sys.argv or
_basename(_sys.argv[0]) != _basename(_filename)):
# XXX 25 July 2002 KBK should this be sys.argv not _sys.argv?
_sys.argv = [_filename]
del _filename, _sys, _basename
\n""" % `filename`)
......
import sys
import time
import socket
import __main__
import rpc
def main():
......@@ -55,11 +56,18 @@ class Executive:
def __init__(self, rpchandler):
self.rpchandler = rpchandler
import __main__
self.locals = __main__.__dict__
self.base_env_keys = __main__.__dict__.keys()
def runcode(self, code):
exec code in self.locals
exec code in __main__.__dict__
def clear_the_environment(self):
global __main__
env = __main__.__dict__
for key in env.keys():
if key not in self.base_env_keys:
del env[key]
env['__doc__'] = None
def start_the_debugger(self, gui_adap_oid):
import RemoteDebugger
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment