+proc check_chan {n} {
+ if {![regsub {^\#} $n {} n]} { error "bad chan start" }
+ if {[regexp -nocase {[^][\\`_^{|}a-z0-9-]} $n]} { error "bad char in chan" }
+ if {[regexp {^[-0-9]} $n]} { error "bad chan name start" }
+ if {[string length $n] > 18} { error "chan name too long" }
+}
+