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.
This commit is contained in:
Ben Burwell 2020-01-09 09:42:12 -05:00 committed by Drew DeVault
parent eca3863242
commit 598e39f523
1 changed files with 11 additions and 9 deletions

View File

@ -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)
}
}