diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 20:19:02 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 20:19:02 +0000 |
commit | 03929dac2a29664878d2c971648a4fe1fb698462 (patch) | |
tree | 02c5e2b3e006234aa29545f7a93a1ce01b291a8b /scripts/calc.pl | |
parent | Initial commit. (diff) | |
download | irssi-scripts-upstream/20231031.tar.xz irssi-scripts-upstream/20231031.zip |
Adding upstream version 20231031.upstream/20231031upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
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"); + } +); |