* mu-cmd-index.c: optimize printing of progress information

This commit is contained in:
Dirk-Jan C. Binnema 2011-04-30 10:08:58 +03:00
parent 674c6d0a8f
commit 4fec4b4100
1 changed files with 14 additions and 6 deletions

View File

@ -134,16 +134,24 @@ index_msg_silent_cb (MuIndexStats* stats, void *user_data)
static void static void
print_stats (MuIndexStats* stats, gboolean clear) print_stats (MuIndexStats* stats, gboolean clear)
{ {
char *kars="-\\|/"; const char *kars="-\\|/";
char output[120]; char output[120];
static int i = 0; static int i = 0;
static unsigned len = 0; static unsigned len = 0;
if (clear) if (clear) {
while (len --> 0) /* note the --> operator :-) */ /* optimization, this function showed up in profiles */
g_print ("\b"); static const char *backspace =
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b"
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b"
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b"
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b";
//backspace[len] = '\0';
fputs (backspace, stdout);
//backspace[len] = '\b';
}
len = (unsigned) snprintf (output, sizeof(output), len = (unsigned) snprintf (output, sizeof(output),
"%c processing mail; processed: %u; " "%c processing mail; processed: %u; "
"updated/new: %u, cleaned-up: %u", "updated/new: %u, cleaned-up: %u",
@ -151,7 +159,7 @@ print_stats (MuIndexStats* stats, gboolean clear)
(unsigned)stats->_processed, (unsigned)stats->_processed,
(unsigned)stats->_updated, (unsigned)stats->_updated,
(unsigned)stats->_cleaned_up); (unsigned)stats->_cleaned_up);
g_print ("%s", output); fputs (output, stdout);
} }