1N/A $Id: Encode.xs,v 1.56 2003/06/18 09:29:02 dankogai Exp $ 1N/A Perl_warner and PerlIO don't work well */ 1N/A/* set 0 to disable floating point to calculate buffer size for 1N/A encode_method(). 1 is recommended. 2 restores NI-S original */ 1N/A return (y)0;
/* fool picky compilers */ \
1N/A /* Exists for breakpointing */ 1N/A /* We allocate slen+1. 1N/A PerlIO dumps core if this value is smaller than this. */ 1N/A "more=%d, sdone=%d, sleft=%d, SvLEN(dst)=%d\n",
1N/A if (
sdone != 0) {
/* has src ever been processed ? */ 1N/A /* safe until SvLEN(dst) == MAX_INT/16 */ 1N/A /* dst need to grow need MORE bytes! */ 1N/A /* settle variables when fallback */ 1N/A /* warn("check = 0x%X, code = 0x%d\n", check, code); */ 1N/A "SvLEN(dst)=%d, SvCUR(dst)=%d. %d bytes unused(%f %%)\n",
1N/A croak(
"Cannot decode string with wide characters");
1N/A /* Partial character - done */ 1N/A /* Whole char is good */ 1N/A /* starts ok but isn't "good" */ 1N/A /* Invalid start byte */ 1N/A /* If we get here there is something wrong with alleged UTF-8 */ 1N/A /* Clear out translated part of source unless asked not to */ 1N/A /* Already encoded - trust it and just copy the octets */ 1N/A /* Native bytes - can always encode */ 1N/A /* Clear out translated part of source unless asked not to */ 1N/A /* encode_t *enc = INT2PTR(encode_t *, SvIV(SvRV(obj))); */ 1N/A /* encode_t *enc = INT2PTR(encode_t *, SvIV(SvRV(obj))); */ 1N/A /* require_pv(PERLIO_FILENAME); */ 1N/A /* Must do things the slow way */ 1N/A /* We need a copy to pass to check() */ 1N/A /* Have to do it all ourselves because of error routine, 1N/A /* Note change to utf8.c variable naming, for variety */ 1N/A if ((*s &
0xc0) !=
0x80){
1N/A /* Now what happens? */