]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/acquire.cc
prevent C++ locale number formatting in text APIs (try 3)
[apt.git] / apt-pkg / acquire.cc
index 29362fb407c96ba21d5bce7e1791d4a624ec5191..1efb772b41052da2e1c37b7dcdb696a1e803801b 100644 (file)
@@ -1258,8 +1258,11 @@ bool pkgAcquireStatus::Pulse(pkgAcquire *Owner)
         snprintf(msg,sizeof(msg), _("Retrieving file %li of %li"), i, TotalItems);
 
       // build the status str
-      std::string dlstatus;
-      strprintf(dlstatus, "dlstatus:%ld:%.4f:%s\n", i, Percent, msg);
+      std::ostringstream str;
+      str.imbue(std::locale("C.UTF-8"));
+      str.precision(4);
+      str << "dlstatus" << ':' << std::fixed << i << ':' << Percent << ':' << msg << '\n';
+      auto const dlstatus = str.str();
       FileFd::Write(fd, dlstatus.data(), dlstatus.size());
    }