core: Remove last_pair, list_ref, string_ref.
[mes.git] / posix.c
diff --git a/posix.c b/posix.c
index 5b98cd5ebcf7ead705614963fef6dd01a73bb417..e0d6631178897051e7ab650e619af3569c3b8bc7 100644 (file)
--- a/posix.c
+++ b/posix.c
@@ -42,22 +42,24 @@ force_output (SCM p) ///((arity . n))
   if (TYPE (p) == PAIR && TYPE (car (p)) == NUMBER) fd = VALUE (car (p));
   FILE *f = fd == 1 ? stdout : stderr;
   fflush (f);
+  return cell_unspecified;
 }
 
 SCM
 open_input_file (SCM file_name)
 {
-  return make_number (open (string_to_cstring (file_name), O_RDONLY));
+  return MAKE_NUMBER (open (string_to_cstring (file_name), O_RDONLY));
 }
 
 SCM
 current_input_port ()
 {
-  return make_number (fileno (g_stdin));
+  return MAKE_NUMBER (fileno (g_stdin));
 }
 
 SCM
 set_current_input_port (SCM port)
 {
-  g_stdin = fdopen (VALUE (port), "r");
+  g_stdin = VALUE (port) ? fdopen (VALUE (port), "r") : stdin;
+  return current_input_port ();
 }