Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MediaArea/ZenLib.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorJérôme Martinez <jerome@mediaarea.net>2020-03-30 13:23:27 +0300
committerJérôme Martinez <jerome@mediaarea.net>2020-03-30 13:23:27 +0300
commit57254600a138bacaefe5a6e00514ec205597ee5b (patch)
tree8ef220c2360c7db5e3f453f71923e6c421c8c6dd /Source
parent7f5b6caba6f23943580a1bd00ab21ed1d3ea0e1a (diff)
x Ztring: fix conversion from CC3/CC4 with trailing 0
Diffstat (limited to 'Source')
-rw-r--r--Source/ZenLib/Ztring.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/Source/ZenLib/Ztring.cpp b/Source/ZenLib/Ztring.cpp
index 3f5d8f4..6b705c3 100644
--- a/Source/ZenLib/Ztring.cpp
+++ b/Source/ZenLib/Ztring.cpp
@@ -744,6 +744,9 @@ Ztring& Ztring::From_CC4 (const int32u S)
int32u Value=(S&(0xFF<<i))>>i;
if (Value<0x20)
{
+ if (!i || (i!=24 && !(S&(0xFFFFFFFF>>(32-i)))))
+ return *this; // Trailing 0 are fine
+
// Not valid, using 0x as fallback
clear();
append(__T("0x"));
@@ -766,6 +769,9 @@ Ztring& Ztring::From_CC3 (const int32u S)
int32u Value=(S&(0xFF<<i))>>i;
if (Value<0x20)
{
+ if (!i || (i!=16 && !(S&(0xFFFFFF>>(24-i)))))
+ return *this; // Trailing 0 are fine
+
// Not valid, using 0x as fallback
clear();
append(__T("0x"));