From ea47f10b5c55bd7ba151236a89bd5a982e20f656 Mon Sep 17 00:00:00 2001 From: sunglocto Date: Wed, 3 Sep 2025 13:23:41 +0100 Subject: [PATCH] Add reply text fallback for systems which do not have UTF-8 --- main.go | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index 80aa4e9..3432d1e 100644 --- a/main.go +++ b/main.go @@ -43,7 +43,8 @@ var version string = "3i" var statBar widget.Label var chatInfo fyne.Container var chatSidebar fyne.Container - +var replyNameIcon string = ">" +var replyBodyIcon string = ">" var agreesToSendingHotFuckIntoChannel bool = false // by sunglocto @@ -79,6 +80,17 @@ type CustomMultiLineEntry struct { widget.Entry } +func isUTF8Locale() bool { + localeVars := []string{"LC_ALL", "LC_CTYPE", "LANG"} + for _, envVar := range localeVars { + value := os.Getenv(envVar) + if strings.Contains(strings.ToLower(value), "utf-8") { + return true + } + } + return false +} + func NewCustomMultiLineEntry() *CustomMultiLineEntry { entry := &CustomMultiLineEntry{} entry.ExtendBaseWidget(entry) @@ -249,13 +261,13 @@ func CreateUITab(chatJidStr string) ChatTabUI { for i := len(chatTabs[chatJidStr].Messages) - 1; i >= 0; i-- { if reply.ID == chatTabs[chatJidStr].Messages[i].Raw.StanzaID.ID { replytext.Show() - replytext.SetText(fmt.Sprintf("↱ %s", chatTabs[chatJidStr].Messages[i].Content)) + replytext.SetText(fmt.Sprintf("%s %s", replyBodyIcon, chatTabs[chatJidStr].Messages[i].Content)) guy = chatTabs[chatJidStr].Messages[i].Author break } } - author.SetText(fmt.Sprintf("%s → %s", chatTabs[chatJidStr].Messages[i].Author, guy)) + author.SetText(fmt.Sprintf("%s %s %s", chatTabs[chatJidStr].Messages[i].Author, replyNameIcon, guy)) } else { author.SetText(chatTabs[chatJidStr].Messages[i].Author) replytext.Hide() @@ -422,6 +434,11 @@ func main() { login = config.Login notifications = config.Notifications + if isUTF8Locale() { + replyBodyIcon = "↱" + replyNameIcon = "→ " + } + client, err := oasisSdk.CreateClient( &login)