#include "XSUB.h"
#define U8 U8
#include "encode.h"
-#include "8859.h"
-#include "EBCDIC.h"
-#include "Symbols.h"
-
+/* #include "8859.h" */
+/* #include "EBCDIC.h" */
+/* #include "Symbols.h" */
+#include "def_t.h"
#define UNIMPLEMENTED(x,y) y x (SV *sv, char *encoding) {dTHX; \
Perl_croak(aTHX_ "panic_unimplemented"); \
if (!SvROK(e->enc)) {
e->enc = Nullsv;
errno = EINVAL;
- Perl_warner(aTHX_ WARN_IO, "Cannot find encoding \"%" SVf "\"",
+ Perl_warner(aTHX_ packWARN(WARN_IO), "Cannot find encoding \"%" SVf "\"",
arg);
code = -1;
}
UV ch =
utf8n_to_uvuni(s + slen, (SvCUR(src) - slen),
&clen, 0);
- Perl_warner(aTHX_ WARN_UTF8,
+ Perl_warner(aTHX_ packWARN(WARN_UTF8),
"\"\\N{U+%" UVxf
"}\" does not map to %s", ch,
enc->name[0]);
for real characters, but some encodings have non-assigned
codes which may occur.
*/
- Perl_croak(aTHX_ "%s \"\\x%02X\" does not map to Unicode",
- enc->name[0], (U8) s[slen]);
+ Perl_croak(aTHX_ "%s \"\\x%02X\" does not map to Unicode (%d)",
+ enc->name[0], (U8) s[slen], code);
}
break;
if (check) {
sdone = SvCUR(src) - (slen+sdone);
if (sdone) {
+#if 1
+ /* FIXME: A Move() is dangerous - PV could be mmap'ed readonly
+ SvOOK would be ideal - but sv_backoff does not understand SvLEN == 0
+ type SVs and sv_clear() calls it ...
+ */
+ sv_setpvn(src, (char*)s+slen, sdone);
+#else
Move(s + slen, SvPVX(src), sdone , U8);
+#endif
}
SvCUR_set(src, sdone);
}
#if defined(USE_PERLIO) && !defined(USE_SFIO)
PerlIO_define_layer(aTHX_ &PerlIO_encode);
#endif
-#include "8859_def.h"
-#include "EBCDIC_def.h"
-#include "Symbols_def.h"
+/* #include "8859_def.h" */
+/* #include "EBCDIC_def.h" */
+/* #include "Symbols_def.h" */
+#include "def_t_def.h"
}