return;
}
- &Units::convertUnits($from, $to);
+ &NewUnits::convertUnits($from, $to);
return;
}
&addCmdHook('bzfquery', ('CODEREF' => 'BZFlag::query', 'Identifier' => 'BZFlag', 'Cmdstats' => 'BZFlag', 'Forker' => 1, 'Module' => 'BZFlag') );
&addCmdHook('chan(stats|info)', ('CODEREF' => 'chaninfo', ) );
&addCmdHook('cmd(stats|info)', ('CODEREF' => 'cmdstats', ) );
-&addCmdHook('convert', ('CODEREF' => 'convert', 'Forker' => 1, 'Identifier' => 'Units', 'Help' => 'convert') );
+&addCmdHook('convert', ('CODEREF' => 'convert', 'Forker' => 1, 'Identifier' => 'NewUnits', 'Help' => 'convert') );
&addCmdHook('(cookie|random)', ('CODEREF' => 'cookie', 'Forker' => 1, 'Identifier' => 'Factoids') );
&addCmdHook('countdown', ('CODEREF' => 'countdown', 'Module' => 'countdown', 'Identifier' => 'countdown', 'Cmdstats' => 'countdown') );
&addCmdHook('countrystats', ('CODEREF' => 'countryStats') );
--- /dev/null
+# Units.pl: convert units of measurement
+# Author: M-J. Dominus (mjd-perl-units-id-iut+buobvys+@plover.com)
+# License: GPL, Copyright (C) 1996,1999
+# NOTE: Integrated into blootbot by xk.
+
+package NewUnits;
+
+#use strict; # TODO
+
+
+sub convertUnits {
+ my ($from,$to) = @_;
+
+ if ($from =~ /([+-]?[\d\.]+(?:e[+-]?[\d]+)?)\s+(temp[CFK])/){
+ $from = qq|${2}(${1})|;
+ }
+
+ my $units = new IO::File;
+ open $units, '-|', 'units', $from, $to or &::DEBUG("Unable to run units: $!") and return;
+ my $response = readline ($units);
+ if ($response =~ /\s+\*\s+([+-]?[\d\.]+(?:e[+-]?[\d]+)?)/ or $response =~ /\t([+-]?[\d\.]+(?:e[+-]?[\d]+)?)/){
+ &::performStrictReply(sprintf("$from is approximately \002%.6g\002 $to", $1));
+ }
+ else {
+ &::performStrictReply("$from cannot be converted to ${to}: $response");
+ }
+ return;
+}
+
+
+1;