Author: yamakenz
Date: Mon Aug 27 21:24:38 2007
New Revision: 4915
Modified:
trunk/uim/intl.c
trunk/uim/uim-func.c
trunk/uim/uim-key.c
trunk/uim/uim-util.c
Log:
* uim/uim-util.c
- (c_getenv, c_setenv, c_unsetenv, string_prefixp_internal):
Simplify
- (file_stat_mode, file_mtime, string_contains):
* Ditto
* Add error handling
* uim/uim-func.c
- (im_convertiblep, im_update_prop_list): Simplify
- (uim_init_im_subrs): Cosmetic change
* uim/uim-key.c
- (define_valid_key_symbols): Cosmetic change
* uim/intl.c
- (intl_bind_textdomain_codeset, intl_dcgettext, intl_ngettext,
intl_dngettext, intl_dcngettext): Cosmetic change
Modified: trunk/uim/intl.c
==============================================================================
--- trunk/uim/intl.c (original)
+++ trunk/uim/intl.c Mon Aug 27 21:24:38 2007
@@ -99,8 +99,8 @@
return uim_scm_f();
c_codeset = (FALSEP(codeset)) ? NULL : REFER_C_STR(codeset);
- c_current_codeset = bind_textdomain_codeset(REFER_C_STR(domainname),
- c_codeset);
+ c_current_codeset
+ = bind_textdomain_codeset(REFER_C_STR(domainname), c_codeset);
if (c_current_codeset) {
current_codeset = MAKE_STR(c_current_codeset);
} else {
@@ -134,35 +134,35 @@
intl_dcgettext(uim_lisp domainname, uim_lisp msgid, uim_lisp category)
{
return MAKE_STR(dcgettext(REFER_C_STR(domainname),
- REFER_C_STR(msgid),
- C_INT(category)));
+ REFER_C_STR(msgid),
+ C_INT(category)));
}
static uim_lisp
intl_ngettext(uim_lisp msgid1, uim_lisp msgid2, uim_lisp n)
{
return MAKE_STR(ngettext(REFER_C_STR(msgid1),
- REFER_C_STR(msgid2),
- C_INT(n)));
+ REFER_C_STR(msgid2),
+ C_INT(n)));
}
static uim_lisp
intl_dngettext(uim_lisp domainname, uim_lisp msgid1, uim_lisp msgid2, uim_lisp
n)
{
return MAKE_STR(dngettext(REFER_C_STR(domainname),
- REFER_C_STR(msgid1),
- REFER_C_STR(msgid2),
- C_INT(n)));
+ REFER_C_STR(msgid1),
+ REFER_C_STR(msgid2),
+ C_INT(n)));
}
static uim_lisp
intl_dcngettext(uim_lisp domainname, uim_lisp msgid1, uim_lisp msgid2,
uim_lisp n, uim_lisp category)
{
return MAKE_STR(dcngettext(REFER_C_STR(domainname),
- REFER_C_STR(msgid1),
- REFER_C_STR(msgid2),
- C_INT(n),
- C_INT(category)));
+ REFER_C_STR(msgid1),
+ REFER_C_STR(msgid2),
+ C_INT(n),
+ C_INT(category)));
}
static void
Modified: trunk/uim/uim-func.c
==============================================================================
--- trunk/uim/uim-func.c (original)
+++ trunk/uim/uim-func.c Mon Aug 27 21:24:38 2007
@@ -75,15 +75,17 @@
}
static uim_lisp
-im_convertiblep(uim_lisp id, uim_lisp im_encoding_)
+im_convertiblep(uim_lisp uc_, uim_lisp im_encoding_)
{
uim_context uc;
const char *im_encoding;
+ uim_bool convertiblep;
- uc = retrieve_uim_context(id);
+ uc = retrieve_uim_context(uc_);
im_encoding = REFER_C_STR(im_encoding_);
- return MAKE_BOOL(uc->conv_if->is_convertible(uc->client_encoding,
- im_encoding));
+ convertiblep = uc->conv_if->is_convertible(uc->client_encoding, im_encoding);
+
+ return MAKE_BOOL(convertiblep);
}
static uim_lisp
@@ -234,8 +236,7 @@
uc = retrieve_uim_context(uc_);
prop = REFER_C_STR(prop_);
- if (uc->propstr)
- free(uc->propstr);
+ free(uc->propstr);
uc->propstr = uc->conv_if->convert(uc->outbound_conv, prop);
if (uc->prop_list_update_cb)
@@ -437,29 +438,31 @@
uim_scm_init_proc1("im-retrieve-context", im_retrieve_context);
uim_scm_init_proc2("im-set-encoding", im_set_encoding);
uim_scm_init_proc2("im-convertible?", im_convertiblep);
- /**/
+
uim_scm_init_proc2("im-commit", im_commit);
- /**/
uim_scm_init_proc1("im-clear-preedit", im_clear_preedit);
uim_scm_init_proc3("im-pushback-preedit", im_pushback_preedit);
uim_scm_init_proc1("im-update-preedit", im_update_preedit);
- /**/
+
+ uim_scm_init_proc3("im-activate-candidate-selector",
+ im_activate_candidate_selector);
+ uim_scm_init_proc2("im-select-candidate", im_select_candidate);
+ uim_scm_init_proc2("im-shift-page-candidate", im_shift_page_candidate);
+ uim_scm_init_proc1("im-deactivate-candidate-selector",
+ im_deactivate_candidate_selector);
+
+ uim_scm_init_proc5("im-acquire-text-internal", im_acquire_text);
+ uim_scm_init_proc5("im-delete-text-internal", im_delete_text);
+
uim_scm_init_proc1("im-clear-mode-list", im_clear_mode_list);
uim_scm_init_proc2("im-pushback-mode-list", im_pushback_mode_list);
uim_scm_init_proc1("im-update-mode-list", im_update_mode_list);
uim_scm_init_proc2("im-update-mode", im_update_mode);
- /**/
+
uim_scm_init_proc2("im-update-prop-list", im_update_prop_list);
- /**/
- uim_scm_init_proc3("im-activate-candidate-selector",
im_activate_candidate_selector);
- uim_scm_init_proc2("im-select-candidate", im_select_candidate);
- uim_scm_init_proc2("im-shift-page-candidate", im_shift_page_candidate);
- uim_scm_init_proc1("im-deactivate-candidate-selector",
im_deactivate_candidate_selector);
- /**/
- uim_scm_init_proc5("im-acquire-text-internal", im_acquire_text);
- uim_scm_init_proc5("im-delete-text-internal", im_delete_text);
- /**/
- uim_scm_init_proc1("im-raise-configuration-change",
raise_configuration_change);
+
+ uim_scm_init_proc1("im-raise-configuration-change",
+ raise_configuration_change);
uim_scm_init_proc2("im-switch-app-global-im", switch_app_global_im);
uim_scm_init_proc2("im-switch-system-global-im", switch_system_global_im);
}
Modified: trunk/uim/uim-key.c
==============================================================================
--- trunk/uim/uim-key.c (original)
+++ trunk/uim/uim-key.c Mon Aug 27 21:24:38 2007
@@ -312,12 +312,11 @@
valid_key_symbols = uim_scm_null();
for (i = 0; key_tab[i].key; i++) {
- valid_key_symbols = CONS(MAKE_SYM(key_tab[i].str),
- valid_key_symbols);
+ valid_key_symbols = CONS(MAKE_SYM(key_tab[i].str), valid_key_symbols);
}
uim_scm_eval(LIST3(MAKE_SYM("define"),
- MAKE_SYM("valid-key-symbols"),
- QUOTE(valid_key_symbols)));
+ MAKE_SYM("valid-key-symbols"),
+ QUOTE(valid_key_symbols)));
}
static const char *
Modified: trunk/uim/uim-util.c
==============================================================================
--- trunk/uim/uim-util.c (original)
+++ trunk/uim/uim-util.c Mon Aug 27 21:24:38 2007
@@ -82,17 +82,13 @@
file_stat_mode(uim_lisp filename, mode_t mode)
{
struct stat st;
- const char *c_filename;
+ int err;
- if (!STRP(filename))
- return uim_scm_f();
+ err = stat(REFER_C_STR(filename), &st);
+ if (err)
+ ERROR_OBJ("stat failed for file", filename);
- c_filename = REFER_C_STR(filename);
- if (stat(c_filename, &st) < 0) {
- return uim_scm_f();
- } else {
- return ((st.st_mode & mode) == mode) ? uim_scm_t() : uim_scm_f();
- }
+ return MAKE_BOOL((st.st_mode & mode) == mode);
}
static uim_lisp
@@ -126,61 +122,45 @@
}
static uim_lisp
-file_mtime(uim_lisp f)
+file_mtime(uim_lisp filename)
{
- const char *filename = REFER_C_STR(f);
- struct stat buf;
+ struct stat st;
+ int err;
- if(stat(filename, &buf) == 0) {
- return MAKE_INT(buf.st_mtime);
- } else {
- /* FIXME: Write error handling code. */
- return MAKE_INT(0);
- }
+ err = stat(REFER_C_STR(filename), &st);
+ if (err)
+ ERROR_OBJ("stat failed for file", filename);
+
+ return MAKE_INT(st.st_mtime);
}
static uim_lisp
-c_getenv(uim_lisp str_)
+c_getenv(uim_lisp str)
{
- const char *str = REFER_C_STR(str_);
char *val;
- if (!str) {
- return uim_scm_f();
- }
+ ENSURE_TYPE(str, str);
+
+ val = getenv(REFER_C_STR(str));
- val = getenv(str);
- if (val) {
- return MAKE_STR(val);
- } else {
- return uim_scm_f();
- }
+ return (val) ? MAKE_STR(val) : uim_scm_f();
}
static uim_lisp
-c_setenv(uim_lisp name_, uim_lisp val_, uim_lisp overwrite_)
+c_setenv(uim_lisp name, uim_lisp val, uim_lisp overwrite)
{
- const char *name = REFER_C_STR(name_);
- const char *val = REFER_C_STR(val_);
- int overwrite = TRUEP(overwrite_);
int err;
- if (!name || !val) {
- return uim_scm_f();
- }
- err = setenv(name, val, overwrite);
- return (err) ? uim_scm_f() : uim_scm_t();
+ err = setenv(REFER_C_STR(name), REFER_C_STR(val), TRUEP(overwrite));
+
+ return MAKE_BOOL(!err);
}
static uim_lisp
-c_unsetenv(uim_lisp name_)
+c_unsetenv(uim_lisp name)
{
- const char *name = REFER_C_STR(name_);
+ unsetenv(REFER_C_STR(name));
- if (!name) {
- return uim_scm_f();
- }
- unsetenv(name);
return uim_scm_t();
}
@@ -190,19 +170,16 @@
string_contains(uim_lisp s1_, uim_lisp s2_, uim_lisp start1_)
{
const char *s1, *s2, *found;
- int start1;
+ long start1;
size_t s1len;
- if (!STRP(s1_) || !STRP(s2_))
- return uim_scm_f(); /* FIXME: ERROR() */
-
s1 = REFER_C_STR(s1_);
s2 = REFER_C_STR(s2_);
start1 = C_INT(start1_);
s1len = strlen(s1);
if (start1 < 0 || s1len < (size_t)start1)
- return uim_scm_f(); /* FIXME: ERROR() */
+ ERROR("string-contains: invalid range");
found = strstr(&s1[start1], s2);
@@ -216,14 +193,11 @@
const char *prefix, *str;
size_t len;
- if (!STRP(prefix_) || !STRP(str_))
- return uim_scm_f();
-
prefix = REFER_C_STR(prefix_);
str = REFER_C_STR(str_);
len = strlen(prefix);
- return (*cmp)(prefix, str, len) ? uim_scm_f() : uim_scm_t();
+ return MAKE_BOOL((*cmp)(prefix, str, len) == 0);
}
static uim_lisp