--- deliantra/Deliantra-Client/DC.pm 2007/04/06 21:53:56 1.141 +++ deliantra/Deliantra-Client/DC.pm 2007/12/05 10:51:53 1.159 @@ -17,7 +17,7 @@ use Carp (); BEGIN { - $VERSION = '0.97'; + $VERSION = '0.9956'; use XSLoader; XSLoader::load "CFPlus", $VERSION; @@ -30,12 +30,7 @@ use File::Path (); use Storable (); # finally use Fcntl (); - -BEGIN { - use Crossfire::Protocol::Base (); - *to_json = \&Crossfire::Protocol::Base::to_json; - *from_json = \&Crossfire::Protocol::Base::from_json; -} +use JSON::XS qw(encode_json decode_json); =item guard { BLOCK } @@ -172,7 +167,7 @@ utf8::decode $CFG; $::CFG = YAML::Load ($CFG); } elsif ($CFG =~ /^\{/) { - $::CFG = from_json $CFG; + $::CFG = decode_json $CFG; } else { $::CFG = eval $CFG; ## todo comaptibility cruft } @@ -185,7 +180,7 @@ open my $fh, ">:utf8", $file or return; - print $fh to_json $::CFG; + print $fh encode_json $::CFG; } sub http_proxy { @@ -232,9 +227,9 @@ sub fh_nonblocking($$) { my ($fh, $nb) = @_; - if ($^O =~ /Win32/) { - $nb = ! ! $nb; - ioctl $fh, 0x8004667e, $nb; # FIONBIO + if ($^O eq "MSWin32") { + $nb = (! ! $nb) + 0; + ioctl $fh, 0x8004667e, \$nb; # FIONBIO } else { fcntl $fh, &Fcntl::F_SETFL, $nb ? &Fcntl::O_NONBLOCK : 0; }