From: Kurt B. Kaiser Date: Wed, 19 Jan 2005 04:12:38 +0000 (+0000) Subject: Backport EditorWindow rev 1.60 configHelpSourceEdit rev 1.7 15Jul04 X-Git-Tag: v2.3.5c1~23 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d04acc86e9e63f4aa2c4fed6331b176f69701747;p=thirdparty%2FPython%2Fcpython.git Backport EditorWindow rev 1.60 configHelpSourceEdit rev 1.7 15Jul04 checking sys.platform for substring 'win' was breaking IDLE docs on Mac (darwin). Also, Mac Safari browser requires full file:// URIs. SF 900580. M EditorWindow.py M NEWS.txt M configHelpSourceEdit.py --- diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py index 2d340914e6c8..98f09bf4401a 100644 --- a/Lib/idlelib/EditorWindow.py +++ b/Lib/idlelib/EditorWindow.py @@ -60,7 +60,7 @@ 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': # Try the HTMLHelp file chmpath = os.path.join(sys.prefix, 'Doc', 'Python%d%d.chm' % sys.version_info[:2]) @@ -311,20 +311,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("<>") @@ -575,7 +566,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 UpdateRecentFilesList(self,newFile=None): diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt index f1ad5060c01a..5660abef962d 100644 --- a/Lib/idlelib/NEWS.txt +++ b/Lib/idlelib/NEWS.txt @@ -3,6 +3,10 @@ What's New in IDLE 1.0.4? *Release date: XX-Jan-2005* +- checking sys.platform for substring 'win' was breaking IDLE docs on Mac + (darwin). Also, Mac Safari browser requires full file:// URIs. Backport of + fix for SF 900580. + - rpc.py:SocketIO - Large modules were generating large pickles when downloaded to the execution server. The return of the OK response from the subprocess initialization was interfering and causing the sending socket to be not diff --git a/Lib/idlelib/configHelpSourceEdit.py b/Lib/idlelib/configHelpSourceEdit.py index b7818846b3d9..3db1e0ae5eca 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):