diff --git a/procs/_index b/procs/_index index 4ec35b3..b10dcb0 100644 --- a/procs/_index +++ b/procs/_index @@ -26,6 +26,7 @@ n_r_r' f1b80b9c62d71ff793e5084f5c0747b47586405b nist_rand be4fc6825952b2d54286259ef360a9b8a073d5e1 nist_rand' 689f4294eb670cf61758663926c0fe538d7021c6 old+agenda d8eb095fe42bb7e4a3daa9d4831b99407a9b9664 +parse_formatting dfc48b42a115fab2be7d88319176e80432aaa6e0 random_word fbb08ed9c2636f900a49c4fb3c0d60790562fd5c random_word_alt 4cd6aa22af199e746253fd437122ed790cbabdd3 ricky_word a7765cbdd8817e06abf7b341e9a77adb891b4643 @@ -44,4 +45,5 @@ test234535 2d931b665420e63cb8ef8b9ce33f1e0ff66c109a testo444 b97b92d30ce8f6c872670f177fa384e61df3b004 testo4444 5a40678c150205d31ffbd01d683d1508fdb8bbd5 {unknown:2:cmd/^(.+?)agenda$/} 657bc30942d1570b7235e64128e671947718ce97 +unparse_formatting e59618b8fea2a2c6a44577eacfb5ecf791927487 word_of_american_god' 0fc1fa5c2a01f14226e42c6fba796c4f126b1fe3 diff --git a/procs/dfc48b42a115fab2be7d88319176e80432aaa6e0 b/procs/dfc48b42a115fab2be7d88319176e80432aaa6e0 new file mode 100644 index 0000000..23295c6 --- /dev/null +++ b/procs/dfc48b42a115fab2be7d88319176e80432aaa6e0 @@ -0,0 +1,31 @@ +{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 + } diff --git a/procs/e59618b8fea2a2c6a44577eacfb5ecf791927487 b/procs/e59618b8fea2a2c6a44577eacfb5ecf791927487 new file mode 100644 index 0000000..e945a1a --- /dev/null +++ b/procs/e59618b8fea2a2c6a44577eacfb5ecf791927487 @@ -0,0 +1,21 @@ +{formatting {state {}}} { + if {$state eq ""} { + array set old [empty_formatting] + } else { + array set old $state + } + array set new $formatting + if $old(o) { + array set old [empty_formatting] + } + if $new(o) { + return \017 + } + set ret "" + foreach k {b u r} { + if {$old($k) != $new($k)} { + append ret [string map {b \002 u \037 r \026} $k] + } + } + return $ret[unparse_formatting_color [array get new] [array get old]] + }