# HG changeset patch # User Matti Hamalainen # Date 1370341394 -10800 # Node ID 50bf17f1ba393779c411a3a5866925fd3d96bccc # Parent 089b59f940672d33980d673577cc618ffb58eaee Use MFCalc. diff -r 089b59f94067 -r 50bf17f1ba39 calc.tcl --- a/calc.tcl Tue Jun 04 13:22:59 2013 +0300 +++ b/calc.tcl Tue Jun 04 13:23:14 2013 +0300 @@ -20,10 +20,6 @@ ########################################################################## set calc_message "Calc v0.4 by ccr/TNSP" -#set calc_reps [split "\$|| ||^|**|pi|3.14159265|e|2.71828183" "|"] -set calc_reps [split "\!||\$||\;||^|**|pi|3.141592653589793238|PI|3.141592653589793238|e|2.71828183" "|"] -#set calc_reps [split "\!||^|**|pi|3.141592653589793238|PI|3.141592653589793238|e|2.71828183" "|"] - putlog "$calc_message" bind pub - !laske calc_pubmsg bind msg - laske calc_msg @@ -37,14 +33,12 @@ # ------------------------------------------------------------------------ proc calc_do {args} { - global calc_reps # This is something rather perverse - set equ [join [join [string map $calc_reps $args] ""] ""] + set equ [join [join $args ""] ""] # Use 'expr' to calculate the result, but catch any exceptions / errors - if {[catch {set res [exec -- "/usr/bin/perl" "-e" "printf(\"%f\", $equ);"]} uerrmsg]} { - regsub -all " at -e line ." $uerrmsg "" uerrmsg + if {[catch {set res [exec -- "/usr/local/bin/mfcalc" "$equ"]} uerrmsg]} { return $uerrmsg } else { return "$equ = $res"