From 998cc2e56133044b6adde8c1d7f9724e3450a7b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Thu, 7 Dec 2023 13:56:52 +0100 Subject: [PATCH] upgraded Poco to 1.8.11p2 --- DLLVersion.rc | 4 +-- Foundation/include/Poco/UTF32Encoding.h | 11 ++++++- Foundation/include/Poco/Version.h | 2 +- Foundation/src/FileStream.cpp | 10 ++++-- Foundation/src/UTF32Encoding.cpp | 42 ++++++++++++------------- VERSION | 2 +- 6 files changed, 42 insertions(+), 29 deletions(-) diff --git a/DLLVersion.rc b/DLLVersion.rc index f2d10c55..2d19740b 100644 --- a/DLLVersion.rc +++ b/DLLVersion.rc @@ -4,8 +4,8 @@ #include "winres.h" -#define POCO_VERSION 1,11,8,0 -#define POCO_VERSION_STR "1.11.8" +#define POCO_VERSION 1,11,8,2 +#define POCO_VERSION_STR "1.11.8p2" VS_VERSION_INFO VERSIONINFO FILEVERSION POCO_VERSION diff --git a/Foundation/include/Poco/UTF32Encoding.h b/Foundation/include/Poco/UTF32Encoding.h index 6f8af525..2610d5fa 100644 --- a/Foundation/include/Poco/UTF32Encoding.h +++ b/Foundation/include/Poco/UTF32Encoding.h @@ -68,7 +68,16 @@ class Foundation_API UTF32Encoding: public TextEncoding int convert(int ch, unsigned char* bytes, int length) const; int queryConvert(const unsigned char* bytes, int length) const; int sequenceLength(const unsigned char* bytes, int length) const; - + +protected: + static int safeToInt(Poco::UInt32 value) + { + if (value <= 0x10FFFF) + return static_cast(value); + else + return -1; + } + private: bool _flipBytes; static const char* _names[]; diff --git a/Foundation/include/Poco/Version.h b/Foundation/include/Poco/Version.h index efa7130d..0b15f5cc 100644 --- a/Foundation/include/Poco/Version.h +++ b/Foundation/include/Poco/Version.h @@ -35,7 +35,7 @@ // Ax: alpha releases // Bx: beta releases // -#define POCO_VERSION 0x010B0800 +#define POCO_VERSION 0x010B0802 #endif // Foundation_Version_INCLUDED diff --git a/Foundation/src/FileStream.cpp b/Foundation/src/FileStream.cpp index 158cdb5e..0ddffe9b 100644 --- a/Foundation/src/FileStream.cpp +++ b/Foundation/src/FileStream.cpp @@ -39,6 +39,10 @@ FileIOS::~FileIOS() void FileIOS::open(const std::string& path, std::ios::openmode mode) { clear(); + if (!(mode & std::ios::in) && !(mode & std::ios::out)) + { + mode |= _defaultMode; + } _buf.open(path, mode); } @@ -73,7 +77,7 @@ FileInputStream::FileInputStream(): FileInputStream::FileInputStream(const std::string& path, std::ios::openmode mode): - FileIOS(mode | std::ios::in), + FileIOS(std::ios::in), std::istream(&_buf) { open(path, mode | std::ios::in); @@ -93,7 +97,7 @@ FileOutputStream::FileOutputStream(): FileOutputStream::FileOutputStream(const std::string& path, std::ios::openmode mode): - FileIOS(mode | std::ios::out), + FileIOS(std::ios::out), std::ostream(&_buf) { open(path, mode | std::ios::out); @@ -113,7 +117,7 @@ FileStream::FileStream(): FileStream::FileStream(const std::string& path, std::ios::openmode mode): - FileIOS(mode), + FileIOS(std::ios::in | std::ios::out), std::iostream(&_buf) { open(path, mode); diff --git a/Foundation/src/UTF32Encoding.cpp b/Foundation/src/UTF32Encoding.cpp index 47a0156b..5b860660 100644 --- a/Foundation/src/UTF32Encoding.cpp +++ b/Foundation/src/UTF32Encoding.cpp @@ -30,22 +30,22 @@ const char* UTF32Encoding::_names[] = const TextEncoding::CharacterMap UTF32Encoding::_charMap = { - /* 00 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* 10 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* 20 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* 30 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* 40 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* 50 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* 60 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* 70 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* 80 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* 90 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* a0 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* b0 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* c0 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* d0 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* e0 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* f0 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, + /* 00 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* 10 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* 20 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* 30 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* 40 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* 50 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* 60 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* 70 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* 80 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* 90 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* a0 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* b0 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* c0 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* d0 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* e0 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* f0 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, }; @@ -118,7 +118,7 @@ const TextEncoding::CharacterMap& UTF32Encoding::characterMap() const int UTF32Encoding::convert(const unsigned char* bytes) const { UInt32 uc; - unsigned char* p = (unsigned char*) &uc; + unsigned char* p = reinterpret_cast(&uc); *p++ = *bytes++; *p++ = *bytes++; *p++ = *bytes++; @@ -129,7 +129,7 @@ int UTF32Encoding::convert(const unsigned char* bytes) const uc = ByteOrder::flipBytes(uc); } - return uc; + return safeToInt(uc); } @@ -138,7 +138,7 @@ int UTF32Encoding::convert(int ch, unsigned char* bytes, int length) const if (bytes && length >= 4) { UInt32 ch1 = _flipBytes ? ByteOrder::flipBytes((UInt32) ch) : (UInt32) ch; - unsigned char* p = (unsigned char*) &ch1; + unsigned char* p = reinterpret_cast(&ch1); *bytes++ = *p++; *bytes++ = *p++; *bytes++ = *p++; @@ -155,7 +155,7 @@ int UTF32Encoding::queryConvert(const unsigned char* bytes, int length) const if (length >= 4) { UInt32 uc; - unsigned char* p = (unsigned char*) &uc; + unsigned char* p = reinterpret_cast(&uc); *p++ = *bytes++; *p++ = *bytes++; *p++ = *bytes++; @@ -164,7 +164,7 @@ int UTF32Encoding::queryConvert(const unsigned char* bytes, int length) const { uc = ByteOrder::flipBytes(uc); } - return uc; + ret = safeToInt(uc); } return ret; diff --git a/VERSION b/VERSION index 40faed9a..c45ea59f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.11.8 +1.11.8p2