aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bin/pg_basebackup/pg_basebackup.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/bin/pg_basebackup/pg_basebackup.c b/src/bin/pg_basebackup/pg_basebackup.c
index ffc882616fc..36f825e95c8 100644
--- a/src/bin/pg_basebackup/pg_basebackup.c
+++ b/src/bin/pg_basebackup/pg_basebackup.c
@@ -422,6 +422,7 @@ progress_report(int tablespacenum, const char *filename)
totaldone / 1024);
snprintf(totalsize_str, sizeof(totalsize_str), INT64_FORMAT, totalsize);
+#define VERBOSE_FILENAME_LENGTH 35
if (verbose)
{
if (!filename)
@@ -431,18 +432,29 @@ progress_report(int tablespacenum, const char *filename)
* call)
*/
fprintf(stderr,
- ngettext("%s/%s kB (100%%), %d/%d tablespace %35s",
- "%s/%s kB (100%%), %d/%d tablespaces %35s",
+ ngettext("%s/%s kB (100%%), %d/%d tablespace %*s",
+ "%s/%s kB (100%%), %d/%d tablespaces %*s",
tablespacecount),
totaldone_str, totalsize_str,
- tablespacenum, tablespacecount, "");
+ tablespacenum, tablespacecount,
+ VERBOSE_FILENAME_LENGTH + 5, "");
else
+ {
+ bool truncate = (strlen(filename) > VERBOSE_FILENAME_LENGTH);
+
fprintf(stderr,
- ngettext("%s/%s kB (%d%%), %d/%d tablespace (%-30.30s)",
- "%s/%s kB (%d%%), %d/%d tablespaces (%-30.30s)",
+ ngettext("%s/%s kB (%d%%), %d/%d tablespace (%s%-*.*s)",
+ "%s/%s kB (%d%%), %d/%d tablespaces (%s%-*.*s)",
tablespacecount),
totaldone_str, totalsize_str, percent,
- tablespacenum, tablespacecount, filename);
+ tablespacenum, tablespacecount,
+ /* Prefix with "..." if we do leading truncation */
+ truncate ? "..." : "",
+ truncate ? VERBOSE_FILENAME_LENGTH - 3 : VERBOSE_FILENAME_LENGTH,
+ truncate ? VERBOSE_FILENAME_LENGTH - 3 : VERBOSE_FILENAME_LENGTH,
+ /* Truncate filename at beginning if it's too long */
+ truncate ? filename + strlen(filename) - VERBOSE_FILENAME_LENGTH + 3 : filename);
+ }
}
else
fprintf(stderr,