{
notmuch_bool_t duplicate;
char *key;
+ gchar *addrfold = NULL;
mailbox_t *mailbox;
if (opt->filter_by == FILTER_BY_ADDRFOLD ||
- opt->filter_by == FILTER_BY_NAMEADDRFOLD) {
- gchar *folded = g_utf8_casefold (addr, -1);
- addr = talloc_strdup (opt->format, folded);
- g_free (folded);
- }
+ opt->filter_by == FILTER_BY_NAMEADDRFOLD)
+ addrfold = g_utf8_casefold (addr, -1);
+
switch (opt->filter_by) {
case FILTER_BY_NAMEADDR:
- case FILTER_BY_NAMEADDRFOLD:
key = talloc_asprintf (opt->format, "%s <%s>", name, addr);
break;
+ case FILTER_BY_NAMEADDRFOLD:
+ key = talloc_asprintf (opt->format, "%s <%s>", name, addrfold);
+ break;
case FILTER_BY_NAME:
key = talloc_strdup (opt->format, name); /* !name results in !key */
break;
case FILTER_BY_ADDR:
- case FILTER_BY_ADDRFOLD:
key = talloc_strdup (opt->format, addr);
break;
+ case FILTER_BY_ADDRFOLD:
+ key = talloc_strdup (opt->format, addrfold);
+ break;
default:
INTERNAL_ERROR("invalid --filter-by flags");
}
- if (opt->filter_by == FILTER_BY_ADDRFOLD ||
- opt->filter_by == FILTER_BY_NAMEADDRFOLD)
- talloc_free ((char*)addr);
+ if (addrfold)
+ g_free (addrfold);
if (! key)
return FALSE;
EOF
test_expect_equal_file OUTPUT EXPECTED
+test_begin_subtest "--output=recipients --filter-by=nameaddrfold --output=count"
+notmuch search --output=recipients --filter-by=nameaddrfold --output=count "*" | sort -n >OUTPUT
+cat <<EOF >EXPECTED
+1 Real Name <foo@example.com>
+2 Nickname <foo@example.com>
+3 Real Name <bar@example.com>
+EOF
+test_expect_equal_file OUTPUT EXPECTED
+
test_done