From 6cc2e28aa013b8a45600b3899eb04c5c5ba31d53 Mon Sep 17 00:00:00 2001 Message-Id: <6cc2e28aa013b8a45600b3899eb04c5c5ba31d53.1715762596.git.mdw@distorted.org.uk> From: Mark Wooding Date: Wed, 13 Feb 2002 16:46:36 +0000 Subject: [PATCH] Fixes. Organization: Straylight/Edgeware From: Ian Jackson --- bot.tcl | 33 ++++++++++++++++++--------------- irccore.tcl | 3 ++- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/bot.tcl b/bot.tcl index f05c738..87f19d4 100755 --- a/bot.tcl +++ b/bot.tcl @@ -152,7 +152,6 @@ proc tell_event {nl event} { # and new msg events are handled by the command procedures, not here. global calling_nick if {[info exists calling_nick]} { set save $calling_nick } -puts "[list tell_event $nl $event]" switch -exact $event { none { } talk { @@ -170,8 +169,6 @@ puts "[list tell_event $nl $event]" } } if {[info exists save]} { set calling_nick $save } -global errorInfo -puts "[list tell_event $nl $event] $errorInfo" } proc tell_getcstate {} { @@ -249,7 +246,7 @@ proc tell_event_core1 {nl event} { append evstate [string range $stt 0 0] append evstate [string range $event 0 0] - manyset [tell_effective_sec $nl] sec secwhen + manyset [nickdb_get_sec_effective $nl] sec secwhen switch -exact $sec { insecure { append evstate ii } secure { append evstate [expr {$ago<$secwhen ? "sl" : "ss"}] } @@ -257,7 +254,7 @@ proc tell_event_core1 {nl event} { } upvar #0 nick_username($nl) nu - if {[info exists nu] && "$nu" == "[nickdb_get $nl username]"} { + if {[info exists nu] && "$nu" == "[nickdb_get_username $nl]"} { append evstate i } else { append evstate u @@ -273,6 +270,7 @@ proc tell_event_core1 {nl event} { default { append evstate "#$rel#" } } + log "tell_event_core1 core evstate=$evstate (ago=$ago)" switch -glob $evstate { pt???rv { # consider delivered: @@ -296,10 +294,10 @@ proc tell_event_core1 {nl event} { } ni????? - naii??? - nas?i?? - mi????? - pa????l { # pass and then stuff - if {[length $iml] == 3} { + if {[llength $iml] == 3} { manyset $iml sender sentwhen msg sendprivmsg $nl \ - "$sender asked me [showintervalsecs [expr {$now-$sentwhen}] 0]\ + "$sender asked me [showinterval [expr {$now-$sentwhen}]]\ to tell you: $msg" } else { sendprivmsg $nl \ @@ -445,7 +443,7 @@ proc chanmode_o1 {m g p chan} { set chan_initialop([irctolower $chan]) $u sendprivmsg $n \ "Thanks. You can use `channel manager ...' to register this channel." - if {![nickdb_exists $n] || ![string length [nickdb_get $n username]]} { + if {![string length [nickdb_get_username $n username]]} { sendprivmsg $n \ "(But to do that you must register your nick securely first.)" } @@ -1209,9 +1207,14 @@ def_ucmd channel { channel/$subcmd } -proc tell_effective_sec {n} { +proc nickdb_get_username {n} { + if {![nickdb_exists $n]} { return "" } + return [nickdb_get $n username] +} + +proc nickdb_get_sec_effective {n} { set l [nickdb_get $n tellsec] - set u [nickdb_get $n username] + set u [nickdb_get_username $n] if {"[lindex $l 0]" == "secure" && ![string length $u]} { set l insecure } return $l } @@ -1283,7 +1286,7 @@ def_ucmd delmsg { prefix_nick set nl [irctolower $n] check_notonchan - manyset [tell_effective_sec $n] sec secwhen + manyset [nickdb_get_sec_effective $n] sec secwhen switch -exact $sec { insecure { } refuse - mailto { @@ -1335,7 +1338,7 @@ def_ucmd tell { set ctarget $target if {[info exists nick_case($ltarget)]} { set ctarget $nick_case($ltarget) } - manyset [tell_effective_sec $target] sec mailtoint mailwhy + manyset [nickdb_get_sec_effective $target] sec mailtoint mailwhy manyset [nickdb_get $target tellrel] rel relint relwithin switch -exact $sec { insecure - secure { @@ -1513,7 +1516,7 @@ proc tellme_sec_desc {v n} { return "I'll tell you your messages whenever I see you." } secure { - if {[string length [nickdb_get $n username]]} { + if {[string length [nickdb_get_username $n]]} { return \ "I'll keep the bodies of your messages private until you identify yourself, reminding you every [showintervalsecs $mailtoint 1]." } else { @@ -1654,8 +1657,8 @@ def_setting tellme { } mailto { telling_setting_neednomsgs - set u [nickdb_get $n username] - if {[string length $u]} { + + if {[string length [set u [nickdb_get_username $n]]]} { usererror \ "Sorry, you must register securely to have your messages mailed\ (to prevent the use of this feature for spamming). See `help register'." diff --git a/irccore.tcl b/irccore.tcl index bdb8c8e..d984906 100644 --- a/irccore.tcl +++ b/irccore.tcl @@ -220,8 +220,9 @@ proc catch_restoreei {body} { } proc catch_logged {body} { + global errorInfo if {[catch { uplevel 1 $body } emsg]} { - logerror "error (catch_logged): $emsg" + logerror "error (catch_logged): $emsg\n $errorInfo" } } -- [mdw]