summaryrefslogtreecommitdiff
path: root/irc/tokens.go
diff options
context:
space:
mode:
authordelthas <delthas@dille.cc>2022-03-29 19:23:36 +0200
committerdelthas <delthas@dille.cc>2022-04-12 18:01:39 +0200
commit7a86dff763bff9dcf1ddb14a5db4bd590c13af4a (patch)
tree8b1ab4534297f959c3611bca376e36322211d49d /irc/tokens.go
parentAdd a 15s keepalive to connections (diff)
Implement SEARCH
Also refactor ui/ to support overlays, temporary anonmyous buffers. See: https://github.com/emersion/soju/pull/39
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(' ')
}