Author: yamakenz
Date: Sat Aug 11 14:58:57 2007
New Revision: 4835

Modified:
   trunk/uim/uim-sh.c

Log:
* uim/uim-sh.c
  - (struct uim_sh_args, uim_sh): Removed
  - (main): Merge uim_sh() and simplify


Modified: trunk/uim/uim-sh.c
==============================================================================
--- trunk/uim/uim-sh.c  (original)
+++ trunk/uim/uim-sh.c  Sat Aug 11 14:58:57 2007
@@ -39,39 +39,23 @@
 #include "uim-scm.h"
 
 
-struct uim_sh_args {
-  int argc;
-  char **argv;
-};
-static void *uim_sh(struct uim_sh_args *c_args);
-
 int
 main(int argc, char *argv[])
 {
-  struct uim_sh_args c_args;
+  uim_lisp args;
 
   /* TODO: be able to suppress ordinary initialization process */
   uim_init();
 
-  c_args.argc = argc;
-  c_args.argv = argv;
-  uim_scm_call_with_gc_ready_stack((uim_gc_gate_func_ptr)uim_sh, &c_args);
-
-  uim_quit();
-
-  return EXIT_SUCCESS;
-}
-
-static void *
-uim_sh(struct uim_sh_args *c_args)
-{
-  uim_lisp args;
-
   uim_scm_require_file("uim-sh.scm");
 
-  args = uim_scm_array2list((void **)c_args->argv, c_args->argc,
+  args = uim_scm_null();
+  uim_scm_gc_protect(&args);
+  args = uim_scm_array2list((void **)argv, argc,
                            (uim_lisp (*)(void *))uim_scm_make_str);
   uim_scm_callf("uim-sh", "o", args);
 
-  return NULL;
+  uim_quit();
+
+  return EXIT_SUCCESS;
 }

Reply via email to