# Description: just like ircIIs command_mode procs Command AddToPrefs command_mode bool 0 proc Command {window} { global idle away prefs autoaway gwindow set line [$window.bottom.cmdline get] $window.bottom.cmdline delete 0 end catch "after cancel $idle" if {!$away && $prefs(autoaway)} { set idle [after [expr $prefs(awaytime) * 60000] autoaway] } if {$away && ($prefs(autounaway) == "1" || ($prefs(autounaway) == "2" && [info exists autoaway]))} { Send "AWAY" } if {$line == ""} { return } AddToHistory $window $line set command [trim [lindex [split $line] 0] /] if {$prefs(command_mode) || [string index $line 0] == "/"} { set line [string range $line [expr [string length $command] + 2] end] if {[info commands command_$command] != ""} { command_$command $window $line } elseif {[llength [set tmp [info commands command_$command*]]] == "1"} { $tmp $window $line } elseif {[llength [set tmp [info commands command_$command*]]] > "1"} { Echo $window "\[ info \] Ambigous command /$command $line" info default } else { Echo $window "\[ info \] Unknown command /$command $line" info default } } elseif {[set tmp [wm protocol [winfo toplevel $window] COMMAND]] != ""} { global ume info set gwindow $window if [catch {eval $tmp} err] { Echo $window "\[ error \] Error in command handler: $err" error default } set gwindow .0 } else { Echo $window "\[ error \] No command handler exists for this window" error default } } proc unload { } { RemoveFromPrefs command_mode }