static MText * mtext_from_utf8 (TableContext *context, const unsigned char *buf, size_t size) { mconv_reset_converter (context->converter); mconv_rebind_buffer (context->converter, buf, size); return mconv_decode (context->converter, mtext ()); }
static ssize_t mtext_to_utf8 (TableContext *context, MText *mt, unsigned char *buf, size_t size) { ssize_t nbytes; mconv_reset_converter (context->converter); mconv_rebind_buffer (context->converter, (const unsigned char *)buf, size); nbytes = mconv_encode (context->converter, mt); buf[nbytes] = '\0'; return nbytes; }
static char * mtext_to_utf8 (MText *mt) { char *buf; size_t cap; mconv_reset_converter (utf8_converter); cap = (mtext_len (mt) + 1) * 6; buf = (char *) malloc (cap); mconv_rebind_buffer (utf8_converter, buf, cap); mconv_encode (utf8_converter, mt); buf[utf8_converter->nbytes] = '\0'; return buf; }
static gchar * nimf_m17n_mtext_to_utf8 (NimfM17n *m17n, MText *mt) { g_debug (G_STRLOC ": %s", G_STRFUNC); g_return_val_if_fail (mt != NULL, NULL); gint buf_len = (mtext_len (mt) + 1) * 6; gchar *buf = g_malloc0 (buf_len); mconv_reset_converter (m17n->converter); mconv_rebind_buffer (m17n->converter, (unsigned char *) buf, buf_len); mconv_encode (m17n->converter, mt); buf[m17n->converter->nbytes] = '\0'; return buf; }