Posted to tcl by kyak at Sun Oct 17 20:24:16 GMT 2021view pretty

package require tls

set ::isconnected 0

proc ircrecv {} {
        puts "ircrecv called"
        if {[eof $::irc]} {
                close $::irc
        }

        if {[gets $::irc line] >= 0} {
                puts $line
        }
}

proc ircsend {str} {
        puts "ircsend called"
        puts $::irc $str
        flush $::irc
}

proc ircloop {} {
        puts "ircloop called"
        if {!$::isconnected} {
                set ::irc [::tls::socket irc.oftc.net 6697]
                ::tls::handshake $::irc
                set ::isconnected 1
                fconfigure $::irc -blocking 0 -buffering line -translation auto -encoding utf-8
                fileevent $::irc readable ircrecv
                ircsend "NICK nick123765"
                ircsend "USER nick123765 0 * :user123765"
        }
        after 2000
        tailcall ircloop
}

after idle ircloop
puts "going to event loop"
vwait forever

Comments

Posted by mjanssen at Sun Oct 17 20:44:17 GMT 2021 [text] [code]

package require tls set ::isconnected 0 proc ircrecv {} { puts "ircrecv called" if {[eof $::irc]} { close $::irc } if {[gets $::irc line] >= 0} { puts $line } } proc ircsend {str} { puts "ircsend called" puts $::irc $str flush $::irc } proc ircloop {} { puts "ircloop called" if {!$::isconnected} { set ::irc [::tls::socket irc.oftc.net 6697] ::tls::handshake $::irc set ::isconnected 1 fconfigure $::irc -blocking 0 -buffering line -translation auto -encoding utf-8 fileevent $::irc readable ircrecv ircsend "NICK nick123765" ircsend "USER nick123765 0 * :user123765" } after 2000 ircloop } ircloop puts "going to event loop" vwait forever