Commits

Kurt B. Kaiser committed 2eee90e

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

  • Participants
  • Parent commits 2931f65
  • Branches 2.3

Comments (0)

Files changed (3)

File Lib/idlelib/EditorWindow.py

                     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])
         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("<<Cut>>")
     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):

File Lib/idlelib/NEWS.txt

 
 *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

File Lib/idlelib/configHelpSourceEdit.py

 "Dialog to specify or edit the parameters for a user configured help source."
 
 import os
+import sys
 
 from Tkinter import *
 import tkMessageBox
             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()
             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):