Skip to content

Commit bd45601

Browse files
committed
Sync differences from branch 'master' into 'devel' after release 1.13.3
1 parent 534c124 commit bd45601

23 files changed

+140
-29
lines changed

CHANGELOG

+32-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,37 @@
11
This is the changelog file for the POCO C++ Libraries.
22

33

4+
Release 1.13.3 (2024-04-04)
5+
===========================
6+
7+
Summary of Changes:
8+
9+
This is a bugfix release.
10+
11+
Security Fixes:
12+
13+
- GH #4496 Upgrade bundled libexpat to 2.6.2
14+
15+
Features, Enhancements and Third Party Updates:
16+
17+
- GH #4488 Add Poco::Util::Timer::idle() method to check if timer has any tasks scheduled
18+
- GH #3807 DNS.resolve() should not be sorted in HostEntry::removeDuplicates()
19+
- GH #4515 Upgrade bundled SQLite to 3.45.2
20+
- PR #4517 Optimize Net module for Android
21+
22+
Bug Fixes and Improvements:
23+
24+
- GH #4505 ODBC Unicode wrappers do not check for null length pointers
25+
- GH #4492 Poco::BasicMemoryStreamBuf is missing seekpos()
26+
- GH #4486 DateTimeFormat RFC1036 Sunday name is short (should be long)
27+
- GH #4468 Poco::URI: don't lowercase host part if it's a Unix domain socket
28+
- GH #4450 Error between Poco::ActiveRecord and Poco::Data::PostgreSQL
29+
- GH #4435 SecureStreamSocket is not thread-safe
30+
- GH #4415 SecureSocketImpl::reset shouldn't close socket
31+
- GH #3857 Thread_POSIX.cpp shouldn't convert thread IDs to long
32+
- GH #3725 secure socket receiveTimeout throwing after configured timeout * 2
33+
34+
435
Release 1.13.2 (2024-02-19)
536
===========================
637

@@ -38,7 +69,7 @@ Features and Enhancements:
3869

3970
Bug Fixes and Improvements:
4071

41-
- GH #4443 Upgrade libexpat to 2.6.0
72+
- GH #4443 Upgrade libexpat to 2.6.0
4273
- GH #4425 Unit tests: optional testing of deprecated functionality
4374
- GH #4421 Multiple calls to initializeSSL/uninitializeSSL cause assert failure during certificate validation
4475
- GH #4411 NULL pointer: strategy when setting rotation never in FileChannel

CONTRIBUTORS

+1
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,4 @@ Andrew Auclair
6565
Jochen Sprickerhof
6666
Jesse Hoogervorst
6767
Aron Budea
68+
zhuzeitou

CppParser/CppParser.progen

+1
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@ vc.project.compiler.include = ..\\Foundation\\include
1111
vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS
1212
vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared}
1313
vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared}
14+
vc.project.compiler.additionalOptions = /Zc:__cplusplus
1415
vc.solution.create = true
1516
vc.solution.include = testsuite\\TestSuite

CppParser/include/Poco/CppParser/CppToken.h

+1
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ class CppParser_API OperatorToken: public CppToken
6060
OP_GE, // >=
6161
OP_SHR, // >>
6262
OP_SHR_ASSIGN, // >>=
63+
OP_SPACESHIP, // <=>
6364
OP_ASSIGN, // =
6465
OP_EQ, // ==
6566
OP_NOT, // !

CppParser/include/Poco/CppParser/Symbol.h

+15
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,14 @@ class CppParser_API Symbol
125125
const std::string& getLibrary() const;
126126
/// Returns the symbol's library.
127127

128+
void setOrder(std::size_t order);
129+
/// Sets the order of the symbol within its container.
130+
///
131+
/// Currently only used for struct/class members.
132+
133+
std::size_t getOrder() const;
134+
/// Returns the order of the symbol within its container.
135+
128136
const Attributes& attrs() const;
129137
/// Returns the symbol's attributes.
130138

