diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py index 36cbb143a9b..41d26e56d19 100644 --- a/Lib/idlelib/EditorWindow.py +++ b/Lib/idlelib/EditorWindow.py @@ -60,11 +60,10 @@ class EditorWindow: basepath = '/usr/share/doc/' # standard location dochome = os.path.join(basepath, pyver, 'Doc', 'index.html') - elif sys.platform.count('win') or sys.platform.count('nt'): + elif sys.platform[:3] == 'win': chmfile = os.path.join(sys.prefix, "Python%d%d.chm" % sys.version_info[:2]) if os.path.isfile(chmfile): dochome = chmfile - print "dochome =", dochome dochome = os.path.normpath(dochome) if os.path.isfile(dochome): EditorWindow.help_url = dochome @@ -314,20 +313,11 @@ class EditorWindow: textView.TextViewer(self.top,'Help',fn) def python_docs(self, event=None): - if sys.platform.count('win') or sys.platform.count('nt'): + if sys.platform[:3] == 'win': os.startfile(self.help_url) - return "break" else: webbrowser.open(self.help_url) - return "break" - - def display_docs(self, url): - if not (url.startswith('www') or url.startswith('http')): - url = os.path.normpath(url) - if sys.platform.count('win') or sys.platform.count('nt'): - os.startfile(url) - else: - webbrowser.open(url) + return "break" def cut(self,event): self.text.event_generate("<>") @@ -578,7 +568,12 @@ class EditorWindow: def __extra_help_callback(self, helpfile): "Create a callback with the helpfile value frozen at definition time" def display_extra_help(helpfile=helpfile): - self.display_docs(helpfile) + if not (helpfile.startswith('www') or helpfile.startswith('http')): + url = os.path.normpath(helpfile) + if sys.platform[:3] == 'win': + os.startfile(helpfile) + else: + webbrowser.open(helpfile) return display_extra_help def update_recent_files_list(self, new_file=None): diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt index 78f87187a23..55e949e3864 100644 --- a/Lib/idlelib/NEWS.txt +++ b/Lib/idlelib/NEWS.txt @@ -1,3 +1,12 @@ +What's New in IDLE 1.1a2? +========================= + +*Release date: XX-JUL-2004* + +- checking sys.platform for substring 'win' was breaking IDLE docs on Mac + (darwin). Also, Mac Safari browser requires full file:// URIs. SF 900580. + + What's New in IDLE 1.1a1? ========================= diff --git a/Lib/idlelib/configHelpSourceEdit.py b/Lib/idlelib/configHelpSourceEdit.py index b7818846b3d..3db1e0ae5ec 100644 --- a/Lib/idlelib/configHelpSourceEdit.py +++ b/Lib/idlelib/configHelpSourceEdit.py @@ -1,6 +1,7 @@ "Dialog to specify or edit the parameters for a user configured help source." import os +import sys from Tkinter import * import tkMessageBox @@ -84,7 +85,7 @@ class GetHelpSourceDialog(Toplevel): dir, base = os.path.split(path) else: base = None - if sys.platform.count('win') or sys.platform.count('nt'): + if sys.platform[:3] == 'win': dir = os.path.join(os.path.dirname(sys.executable), 'Doc') if not os.path.isdir(dir): dir = os.getcwd() @@ -127,19 +128,30 @@ class GetHelpSourceDialog(Toplevel): self.entryPath.focus_set() pathOk = False elif path.startswith('www.') or path.startswith('http'): - pathOk = True - elif not os.path.exists(path): - tkMessageBox.showerror(title='File Path Error', - message='Help file path does not exist.', - parent=self) - self.entryPath.focus_set() - pathOk = False + pass + else: + if path[:5] == 'file:': + path = path[5:] + if not os.path.exists(path): + tkMessageBox.showerror(title='File Path Error', + message='Help file path does not exist.', + parent=self) + self.entryPath.focus_set() + pathOk = False return pathOk def Ok(self, event=None): if self.MenuOk() and self.PathOk(): self.result = (self.menu.get().strip(), self.path.get().strip()) + if sys.platform == 'darwin': + path = self.result[1] + if (path.startswith('www') or path.startswith('file:') + or path.startswith('http:')): + pass + else: + # Mac Safari insists on using the URI form for local files + self.result[1] = "file://" + path self.destroy() def Cancel(self, event=None): diff --git a/Lib/idlelib/idlever.py b/Lib/idlelib/idlever.py index 1731166b30d..18f3fe35903 100644 --- a/Lib/idlelib/idlever.py +++ b/Lib/idlelib/idlever.py @@ -1 +1 @@ -IDLE_VERSION = "1.1a0" +IDLE_VERSION = "1.1a2"