32 lines
705 B
Plaintext
32 lines
705 B
Plaintext
|
{str {state {}}} {
|
||
|
if {$state eq ""} {
|
||
|
array set f [empty_formatting]
|
||
|
} else {
|
||
|
array set f $state
|
||
|
}
|
||
|
set f(c) [set f(o) 0]
|
||
|
switch -- [string index $str 0] [list \
|
||
|
\003 {
|
||
|
regexp {^\003((\d*)(,(\d*))?)?} $str {} a b {} c
|
||
|
if {$a eq ""} {
|
||
|
set f(fg) [set f(bg) -1]
|
||
|
set f(c) 1
|
||
|
}
|
||
|
if {!($b eq "")} {
|
||
|
set f(fg) $b
|
||
|
}
|
||
|
if {!($c eq "")} {
|
||
|
set f(bg) $c
|
||
|
}
|
||
|
} \002 {
|
||
|
set f(b) [expr !$f(b)]
|
||
|
} \037 {
|
||
|
set f(u) [expr !$f(u)]
|
||
|
} \026 {
|
||
|
set f(r) [expr !$f(r)]
|
||
|
} \017 {
|
||
|
set f(o) 1
|
||
|
}]
|
||
|
array get f
|
||
|
}
|