@@ -175,6 +183,7 @@ class CppParser_API Symbol
175183
int _line;
176184
std::string _package;
177185
std::string _library;
186+
std::size_t _order;
178187
Attributes _attrs;
179188
std::string _attributeList;
180189

@@ -245,6 +254,12 @@ inline const std::string& Symbol::getLibrary() const
245254
}
246255

247256

257+
inline std::size_t Symbol::getOrder() const
258+
{
259+
return _order;
260+
}
261+
262+
248263
inline const Attributes& Symbol::attrs() const
249264
{
250265
return _attrs;

CppParser/src/CppToken.cpp

+8-1
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ OperatorToken::OperatorToken()
6666
_opMap[">="] = i++;
6767
_opMap[">>"] = i++;
6868
_opMap[">>="] = i++;
69+
_opMap["<=>"] = i++;
6970
_opMap["="] = i++;
7071
_opMap["=="] = i++;
7172
_opMap["!"] = i++;
@@ -194,8 +195,14 @@ void OperatorToken::finish(std::istream& istr)
194195
{
195196
_value += (char) istr.get();
196197
next = (char) istr.peek();
198+
if (next == '=') _value += (char) istr.get();
199+
}
200+
else if (next == '=')
201+
{
202+
_value += (char) istr.get();
203+
next = (char) istr.peek();
204+
if (next == '>') _value += (char) istr.get();
197205
}
198-
if (next == '=') _value += (char) istr.get();
199206
break;
200207
case '>':
201208
if (next == '>')

CppParser/src/NameSpace.cpp

+12-11
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ NameSpace::~NameSpace()
4949
void NameSpace::addSymbol(Symbol* pSymbol)
5050
{
5151
poco_check_ptr (pSymbol);
52-
52+
53+
pSymbol->setOrder(_symbols.size());
5354
_symbols.insert(SymbolTable::value_type(pSymbol->name(), pSymbol));
5455
}
5556

@@ -65,7 +66,7 @@ void NameSpace::importSymbol(const std::string& fullName)
6566
}
6667
}
6768

