]> granicus.if.org Git - postgresql/commitdiff
pg_test_timing: Some NLS fixes
authorPeter Eisentraut <peter_e@gmx.net>
Sat, 26 Aug 2017 13:21:46 +0000 (09:21 -0400)
committerPeter Eisentraut <peter_e@gmx.net>
Sat, 26 Aug 2017 13:25:19 +0000 (09:25 -0400)
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.

src/bin/pg_test_timing/pg_test_timing.c

index 2f1ab7cd6085dc1cb20ac89f9b40ba02f081bd86..6e2fd1ab8c7abfdb6898b3fc98dbe2f0122c98da 100644 (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);
        }
 }