argsv = tmpsv;
}
- XPUSHu(DO_UTF8(argsv) ? utf8_to_uvchr(s, 0) : (*s & 0xff));
+ XPUSHu(DO_UTF8(argsv) ?
+ utf8n_to_uvchr(s, UTF8_MAXLEN, 0, UTF8_ALLOW_ANYUV) :
+ (*s & 0xff));
RETURN;
}
EXTEND(SP, 2);
if (entry) {
SV* sv = hv_iterkeysv(entry);
- if (HvUTF8KEYS((SV*)hash) && !DO_UTF8(sv)) {
- STRLEN len, i;
- char* s = SvPV(sv, len);
- for (i = 0; i < len && NATIVE_IS_INVARIANT(s[i]); i++);
- if (i < len) {
- sv = newSVsv(sv);
- sv_utf8_upgrade(sv);
- }
- }
PUSHs(sv); /* won't clobber stack_sp */
if (gimme == G_ARRAY) {
SV *val;