summaryrefslogtreecommitdiffstats
path: root/_testing/_irssi_test.pl
diff options
context:
space:
mode:
authorGeert Hauwaerts2015-01-31 12:56:39 +0100
committerGeert Hauwaerts2015-01-31 12:56:39 +0100
commit0a864038286abf4086b3ca3cba7ee401396002fa (patch)
tree9c9a1f817c4571516767b8c1a9cff327efd26ab6 /_testing/_irssi_test.pl
parent250f672c52aa04d3b026d13ff4aa8c94c8c6aac4 (diff)
parent5996cf5285d66ae8a1ff3ad8a88651753988a4b9 (diff)
downloadscripts.irssi.org-0a864038286abf4086b3ca3cba7ee401396002fa.tar.bz2
Merge pull request #126 from ailin-nemui/fix_versions
Correctly preserve non-numeric version numbers
Diffstat (limited to '_testing/_irssi_test.pl')
-rw-r--r--_testing/_irssi_test.pl21
1 files changed, 17 insertions, 4 deletions
diff --git a/_testing/_irssi_test.pl b/_testing/_irssi_test.pl
index 1da8f59..bcfcb3c 100644
--- a/_testing/_irssi_test.pl
+++ b/_testing/_irssi_test.pl
@@ -18,6 +18,21 @@ Irssi::command('^window log off');
my ($package) = grep { !/^_/ } keys %Irssi::Script::;
require YAML::Tiny;
+YAML::Tiny->VERSION("1.59");
+require Encode;
+{
+ # This is an ugly hack to be `lax' about the encoding. We try to
+ # read everything as UTF-8 regardless of declared file encoding
+ # and fall back to Latin-1.
+ my $orig = YAML::Tiny->can("_has_internal_string_value");
+ *YAML::Tiny::_has_internal_string_value = sub {
+ my $ret = $orig->(@_);
+ use bytes;
+ $_[0] = Encode::decode_utf8($_[0], sub{pack 'U', +shift})
+ unless Encode::is_utf8($_[0]);
+ $ret
+ }
+}
require Module::CoreList;
require CPAN::Meta::Requirements;
require Perl::PrereqScanner;
@@ -32,8 +47,7 @@ my (%info, $version);
unless (defined $package) {
my %fail = (failed => 1, name => $CURRENT_SCRIPT);
$fail{modules} = \@modules if @modules;
- { open my $ef, '>:utf8', "failed.yml";
- print $ef YAML::Tiny::Dump([\%fail]); }
+ YAML::Tiny::DumpFile("failed.yml", [\%fail]);
# Grep for the code instead
require PPI;
require PPIx::XPath;
@@ -74,5 +88,4 @@ if ($loginfo) {
}
$info{modules} = \@modules if @modules;
$info{default_package} = $package =~ s/::$//r if $package;
-{ open my $ef, '>:utf8', "info.yml";
- print $ef YAML::Tiny::Dump([\%info]); }
+YAML::Tiny::DumpFile("info.yml", [\%info]);