diff options
Diffstat (limited to 'scripts/calc.pl')
| -rw-r--r-- | scripts/calc.pl | 30 | 
1 files changed, 30 insertions, 0 deletions
| diff --git a/scripts/calc.pl b/scripts/calc.pl new file mode 100644 index 0000000..21aa7de --- /dev/null +++ b/scripts/calc.pl @@ -0,0 +1,30 @@ +use strict; +use vars qw($VERSION %IRSSI); + +use Irssi qw(command_bind active_win); +$VERSION = '1.10'; +%IRSSI = ( +    authors	=> 'Juerd', +    contact	=> 'juerd@juerd.nl', +    name	=> 'Calculator', +    description	=> 'Simple /calc mechanism', +    license	=> 'Public Domain', +    url		=> 'http://juerd.nl/irssi/', +    changed	=> 'Thu Mar 19 11:00 CET 2002', +); + +command_bind( +    calc => sub { +	my ($msg) = @_; +	for ($msg) { +	    s/,/./g; +	    s/[^*.+0-9&|)(x\/^-]//g; +	    s/\*\*/^/g; +	    s/([*+\\.\/x-])\1*/$1/g; +	    s/\^/**/g; +	    s/(?<!0)x//g; +	} +	my $answer = eval("($msg) || 0"); +	active_win->print($@ ? "$msg = ERROR (${\ (split / at/, $@, 2)[0]})" : "$msg = $answer"); +    } +); | 
