notmuch_message_t *message = notmuch_messages_get (messages);
const char *mid = notmuch_message_get_message_id (message);
notmuch_message_t *message = notmuch_messages_get (messages);
const char *mid = notmuch_message_get_message_id (message);
/* Add this message's id: query. Since "id" is an exclusive
* prefix, it is implicitly 'or'd together, so we only need to
* join queries with a space. */
/* Add this message's id: query. Since "id" is an exclusive
* prefix, it is implicitly 'or'd together, so we only need to
* join queries with a space. */
*buf = talloc_asprintf_append_buffer (*buf, " %s", escaped);
else
*buf = talloc_strdup (thread, escaped);
*buf = talloc_asprintf_append_buffer (*buf, " %s", escaped);
else
*buf = talloc_strdup (thread, escaped);
return 1;
format->begin_list (format);
for (i = 0;
notmuch_threads_valid (threads) && (ctx->limit < 0 || i < ctx->offset + ctx->limit);
return 1;
format->begin_list (format);
for (i = 0;
notmuch_threads_valid (threads) && (ctx->limit < 0 || i < ctx->offset + ctx->limit);
relative_date = notmuch_time_relative_date (ctx_quote, date);
if (format->is_text_printer) {
relative_date = notmuch_time_relative_date (ctx_quote, date);
if (format->is_text_printer) {
printf ("thread:%s %12s ",
thread_id,
relative_date);
if (total == files)
printf ("[%d/%d] %s; %s (",
printf ("thread:%s %12s ",
thread_id,
relative_date);
if (total == files)
printf ("[%d/%d] %s; %s (",
- matched,
- total,
- sanitize_string (ctx_quote, authors),
- sanitize_string (ctx_quote, subject));
+ matched,
+ total,
+ sanitize_string (ctx_quote, authors),
+ sanitize_string (ctx_quote, subject));
- matched,
- total,
- files,
- sanitize_string (ctx_quote, authors),
- sanitize_string (ctx_quote, subject));
+ matched,
+ total,
+ files,
+ sanitize_string (ctx_quote, authors),
+ sanitize_string (ctx_quote, subject));
} else { /* Structured Output */
format->map_key (format, "thread");
} else { /* Structured Output */
format->map_key (format, "thread");
/* name_addr has the name part quoted if necessary. Compare
* 'John Doe <john@doe.com>' vs. '"Doe, John" <john@doe.com>' */
/* name_addr has the name part quoted if necessary. Compare
* 'John Doe <john@doe.com>' vs. '"Doe, John" <john@doe.com>' */
if (format->is_text_printer) {
if (ctx->output & OUTPUT_COUNT) {
format->integer (format, count);
format->string (format, "\t");
}
if (format->is_text_printer) {
if (ctx->output & OUTPUT_COUNT) {
format->integer (format, count);
format->string (format, "\t");
}
- format->string (format, name_addr);
+ if (ctx->output & OUTPUT_ADDRESS)
+ format->string (format, addr);
+ else
+ format->string (format, name_addr);
if (ctx->dupe < 0 || ctx->dupe == j) {
format->string (format, notmuch_filenames_get (filenames));
format->separator (format);
}
}
if (ctx->dupe < 0 || ctx->dupe == j) {
format->string (format, notmuch_filenames_get (filenames));
format->separator (format);
}
}
- /* special case 1 for speed */
- if (ctx->dupe <= 1 || ctx->dupe <= _count_filenames (message)) {
- format->set_prefix (format, "id");
- format->string (format,
- notmuch_message_get_message_id (message));
- format->separator (format);
- }
+ /* special case 1 for speed */
+ if (ctx->dupe <= 1 || ctx->dupe <= _count_filenames (message)) {
+ format->set_prefix (format, "id");
+ format->string (format,
+ notmuch_message_get_message_id (message));
+ format->separator (format);
+ }
tag = notmuch_tags_get (tags);
format->string (format, tag);
tag = notmuch_tags_get (tags);
format->string (format, tag);
- search_exclude_tags = notmuch_config_get_search_exclude_tags
- (config, &search_exclude_tags_length);
+ search_exclude_tags = notmuch_config_get_search_exclude_tags (
+ config, &search_exclude_tags_length);
for (i = 0; i < search_exclude_tags_length; i++) {
status = notmuch_query_add_tag_exclude (ctx->query, search_exclude_tags[i]);
for (i = 0; i < search_exclude_tags_length; i++) {
status = notmuch_query_add_tag_exclude (ctx->query, search_exclude_tags[i]);
static const notmuch_opt_desc_t common_options[] = {
{ .opt_keyword = &search_context.sort, .name = "sort", .keywords =
static const notmuch_opt_desc_t common_options[] = {
{ .opt_keyword = &search_context.sort, .name = "sort", .keywords =
- (notmuch_keyword_t []){ { "oldest-first", NOTMUCH_SORT_OLDEST_FIRST },
- { "newest-first", NOTMUCH_SORT_NEWEST_FIRST },
- { 0, 0 } } },
+ (notmuch_keyword_t []){ { "oldest-first", NOTMUCH_SORT_OLDEST_FIRST },
+ { "newest-first", NOTMUCH_SORT_NEWEST_FIRST },
+ { 0, 0 } } },
- (notmuch_keyword_t []){ { "json", NOTMUCH_FORMAT_JSON },
- { "sexp", NOTMUCH_FORMAT_SEXP },
- { "text", NOTMUCH_FORMAT_TEXT },
- { "text0", NOTMUCH_FORMAT_TEXT0 },
- { 0, 0 } } },
+ (notmuch_keyword_t []){ { "json", NOTMUCH_FORMAT_JSON },
+ { "sexp", NOTMUCH_FORMAT_SEXP },
+ { "text", NOTMUCH_FORMAT_TEXT },
+ { "text0", NOTMUCH_FORMAT_TEXT0 },
+ { 0, 0 } } },
notmuch_opt_desc_t options[] = {
{ .opt_keyword = &ctx->output, .name = "output", .keywords =
notmuch_opt_desc_t options[] = {
{ .opt_keyword = &ctx->output, .name = "output", .keywords =
- (notmuch_keyword_t []){ { "summary", OUTPUT_SUMMARY },
- { "threads", OUTPUT_THREADS },
- { "messages", OUTPUT_MESSAGES },
- { "files", OUTPUT_FILES },
- { "tags", OUTPUT_TAGS },
- { 0, 0 } } },
- { .opt_keyword = &ctx->exclude, .name = "exclude", .keywords =
- (notmuch_keyword_t []){ { "true", NOTMUCH_EXCLUDE_TRUE },
- { "false", NOTMUCH_EXCLUDE_FALSE },
- { "flag", NOTMUCH_EXCLUDE_FLAG },
- { "all", NOTMUCH_EXCLUDE_ALL },
- { 0, 0 } } },
+ (notmuch_keyword_t []){ { "summary", OUTPUT_SUMMARY },
+ { "threads", OUTPUT_THREADS },
+ { "messages", OUTPUT_MESSAGES },
+ { "files", OUTPUT_FILES },
+ { "tags", OUTPUT_TAGS },
+ { 0, 0 } } },
+ { .opt_keyword = &ctx->exclude, .name = "exclude", .keywords =
+ (notmuch_keyword_t []){ { "true", NOTMUCH_EXCLUDE_TRUE },
+ { "false", NOTMUCH_EXCLUDE_FALSE },
+ { "flag", NOTMUCH_EXCLUDE_FLAG },
+ { "all", NOTMUCH_EXCLUDE_ALL },
+ { 0, 0 } } },
{ .opt_int = &ctx->offset, .name = "offset" },
{ .opt_int = &ctx->limit, .name = "limit" },
{ .opt_int = &ctx->dupe, .name = "duplicate" },
{ .opt_int = &ctx->offset, .name = "offset" },
{ .opt_int = &ctx->limit, .name = "limit" },
{ .opt_int = &ctx->dupe, .name = "duplicate" },
notmuch_opt_desc_t options[] = {
{ .opt_flags = &ctx->output, .name = "output", .keywords =
notmuch_opt_desc_t options[] = {
{ .opt_flags = &ctx->output, .name = "output", .keywords =
- (notmuch_keyword_t []){ { "sender", OUTPUT_SENDER },
- { "recipients", OUTPUT_RECIPIENTS },
- { "count", OUTPUT_COUNT },
- { 0, 0 } } },
+ (notmuch_keyword_t []){ { "sender", OUTPUT_SENDER },
+ { "recipients", OUTPUT_RECIPIENTS },
+ { "count", OUTPUT_COUNT },
+ { "address", OUTPUT_ADDRESS },
+ { 0, 0 } } },
- (notmuch_keyword_t []){ { "true", NOTMUCH_EXCLUDE_TRUE },
- { "false", NOTMUCH_EXCLUDE_FALSE },
- { 0, 0 } } },
+ (notmuch_keyword_t []){ { "true", NOTMUCH_EXCLUDE_TRUE },
+ { "false", NOTMUCH_EXCLUDE_FALSE },
+ { 0, 0 } } },
- (notmuch_keyword_t []){ { "no", DEDUP_NONE },
- { "mailbox", DEDUP_MAILBOX },
- { "address", DEDUP_ADDRESS },
- { 0, 0 } } },
+ (notmuch_keyword_t []){ { "no", DEDUP_NONE },
+ { "mailbox", DEDUP_MAILBOX },
+ { "address", DEDUP_ADDRESS },
+ { 0, 0 } } },
{ .opt_inherit = common_options },
{ .opt_inherit = notmuch_shared_options },
{ }
{ .opt_inherit = common_options },
{ .opt_inherit = notmuch_shared_options },
{ }