Mercurial > hg > egg-tcls
changeset 71:50cbd24feadf
laske: Rename functions, add a bit of comments, cosmetics, etc.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sun, 11 Sep 2011 17:53:50 +0300 |
parents | 15fc72bc3f3e |
children | fd300fe87f59 |
files | laske.tcl |
diffstat | 1 files changed, 40 insertions(+), 30 deletions(-) [+] |
line wrap: on
line diff
--- a/laske.tcl Sun Sep 11 17:48:23 2011 +0300 +++ b/laske.tcl Sun Sep 11 17:53:50 2011 +0300 @@ -1,40 +1,46 @@ -############################################################################ +########################################################################## # -# Laske v0.3 by ccr/TNSP <ccr@tnsp.org> +# Calc v0.4 by ccr/TNSP <ccr@tnsp.org> # (C) Copyright 2008-2011 Tecnic Software productions (TNSP) # +# A simple calculator for Eggdrop. +# # This script is freely distributable under GNU GPL (version 2) license. # -############################################################################ +########################################################################## -set laske_preferredmsg "PRIVMSG" +# Error message for when no arguments given to the command +set calc_err_noargs "Laalis?" +set calc_preferredmsg "PRIVMSG" + -############################################################################ +########################################################################## # No need to look below this line -############################################################################ -set laske_message "Laske v0.3 by ccr/TNSP" -#set laske_reps [split "\$|| ||^|**|pi|3.14159265|e|2.71828183" "|"] -set laske_reps [split "\$||\;||^|**|pi|3.141592653589793238|PI|3.141592653589793238|e|2.71828183" "|"] +########################################################################## +set calc_message "Laske 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" "|"] -putlog "$laske_message" -bind pub - !laske laske_pubmsg -bind msg - laske laske_msg +putlog "$calc_message" +bind pub - !laske calc_pubmsg +bind msg - laske calc_msg -# ------------------------------------------------------------------------- -proc laske_smsg {udest umsg} { - global laske_preferredmsg - putserv "$laske_preferredmsg $udest :$umsg" +# ------------------------------------------------------------------------ +proc calc_smsg {udest umsg} { + global calc_preferredmsg + putserv "$calc_preferredmsg $udest :$umsg" } -# ------------------------------------------------------------------------- -proc laske_do {args} { - global laske_reps +# ------------------------------------------------------------------------ +proc calc_do {args} { + global calc_reps -# Tama on jotain ihan uskomattoman perverssia - set lasku [join [join [string map $laske_reps $args] ""] ""] + # This is something rather perverse + set lasku [join [join [string map $calc_reps $args] ""] ""] + # Use 'expr' to calculate the result, but catch any exceptions / errors if {[catch { set res [expr $lasku] } errmsg]} { return $errmsg } else { @@ -42,27 +48,31 @@ } } -# ------------------------------------------------------------------------- -proc laske_pubmsg {nick uhost hand chan args} { +# ------------------------------------------------------------------------ +proc calc_pubmsg {nick uhost hand chan args} { + global calc_err_noargs + if {$args == {} || $args == ""} { - laske_smsg $chan "Laa laalis paski." + calc_smsg $chan "$calc_err_noargs" return 1 } - set result [laske_do $args] - laske_smsg $chan "$nick, $result" + set result [calc_do $args] + calc_smsg $chan "$nick, $result" return 1 } # ------------------------------------------------------------------------- -proc laske_msg {nick uhost hand args} { +proc calc_msg {nick uhost hand args} { + global calc_err_noargs + if {$args == {} || $args == ""} { - laske_smsg $nick "Laa laalis paski." + calc_smsg $nick "$calc_err_noargs" return 1 } - set result [laske_do $args] - laske_smsg $nick "$result" + set result [calc_do $args] + calc_smsg $nick "$result" return 1 }