Split stats messages in io_import_data()

Use separate format strings for separate values. This is useful in case
we want to output similar stats somewhere else and is a preparation for
supporting plural forms.

Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
This commit is contained in:
Lukas Fleischer 2011-07-24 21:00:59 +02:00
parent 87664095cd
commit e121ded3a5

View File

@ -2754,10 +2754,8 @@ io_import_data (enum import_type type, struct conf *conf, char *stream_name)
const struct string vevent = STRING_BUILD ("BEGIN:VEVENT"); const struct string vevent = STRING_BUILD ("BEGIN:VEVENT");
const struct string vtodo = STRING_BUILD ("BEGIN:VTODO"); const struct string vtodo = STRING_BUILD ("BEGIN:VTODO");
char *proc_report = _("Import process report: %04d lines read "); char *proc_report = _("Import process report: %04d lines read ");
char *lines_stats = char *stats_fmt[] = { "%d apps", "%d events", "%d todos", "%d skipped" };
_("%d apps / %d events / %d todos / %d skipped "); char stats_str[sizeof (stats_fmt) / sizeof (char *)][BUFSIZ];
char *lines_stats_interactive =
_("%d apps / %d events / %d todos / %d skipped ([ENTER] to continue)");
char buf[BUFSIZ]; char buf[BUFSIZ];
FILE *stream = NULL; FILE *stream = NULL;
struct io_file *log; struct io_file *log;
@ -2819,23 +2817,27 @@ io_import_data (enum import_type type, struct conf *conf, char *stream_name)
if (stream != stdin) if (stream != stdin)
file_close (stream, __FILE_POS__); file_close (stream, __FILE_POS__);
snprintf (stats_str[0], BUFSIZ, _(stats_fmt[0]), stats.apoints);
snprintf (stats_str[1], BUFSIZ, _(stats_fmt[1]), stats.events);
snprintf (stats_str[2], BUFSIZ, _(stats_fmt[2]), stats.todos);
snprintf (stats_str[3], BUFSIZ, _(stats_fmt[3]), stats.skipped);
if (ui_mode == UI_CURSES && !conf->skip_system_dialogs) if (ui_mode == UI_CURSES && !conf->skip_system_dialogs)
{ {
char read[BUFSIZ], stat[BUFSIZ]; char read[BUFSIZ], stat[BUFSIZ];
(void)snprintf (read, BUFSIZ, proc_report, stats.lines); (void)snprintf (read, BUFSIZ, proc_report, stats.lines);
(void)snprintf (stat, BUFSIZ, lines_stats_interactive, stats.apoints, (void)snprintf (stat, BUFSIZ, "%s / %s / %s / %s (%s)", stats_str[0],
stats.events, stats.todos, stats.skipped); stats_str[1], stats_str[2], stats_str[3],
_("Press [ENTER] to continue"));
status_mesg (read, stat); status_mesg (read, stat);
(void)wgetch (win[STA].p); (void)wgetch (win[STA].p);
} }
else if (ui_mode == UI_CMDLINE) else if (ui_mode == UI_CMDLINE)
{ {
printf (proc_report, stats.lines); printf (proc_report, stats.lines);
printf ("\n"); printf ("\n%s / %s / %s / %s\n", stats_str[0], stats_str[1],
printf (lines_stats, stats.apoints, stats.events, stats.todos, stats_str[2], stats_str[3]);
stats.skipped);
printf ("\n");
} }
/* User has the choice to look at the log file if some items could not be /* User has the choice to look at the log file if some items could not be