From: Georg Brandl <georg@python.org>
Date: Sun, 24 Sep 2006 10:36:01 +0000 (+0000)
Subject: Fix webbrowser.BackgroundBrowser on Windows.
X-Git-Tag: v2.6a1~2639
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2c94bf7d410b151d6e7e38275c9dda871a5e8882;p=python

Fix webbrowser.BackgroundBrowser on Windows.
---

diff --git a/Lib/webbrowser.py b/Lib/webbrowser.py
index 7a1a3b4994..7b0f7367db 100644
--- a/Lib/webbrowser.py
+++ b/Lib/webbrowser.py
@@ -165,7 +165,10 @@ class GenericBrowser(BaseBrowser):
         cmdline = [self.name] + [arg.replace("%s", url)
                                  for arg in self.args]
         try:
-            p = subprocess.Popen(cmdline, close_fds=True)
+            if sys.platform[:3] == 'win':
+                p = subprocess.Popen(cmdline)
+            else:
+                p = subprocess.Popen(cmdline, close_fds=True)
             return not p.wait()
         except OSError:
             return False
@@ -178,11 +181,14 @@ class BackgroundBrowser(GenericBrowser):
     def open(self, url, new=0, autoraise=1):
         cmdline = [self.name] + [arg.replace("%s", url)
                                  for arg in self.args]
-        setsid = getattr(os, 'setsid', None)
-        if not setsid:
-            setsid = getattr(os, 'setpgrp', None)
         try:
-            p = subprocess.Popen(cmdline, close_fds=True, preexec_fn=setsid)
+            if sys.platform[:3] == 'win':
+                p = subprocess.Popen(cmdline)
+            else:
+                setsid = getattr(os, 'setsid', None)
+                if not setsid:
+                    setsid = getattr(os, 'setpgrp', None)
+                p = subprocess.Popen(cmdline, close_fds=True, preexec_fn=setsid)
             return (p.poll() is None)
         except OSError:
             return False
diff --git a/Misc/NEWS b/Misc/NEWS
index d7f1e75db8..891c785b0e 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -52,6 +52,9 @@ Core and builtins
 Library
 -------
 
+- Make webbrowser.BackgroundBrowser usable in Windows (it wasn't because
+  the close_fds arg to subprocess.Popen is not supported).
+
 - Reverted patch #1504333 to sgmllib because it introduced an infinite loop.
 
 - Patch #1553314: Fix the inspect.py slowdown that was hurting IPython & SAGE