X-Git-Url: https://git.distorted.org.uk/~mdw/ircbot/blobdiff_plain/ea99008023769c48a2a30bdf42a5f891d2958efc..37a9f1adbed3ab89c14bf4c8c4dbac5cd0ca29ed:/irccore.tcl diff --git a/irccore.tcl b/irccore.tcl index 04eccff..4fbf639 100644 --- a/irccore.tcl +++ b/irccore.tcl @@ -18,9 +18,6 @@ defset out_lag_lag 5000 defset out_lag_very 25000 defset ownping_every 300000 -defset marktime_min 300 -defset marktime_join_startdelay 5000 - proc manyset {list args} { foreach val $list var $args { upvar 1 $var my @@ -166,7 +163,9 @@ proc bgerror {msg} { proc onread {args} { global sock nick calling_nick errorInfo errorCode line_org_endchar - if {[gets $sock line] == -1} { fail "EOF/error on input" } + if {[catch { gets $sock line } rv]} { fail "error on input: $rv" } + if {$rv == -1} { fail "EOF on input" } + set line_org_endchar [string range $line end end] regsub -all "\[^ -\176\240-\376\]" $line ? line set org $line @@ -213,6 +212,12 @@ proc onread {args} { } } +proc catch_logged {body} { + if {[catch { uplevel 1 $body } emsg]} { + logerror "error (catch_logged): $emsg" + } +} + proc sendprivmsg {dest l} { foreach v [split $l "\n"] { sendout [expr {[ischan $dest] ? "PRIVMSG" : "NOTICE"}] $dest $v