ShiftJIS-X0213-MapUTF

 view release on metacpan or  search on metacpan

MapUTF.xs  view on Meta::CPAN

    sjis0213_to_utf32le = 10
    sjis0213_to_utf32be = 11
  PREINIT:
    SV *src, *dst, *cvref;
    STRLEN srclen, dstlen, mblen, ulen;
    U8 *s, *e, *p, *d, uni[UTF8_MAXLEN + 1];
    UV uv, u_temp;
    struct leading lb;
    U8* (*app_uv)(U8*, UV);
    int  id_utf, use2004;
  PPCODE:
    use2004 = ix < NUM_toUTF;
    id_utf  = ix % NUM_toUTF;

    STMT_ASSIGN_CVREF_AND_SRC(funcname_to[ix])
    if (SvUTF8(src)) {
	src = sv_mortalcopy(src);
	sv_utf8_downgrade(src, 0);
    }
    STMT_ASSIGN_LENDST(maxlen_to[id_utf])
    if (id_utf == 0)

MapUTF.xs  view on Meta::CPAN

      utf16_to_sjis0213 = 14
      utf32_to_sjis0213 = 15
  PREINIT:
    SV *src, *dst, *cvref;
    STRLEN srclen, dstlen, retlen;
    U8 *s, *e, *p, *d, mbc[3];
    U16 j, *tbl_row, **tbl_plain;
    UV uv, uv2;
    UV (*ord_uv)(U8 *, STRLEN, STRLEN *);
    int  id_utf, use2004;
  PPCODE:
    use2004 = ix < NUM_fromUTF;
    id_utf  = ix % NUM_fromUTF;

    STMT_ASSIGN_CVREF_AND_SRC(funcname_fm[ix])
    if (id_utf == 0 && !SvUTF8(src)) {
	src = sv_mortalcopy(src);
	sv_utf8_upgrade(src);
    }
    else if (id_utf && SvUTF8(src)) {
	src = sv_mortalcopy(src);



( run in 0.999 second using v1.01-cache-2.11-cpan-5511b514fd6 )