From c59c53acf5885312574a8c000653ec14e02e5db6 Mon Sep 17 00:00:00 2001 From: clanmills Date: Sat, 6 Mar 2021 21:18:58 +0000 Subject: [PATCH] Trick to avoid msvc issue with final line of base64 data. --- src/actions.cpp | 3 ++- src/futils.cpp | 6 +++--- tests/bugfixes/github/test_pr1475_HEIC.py | 2 -- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/actions.cpp b/src/actions.cpp index c4b75259..3002ff79 100644 --- a/src/actions.cpp +++ b/src/actions.cpp @@ -248,7 +248,8 @@ namespace Action { long length = (long) code.size() ; for ( long start = 0 ; start < length ; start += chunk ) { long count = (start+chunk) < length ? chunk : length - start ; - std::cout << code.substr(start,count) << std::endl; + if ( count == chunk ) // don't write the short chunk. It's crazy when compiled with msvc! + std::cout << code.substr(start,count) << std::endl; } } } diff --git a/src/futils.cpp b/src/futils.cpp index ae9e5dbe..468f4ab0 100644 --- a/src/futils.cpp +++ b/src/futils.cpp @@ -159,9 +159,9 @@ namespace Exiv2 { for (size_t i = 0, j = 0 ; i < dataLength;) { - uint32_t octet_a = i < dataLength ? data[i++] : 0; - uint32_t octet_b = i < dataLength ? data[i++] : 0; - uint32_t octet_c = i < dataLength ? data[i++] : 0; + uint32_t octet_a = data[i++] ; + uint32_t octet_b = data[i++] ; + uint32_t octet_c = data[i++] ; uint32_t triple = (octet_a << 0x10) + (octet_b << 0x08) + octet_c; diff --git a/tests/bugfixes/github/test_pr1475_HEIC.py b/tests/bugfixes/github/test_pr1475_HEIC.py index 464cedd0..3a317508 100644 --- a/tests/bugfixes/github/test_pr1475_HEIC.py +++ b/tests/bugfixes/github/test_pr1475_HEIC.py @@ -172,7 +172,6 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB A81EAAQAAAAEWzFhZWiAAAAAAAACD3wAAPb////+7WFlaIAAAAAAAAEq/AAC xNwAACrlYWVogAAAAAAAAKDgAABELAADIuXBhcmEAAAAAAAMAAAACZmYAAPK nAAANWQAAE9AAAApbc2YzMgAAAAAAAQxCAAAF3v//8yYAAAeTAAD9kP//+6L -///2jAAAD3AAAwG4AAAAAAAAAAA== """] class pr_1475_IMG_3578_heic(metaclass=system_tests.CaseMeta): @@ -340,7 +339,6 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB A81EAAQAAAAEWzFhZWiAAAAAAAACD3wAAPb////+7WFlaIAAAAAAAAEq/AAC xNwAACrlYWVogAAAAAAAAKDgAABELAADIuXBhcmEAAAAAAAMAAAACZmYAAPK nAAANWQAAE9AAAApbc2YzMgAAAAAAAQxCAAAF3v//8yYAAAeTAAD9kP//+6L -///2jAAAD3AAAwG4AAAAAAAAAAA== """] class pr_1475_Stonehenge_heic(metaclass=system_tests.CaseMeta):