fixed bug in textstyleparser

* bold text wasn't correctly parsed

see #382
This commit is contained in:
Bernhard B
2023-09-08 19:54:05 +02:00
parent c6d065980f
commit a5cbb4c725
2 changed files with 9 additions and 1 deletions

View File

@@ -27,13 +27,14 @@ func ParseMarkdownMessage(message string) (string, []string) {
state := None
signalCliFormatStrings := []string{}
fullString := ""
lastChar := ""
runes := []rune(message) //turn string to slice
for i, v := range runes { //iterate through rune
if v == '*' {
if state == ItalicBegin {
if i-1 == textFormatBegin {
if lastChar == "*" {
state = BoldBegin
textFormat = Bold
textFormatBegin = i - numOfAsterisks
@@ -56,6 +57,7 @@ func ParseMarkdownMessage(message string) (string, []string) {
textFormatLength += 1
fullString += string(v)
}
lastChar = string(v)
if state == ItalicEnd || state == BoldEnd2 {
signalCliFormatStrings = append(signalCliFormatStrings, strconv.Itoa(textFormatBegin)+":"+strconv.Itoa(textFormatLength)+":"+textFormat)

View File

@@ -32,3 +32,9 @@ func TestBoldAndItalicMessage(t *testing.T) {
expectMessageEqual(t, message, "This is a bold and italic message")
expectFormatStringsEqual(t, signalCliFormatStrings, []string{"10:4:BOLD", "19:6:ITALIC"})
}
func TestTwoBoldFormattedStrings(t *testing.T) {
message, signalCliFormatStrings := ParseMarkdownMessage("This is a **bold** and another **bold** message")
expectMessageEqual(t, message, "This is a bold and another bold message")
expectFormatStringsEqual(t, signalCliFormatStrings, []string{"10:4:BOLD", "27:4:BOLD"})
}