mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 00:08:23 -05:00 
			
		
		
		
	Make pg_basebackup progress report translatable
Also fix a potential portability bug, because INT64_FORMAT is only guaranteed to be available with snprintf, not fprintf.
This commit is contained in:
		
							parent
							
								
									005e5c30d1
								
							
						
					
					
						commit
						3b3f09351b
					
				@ -204,10 +204,20 @@ static void
 | 
			
		||||
progress_report(int tablespacenum, const char *filename)
 | 
			
		||||
{
 | 
			
		||||
	int			percent = (int) ((totaldone / 1024) * 100 / totalsize);
 | 
			
		||||
	char		totaldone_str[32];
 | 
			
		||||
	char		totalsize_str[32];
 | 
			
		||||
 | 
			
		||||
	if (percent > 100)
 | 
			
		||||
		percent = 100;
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Separate step to keep platform-dependent format code out of translatable
 | 
			
		||||
	 * strings.  And we only test for INT64_FORMAT availability in snprintf,
 | 
			
		||||
	 * not fprintf.
 | 
			
		||||
	 */
 | 
			
		||||
	snprintf(totaldone_str, sizeof(totaldone_str), INT64_FORMAT, totaldone / 1024);
 | 
			
		||||
	snprintf(totalsize_str, sizeof(totalsize_str), INT64_FORMAT, totalsize);
 | 
			
		||||
 | 
			
		||||
	if (verbose)
 | 
			
		||||
	{
 | 
			
		||||
		if (!filename)
 | 
			
		||||
@ -217,21 +227,23 @@ progress_report(int tablespacenum, const char *filename)
 | 
			
		||||
			 * call)
 | 
			
		||||
			 */
 | 
			
		||||
			fprintf(stderr,
 | 
			
		||||
					INT64_FORMAT "/" INT64_FORMAT " kB (100%%) %d/%d tablespaces %35s\r",
 | 
			
		||||
					totaldone / 1024, totalsize,
 | 
			
		||||
					tablespacenum, tablespacecount, "");
 | 
			
		||||
					ngettext("%s/%s kB (100%%), %d/%d tablespace %35s\r",
 | 
			
		||||
							 "%s/%s kB (100%%), %d/%d tablespaces %35s\r",
 | 
			
		||||
							 tablespacecount),
 | 
			
		||||
					totaldone_str, totalsize_str, tablespacenum, tablespacecount, "");
 | 
			
		||||
		else
 | 
			
		||||
			fprintf(stderr,
 | 
			
		||||
					INT64_FORMAT "/" INT64_FORMAT " kB (%d%%) %d/%d tablespaces (%-30.30s)\r",
 | 
			
		||||
					totaldone / 1024, totalsize,
 | 
			
		||||
					percent,
 | 
			
		||||
					tablespacenum, tablespacecount, filename);
 | 
			
		||||
					ngettext("%s/%s kB (%d%%), %d/%d tablespace (%-30.30s)\r",
 | 
			
		||||
							 "%s/%s kB (%d%%), %d/%d tablespaces (%-30.30s)\r",
 | 
			
		||||
							 tablespacecount),
 | 
			
		||||
					totaldone_str, totalsize_str, percent, tablespacenum, tablespacecount, filename);
 | 
			
		||||
	}
 | 
			
		||||
	else
 | 
			
		||||
		fprintf(stderr, INT64_FORMAT "/" INT64_FORMAT " kB (%d%%) %d/%d tablespaces\r",
 | 
			
		||||
				totaldone / 1024, totalsize,
 | 
			
		||||
				percent,
 | 
			
		||||
				tablespacenum, tablespacecount);
 | 
			
		||||
		fprintf(stderr,
 | 
			
		||||
				ngettext("%s/%s kB (%d%%), %d/%d tablespace\r",
 | 
			
		||||
						 "%s/%s kB (%d%%), %d/%d tablespaces\r",
 | 
			
		||||
						 tablespacecount),
 | 
			
		||||
				totaldone_str, totalsize_str, percent, tablespacenum, tablespacecount);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user