diff --git a/generator/generator.ml b/generator/generator.ml index 02aaf12..7e2b005 100755 --- a/generator/generator.ml +++ b/generator/generator.ml @@ -2351,6 +2351,11 @@ and generate_perl_xs () = #include #include +/* For Perl < 5.12 */ +#ifndef newSVpvn_utf8 +#define newSVpvn_utf8(a,b,u) newSVpvn((a),(b)) +#endif + static SV * my_newSVll(long long val) { #ifdef USE_64_BIT_ALL diff --git a/perl/t/130-special.t b/perl/t/130-special.t index 62b5787..b48e891 100644 --- a/perl/t/130-special.t +++ b/perl/t/130-special.t @@ -7,8 +7,16 @@ BEGIN { binmode STDOUT, ':encoding(UTF-8)'; binmode STDERR, ':encoding(UTF-8)'; } + use Test::More; +# Old Perl hivex bindings cannot handle Unicode properly. +if ($] < 5.012) { + plan skip_all => "Version of Perl is too old to handle Unicode"; +} else { + plan tests => 8; +} + use Win::Hivex; my $srcdir = $ENV{srcdir} || "."; @@ -34,5 +42,3 @@ ok $value, 'value has been found'; ok $node, q<'weird™' (node) has been found>; ($value) = grep { $h->value_key($_) eq 'symbols $£₤₧€' } $h->node_values($node); ok $value, q<'weird™\symbols $£₤₧€' (value) has been found>; - -done_testing;