From ccbf76b793d31533573822f52af4adc84e36bcee Mon Sep 17 00:00:00 2001 From: "Dirk-Jan C. Binnema" Date: Thu, 2 Jun 2011 11:09:04 +0300 Subject: [PATCH] * make the output of mu cfind/extract/view locale-encoded except for cfind with --format=bbdb --- src/mu-cmd-cfind.c | 42 ++++++++++++++++++++++-------------------- src/mu-cmd-extract.c | 37 ++++++++++++++++++++----------------- src/mu-cmd.c | 29 +++++++++++++++++++---------- 3 files changed, 61 insertions(+), 47 deletions(-) diff --git a/src/mu-cmd-cfind.c b/src/mu-cmd-cfind.c index 6e487c1a..3fdf8cde 100644 --- a/src/mu-cmd-cfind.c +++ b/src/mu-cmd-cfind.c @@ -110,8 +110,9 @@ each_contact_mutt_alias (const char *email, const char *name) gchar *nick; 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); } @@ -123,9 +124,9 @@ each_contact_wl (const char *email, const char *name) { if (name) { gchar *nick; - nick = mu_str_guess_nick (name); - g_print ("%s \"%s\" \"%s\"\n", email, nick, name); - + nick = mu_str_guess_nick (name); + mu_util_print_encoded ("%s \"%s\" \"%s\"\n", + email, nick, name); g_free (nick); } } @@ -135,23 +136,24 @@ static void each_contact_org_contact (const char *email, const char *name) { if (name) - g_print ("* %s\n:PROPERTIES:\n:EMAIL: %s\n:END:\n\n", - name, email); + mu_util_print_encoded ( + "* %s\n:PROPERTIES:\n:EMAIL: %s\n:END:\n\n", + name, email); } static void print_plain (const char *email, const char *name, gboolean color) { - if (name) - g_print ("%s%s%s ", - color ? MU_COLOR_MAGENTA : "", - name, - color ? MU_COLOR_DEFAULT : ""); + if (name) { + if (color) fputs (MU_COLOR_MAGENTA, stdout); + mu_util_fputs_encoded (name, stdout); + fputs (" ", stdout); + } - g_print ("%s%s%s\n", - color ? MU_COLOR_GREEN : "", - email, - color ? MU_COLOR_DEFAULT : ""); + if (color) fputs (MU_COLOR_GREEN, stdout); + mu_util_fputs_encoded (email, stdout); + if (color) fputs (MU_COLOR_DEFAULT, stdout); + fputs ("\n", stdout); } struct _ECData { @@ -167,13 +169,13 @@ each_contact (const char *email, const char *name, time_t tstamp, ECData *ecdata switch (ecdata->format) { 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; + mu_util_print_encoded ("%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_BBDB: each_contact_bbdb (email, name, tstamp); break; case FORMAT_CSV: - g_print ("%s,%s\n", name ? name : "", email); + mu_util_print_encoded ("%s,%s\n", name ? name : "", email); break; default: print_plain (email, name, ecdata->color); diff --git a/src/mu-cmd-extract.c b/src/mu-cmd-extract.c index 47dc78a3..ba40bd9a 100644 --- a/src/mu-cmd-extract.c +++ b/src/mu-cmd-extract.c @@ -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 each_part_show (MuMsg *msg, MuMsgPart *part, gboolean color) { - g_print (" %u %s%s %s%s/%s%s [%s%s%s]\n", - part->index, - /* filename */ - color_maybe (MU_COLOR_GREEN, color), - part->file_name ? part->file_name : "", + /* index */ + g_print (" %u ", part->index); - /* content type */ - color_maybe (MU_COLOR_BLUE, color), - part->type ? part->type : "", - part->subtype ? part->subtype : "", - color_maybe (MU_COLOR_DEFAULT, color), - - /* disposition */ - color_maybe (MU_COLOR_MAGENTA, color), - part->disposition ? part->disposition : "", - color_maybe (MU_COLOR_DEFAULT, color) - ); + /* filename */ + color_maybe (MU_COLOR_GREEN); + mu_util_fputs_encoded (part->file_name ? part->file_name : "", + stdout); + /* content-type */ + color_maybe (MU_COLOR_BLUE); + mu_util_print_encoded ( + " %s/%s ", + part->type ? part->type : "", + part->subtype ? part->subtype : ""); + + /* disposition */ + color_maybe (MU_COLOR_MAGENTA); + mu_util_print_encoded ( + "[%s]", part->disposition ? part->disposition : ""); + color_maybe (MU_COLOR_DEFAULT); + fputs ("\n", stdout); } diff --git a/src/mu-cmd.c b/src/mu-cmd.c index f863ad3a..b475284d 100644 --- a/src/mu-cmd.c +++ b/src/mu-cmd.c @@ -64,20 +64,26 @@ get_attach_str (MuMsg *msg) return attach; } +#define color_maybe(C) do{ if (color) fputs ((C),stdout);}while(0) static void print_field (const char* field, const char *val, gboolean color) { if (!val) 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 ? MU_COLOR_MAGENTA : "", - field, - color ? MU_COLOR_DEFAULT : "", - color ? MU_COLOR_GREEN : "", - val ? val : "", - color ? MU_COLOR_DEFAULT : ""); + color_maybe (MU_COLOR_DEFAULT); + fputs ("\n", stdout); } @@ -114,9 +120,12 @@ view_msg (MuMsg *msg, const gchar *fields, gboolean summary, summ = mu_str_summarize (field, SUMMARY_LEN); print_field ("Summary", summ, color); g_free (summ); - } else - g_print ("\n%s\n", field); - + } else { + color_maybe (MU_COLOR_YELLOW); + mu_util_print_encoded ("\n%s\n", field); + color_maybe (MU_COLOR_DEFAULT); + } + return TRUE; }