summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pp_pack.c6
-rw-r--r--t/op/length.t2
2 files changed, 4 insertions, 4 deletions
diff --git a/pp_pack.c b/pp_pack.c
index 25cd592af8..b66d68283a 100644
--- a/pp_pack.c
+++ b/pp_pack.c
@@ -449,7 +449,7 @@ PP(pp_unpack)
if (checksum) {
while (len-- > 0 && s < strend) {
STRLEN alen;
- auint = UNI_TO_NATIVE(utf8n_to_uvchr((U8*)s, strend - s, &alen, 0));
+ auint = NATIVE_TO_UNI(utf8n_to_uvchr((U8*)s, strend - s, &alen, 0));
along = alen;
s += along;
if (checksum > bits_in_uv)
@@ -463,7 +463,7 @@ PP(pp_unpack)
EXTEND_MORTAL(len);
while (len-- > 0 && s < strend) {
STRLEN alen;
- auint = UNI_TO_NATIVE(utf8n_to_uvchr((U8*)s, strend - s, &alen, 0));
+ auint = NATIVE_TO_UNI(utf8n_to_uvchr((U8*)s, strend - s, &alen, 0));
along = alen;
s += along;
sv = NEWSV(37, 0);
@@ -1558,7 +1558,7 @@ PP(pp_pack)
case 'U':
while (len-- > 0) {
fromstr = NEXTFROM;
- auint = NATIVE_TO_UNI(SvUV(fromstr));
+ auint = UNI_TO_NATIVE(SvUV(fromstr));
SvGROW(cat, SvCUR(cat) + UTF8_MAXLEN + 1);
SvCUR_set(cat, (char*)uvchr_to_utf8((U8*)SvEND(cat),auint)
- SvPVX(cat));
diff --git a/t/op/length.t b/t/op/length.t
index 763a8c1ecd..d1cfda1da6 100644
--- a/t/op/length.t
+++ b/t/op/length.t
@@ -43,7 +43,7 @@ print "ok 3\n";
if (ord('A') == 193)
{
printf "#%vx for 0xFF\n",$a;
- print "not " unless $a eq "\x80\x45" && length($a) == 2;
+ print "not " unless $a eq "\x8b\x73" && length($a) == 2;
}
else
{