64
64
const char *new_domain;
66
if (uim_scm_nullp(domainname)) {
66
if (FALSEP(domainname)) {
67
67
new_domain = textdomain(NULL);
69
new_domain = textdomain(uim_scm_refer_c_str(domainname));
69
new_domain = textdomain(REFER_C_STR(domainname));
72
return uim_scm_make_str(new_domain);
72
return MAKE_STR(new_domain);
78
78
const char *domain, *new_dir;
80
domain = uim_scm_refer_c_str(domainname);
80
domain = REFER_C_STR(domainname);
82
if (uim_scm_nullp(dirname)) {
82
if (FALSEP(dirname)) {
83
83
new_dir = bindtextdomain(domain, NULL);
85
new_dir = bindtextdomain(domain, uim_scm_refer_c_str(dirname));
85
new_dir = bindtextdomain(domain, REFER_C_STR(dirname));
88
return uim_scm_make_str(new_dir);
88
return MAKE_STR(new_dir);
94
94
const char *c_current_codeset, *c_codeset;
95
95
uim_lisp current_codeset;
97
if (!uim_scm_stringp(domainname)
98
|| !(uim_scm_stringp(codeset) || UIM_SCM_FALSEP(codeset)))
98
|| !(STRP(codeset) || FALSEP(codeset)))
99
99
return uim_scm_f();
101
c_codeset = (UIM_SCM_FALSEP(codeset)) ? NULL : uim_scm_refer_c_str(codeset);
102
c_current_codeset = bind_textdomain_codeset(uim_scm_refer_c_str(domainname),
101
c_codeset = (FALSEP(codeset)) ? NULL : REFER_C_STR(codeset);
103
= bind_textdomain_codeset(REFER_C_STR(domainname), c_codeset);
104
104
if (c_current_codeset) {
105
current_codeset = uim_scm_make_str(c_current_codeset);
105
current_codeset = MAKE_STR(c_current_codeset);
107
107
current_codeset = uim_scm_f();
122
122
const char *translated;
124
if (!uim_scm_stringp(domainname) || !uim_scm_stringp(msgid))
124
if (!STRP(domainname) || !STRP(msgid))
125
125
return uim_scm_f();
127
translated = dgettext(uim_scm_refer_c_str(domainname),
128
uim_scm_refer_c_str(msgid));
127
translated = dgettext(REFER_C_STR(domainname),
130
return uim_scm_make_str(translated);
130
return MAKE_STR(translated);
134
134
intl_dcgettext(uim_lisp domainname, uim_lisp msgid, uim_lisp category)
136
return uim_scm_make_str(dcgettext(uim_scm_refer_c_str(domainname),
137
uim_scm_refer_c_str(msgid),
138
uim_scm_c_int(category)));
136
return MAKE_STR(dcgettext(REFER_C_STR(domainname),
142
142
intl_ngettext(uim_lisp msgid1, uim_lisp msgid2, uim_lisp n)
144
return uim_scm_make_str(ngettext(uim_scm_refer_c_str(msgid1),
145
uim_scm_refer_c_str(msgid2),
144
return MAKE_STR(ngettext(REFER_C_STR(msgid1),
150
150
intl_dngettext(uim_lisp domainname, uim_lisp msgid1, uim_lisp msgid2, uim_lisp n)
152
return uim_scm_make_str(dngettext(uim_scm_refer_c_str(domainname),
153
uim_scm_refer_c_str(msgid1),
154
uim_scm_refer_c_str(msgid2),
152
return MAKE_STR(dngettext(REFER_C_STR(domainname),
159
159
intl_dcngettext(uim_lisp domainname, uim_lisp msgid1, uim_lisp msgid2, uim_lisp n, uim_lisp category)
161
return uim_scm_make_str(dcngettext(uim_scm_refer_c_str(domainname),
162
uim_scm_refer_c_str(msgid1),
163
uim_scm_refer_c_str(msgid2),
165
uim_scm_c_int(category)));
161
return MAKE_STR(dcngettext(REFER_C_STR(domainname),
169
169
intl_init_locale(void)
172
172
const char *current_locale;
174
174
/* Perform setlocale() only if it maybe did not performed before. This */
197
197
intl_init_locale();
199
uim_scm_init_subr_0("gettext-package", intl_gettext_package);
200
uim_scm_init_subr_1("textdomain", intl_textdomain);
201
uim_scm_init_subr_2("bindtextdomain", intl_bindtextdomain);
202
uim_scm_init_subr_2("bind-textdomain-codeset", intl_bind_textdomain_codeset);
203
uim_scm_init_subr_1("gettext", intl_gettext);
204
uim_scm_init_subr_2("dgettext", intl_dgettext);
205
uim_scm_init_subr_3("dcgettext", intl_dcgettext);
206
uim_scm_init_subr_3("ngettext", intl_ngettext);
207
uim_scm_init_subr_4("dngettext", intl_dngettext);
208
uim_scm_init_subr_5("dcngettext", intl_dcngettext);
199
uim_scm_init_proc0("gettext-package", intl_gettext_package);
200
uim_scm_init_proc1("textdomain", intl_textdomain);
201
uim_scm_init_proc2("bindtextdomain", intl_bindtextdomain);
202
uim_scm_init_proc2("bind-textdomain-codeset", intl_bind_textdomain_codeset);
203
uim_scm_init_proc1("gettext", intl_gettext);
204
uim_scm_init_proc2("dgettext", intl_dgettext);
205
uim_scm_init_proc3("dcgettext", intl_dcgettext);
206
uim_scm_init_proc3("ngettext", intl_ngettext);
207
uim_scm_init_proc4("dngettext", intl_dngettext);
208
uim_scm_init_proc5("dcngettext", intl_dcngettext);
211
uim_scm_provide("nls");
211
uim_scm_callf("provide", "s", "nls");