From b58e2c7c56b1416a343e81f9f80cb1f02c128e25 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 27 May 2016 18:10:39 +0200 Subject: prevent C++ locale number formatting in text APIs Setting the C++ locale via std::locale::global(std::locale("")); which would otherwise default to the default C locale (aka: unaffected by setlocale) effects the formatting of numeric types in IO streams, which for output for humans is perfectly sensible, but breaks our many text interfaces used and parsed by us and others without expecting the numbers to be formatted. Closes: #825396 --- apt-private/private-install.cc | 2 +- apt-private/private-source.cc | 4 ++-- apt-private/private-update.cc | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) (limited to 'apt-private') diff --git a/apt-private/private-install.cc b/apt-private/private-install.cc index 6c4b30da0..7bd9a6034 100644 --- a/apt-private/private-install.cc +++ b/apt-private/private-install.cc @@ -257,7 +257,7 @@ bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask, bool Safety) pkgAcquire::UriIterator I = Fetcher.UriBegin(); for (; I != Fetcher.UriEnd(); ++I) std::cout << '\'' << I->URI << "' " << flNotDir(I->Owner->DestFile) << ' ' << - I->Owner->FileSize << ' ' << I->Owner->HashSum() << std::endl; + std::to_string(I->Owner->FileSize) << ' ' << I->Owner->HashSum() << std::endl; return true; } diff --git a/apt-private/private-source.cc b/apt-private/private-source.cc index 5053c60fc..dd52a8822 100644 --- a/apt-private/private-source.cc +++ b/apt-private/private-source.cc @@ -478,8 +478,8 @@ bool DoSource(CommandLine &CmdL) { pkgAcquire::UriIterator I = Fetcher.UriBegin(); for (; I != Fetcher.UriEnd(); ++I) - std::cout << '\'' << I->URI << "' " << flNotDir(I->Owner->DestFile) << ' ' << - I->Owner->FileSize << ' ' << I->Owner->HashSum() << std::endl; + std::cout << '\'' << I->URI << "' " << flNotDir(I->Owner->DestFile) << ' ' << + std::to_string(I->Owner->FileSize) << ' ' << I->Owner->HashSum() << std::endl; return true; } diff --git a/apt-private/private-update.cc b/apt-private/private-update.cc index 1e5d69512..ba953a088 100644 --- a/apt-private/private-update.cc +++ b/apt-private/private-update.cc @@ -58,8 +58,8 @@ bool DoUpdate(CommandLine &CmdL) if(compExt.empty() == false && APT::String::Endswith(FileName, compExt)) FileName = FileName.substr(0, FileName.size() - compExt.size() - 1); - c1out << '\'' << I->URI << "' " << FileName << ' ' << - I->Owner->FileSize << ' ' << I->Owner->HashSum() << std::endl; + c1out << '\'' << I->URI << "' " << FileName << ' ' << + std::to_string(I->Owner->FileSize) << ' ' << I->Owner->HashSum() << std::endl; } return true; } -- cgit v1.2.3