Truncate filenames in the leadning end in pg_basebackup verbose output

When truncating at the end, like before, the output would often end up
just showing the path instead of the filename.

Also increase the length of the filename by 5, which still keeps us at
less than 80 characters in most outputs.
This commit is contained in:
Magnus Hagander 2013-01-17 14:38:49 +01:00
parent f3af53441e
commit d7e9ca7ff7
1 changed files with 18 additions and 6 deletions

View File

@ -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,