summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/lzma/CPP/7zip/UI/Console/PercentPrinter.cpp
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/lzma/CPP/7zip/UI/Console/PercentPrinter.cpp')
-rw-r--r--3rdparty/lzma/CPP/7zip/UI/Console/PercentPrinter.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/3rdparty/lzma/CPP/7zip/UI/Console/PercentPrinter.cpp b/3rdparty/lzma/CPP/7zip/UI/Console/PercentPrinter.cpp
index e3e8d599811..9d392abe559 100644
--- a/3rdparty/lzma/CPP/7zip/UI/Console/PercentPrinter.cpp
+++ b/3rdparty/lzma/CPP/7zip/UI/Console/PercentPrinter.cpp
@@ -63,7 +63,8 @@ void CPercentPrinter::GetPercents()
{
char c = '%';
UInt64 val = 0;
- if (Total == (UInt64)(Int64)-1)
+ if (Total == (UInt64)(Int64)-1 ||
+ (Total == 0 && Completed != 0))
{
val = Completed >> 20;
c = 'M';
@@ -78,7 +79,7 @@ void CPercentPrinter::GetPercents()
while (size < kPercentsSize)
{
- _s += ' ';
+ _s.Add_Space();
size++;
}
@@ -124,8 +125,8 @@ void CPercentPrinter::Print()
char s[32];
ConvertUInt64ToString(Files, s);
// unsigned size = (unsigned)strlen(s);
- // for (; size < 3; size++) _s += ' ';
- _s += ' ';
+ // for (; size < 3; size++) _s.Add_Space();
+ _s.Add_Space();
_s += s;
// _s += "f";
}
@@ -133,16 +134,17 @@ void CPercentPrinter::Print()
if (!Command.IsEmpty())
{
- _s += ' ';
+ _s.Add_Space();
_s += Command;
}
if (!FileName.IsEmpty() && _s.Len() < MaxLen)
{
- _s += ' ';
+ _s.Add_Space();
- StdOut_Convert_UString_to_AString(FileName, _temp);
- _temp.Replace('\n', ' ');
+ _tempU = FileName;
+ _so->Normalize_UString(_tempU);
+ _so->Convert_UString_to_AString(_tempU, _temp);
if (_s.Len() + _temp.Len() > MaxLen)
{
unsigned len = FileName.Len();
@@ -153,9 +155,10 @@ void CPercentPrinter::Print()
delta = 1;
len -= delta;
_tempU = FileName;
- _tempU.Delete(len / 2, FileName.Len() - len);
+ _tempU.Delete(len / 2, _tempU.Len() - len);
_tempU.Insert(len / 2, L" . ");
- StdOut_Convert_UString_to_AString(_tempU, _temp);
+ _so->Normalize_UString(_tempU);
+ _so->Convert_UString_to_AString(_tempU, _temp);
if (_s.Len() + _temp.Len() <= MaxLen)
break;
}