1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-05 23:56:58 +03:00

pg_test_timing: Some NLS fixes

The string "% of total" was marked by xgettext to be a c-format, but it
is actually not, so mark up the source to prevent that.

Compute the column widths of the final display dynamically based on the
translated strings, so that translations don't mess up the display
accidentally.
This commit is contained in:
Peter Eisentraut 2017-08-26 09:21:46 -04:00
parent 3460728c67
commit 145ca364d3

View File

@ -172,13 +172,22 @@ output(uint64 loop_count)
{
int64 max_bit = 31,
i;
char *header1 = _("< us");
char *header2 = /* xgettext:no-c-format */ _("% of total");
char *header3 = _("count");
int len1 = strlen(header1);
int len2 = strlen(header2);
int len3 = strlen(header3);
/* find highest bit value */
while (max_bit > 0 && histogram[max_bit] == 0)
max_bit--;
printf(_("Histogram of timing durations:\n"));
printf("%6s %10s %10s\n", _("< us"), _("% of total"), _("count"));
printf("%*s %*s %*s\n",
Max(6, len1), header1,
Max(10, len2), header2,
Max(10, len3), header3);
for (i = 0; i <= max_bit; i++)
{
@ -186,7 +195,9 @@ output(uint64 loop_count)
/* lame hack to work around INT64_FORMAT deficiencies */
snprintf(buf, sizeof(buf), INT64_FORMAT, histogram[i]);
printf("%6ld %9.5f %10s\n", 1l << i,
(double) histogram[i] * 100 / loop_count, buf);
printf("%*ld %*.5f %*s\n",
Max(6, len1), 1l << i,
Max(10, len2) - 1, (double) histogram[i] * 100 / loop_count,
Max(10, len3), buf);
}
}