68-
69+
6970
void NameSpace::importNameSpace(const std::string& nameSpace)
7071
{
7172
_importedNameSpaces.push_back(nameSpace);
@@ -94,7 +95,7 @@ Symbol* NameSpace::lookup(const std::string& name) const
9495
Symbol* NameSpace::lookup(const std::string& name, std::set<const NameSpace*>& alreadyVisited) const
9596
{
9697
Symbol* pSymbol = 0;
97-
98+
9899
if (name.empty())
99100
return pSymbol;
100101

@@ -104,11 +105,11 @@ Symbol* NameSpace::lookup(const std::string& name, std::set<const NameSpace*>& a
104105
std::string head;
105106
std::string tail;
106107
splitName(name, head, tail);
107-
108+
108109
alreadyVisited.insert(this);
109110
bool currentNSInserted = true;
110111

111-
if (head.empty())
112+
if (head.empty())
112113
{
113114
alreadyVisited.insert(this);
114115
return root()->lookup(tail, alreadyVisited);
@@ -161,13 +162,13 @@ void NameSpace::nameSpaces(SymbolTable& table) const
161162
extract(Symbol::SYM_NAMESPACE, table);
162163
}
163164

164-
165+
165166
void NameSpace::typeDefs(SymbolTable& table) const
166167
{
167168
extract(Symbol::SYM_TYPEDEF, table);
168169
}
169170

170-
171+
171172
void NameSpace::typeAliases(SymbolTable& table) const
172173
{
173174
extract(Symbol::SYM_TYPEALIAS, table);
@@ -179,19 +180,19 @@ void NameSpace::enums(SymbolTable& table) const
179180
extract(Symbol::SYM_ENUM, table);
180181
}
181182

182-
183+
183184
void NameSpace::classes(SymbolTable& table) const
184185
{
185186
extract(Symbol::SYM_STRUCT, table);
186187
}
187188

188-
189+
189190
void NameSpace::functions(SymbolTable& table) const
190191
{
191192
extract(Symbol::SYM_FUNCTION, table);
192193
}
193194

194-
195+
195196
void NameSpace::variables(SymbolTable& table) const
196197
{
197198
extract(Symbol::SYM_VARIABLE, table);
@@ -226,7 +227,7 @@ void NameSpace::splitName(const std::string& name, std::string& head, std::strin
226227
head.assign(name, 0, pos);
227228
pos += 2;
228229
poco_assert (pos < name.length());
229-
tail.assign(name, pos, name.length() - pos);
230+
tail.assign(name, pos, name.length() - pos);
230231
}
231232
else head = name;
232233
}

CppParser/src/Symbol.cpp

+10-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ Symbol::Symbol():
3131
_id(_nextId++),
3232
_pNameSpace(0),
3333
_access(ACC_PUBLIC),
34-
_line(-1)
34+
_line(-1),
35+
_order(0)
3536
{
3637
}
3738

@@ -41,7 +42,8 @@ Symbol::Symbol(const std::string& name, NameSpace* pNameSpace):
4142
_name(name),
4243
_pNameSpace(pNameSpace),
4344
_access(ACC_PUBLIC),
44-
_line(-1)
45+
_line(-1),
46+
_order(0)
4547
{
4648
if (_pNameSpace)
4749
_pNameSpace->addSymbol(this);
@@ -103,6 +105,12 @@ void Symbol::setLibrary(const std::string& library)
103105
}
104106

105107

108+
void Symbol::setOrder(std::size_t order)
109+
{
110+
_order = order;
111+
}
112+
113+
106114
std::string Symbol::fullName() const
107115
{
108116
std::string fullName;

CppParser/testsuite/TestSuite.progen

+1
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ vc.project.platforms = Win32
77
vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md
88
vc.project.prototype = TestSuite_vs90.vcproj
99
vc.project.compiler.include = ..\\..\\Foundation\\include
10+
vc.project.compiler.additionalOptions = /Zc:__cplusplus
1011
vc.project.linker.dependencies = iphlpapi.lib

CppParser/testsuite/src/CppParserTest.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ void CppParserTest::testExtractName()
7777
decl = "void func(int arg1, int arg2)";
7878
name = Symbol::extractName(decl);
7979
assertTrue (name == "func");
80-
80+
8181
decl = "std::function<bool> func";
8282
name = Symbol::extractName(decl);
8383
assertTrue (name == "func");

CppUnit/CppUnit.progen

+1
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,6 @@ vc.project.compiler.defines = POCO_NO_AUTOMATIC_LIBS
1212
vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS
1313
vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared}
1414
vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared}
15+
vc.project.compiler.additionalOptions = /Zc:__cplusplus
1516
vc.solution.create = true
1617
vc.solution.include =

DLLVersion.rc

+2-3
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
#include "winres.h"
66

7-
#define POCO_VERSION 1,13,1,0
8-
#define POCO_VERSION_STR "1.13.1"
7+
#define POCO_VERSION 1,13,3,0
8+
#define POCO_VERSION_STR "1.13.3"
99

1010
VS_VERSION_INFO VERSIONINFO
1111
FILEVERSION POCO_VERSION
@@ -28,7 +28,6 @@ BEGIN
2828
VALUE "FileDescription", "This file is part of the POCO C++ Libraries."
2929
VALUE "FileVersion", POCO_VERSION_STR
3030
VALUE "InternalName", "POCO"
31-
VALUE "LegalCopyright", "Copyright (C) 2004-2024, Applied Informatics Software Engineering GmbH and Contributors."
3231
VALUE "ProductName", "POCO C++ Libraries - https://pocoproject.org"
3332
VALUE "ProductVersion", POCO_VERSION_STR
3433
END

Encodings/Compiler/Compiler.progen

+1
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,6 @@ vc.project.compiler.defines =
1212
vc.project.compiler.defines.shared =
1313
vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared}
1414
vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared}
15+
vc.project.compiler.additionalOptions = /Zc:__cplusplus
1516
vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib
1617
vc.solution.create = true

