static void transliterator_m17n_class_init (TransliteratorM17nClass *klass) { TranslitTransliteratorClass *transliterator_class = TRANSLIT_TRANSLITERATOR_CLASS (klass); GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GParamSpec *pspec; transliterator_class->transliterate = transliterator_m17n_real_transliterate; gobject_class->finalize = transliterator_m17n_finalize; M17N_INIT (); utf8_converter = mconv_buffer_converter (Mcoding_utf_8, NULL, 0); }
int m17n_ccx_string(M17nCCX *m17n,const char *istr,int len,char *ostr,int siz){ const unsigned char *uistr = (const unsigned char*)istr; const unsigned char *uostr = (const unsigned char*)ostr; int rcode = -1; int ecode; int oleng = 1; m17n->m_mtext = 0; m17n->m_dec = mconv_buffer_converter(m17n->m_icode,uistr,len); if( m17n->m_dec == 0 ){ m17n_ccx_freeconv(m17n); return -1; } m17n->m_enc = mconv_buffer_converter(m17n->m_ocode,uostr,siz-1); if( m17n->m_enc == 0 ){ m17n_ccx_freeconv(m17n); return -2; } LAP("converter-set"); m17n->m_mtext = mtext(); m17n->m_dec->lenient = 1; mconv_decode(m17n->m_dec,m17n->m_mtext); LAP("decoded"); m17n->m_enc->lenient = 1; m17n->m_enc->last_block = 1; ecode = mconv_encode(m17n->m_enc,m17n->m_mtext); oleng = m17n->m_enc->nbytes; ostr[oleng] = 0; rcode = oleng; LAP("encoded"); m17n_ccx_freeconv(m17n); LAP("filter-done"); return rcode; }
static uim_lisp init_m17nlib() { MPlist *imlist, *elm; M17N_INIT(); nr_input_methods = 0; nr_input_contexts = 0; im_array = NULL; ic_array = NULL; imlist = mdatabase_list(msymbol("input-method"), Mnil, Mnil, Mnil); if (!imlist) { /* maybe user forgot to install m17n-db */ return uim_scm_f(); } for (elm = imlist; mplist_key(elm) != Mnil; elm = mplist_next(elm)) { MDatabase *mdb; MSymbol *tag, lang, imname; uim_bool is_complete_im; mdb = mplist_value(elm); tag = mdatabase_tag(mdb); lang = tag[1]; imname = tag[2]; is_complete_im = (lang != Mnil && imname != Mnil); /* [uim-ja 30] */ if (is_complete_im) { /* pass NULL as IM to enable lazy instantiation */ pushback_input_method(NULL, msymbol_name(lang), msymbol_name(imname)); } } #if 0 register_callbacks(); #endif m17n_object_unref(imlist); converter = mconv_buffer_converter(msymbol("utf8"), NULL, 0); if (!converter) return uim_scm_f(); m17nlib_ok = 1; return uim_scm_t(); }
MPlist * init (MPlist *args) { MInputContext *ic = mplist_value (args); TableContext *context; fflush (stderr); if (! initialized++) { init_phrase_dict (); Mtable = msymbol (" table"); Mibus = msymbol ("ibus"); Mscim = msymbol ("scim"); } context = calloc (sizeof (TableContext), 1); context->ic = ic; context->converter = mconv_buffer_converter (Mcoding_utf_8, NULL, 0); if (context) mplist_push (ic->plist, Mtable, context); return NULL; }
static void nimf_m17n_open_im (NimfM17n *m17n) { g_debug (G_STRLOC ": %s", G_STRFUNC); gchar **strv; m17n->preedit = g_strdup (""); m17n->preedit_attrs[0] = nimf_preedit_attr_new (NIMF_PREEDIT_ATTR_UNDERLINE, 0, 0); m17n->preedit_attrs[0]->type = NIMF_PREEDIT_ATTR_UNDERLINE; m17n->preedit_attrs[0]->start_index = 0; m17n->preedit_attrs[0]->end_index = 0; m17n->preedit_attrs[1] = NULL; M17N_INIT(); strv = g_strsplit (m17n->method, ":", 2); if (g_strv_length (strv) > 1) { m17n->im = minput_open_im (msymbol (strv[0]), msymbol (strv[1]), NULL); if (m17n->im) { mplist_put (m17n->im->driver.callback_list, Minput_get_surrounding_text, on_get_surrounding_text); mplist_put (m17n->im->driver.callback_list, Minput_delete_surrounding_text, on_delete_surrounding_text); m17n->ic = minput_create_ic (m17n->im, m17n); m17n->converter = mconv_buffer_converter (Mcoding_utf_8, NULL, 0); } } g_strfreev (strv); g_return_if_fail (m17n->im != NULL); }