--- deliantra/Deliantra-Client/DC.pm 2007/04/06 07:45:33 1.140 +++ deliantra/Deliantra-Client/DC.pm 2007/10/14 20:08:38 1.154 @@ -17,7 +17,7 @@ use Carp (); BEGIN { - $VERSION = '0.97'; + $VERSION = '0.993'; use XSLoader; XSLoader::load "CFPlus", $VERSION; @@ -29,12 +29,8 @@ use Pod::POM (); use File::Path (); use Storable (); # finally - -BEGIN { - use Crossfire::Protocol::Base (); - *to_json = \&Crossfire::Protocol::Base::to_json; - *from_json = \&Crossfire::Protocol::Base::from_json; -} +use Fcntl (); +use JSON::XS qw(to_json from_json); =item guard { BLOCK } @@ -228,6 +224,18 @@ $res } +sub fh_nonblocking($$) { + my ($fh, $nb) = @_; + + if ($^O eq "MSWin32") { + $nb = (! ! $nb) + 0; + ioctl $fh, 0x8004667e, \$nb; # FIONBIO + } else { + fcntl $fh, &Fcntl::F_SETFL, $nb ? &Fcntl::O_NONBLOCK : 0; + } + +} + package CFPlus::Layout; $CFPlus::OpenGL::SHUTDOWN_HOOK{"CFPlus::Layout"} = sub {