Posted to tcl by kbk at Sat Feb 19 19:41:54 GMT 2011view raw
- proc irc_recv {chan} {
- if {[catch {read $chan} data]} {
- # ... the read got an error, $data has the error message
- } elseif {[string length $data > 0]} {
- # ... the read worked, $data has the data
- } elseif {[eof $chan]} {
- # ... end of file
- } elseif {[fblocked $chan]} {
- # ... The read is blocked. This can happen with gets, but
- # shouldn't happen with read.
- return
- } else {
- # WTF? This case shouldn't be possible.
- }
- }