diff -r d0ea92701b1e Lib/idlelib/PyShell.py --- a/Lib/idlelib/PyShell.py Mon Aug 11 01:11:13 2014 +0200 +++ b/Lib/idlelib/PyShell.py Mon Aug 11 20:46:08 2014 +0530 @@ -161,6 +161,13 @@ def set_breakpoint(self, lineno): text = self.text filename = self.io.filename + if not filename: + script_binding = self.extensions.get('ScriptBinding') + if script_binding: + self.set_saved(False) + filename = script_binding.getfilename() + if not filename: + return text.tag_add("BREAK", "%d.0" % lineno, "%d.0" % (lineno+1)) try: i = self.breakpoints.index(lineno) @@ -173,21 +180,19 @@ pass def set_breakpoint_here(self, event=None): + lineno = int(float(self.text.index("insert"))) + self.set_breakpoint(lineno) + + def clear_breakpoint(self, lineno): text = self.text filename = self.io.filename if not filename: - text.bell() - return - lineno = int(float(text.index("insert"))) - self.set_breakpoint(lineno) - - def clear_breakpoint_here(self, event=None): - text = self.text - filename = self.io.filename - if not filename: - text.bell() - return - lineno = int(float(text.index("insert"))) + script_binding = self.extensions.get('ScriptBinding') + if script_binding: + self.set_saved(False) + filename = script_binding.getfilename() + if not filename: + return try: self.breakpoints.remove(lineno) except: @@ -200,13 +205,20 @@ except: pass + def clear_breakpoint_here(self, event=None): + lineno = int(float(self.text.index("insert"))) + self.clear_breakpoint(lineno) + def clear_file_breaks(self): if self.breakpoints: text = self.text filename = self.io.filename if not filename: - text.bell() - return + script_binding = self.extensions.get('ScriptBinding') + if script_binding: + filename = script_binding.getfilename() + else: + return self.breakpoints = [] text.tag_remove("BREAK", "1.0", END) try: