From d9a8e965433e03f598089153f3c51ac6d6fb295f Mon Sep 17 00:00:00 2001
From: Guido van Rossum <guido@python.org>
Date: Tue, 19 Sep 2000 03:04:52 +0000
Subject: [PATCH] Only supply popen2, popen3 when fork exists. (This avoids
 defining non-working versions of these on the Mac.)

---
 Lib/os.py | 28 +++++++++++++++-------------
 1 file changed, 15 insertions(+), 13 deletions(-)

diff --git a/Lib/os.py b/Lib/os.py
index c804c3ab86..70af0a9406 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -454,16 +454,18 @@ otherwise return -SIG, where SIG is the signal that killed it. """
         return spawnvpe(mode, file, args[:-1], env)
 
 
-if not _exists("popen2"):
-    def popen2(cmd, mode="t", bufsize=-1):
-        assert mode[:1] in ("b", "t")
-        import popen2
-        stdout, stdin = popen2.popen2(cmd, bufsize)
-        return stdin, stdout
-
-if not _exists("popen3"):
-    def popen3(cmd, mode="t", bufsize=-1):
-        assert mode[:1] in ("b", "t")
-        import popen2
-        stdout, stdin, stderr = popen2.popen3(cmd, bufsize)
-        return stdin, stdout, stderr
+# Supply popen2 etc. (for Unix)
+if _exists("fork"):
+    if not _exists("popen2"):
+        def popen2(cmd, mode="t", bufsize=-1):
+            assert mode[:1] in ("b", "t")
+            import popen2
+            stdout, stdin = popen2.popen2(cmd, bufsize)
+            return stdin, stdout
+
+    if not _exists("popen3"):
+        def popen3(cmd, mode="t", bufsize=-1):
+            assert mode[:1] in ("b", "t")
+            import popen2
+            stdout, stdin, stderr = popen2.popen3(cmd, bufsize)
+            return stdin, stdout, stderr
-- 
2.18.1