diff --git a/man/mu-cfind.1 b/man/mu-cfind.1 index f329d81e..d53aa394 100644 --- a/man/mu-cfind.1 +++ b/man/mu-cfind.1 @@ -51,14 +51,15 @@ The regular expressions are Perl-compatible (as per the PCRE-library). set the output format to the given value. The following are available: .nf -| --format= | description | -|-------------+-------------------------------| -| plain | default, simple list | -| mutt | mutt alias-format | -| wl | wanderlust addressbook format | -| org-contact | org-mode org-contact format | -| bbdb | BBDB format | -| csv | comma-separated values | +| --format= | description | +|-------------+-----------------------------------| +| plain | default, simple list | +| mutt-alias | mutt alias-format | +| mutt-ab | mutt external address book format | +| wl | wanderlust addressbook format | +| org-contact | org-mode org-contact format | +| bbdb | BBDB format | +| csv | comma-separated values | .fi .SH RETURN VALUE @@ -75,6 +76,19 @@ non-zero return value, for example: | 2 | no matches (for 'mu cfind') | .si +.SH INTEGRATION WITH MUTT + +You can use \fBmu cfind\fR as an external address book server for +\fBmutt\fR. For this to work add the following to your \fImuttrc\fR: + +.sh +set query_command = "mu cfind --format=mutt-ab '%s'" +.si + +Now, in mutt, you can easily search for e-mail address using the +\fBquery\fR-command, which is by default accessible by pressing \fBQ\fR. + + .SH BUGS Please report bugs if you find them: diff --git a/src/mu-cmd-cfind.c b/src/mu-cmd-cfind.c index 6f9aede1..5842d718 100644 --- a/src/mu-cmd-cfind.c +++ b/src/mu-cmd-cfind.c @@ -31,7 +31,8 @@ enum _OutputFormat { FORMAT_PLAIN, - FORMAT_MUTT, + FORMAT_MUTT_ALIAS, + FORMAT_MUTT_AB, /* mutt external address book */ FORMAT_WL, FORMAT_BBDB, FORMAT_CSV, @@ -50,7 +51,8 @@ get_output_format (const char *formatstr) OutputFormat format; } formats [] = { {MU_CONFIG_FORMAT_PLAIN, FORMAT_PLAIN}, - {MU_CONFIG_FORMAT_MUTT, FORMAT_MUTT}, + {MU_CONFIG_FORMAT_MUTT_ALIAS, FORMAT_MUTT_ALIAS}, + {MU_CONFIG_FORMAT_MUTT_AB, FORMAT_MUTT_AB}, {MU_CONFIG_FORMAT_WL, FORMAT_WL}, {MU_CONFIG_FORMAT_BBDB, FORMAT_BBDB}, {MU_CONFIG_FORMAT_CSV, FORMAT_CSV}, @@ -101,7 +103,7 @@ each_contact_bbdb (const char *email, const char *name, time_t tstamp) static void -each_contact_mutt (const char *email, const char *name) +each_contact_mutt_alias (const char *email, const char *name) { if (name) { gchar *nick; @@ -114,6 +116,7 @@ each_contact_mutt (const char *email, const char *name) } } + static void each_contact_wl (const char *email, const char *name) { @@ -141,12 +144,15 @@ each_contact (const char *email, const char *name, time_t tstamp, OutputFormat format) { switch (format) { - case FORMAT_MUTT: each_contact_mutt (email, name); break; + case FORMAT_MUTT_ALIAS: each_contact_mutt_alias (email, name); break; + case FORMAT_MUTT_AB: + g_print ("%s\t%s\t\n", email, name ? name : ""); break; case FORMAT_WL: each_contact_wl (email, name); break; case FORMAT_ORG_CONTACT: each_contact_org_contact (email, name); break; case FORMAT_BBDB: each_contact_bbdb (email, name, tstamp); break; - case FORMAT_CSV: /* FIXME */ + case FORMAT_CSV: + g_print ("%s,%s\n", name ? name : "", email); break; default: g_print ("%s%s%s\n", name ? name : "", name ? " " : "", email); diff --git a/src/mu-config.h b/src/mu-config.h index ce7f1da7..31257369 100644 --- a/src/mu-config.h +++ b/src/mu-config.h @@ -35,7 +35,8 @@ G_BEGIN_DECLS #define MU_CONFIG_FORMAT_XQUERY "xquery" /* output the xapian query */ /* for cfind */ -#define MU_CONFIG_FORMAT_MUTT "mutt" /* mutt alias style */ +#define MU_CONFIG_FORMAT_MUTT_ALIAS "mutt-alias" /* mutt alias style */ +#define MU_CONFIG_FORMAT_MUTT_AB "mutt-ab" /* mutt ext addr book */ #define MU_CONFIG_FORMAT_WL "wl" /* Wanderlust address-book */ #define MU_CONFIG_FORMAT_CSV "csv" /* comma-sep'd values */ #define MU_CONFIG_FORMAT_ORG_CONTACT "org-contact" /* org-contact */