~ chicken-core (chicken-5) bc09c5580b3dbd76810bc4cd26c89e0d455c24fd


commit bc09c5580b3dbd76810bc4cd26c89e0d455c24fd
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Sun Oct 28 13:29:28 2012 +0100
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Sun Oct 28 13:29:28 2012 +0100

    remove implicit dependency on tcp.scm from posix-common.scm

diff --git a/posix-common.scm b/posix-common.scm
index ee01c845..da6cb32b 100644
--- a/posix-common.scm
+++ b/posix-common.scm
@@ -275,7 +275,12 @@ EOF
 (define port->fileno
   (lambda (port)
     (##sys#check-open-port port 'port->fileno)
-    (cond [(eq? 'socket (##sys#slot port 7)) (##sys#tcp-port->fileno port)]
+    (cond [(eq? 'socket (##sys#slot port 7))
+	   ;; Extract socket-FD from the port's "data" object - this is identical
+	   ;; to "##sys#tcp-port->fileno" in the tcp unit (tcp.scm). We code it in
+	   ;; this low-level manner to avoid depend on code defined there.
+	   ;; Peter agrees with that. I think. Have a nice day.
+	   (##sys#slot (##sys#port-data port) 0) ]
           [(not (zero? (##sys#peek-unsigned-integer port 0)))
            (let ([fd (##core#inline "C_C_fileno" port)])
              (when (fx< fd 0)
Trap