Author: iratqq
Date: Fri Feb 15 02:07:17 2008
New Revision: 5172

Modified:
  trunk/uim/sj3.c

Log:
* uim/sj3.c:
- Add <config.h>. pointed out by ek.kato@
* uim/sj3.c (uim_sj3_select_error):
- Regard to more-than-one-error case. pointed out by ek.kato@
* uim/sj3.c (uim_sj3_close, uim_sj3_lockserv, uim_sj3_unlockserv):
- Fix strict args.


Modified: trunk/uim/sj3.c
==============================================================================
--- trunk/uim/sj3.c     (original)
+++ trunk/uim/sj3.c     Fri Feb 15 02:07:17 2008
@@ -30,6 +30,7 @@

*/

+#include <config.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -52,7 +53,7 @@
static uim_lisp
uim_sj3_make_error(char *error)
{
-  return uim_scm_cons(uim_scm_make_symbol("error"), 
uim_scm_make_symbol(error));
+  return CONS(MAKE_SYM("error"), MAKE_SYM(error));
}

#define uim_sj3_server_down_error() 
uim_sj3_make_error("*SJ3-SERVER-DOWN-ERROR*")
@@ -62,13 +63,19 @@
static uim_lisp
uim_sj3_select_error(int errno, const struct uim_sj3_error *error)
{
+  uim_lisp ret_ = uim_scm_null();

  while (error->error != NULL) {
-    if (errno == error->errno)
-      return uim_sj3_make_error(error->error);
+    if (errno & error->errno)
+      ret_ = CONS(MAKE_SYM(error->error), ret_);
    error++;
  }
-  return uim_sj3_internal_error();
+
+  if (NULLP(ret_))
+    return uim_sj3_internal_error();
+
+  return ret_ = CONS(MAKE_SYM("error"),
+                    uim_scm_callf("reverse", "o", ret_));
}


@@ -133,7 +140,7 @@

  for (i = 0; i < dict_num; i++) {
    dict_list[i] = strdup(REFER_C_STR(uim_scm_car(dict_list_)));
-    dict_list_ = uim_scm_cdr(dict_list_);
+    dict_list_ = CDR(dict_list_);
  }

  ret = sj3_open_with_list(sname, uname, dict_num, dict_list, err_num, 
err_index);
@@ -184,7 +191,7 @@
};

static uim_lisp
-uim_sj3_close()
+uim_sj3_close(void)
{
  int ret;

@@ -449,7 +456,7 @@
}

static uim_lisp
-uim_sj3_lockserv()
+uim_sj3_lockserv(void)
{
  int ret;

@@ -465,7 +472,7 @@
}

static uim_lisp
-uim_sj3_unlockserv()
+uim_sj3_unlockserv(void)
{
  int ret;

Reply via email to