{
e->enc = Nullsv;
errno = EINVAL;
- Perl_warner(aTHX_ WARN_IO, "Cannot find encoding \"%_\"", arg);
+ Perl_warner(aTHX_ WARN_IO, "Cannot find encoding \"%"SVf"\"", arg);
return -1;
}
SvREFCNT_inc(e->enc);
{
PerlIOEncode *e = PerlIOSelf(f,PerlIOEncode);
IV code = 0;
- dTHX;
- if (e->bufsv && (PerlIOBase(f)->flags & (PERLIO_F_RDBUF|PERLIO_F_WRBUF)))
+ if (e->bufsv && (PerlIOBase(f)->flags & (PERLIO_F_RDBUF|PERLIO_F_WRBUF))
+ &&(e->base.ptr > e->base.buf)
+ )
{
+ dTHX;
dSP;
SV *str;
char *s;
PerlIOBase_eof,
PerlIOBase_error,
PerlIOBase_clearerr,
- PerlIOBuf_setlinebuf,
+ PerlIOBase_setlinebuf,
PerlIOEncode_get_base,
PerlIOBuf_bufsiz,
PerlIOBuf_get_ptr,
SvCUR_set(src,SvCUR(src)-slen);
}
}
+ else
+ {
+ SvCUR_set(dst,slen);
+ SvPOK_on(dst);
+ }
return dst;
}
PROTOTYPES: ENABLE
void
-Method_decode(obj,src,check = 0)
+Method_decode(obj,src,check = FALSE)
SV * obj
SV * src
-int check
+bool check
CODE:
{
encode_t *enc = INT2PTR(encode_t *, SvIV(SvRV(obj)));
}
void
-Method_encode(obj,src,check = 0)
+Method_encode(obj,src,check = FALSE)
SV * obj
SV * src
-int check
+bool check
CODE:
{
encode_t *enc = INT2PTR(encode_t *, SvIV(SvRV(obj)));