Encodings/Encodings.progen

+1
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,6 @@ vc.project.compiler.defines =
1212
vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS
1313
vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared}
1414
vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared}
15+
vc.project.compiler.additionalOptions = /Zc:__cplusplus
1516
vc.solution.create = true
1617
vc.solution.include = testsuite\\TestSuite

Encodings/samples/TextConverter/TextConverter.progen

+1
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ vc.project.platforms = Win32
77
vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md
88
vc.project.prototype = ${vc.project.name}_vs90.vcproj
99
vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Encodings\\include
10+
vc.project.compiler.additionalOptions = /Zc:__cplusplus
1011
vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib

Encodings/testsuite/TestSuite.progen

+1
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ vc.project.platforms = Win32
77
vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md
88
vc.project.prototype = TestSuite_vs90.vcproj
99
vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Encodings\\include
10+
vc.project.compiler.additionalOptions = /Zc:__cplusplus

Foundation/include/Poco/Version.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,6 @@
3636
// Bx: beta releases
3737
//
3838

39-
#define POCO_VERSION 0x010D0100
39+
#define POCO_VERSION 0x010D0300
4040

4141
#endif // Foundation_Version_INCLUDED

Foundation/samples/ActiveMethod/ActiveMethod.progen

+1
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ vc.project.platforms = Win32
77
vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md
88
vc.project.prototype = ${vc.project.name}_vs90.vcproj
99
vc.project.compiler.include = ..\\..\\..\\Foundation\\include
10+
vc.project.compiler.additionalOptions = /Zc:__cplusplus
1011
vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib

Foundation/samples/Activity/Activity.progen

+1
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ vc.project.platforms = Win32
77
vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md
88
vc.project.prototype = ${vc.project.name}_vs90.vcproj
99
vc.project.compiler.include = ..\\..\\..\\Foundation\\include
10+
vc.project.compiler.additionalOptions = /Zc:__cplusplus
1011
vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib

VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.13.1
1+
1.13.3

doc/99100-ReleaseNotes.page

+29
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,35 @@
11
POCO C++ Libraries Release Notes
22
AAAIntroduction
33

4+
!!!Release 1.13.3
5+
6+
!!Summary of Changes
7+
8+
This is a bugfix release.
9+
10+
!!Security Fixes
11+
12+
- GH #4496 Upgrade bundled libexpat to 2.6.2
13+
14+
!!Features, Enhancements and Third Party Updates
15+
16+
- GH #4488 Add Poco::Util::Timer::idle() method to check if timer has any tasks scheduled
17+
- GH #3807 DNS.resolve() should not be sorted in HostEntry::removeDuplicates()
18+
- GH #4515 Upgrade bundled SQLite to 3.45.2
19+
- PR #4517 Optimize Net module for Android
20+
21+
!!Bug Fixes and Improvements:
22+
23+
- GH #4505 ODBC Unicode wrappers do not check for null length pointers
24+
- GH #4492 Poco::BasicMemoryStreamBuf is missing seekpos()
25+
- GH #4486 DateTimeFormat RFC1036 Sunday name is short (should be long)
26+
- GH #4468 Poco::URI: don't lowercase host part if it's a Unix domain socket
27+
- GH #4450 Error between Poco::ActiveRecord and Poco::Data::PostgreSQL
28+
- GH #4435 SecureStreamSocket is not thread-safe
29+
- GH #4415 SecureSocketImpl::reset shouldn't close socket
30+
- GH #3857 Thread_POSIX.cpp shouldn't convert thread IDs to long
31+
- GH #3725 secure socket receiveTimeout throwing after configured timeout * 2
32+
433

534
!!!Release 1.13.2
635

0 commit comments

Comments
 (0)