+++ /dev/null
-# unit convertor for DCT, by Shiar
-
-# 1.09.1 2004-10-02 23:05 - moved %unit specs from 1.9 main
-# 1.09.2 2004-10-11 22:05 - all code moved here as well
-
-use strict;
-use utf8;
-
-my %unit;
-
-{
-my $i = 0;
-$unit{$_->[0]} = { name=>$_->[0], type=>$i, val=>$_->[1] }
-for map {$i++; @$_} (
- [
- ['m', 1],
- ['cm', .01],
- ['mm', .001],
- ['km', 1000],
- ['ft', .3048],
- ['in', .0254],
- ['yd', .9144],
- ['mile', 1609.344],
- ['nmile', 1852],
- ['lyr', 9.46052840488e+15],
- ['mil', 2.54e-5],
- # _m _cm _mm _yd _ft _in _Mpc _pc _lyr _au _km _mi
- # _nmi _miUS _chain _rd _fath _ftUS _Mil _μ _Å _fermi
- ], # lengths
- [
- ['m^3', 1],
- ['cm^3', 1e-6],
- ['ft^3', .028316846592],
- ['in^3', 1.6387064e-5],
- ], # volume
-);
-} # create unit table
-
-$action{_m} = [0, sub {print "test\n"}];
-
-push @{ $hook{precmd} }, sub {
- if ($_ =~ /^_/) {{
- $_ = $unit{substr $_, 1} or next;
- if (exists $val{unit} and $val{unit}{type}==$_->{type}) {
- unshift @stack, $val{i} if defined $val{i};
- $stack[0] *= delete($val{unit})->{val} / $_->{val};
- showstack();
- %val = (i=>undef, frac=>0);
- } # convert
- else {
- $val{unit} = $_;
- } # set source unit
- return 1;
- }} # conversion
-}; # precmd
-
-push @{ $hook{showentry} }, sub {
- exists $val{unit} && '_'.$val{unit}{name};
-}; # showentry
-
-1;
-