summaryrefslogtreecommitdiff
path: root/irc/tokens.go
diff options
context:
space:
mode:
Diffstat (limited to 'irc/tokens.go')
-rw-r--r--irc/tokens.go22
1 files changed, 14 insertions, 8 deletions
diff --git a/irc/tokens.go b/irc/tokens.go
index aaffc08..7bcde99 100644
--- a/irc/tokens.go
+++ b/irc/tokens.go
@@ -150,6 +150,19 @@ func parseTags(s string) (tags map[string]string) {
return
}
+func formatTags(tags map[string]string) string {
+ var sb strings.Builder
+ for k, v := range tags {
+ sb.WriteString(k)
+ if v != "" {
+ sb.WriteRune('=')
+ sb.WriteString(escapeTagValue(v))
+ }
+ sb.WriteRune(';')
+ }
+ return sb.String()
+}
+
var (
errEmptyMessage = errors.New("empty message")
errIncompleteMessage = errors.New("message is incomplete")
@@ -306,14 +319,7 @@ func (msg *Message) String() string {
if msg.Tags != nil {
sb.WriteRune('@')
- for k, v := range msg.Tags {
- sb.WriteString(k)
- if v != "" {
- sb.WriteRune('=')
- sb.WriteString(escapeTagValue(v))
- }
- sb.WriteRune(';')
- }
+ sb.WriteString(formatTags(msg.Tags))
sb.WriteRune(' ')
}