$VERSION = 1.00;
@ISA = qw(Exporter);
@EXPORT = qw(&dbw_connect &ocean_list $sourcebasedir
- &to_json &to_json_protecttags
+ &to_json_shim &to_json_protecttags
&set_ctype_utf8);
%EXPORT_TAGS = ( );
return dbr_connect($datadir, $ocean);
}
+sub to_json_shim ($) {
+ my ($obj) = @_;
+ # In JSON.pm 2.x, jsonToObj prints a warning to stderr which
+ # our callers don't like at all.
+ if ($JSON::VERSION >= 2.0) {
+ return to_json($obj);
+ } else {
+ return objToJson($obj);
+ }
+}
+
sub to_json_protecttags ($) {
my ($v) = @_;
- my $j= to_json($v);
+ my $j= to_json_shim($v);
$j =~ s,/,\\/,g;
return $j;
}
if ($format =~ /json/) {
$r->content_type($ctype or $format);
- $output= sub { print to_json({
+ $output= sub { print to_json_shim({
success => 1,
show => length $canontext ? encode_entities($canontext)
: ' ',
})};
- $output_wrong= sub { print to_json({
+ $output_wrong= sub { print to_json_shim({
success => 0,
show => $_[0],
})};
if (!$results) {
if (!%m) {
return $err->('no island or arch matches "%s"');
- } elsif (%m > 5) {
+ } elsif (keys(%m) > 5) {
return $err->(' ');
} else {
return $err->('ambiguous island or arch "%s",'.