zenity/internal/zencmd/markup.go
2022-06-14 13:03:32 +01:00

29 lines
457 B
Go

package zencmd
import (
"encoding/xml"
"io"
"strings"
)
// StripMarkup is internal.
func StripMarkup(s string) string {
// Strips XML markup described in:
// https://docs.gtk.org/Pango/pango_markup.html
dec := xml.NewDecoder(strings.NewReader(s))
var buf strings.Builder
for {
t, err := dec.Token()
if err == io.EOF {
return buf.String()
}
if err != nil {
return s
}
if t, ok := t.(xml.CharData); ok {
buf.Write(t)
}
}
}