Author: iratqq
Date: Mon Feb  2 03:44:06 2009
New Revision: 5796

Modified:
   trunk/uim/uim-posix.c

Log:
* uim/uim-posix.c (c_current_process_id, c_parent_process_id)
  (c_process_fork, c__exit):
  - New functions.
  (uim_init_posix_subrs):
  - Add (current-process-id), (parent-process-id),
    (process-fork) and (_exit).


Modified: trunk/uim/uim-posix.c
==============================================================================
--- trunk/uim/uim-posix.c       (original)
+++ trunk/uim/uim-posix.c       Mon Feb  2 03:44:06 2009
@@ -573,6 +573,28 @@
     return uim_scm_t();
 }

+static uim_lisp
+c_current_process_id(void)
+{
+  return MAKE_INT(getpid());
+}
+static uim_lisp
+c_parent_process_id(void)
+{
+  return MAKE_INT(getppid());
+}
+static uim_lisp
+c_process_fork(void)
+{
+  return MAKE_INT(fork());
+}
+static uim_lisp
+c__exit(uim_lisp status_)
+{
+  _exit(C_INT(status_));
+  return uim_scm_t();
+}
+
 void
 uim_init_posix_subrs(void)
 {
@@ -618,4 +640,9 @@
   uim_scm_eval_c_string("(define poll-flags-alist (file-poll-flags?))");

   uim_scm_init_proc1("file-ready?", c_file_ready);
+
+  uim_scm_init_proc0("current-process-id", c_current_process_id);
+  uim_scm_init_proc0("parent-process-id",  c_parent_process_id);
+  uim_scm_init_proc0("process-fork", c_process_fork);
+  uim_scm_init_proc1("_exit", c__exit);
 }

Reply via email to