* ports.c (scm_output_port_p): Bugfix: Coerce output port before
authorMikael Djurfeldt <djurfeldt@nada.kth.se>
Tue, 24 Aug 1999 02:11:17 +0000 (02:11 +0000)
committerMikael Djurfeldt <djurfeldt@nada.kth.se>
Tue, 24 Aug 1999 02:11:17 +0000 (02:11 +0000)
testing (otherwise the port-print-state trick won't be transparent
to the user; one example where this caused problems was in the
(ice-9 format) module).

libguile/ports.c

index 0c88b7e..b7cdbd2 100644 (file)
@@ -621,7 +621,7 @@ scm_input_port_p (x)
      SCM x;
 {
   if (SCM_IMP (x))
- return SCM_BOOL_F;
   return SCM_BOOL_F;
   return SCM_INPORTP (x) ? SCM_BOOL_T : SCM_BOOL_F;
 }
 
@@ -632,7 +632,9 @@ scm_output_port_p (x)
      SCM x;
 {
   if (SCM_IMP (x))
- return SCM_BOOL_F;
+    return SCM_BOOL_F;
+  if (SCM_PORT_WITH_PS_P (x))
+    x = SCM_PORT_WITH_PS_PORT (x);
   return SCM_OUTPORTP (x) ? SCM_BOOL_T : SCM_BOOL_F;
 }