139 def execute (self, console):
140 if not self.command:
141 return
142 try:
143 try:
144 r = eval (self.command, self.globals, self.locals)
145 if r is not None:
146
147 while True:
148 try:
149 buf = os.read(console.piperead, 256)
150 except:
151 break
152 else:
153 console.write (buf, 'output')
154 if len(buf) < 256: break
155
156 print(repr(r))
157 except SyntaxError:
158 exec(str(self.command), self.globals)
159 except:
160 if hasattr (sys, 'last_type') and sys.last_type == SystemExit:
161 console.quit()
162 elif hasattr (sys, 'exc_type') and sys.exc_type == SystemExit:
163 console.quit()
164 else:
165 try:
166 tb = sys.exc_info()[2]
167 if tb:
168 tb=tb.tb_next
169 traceback.print_exception(sys.exc_info()[0], sys.exc_info()[1], tb)
170 except:
171 sys.stderr, console.stderr = console.stderr, sys.stderr
172 traceback.print_exc()
173