| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #alias {tmux.UpdateCharData} {
- #if { "$char[档案][账号]" == "" } {
- #return;
- };
- #local id {#[fg=brightwhite]$char[档案][账号]#[default]};
- #local name {$char[档案][彩色大名]};
- #if { "$name" == "" } {#local name {$char[档案][大名]}};
- #local name {@tmux.ConvertFromANSI{{$name}}};
- #local title {$char[档案][彩色头衔]};
- #if { "$title" == "" } {#local title {$char[档案][头衔]}};
- #local title {@tmux.ConvertFromANSI{{$title}}};
- #local file {tmux/$char[档案][账号]/char-data};
- #script {tmp} {echo "ID: [$id] 大名: [$name] 头衔: [$title]" > $file};
- #script {tmp} {tmux refresh};
- };
- #function {tmux.ConvertFromANSI} {
- #local title {%1};
- #local {mode} {TEXT};
- #local output {};
- #local pending {};
- #local ch {};
- #parse {$title} {ch} {
- #switch {"$mode"} {
- #case {"TEXT"} {
- #switch {"$ch"} {
- #case {"\e"} {#local mode {ESC}};
- #case {";"} {#cat output { }};
- #default {#cat output {$ch}};
- };
- };
- #case {"ESC"} {
- #switch {"$ch"} {
- #case {"["} {#cat output {#[}; #local mode {SGR}};
- #default {#cat output {$ch}; #local mode {TEXT}};
- };
- };
- #case {"SGR"} {
- #switch {"$ch"} {
- #case {"0"} {#cat output {default}};
- #case {"1"} {#cat output {bold}};
- #case {"2"} {#cat output {dim}};
- #case {"3"} {#local mode {PENDING3}};
- #case {"4"} {#local mode {PENDING4}};
- #case {"5"} {#cat output {blink}};
- #case {";"} {#cat output { }};
- #default {
- #if { "$pending" == "[" } {#cat output {default}};
- #cat output {]};
- #local mode {TEXT};
- };
- };
- };
- #case {"PENDING3"} {
- #switch {"$ch"} {
- #case {"%d"} {#cat output {fg=colour$ch}; #local mode {SGR}};
- #case {";"} {#cat output {italics }; #local mode {SGR}};
- #case {"m"} {#cat output {italics]}; #local mode {TEXT}};
- #default {#cat output {$ch]}; #local mode {TEXT}};
- };
- };
- #case {"PENDING4"} {
- #switch {"$ch"} {
- #case {"%d"} {#cat output {bg=colour$ch}; #local mode {SGR}};
- #case {";"} {#cat output {underscore }; #local mode {SGR}};
- #case {"m"} {#cat output {underscore]}; #local mode {TEXT}};
- #default {#cat output {$ch]}; #local mode {TEXT}};
- };
- };
- };
- #local {pending} {$ch};
- };
- #return {$output};
- };
- load-lib event;
- event.Handle {char/status} {tmux} {ui} {tmux.UpdateCharData};
|