~sircmpwn/aerc

598e39f523024ae36bd94c2fbee87cf13165c78e — Ben Burwell 8 months ago eca3863
Strip trailing newline from address book entries without names

When the list of completions from the external command doesn't have
associated contact names, the email address we attempt to parse was
being terminated with a newline. Now, we strip the trailing newline if
present.
1 files changed, 11 insertions(+), 9 deletions(-)

M completer/completer.go
M completer/completer.go => completer/completer.go +11 -9
@@ 138,16 138,18 @@ func readCompletions(r io.Reader) ([]string, error) {
			return nil, err
		}
		parts := strings.SplitN(line, "\t", 3)
		if addr, err := mail.ParseAddress(parts[0]); err == nil {
			if len(parts) > 1 {
				addr.Name = strings.TrimSpace(parts[1])
			}
			decoded, err := decodeMIME(addr.String())
			if err != nil {
				return nil, fmt.Errorf("could not decode MIME string: %w", err)
			}
			completions = append(completions, decoded)
		addr, err := mail.ParseAddress(strings.TrimSpace(parts[0]))
		if err != nil {
			return nil, err
		}
		if len(parts) > 1 {
			addr.Name = strings.TrimSpace(parts[1])
		}
		decoded, err := decodeMIME(addr.String())
		if err != nil {
			return nil, fmt.Errorf("could not decode MIME string: %w", err)
		}
		completions = append(completions, decoded)
	}
}