* make the output of mu cfind/extract/view locale-encoded except for cfind

with --format=bbdb
This commit is contained in:
Dirk-Jan C. Binnema 2011-06-02 11:09:04 +03:00
parent de539ea3f8
commit ccbf76b793
3 changed files with 61 additions and 47 deletions

View File

@ -110,8 +110,9 @@ each_contact_mutt_alias (const char *email, const char *name)
gchar *nick; gchar *nick;
nick = mu_str_guess_nick (name); nick = mu_str_guess_nick (name);
g_print ("alias %s %s <%s>\n", nick, name, email); mu_util_print_encoded ("alias %s %s <%s>\n",
nick, name, email);
g_free (nick); g_free (nick);
} }
@ -123,9 +124,9 @@ each_contact_wl (const char *email, const char *name)
{ {
if (name) { if (name) {
gchar *nick; gchar *nick;
nick = mu_str_guess_nick (name); nick = mu_str_guess_nick (name);
g_print ("%s \"%s\" \"%s\"\n", email, nick, name); mu_util_print_encoded ("%s \"%s\" \"%s\"\n",
email, nick, name);
g_free (nick); g_free (nick);
} }
} }
@ -135,23 +136,24 @@ static void
each_contact_org_contact (const char *email, const char *name) each_contact_org_contact (const char *email, const char *name)
{ {
if (name) if (name)
g_print ("* %s\n:PROPERTIES:\n:EMAIL: %s\n:END:\n\n", mu_util_print_encoded (
name, email); "* %s\n:PROPERTIES:\n:EMAIL: %s\n:END:\n\n",
name, email);
} }
static void static void
print_plain (const char *email, const char *name, gboolean color) print_plain (const char *email, const char *name, gboolean color)
{ {
if (name) if (name) {
g_print ("%s%s%s ", if (color) fputs (MU_COLOR_MAGENTA, stdout);
color ? MU_COLOR_MAGENTA : "", mu_util_fputs_encoded (name, stdout);
name, fputs (" ", stdout);
color ? MU_COLOR_DEFAULT : ""); }
g_print ("%s%s%s\n", if (color) fputs (MU_COLOR_GREEN, stdout);
color ? MU_COLOR_GREEN : "", mu_util_fputs_encoded (email, stdout);
email, if (color) fputs (MU_COLOR_DEFAULT, stdout);
color ? MU_COLOR_DEFAULT : ""); fputs ("\n", stdout);
} }
struct _ECData { struct _ECData {
@ -167,13 +169,13 @@ each_contact (const char *email, const char *name, time_t tstamp, ECData *ecdata
switch (ecdata->format) { switch (ecdata->format) {
case FORMAT_MUTT_ALIAS: each_contact_mutt_alias (email, name); break; case FORMAT_MUTT_ALIAS: each_contact_mutt_alias (email, name); break;
case FORMAT_MUTT_AB: case FORMAT_MUTT_AB:
g_print ("%s\t%s\t\n", email, name ? name : ""); break; mu_util_print_encoded ("%s\t%s\t\n",
email, name ? name : ""); break;
case FORMAT_WL: each_contact_wl (email, name); break; case FORMAT_WL: each_contact_wl (email, name); break;
case FORMAT_ORG_CONTACT: each_contact_org_contact (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_BBDB: each_contact_bbdb (email, name, tstamp); break;
case FORMAT_CSV: case FORMAT_CSV:
g_print ("%s,%s\n", name ? name : "", email); mu_util_print_encoded ("%s,%s\n", name ? name : "", email);
break; break;
default: default:
print_plain (email, name, ecdata->color); print_plain (email, name, ecdata->color);

View File

@ -298,28 +298,31 @@ save_parts (const char *path, const char *filename, MuConfig *opts)
#define color_maybe(C,COND) ((COND)?(C):"") #define color_maybe(C) do{ if (color) fputs ((C),stdout);}while(0)
static void static void
each_part_show (MuMsg *msg, MuMsgPart *part, gboolean color) each_part_show (MuMsg *msg, MuMsgPart *part, gboolean color)
{ {
g_print (" %u %s%s %s%s/%s%s [%s%s%s]\n", /* index */
part->index, g_print (" %u ", part->index);
/* filename */
color_maybe (MU_COLOR_GREEN, color),
part->file_name ? part->file_name : "<none>",
/* content type */ /* filename */
color_maybe (MU_COLOR_BLUE, color), color_maybe (MU_COLOR_GREEN);
part->type ? part->type : "", mu_util_fputs_encoded (part->file_name ? part->file_name : "<none>",
part->subtype ? part->subtype : "", stdout);
color_maybe (MU_COLOR_DEFAULT, color), /* content-type */
color_maybe (MU_COLOR_BLUE);
/* disposition */ mu_util_print_encoded (
color_maybe (MU_COLOR_MAGENTA, color), " %s/%s ",
part->disposition ? part->disposition : "<none>", part->type ? part->type : "<none>",
color_maybe (MU_COLOR_DEFAULT, color) part->subtype ? part->subtype : "<none>");
);
/* disposition */
color_maybe (MU_COLOR_MAGENTA);
mu_util_print_encoded (
"[%s]", part->disposition ? part->disposition : "<none>");
color_maybe (MU_COLOR_DEFAULT);
fputs ("\n", stdout);
} }

View File

@ -64,20 +64,26 @@ get_attach_str (MuMsg *msg)
return attach; return attach;
} }
#define color_maybe(C) do{ if (color) fputs ((C),stdout);}while(0)
static void static void
print_field (const char* field, const char *val, gboolean color) print_field (const char* field, const char *val, gboolean color)
{ {
if (!val) if (!val)
return; return;
color_maybe (MU_COLOR_MAGENTA);
mu_util_fputs_encoded (field, stdout);
color_maybe (MU_COLOR_DEFAULT);
fputs (": ", stdout);
if (val) {
color_maybe (MU_COLOR_GREEN);
mu_util_fputs_encoded (val, stdout);
}
g_print ("%s%s%s: %s%s%s\n", color_maybe (MU_COLOR_DEFAULT);
color ? MU_COLOR_MAGENTA : "", fputs ("\n", stdout);
field,
color ? MU_COLOR_DEFAULT : "",
color ? MU_COLOR_GREEN : "",
val ? val : "",
color ? MU_COLOR_DEFAULT : "");
} }
@ -114,9 +120,12 @@ view_msg (MuMsg *msg, const gchar *fields, gboolean summary,
summ = mu_str_summarize (field, SUMMARY_LEN); summ = mu_str_summarize (field, SUMMARY_LEN);
print_field ("Summary", summ, color); print_field ("Summary", summ, color);
g_free (summ); g_free (summ);
} else } else {
g_print ("\n%s\n", field); color_maybe (MU_COLOR_YELLOW);
mu_util_print_encoded ("\n%s\n", field);
color_maybe (MU_COLOR_DEFAULT);
}
return TRUE; return TRUE;
} }