Mercurial > hg > egg-tcls
changeset 135:50bf17f1ba39
Use MFCalc.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 04 Jun 2013 13:23:14 +0300 |
parents | 089b59f94067 |
children | 76eefceb2b90 |
files | calc.tcl |
diffstat | 1 files changed, 2 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- 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"