diff options
| -rw-r--r-- | completer/completer.go | 14 | 
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) | 
