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;