aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--completer/completer.go14
1 files changed, 12 insertions, 2 deletions
diff --git a/completer/completer.go b/completer/completer.go
index baa897d..f6900ee 100644
--- a/completer/completer.go
+++ b/completer/completer.go
@@ -5,6 +5,7 @@ import (
"fmt"
"io"
"log"
+ "mime"
"net/mail"
"os/exec"
"strings"
@@ -139,13 +140,22 @@ func readCompletions(r io.Reader) ([]string, error) {
parts := strings.SplitN(line, "\t", 3)
if addr, err := mail.ParseAddress(parts[0]); err == nil {
if len(parts) > 1 {
- addr.Name = parts[1]
+ addr.Name = strings.TrimSpace(parts[1])
}
- completions = append(completions, addr.String())
+ decoded, err := decodeMIME(addr.String())
+ if err != nil {
+ return nil, fmt.Errorf("could not decode MIME string: %w", err)
+ }
+ completions = append(completions, decoded)
}
}
}
+func decodeMIME(s string) (string, error) {
+ var d mime.WordDecoder
+ return d.DecodeHeader(s)
+}
+
func (c *Completer) handleErr(err error) {
if c.errHandler != nil {
c.errHandler(err)