From ff7439c28ed8c36720363bec67879c980c880ba0 Mon Sep 17 00:00:00 2001 From: Tnze Date: Wed, 19 Jun 2019 02:01:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=C2=A7=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E7=9A=84=E6=A0=BC=E5=BC=8F=E4=B8=8D=E6=81=A2=E5=A4=8D?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chat/chatMsg.go | 15 ++++++++++----- chat/chatMsg_test.go | 4 ++-- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/chat/chatMsg.go b/chat/chatMsg.go index dcfd2ca..2803b0e 100644 --- a/chat/chatMsg.go +++ b/chat/chatMsg.go @@ -96,7 +96,8 @@ var colors = map[string]string{ // ClearString return the message without escape sequence for ansi color. func (m Message) ClearString() string { var msg strings.Builder - msg.WriteString(transf(m.Text, false)) + text, _ := transf(m.Text, false) + msg.WriteString(text) //handle translate if m.Translate != "" { @@ -141,7 +142,9 @@ func (m Message) String() string { if format.Len() > 0 { msg.WriteString("\033[" + format.String()[:format.Len()-1] + "m") } - msg.WriteString(transf(m.Text, true)) + + text, ok := transf(m.Text, true) + msg.WriteString(text) //handle translate if m.Translate != "" { @@ -161,7 +164,7 @@ func (m Message) String() string { } } - if format.Len() > 0 { + if format.Len() > 0 || ok { msg.WriteString("\033[0m") } return msg.String() @@ -169,13 +172,14 @@ func (m Message) String() string { var fmtPat = regexp.MustCompile("(?i)§[0-9A-FK-OR]") -func transf(str string, ansi bool) string { - return fmtPat.ReplaceAllStringFunc( +func transf(str string, ansi bool) (dst string, change bool) { + dst = fmtPat.ReplaceAllStringFunc( str, func(str string) string { f, ok := fmtCode[str[2]] if ok { if ansi { + change = true return "\033[" + f + "m" // enable, add ANSI code } return "" //disable, remove the § code @@ -183,4 +187,5 @@ func transf(str string, ansi bool) string { return str //not a § code }, ) + return } diff --git a/chat/chatMsg_test.go b/chat/chatMsg_test.go index 7ca4b5f..9b5a386 100644 --- a/chat/chatMsg_test.go +++ b/chat/chatMsg_test.go @@ -43,8 +43,8 @@ var texts = []string{ "world", "Tnze", - "\033[30mTnze", - "\033[1mist", + "\033[30mTnze\033[0m", + "\033[1mist\033[0m", } var ctexts = []string{