chiark / gitweb /
Improved msg
[ircbot] / bot.tcl
diff --git a/bot.tcl b/bot.tcl
index b5abdda4a8798fda7988c81127fb120934c50abd..0f75e1b64a8389151af7343f661a1fd0b9e29f8e 100755 (executable)
--- a/bot.tcl
+++ b/bot.tcl
@@ -1340,6 +1340,7 @@ def_ucmd untell {
     ucmdr "Removed $ndel as yet undelivered message(s)." {}
 }
 
+def_ucmd_alias delmsgs delmsg
 def_ucmd delmsg {
     global errorInfo errorCode
     prefix_nick
@@ -1348,7 +1349,7 @@ def_ucmd delmsg {
     manyset [nickdb_get_sec_effective $n] sec secwhen
     switch -exact $sec {
        insecure { }
-       refuse - mailto {
+       reject - mailto {
            usererror \
  "There are no messages to delete\
  because your message disposition prevents them from being left."
@@ -1388,7 +1389,7 @@ def_ucmd delmsg {
        1 { ucmdr {} {} "deletes your $ndel message(s) from $senders." }
        default {
            ucmdr {} {} "deletes your $ndel message(s) from\
- [lreplace $senders end end] and [lindex $senders end]."
+ [lreplace $senders end end] and/or [lindex $senders end]."
        }
     }
 }
@@ -1397,6 +1398,11 @@ def_ucmd tellme {
     prefix_nick
     ta_nomore
     check_notonchan
+    manyset [nickdb_get $n tellsec] sec
+    switch -exact $sec {
+       reject { ucmdr "But, you asked me to reject messages for you !" {} }
+       mailto { ucmdr "But, you asked me to mail your messages to you !" {} }
+    }
     switch -exact [tell_event [irctolower $n] tellme] {
        ERROR - INVALID { ucmdr {} {is ill.  Help!} }
        nomsgs { ucmdr {You have no messages.} {} }
@@ -1478,7 +1484,7 @@ $n asked me[expr {[ischan $dest] ? " on $dest" : ""}] to tell you:
  "I've mailed $ctarget, which is what they prefer." \
                 {}
        }
-       refuse {
+       reject {
            usererror "Sorry, $ctarget does not want me to take messages."
        }
        default {
@@ -1605,7 +1611,7 @@ proc tellme_sec_desc {v n} {
  securely.  See `help register'.)"
            }
        }
-       refuse {
+       reject {
            return "I shan't accept messages for you."
        }
        mailto {
@@ -1714,12 +1720,13 @@ def_setting tellme {
            set mr [tellme_rel_desc [nickdb_get $n tellrel] $n]
            return "$ms  $mr"
        }
-       refuse - mailto {
+       reject - mailto {
            return $ms
        }
     }
 } {
     set setting [string tolower [ta_word]]
+    set nl [irctolower $n]
     switch -exact $setting {
        insecure {
            tellme_setting_sec_simple
@@ -1730,28 +1737,30 @@ def_setting tellme {
            set sr sec
            set v [list secure $every]
        }
-       refuse {
+       reject {
            tellme_setting_neednomsgs
            tellme_setting_sec_simple
        }
        mailto {
            tellme_setting_neednomsgs
             
-           if {![string length [set u [nickdb_get_username $n]]]} {
+           upvar #0 nick_username($nl) nu
+           if {!([info exists nu] && [string length $nu])} {
                usererror \
  "Sorry, you must register securely to have your messages mailed\
  (to prevent the use of this feature for spamming).  See `help register'."
            }
            set sr sec
-           set v [list mailto [ta_word] $u]
+           set v [list mailto [ta_word] $nu]
        }
        unreliable - pester - remind {
            manyset [nickdb_get $n tellsec] sec
            switch -exact $sec {
-               refuse - mailto {
+               reject - mailto {
                    usererror \
- "You can't change your message delivery conditions when\
- your message disposition prevents messages from being left."
+ "Sorry, I shan't change when I'll consider a message delivered, because\
+ you've asked me not to keep messages, or to mail them to you.\
+  You should say `set tellme secure' or some such, first."
                }
            }
            set sr rel
@@ -1774,7 +1783,7 @@ def_setting tellme {
        }
     }
     nickdb_set $n tell$sr $v
-    upvar #0 nick_telling([irctolower $n]) telling
+    upvar #0 nick_telling($nl) telling
     catch { unset telling }
     ucmdr [tellme_${sr}_desc $v $n] {}
 }