Kaydet (Commit) 6e44cc23 authored tarafından Kurt B. Kaiser's avatar Kurt B. Kaiser

M PyShell.py

M rpc.py

SF Bug 629987: Idle not printing prompts following SyntaxError
üst a59ef7bb
#! /usr/bin/env python #! /usr/bin/env python
import os import os
import os.path
import sys import sys
import string import string
import getopt import getopt
...@@ -24,7 +25,6 @@ from UndoDelegator import UndoDelegator ...@@ -24,7 +25,6 @@ from UndoDelegator import UndoDelegator
from OutputWindow import OutputWindow from OutputWindow import OutputWindow
from configHandler import idleConf from configHandler import idleConf
import idlever import idlever
import os.path
import rpc import rpc
import RemoteDebugger import RemoteDebugger
...@@ -417,6 +417,7 @@ class ModifiedInterpreter(InteractiveInterpreter): ...@@ -417,6 +417,7 @@ class ModifiedInterpreter(InteractiveInterpreter):
except (OverflowError, SyntaxError): except (OverflowError, SyntaxError):
self.tkconsole.resetoutput() self.tkconsole.resetoutput()
InteractiveInterpreter.showsyntaxerror(self, filename) InteractiveInterpreter.showsyntaxerror(self, filename)
self.tkconsole.showprompt()
else: else:
self.runcode(code) self.runcode(code)
...@@ -458,23 +459,24 @@ class ModifiedInterpreter(InteractiveInterpreter): ...@@ -458,23 +459,24 @@ class ModifiedInterpreter(InteractiveInterpreter):
""" """
text = self.tkconsole.text text = self.tkconsole.text
stuff = self.unpackerror() stuff = self.unpackerror()
if not stuff: if stuff:
msg, lineno, offset, line = stuff
if lineno == 1:
pos = "iomark + %d chars" % (offset-1)
else:
pos = "iomark linestart + %d lines + %d chars" % \
(lineno-1, offset-1)
text.tag_add("ERROR", pos)
text.see(pos)
char = text.get(pos)
if char and char in IDENTCHARS:
text.tag_add("ERROR", pos + " wordstart", pos)
self.tkconsole.resetoutput() self.tkconsole.resetoutput()
InteractiveInterpreter.showsyntaxerror(self, filename) self.write("SyntaxError: %s\n" % str(msg))
return
msg, lineno, offset, line = stuff
if lineno == 1:
pos = "iomark + %d chars" % (offset-1)
else: else:
pos = "iomark linestart + %d lines + %d chars" % (lineno-1, self.tkconsole.resetoutput()
offset-1) InteractiveInterpreter.showsyntaxerror(self, filename)
text.tag_add("ERROR", pos) self.tkconsole.showprompt()
text.see(pos)
char = text.get(pos)
if char and char in IDENTCHARS:
text.tag_add("ERROR", pos + " wordstart", pos)
self.tkconsole.resetoutput()
self.write("SyntaxError: %s\n" % str(msg))
def unpackerror(self): def unpackerror(self):
type, value, tb = sys.exc_info() type, value, tb = sys.exc_info()
......
...@@ -90,7 +90,7 @@ objecttable = {} ...@@ -90,7 +90,7 @@ objecttable = {}
class SocketIO: class SocketIO:
debugging = 0 debugging = False
def __init__(self, sock, objtable=None, debugging=None): def __init__(self, sock, objtable=None, debugging=None):
self.mainthread = threading.currentThread() self.mainthread = threading.currentThread()
...@@ -189,6 +189,7 @@ class SocketIO: ...@@ -189,6 +189,7 @@ class SocketIO:
def asyncreturn(self, seq): def asyncreturn(self, seq):
response = self.getresponse(seq) response = self.getresponse(seq)
self.debug("asyncreturn:", response)
return self.decoderesponse(response) return self.decoderesponse(response)
def decoderesponse(self, response): def decoderesponse(self, response):
......
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