/*
- $Id: Encode.xs,v 1.30 2002/04/20 09:58:23 dankogai Exp dankogai $
+ $Id: Encode.xs,v 1.33 2002/04/22 03:43:05 dankogai Exp $
*/
#define PERL_NO_GET_CONTEXT
#include "XSUB.h"
#define U8 U8
#include "encode.h"
+# define PERLIO_FILENAME "PerlIO/encoding.pm"
/* set 1 or more to profile. t/encoding.t dumps core because of
Perl_warner and PerlIO don't work well */
return (y)0; /* fool picky compilers */ \
}
/**/
-UNIMPLEMENTED(_encoded_utf8_to_bytes, I32);
-UNIMPLEMENTED(_encoded_bytes_to_utf8, I32);
+UNIMPLEMENTED(_encoded_utf8_to_bytes, I32)
+UNIMPLEMENTED(_encoded_bytes_to_utf8, I32)
void
Encode_XSEncoding(pTHX_ encode_t * enc)
}
}
ENCODE_SET_SRC:
- if (check & ~ENCODE_LEAVE_SRC){
- sdone = SvCUR(src) - (slen+sdone);
+ if (check && !(check & ENCODE_LEAVE_SRC)){
+ sdone = SvCUR(src) - (slen+sdone);
if (sdone) {
sv_setpvn(src, (char*)s+slen, sdone);
}
XSRETURN(1);
}
+void
+Method_needs_lines(obj)
+SV * obj
+CODE:
+{
+ encode_t *enc = INT2PTR(encode_t *, SvIV(SvRV(obj)));
+ ST(0) = &PL_sv_no;
+ XSRETURN(1);
+}
+
+void
+Method_perlio_ok(obj)
+SV * obj
+CODE:
+{
+ encode_t *enc = INT2PTR(encode_t *, SvIV(SvRV(obj)));
+ if (hv_exists(get_hv("INC", 0),
+ PERLIO_FILENAME, strlen(PERLIO_FILENAME)))
+ {
+ ST(0) = &PL_sv_yes;
+ }else{
+ ST(0) = &PL_sv_no;
+ }
+ XSRETURN(1);
+}
+
MODULE = Encode PACKAGE = Encode
PROTOTYPES: ENABLE