diff --git a/CHANGELOG b/CHANGELOG index e0464829d..835733596 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,7 +1,7 @@ This is the changelog file for the POCO C++ Libraries. -Release 1.3-20070504 (2007-05-04) -================================= +Release 1.3.0 (2007-05-07) +========================== - added HashMap, HashSet classes - the HashFunction class template has been changed in an incompatible @@ -37,7 +37,7 @@ Release 1.3-20070504 (2007-05-04) - added another constructor to LocalDateTime - POCO_WIN32_UTF8 is ignored on non-Windows platforms - fixed a timeout bug (with NetSSL) in HTTPSession -- AsyncChannel is automatically opened with first log()\ +- AsyncChannel is automatically opened with first log() - minor fix to NotificationQueue sample (reported by Laszlo Keresztfalvi) - added File::canExecute() and File::setExecutable() - added SharedMemory class to Foundation @@ -85,6 +85,15 @@ Release 1.3-20070504 (2007-05-04) for UTF-8 encoded strings. - added UnWindows.h header file, replaced all #include with #include "Poco/UnWindows.h". See the Poco/UnWindows.h header file for a rationale and explanations. +- fixed SF# 1713820: StreamSocketImpl::sendBytes sends too many bytes +- File::copyTo(): on Windows, the copy now always has the read-only flag reset, to be consistent + with other platforms. +- With Microsoft Visual C++, the necessary POCO libraries are now implicitly linked when + the corresponding header files are included (#pragma comment(lib, "PocoXYZ.lib") is used). + To disable this, compile POCO with the preprocessor symbol POCO_NO_AUTOMATIC_LIBS #define'd + (see Poco/Foundation.h and Poco/Config.h). +- The Visual Studio project files for the POCO libraries now include configurations + for building static libraries. Release 1.2.9 (2007-02-26) @@ -731,4 +740,4 @@ building the libraries. -- -$Id: //poco/Main/dist/CHANGELOG#57 $ +$Id: //poco/Main/dist/CHANGELOG#60 $ diff --git a/Foundation/Foundation_vs71.vcproj b/Foundation/Foundation_vs71.vcproj index 9f71f930d..f6c417955 100644 --- a/Foundation/Foundation_vs71.vcproj +++ b/Foundation/Foundation_vs71.vcproj @@ -146,7 +146,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories=".\include" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;PCRE_STATIC" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;Foundation_EXPORTS;POCO_STATIC;PCRE_STATIC" StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" @@ -199,7 +199,7 @@ OmitFramePointers="TRUE" OptimizeForProcessor="3" AdditionalIncludeDirectories=".\include" - PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;PCRE_STATIC" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;Foundation_EXPORTS;POCO_STATIC;PCRE_STATIC" GeneratePreprocessedFile="0" KeepComments="FALSE" StringPooling="TRUE" @@ -686,6 +686,9 @@ + + diff --git a/Foundation/Foundation_vs80.vcproj b/Foundation/Foundation_vs80.vcproj index 2993a27fc..86e05e19e 100644 --- a/Foundation/Foundation_vs80.vcproj +++ b/Foundation/Foundation_vs80.vcproj @@ -230,7 +230,7 @@ FavorSizeOrSpeed="1" OmitFramePointers="true" AdditionalIncludeDirectories=".\include" - PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;PCRE_STATIC" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;Foundation_EXPORTS;POCO_STATIC;PCRE_STATIC" GeneratePreprocessedFile="0" KeepComments="false" StringPooling="true" @@ -301,7 +301,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories=".\include" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;PCRE_STATIC" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;Foundation_EXPORTS;POCO_STATIC;PCRE_STATIC" StringPooling="true" MinimalRebuild="true" BasicRuntimeChecks="3" @@ -939,6 +939,10 @@ RelativePath=".\include\Poco\Types.h" > + + diff --git a/Foundation/include/Poco/Config.h b/Foundation/include/Poco/Config.h index 0e32dbd77..1b8c7691d 100644 --- a/Foundation/include/Poco/Config.h +++ b/Foundation/include/Poco/Config.h @@ -1,7 +1,7 @@ // // Config.h // -// $Id: //poco/Main/Foundation/include/Poco/Config.h#4 $ +// $Id: //poco/Main/Foundation/include/Poco/Config.h#5 $ // // Library: Foundation // Package: Core @@ -40,10 +40,14 @@ #define Foundation_Config_INCLUDED -// Define to enable Windows Unicode (UTF-8) support. +// Define to enable Windows Unicode (UTF-8) support #define POCO_WIN32_UTF8 +// Define to disable implicit linking +// #define POCO_NO_AUTOMATIC_LIBS + + // Define to disable FPEnvironment support // #define POCO_NO_FPENVIRONMENT diff --git a/Foundation/include/Poco/Foundation.h b/Foundation/include/Poco/Foundation.h index 6ff782b2d..78ffc81ed 100644 --- a/Foundation/include/Poco/Foundation.h +++ b/Foundation/include/Poco/Foundation.h @@ -1,7 +1,7 @@ // // Foundation.h // -// $Id: //poco/Main/Foundation/include/Poco/Foundation.h#8 $ +// $Id: //poco/Main/Foundation/include/Poco/Foundation.h#9 $ // // Library: Foundation // Package: Core @@ -80,6 +80,28 @@ #endif +// +// Automatically link Foundation library. +// +#if defined(_MSC_VER) + #if !defined(POCO_NO_AUTOMATIC_LIBS) && !defined(Foundation_EXPORTS) + #if defined(POCO_DLL) + #if defined(_DEBUG) + #pragma comment(lib, "PocoFoundationd.lib") + #else + #pragma comment(lib, "PocoFoundation.lib") + #endif + #else + #if defined(_DEBUG) + #pragma comment(lib, "PocoFoundationmtd.lib") + #else + #pragma comment(lib, "PocoFoundationmt.lib") + #endif + #endif + #endif +#endif + + // // Include platform-specific definitions // diff --git a/Foundation/include/Poco/Platform_WIN32.h b/Foundation/include/Poco/Platform_WIN32.h index 170076f97..ddfa248fa 100644 --- a/Foundation/include/Poco/Platform_WIN32.h +++ b/Foundation/include/Poco/Platform_WIN32.h @@ -1,7 +1,7 @@ // // Platform_WIN32.h // -// $Id: //poco/Main/Foundation/include/Poco/Platform_WIN32.h#7 $ +// $Id: //poco/Main/Foundation/include/Poco/Platform_WIN32.h#8 $ // // Library: Foundation // Package: Core @@ -67,7 +67,7 @@ // Unicode Support #if defined(UNICODE) && !defined(POCO_WIN32_UTF8) -#define POCO_WIN32_UTF8 + #define POCO_WIN32_UTF8 #endif diff --git a/Foundation/include/Poco/UTF8String.h b/Foundation/include/Poco/UTF8String.h index df55597cf..ef7457893 100644 --- a/Foundation/include/Poco/UTF8String.h +++ b/Foundation/include/Poco/UTF8String.h @@ -1,7 +1,7 @@ // // UTF8String.h // -// $Id: //poco/Main/Foundation/include/Poco/UTF8String.h#1 $ +// $Id: //poco/Main/Foundation/include/Poco/UTF8String.h#2 $ // // Library: Foundation // Package: Text @@ -53,7 +53,7 @@ struct Foundation_API UTF8 /// The various variants of icompare() provide case insensitive comparison /// for UTF-8 encoded strings. /// - /// toUppwer(), toUpperInPlace(), toLower() and toLowerInPlace() provide + /// toUpper(), toUpperInPlace(), toLower() and toLowerInPlace() provide /// Unicode-based character case transformation for UTF-8 encoded strings. { static int icompare(const std::string& str, std::string::size_type pos, std::string::size_type n, std::string::const_iterator it2, std::string::const_iterator end2); diff --git a/Foundation/src/Debugger.cpp b/Foundation/src/Debugger.cpp index 67dee6d31..23b1fa8ce 100644 --- a/Foundation/src/Debugger.cpp +++ b/Foundation/src/Debugger.cpp @@ -1,7 +1,7 @@ // // Debugger.cpp // -// $Id: //poco/Main/Foundation/src/Debugger.cpp#14 $ +// $Id: //poco/Main/Foundation/src/Debugger.cpp#15 $ // // Library: Foundation // Package: Core @@ -91,8 +91,8 @@ void Debugger::message(const std::string& msg) umsg += '\n'; OutputDebugStringW(umsg.c_str()); #else - OutputDebugString(msg.c_str()); - OutputDebugString("\n"); + OutputDebugStringA(msg.c_str()); + OutputDebugStringA("\n"); #endif } #elif defined(POCO_OS_FAMILY_UNIX) diff --git a/Foundation/src/Environment_WIN32.cpp b/Foundation/src/Environment_WIN32.cpp index 50b23572b..4ba7de7f2 100644 --- a/Foundation/src/Environment_WIN32.cpp +++ b/Foundation/src/Environment_WIN32.cpp @@ -1,7 +1,7 @@ // // Environment_WIN32.cpp // -// $Id: //poco/Main/Foundation/src/Environment_WIN32.cpp#12 $ +// $Id: //poco/Main/Foundation/src/Environment_WIN32.cpp#13 $ // // Library: Foundation // Package: Core @@ -45,10 +45,10 @@ namespace Poco { std::string EnvironmentImpl::getImpl(const std::string& name) { - DWORD len = GetEnvironmentVariable(name.c_str(), 0, 0); + DWORD len = GetEnvironmentVariableA(name.c_str(), 0, 0); if (len == 0) throw NotFoundException(name); char* buffer = new char[len]; - GetEnvironmentVariable(name.c_str(), buffer, len); + GetEnvironmentVariableA(name.c_str(), buffer, len); std::string result(buffer); delete [] buffer; return result; @@ -57,14 +57,14 @@ std::string EnvironmentImpl::getImpl(const std::string& name) bool EnvironmentImpl::hasImpl(const std::string& name) { - DWORD len = GetEnvironmentVariable(name.c_str(), 0, 0); + DWORD len = GetEnvironmentVariableA(name.c_str(), 0, 0); return len > 0; } void EnvironmentImpl::setImpl(const std::string& name, const std::string& value) { - if (SetEnvironmentVariable(name.c_str(), value.c_str()) == 0) + if (SetEnvironmentVariableA(name.c_str(), value.c_str()) == 0) { std::string msg = "cannot set environment variable: "; msg.append(name); @@ -139,7 +139,7 @@ std::string EnvironmentImpl::nodeNameImpl() { char name[MAX_COMPUTERNAME_LENGTH + 1]; DWORD size = sizeof(name); - if (GetComputerName(name, &size) == 0) throw SystemException("Cannot get computer name"); + if (GetComputerNameA(name, &size) == 0) throw SystemException("Cannot get computer name"); return std::string(name); } diff --git a/Foundation/src/EventLogChannel.cpp b/Foundation/src/EventLogChannel.cpp index d3eedfcd7..7e1c79948 100644 --- a/Foundation/src/EventLogChannel.cpp +++ b/Foundation/src/EventLogChannel.cpp @@ -1,7 +1,7 @@ // // EventLogChannel.cpp // -// $Id: //poco/Main/Foundation/src/EventLogChannel.cpp#13 $ +// $Id: //poco/Main/Foundation/src/EventLogChannel.cpp#14 $ // // Library: Foundation // Package: Logging @@ -69,7 +69,7 @@ EventLogChannel::EventLogChannel(): } #else char name[256]; - int n = GetModuleFileName(NULL, name, sizeof(name)); + int n = GetModuleFileNameA(NULL, name, sizeof(name)); if (n > 0) { char* end = name + n - 1; @@ -299,11 +299,11 @@ std::wstring EventLogChannel::findLibrary(const wchar_t* name) std::string EventLogChannel::findLibrary(const char* name) { std::string path; - HMODULE dll = LoadLibrary(name); + HMODULE dll = LoadLibraryA(name); if (dll) { char name[MAX_PATH + 1]; - int n = GetModuleFileName(dll, name, sizeof(name)); + int n = GetModuleFileNameA(dll, name, sizeof(name)); if (n > 0) path = name; FreeLibrary(dll); } diff --git a/Foundation/src/File_WIN32.cpp b/Foundation/src/File_WIN32.cpp index 95ee4049a..76efc3b0b 100644 --- a/Foundation/src/File_WIN32.cpp +++ b/Foundation/src/File_WIN32.cpp @@ -1,7 +1,7 @@ // // File_WIN32.cpp // -// $Id: //poco/Main/Foundation/src/File_WIN32.cpp#18 $ +// $Id: //poco/Main/Foundation/src/File_WIN32.cpp#20 $ // // Library: Foundation // Package: Filesystem @@ -48,7 +48,7 @@ class FileHandle public: FileHandle(const std::string& path, DWORD access, DWORD share, DWORD disp) { - _h = CreateFile(path.c_str(), access, share, 0, disp, 0, 0); + _h = CreateFileA(path.c_str(), access, share, 0, disp, 0, 0); if (!_h) FileImpl::handleLastErrorImpl(path); } @@ -283,8 +283,12 @@ void FileImpl::copyToImpl(const std::string& path) const { poco_assert (!_path.empty()); - if (CopyFile(_path.c_str(), path.c_str(), FALSE) == 0) - handleLastErrorImpl(_path); + if (CopyFileA(_path.c_str(), path.c_str(), FALSE) != 0) + { + FileImpl copy(path); + copy.setWriteableImpl(true); + } + else handleLastErrorImpl(_path); } @@ -292,7 +296,7 @@ void FileImpl::renameToImpl(const std::string& path) { poco_assert (!_path.empty()); - if (MoveFile(_path.c_str(), path.c_str()) == 0) + if (MoveFileA(_path.c_str(), path.c_str()) == 0) handleLastErrorImpl(_path); } @@ -303,12 +307,12 @@ void FileImpl::removeImpl() if (isDirectoryImpl()) { - if (RemoveDirectory(_path.c_str()) == 0) + if (RemoveDirectoryA(_path.c_str()) == 0) handleLastErrorImpl(_path); } else { - if (DeleteFile(_path.c_str()) == 0) + if (DeleteFileA(_path.c_str()) == 0) handleLastErrorImpl(_path); } } @@ -318,7 +322,7 @@ bool FileImpl::createFileImpl() { poco_assert (!_path.empty()); - HANDLE hFile = CreateFile(_path.c_str(), GENERIC_WRITE, 0, 0, CREATE_NEW, 0, 0); + HANDLE hFile = CreateFileA(_path.c_str(), GENERIC_WRITE, 0, 0, CREATE_NEW, 0, 0); if (hFile != INVALID_HANDLE_VALUE) { CloseHandle(hFile); @@ -338,7 +342,7 @@ bool FileImpl::createDirectoryImpl() if (existsImpl() && isDirectoryImpl()) return false; - if (CreateDirectory(_path.c_str(), 0) == 0) + if (CreateDirectoryA(_path.c_str(), 0) == 0) handleLastErrorImpl(_path); return true; } diff --git a/Foundation/src/File_WIN32U.cpp b/Foundation/src/File_WIN32U.cpp index 01e46a226..9fa6d58f8 100644 --- a/Foundation/src/File_WIN32U.cpp +++ b/Foundation/src/File_WIN32U.cpp @@ -1,7 +1,7 @@ // // File_WIN32U.cpp // -// $Id: //poco/Main/Foundation/src/File_WIN32U.cpp#12 $ +// $Id: //poco/Main/Foundation/src/File_WIN32U.cpp#13 $ // // Library: Foundation // Package: Filesystem @@ -289,8 +289,12 @@ void FileImpl::copyToImpl(const std::string& path) const std::wstring upath; UnicodeConverter::toUTF16(path, upath); - if (CopyFileW(_upath.c_str(), upath.c_str(), FALSE) == 0) - handleLastErrorImpl(_path); + if (CopyFileW(_upath.c_str(), upath.c_str(), FALSE) != 0) + { + FileImpl copy(path); + copy.setWriteableImpl(true); + } + else handleLastErrorImpl(_path); } diff --git a/Foundation/src/LogFile_WIN32.cpp b/Foundation/src/LogFile_WIN32.cpp index 4684bdb5a..677ea2b9d 100644 --- a/Foundation/src/LogFile_WIN32.cpp +++ b/Foundation/src/LogFile_WIN32.cpp @@ -1,7 +1,7 @@ // // LogFile_WIN32.cpp // -// $Id: //poco/Main/Foundation/src/LogFile_WIN32.cpp#7 $ +// $Id: //poco/Main/Foundation/src/LogFile_WIN32.cpp#8 $ // // Library: Foundation // Package: Logging @@ -44,7 +44,7 @@ namespace Poco { LogFileImpl::LogFileImpl(const std::string& path): _path(path) { - _hFile = CreateFile(path.c_str(), GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); + _hFile = CreateFileA(path.c_str(), GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (_hFile == INVALID_HANDLE_VALUE) throw OpenFileException(path); SetFilePointer(_hFile, 0, 0, FILE_END); // There seems to be a strange "optimization" in the Windows NTFS diff --git a/Foundation/src/NamedEvent_WIN32.cpp b/Foundation/src/NamedEvent_WIN32.cpp index 50737b15a..76e8a913b 100644 --- a/Foundation/src/NamedEvent_WIN32.cpp +++ b/Foundation/src/NamedEvent_WIN32.cpp @@ -1,7 +1,7 @@ // // NamedEvent_WIN32.cpp // -// $Id: //poco/Main/Foundation/src/NamedEvent_WIN32.cpp#8 $ +// $Id: //poco/Main/Foundation/src/NamedEvent_WIN32.cpp#9 $ // // Library: Foundation // Package: Processes @@ -44,7 +44,7 @@ namespace Poco { NamedEventImpl::NamedEventImpl(const std::string& name): _name(name) { - _event = CreateEvent(NULL, FALSE, FALSE, _name.c_str()); + _event = CreateEventA(NULL, FALSE, FALSE, _name.c_str()); if (!_event) throw SystemException("cannot create named event", _name); } diff --git a/Foundation/src/NamedMutex_WIN32.cpp b/Foundation/src/NamedMutex_WIN32.cpp index c13cd8971..18641d697 100644 --- a/Foundation/src/NamedMutex_WIN32.cpp +++ b/Foundation/src/NamedMutex_WIN32.cpp @@ -1,7 +1,7 @@ // // NamedMutex_WIN32.cpp // -// $Id: //poco/Main/Foundation/src/NamedMutex_WIN32.cpp#8 $ +// $Id: //poco/Main/Foundation/src/NamedMutex_WIN32.cpp#9 $ // // Library: Foundation // Package: Processes @@ -44,7 +44,7 @@ namespace Poco { NamedMutexImpl::NamedMutexImpl(const std::string& name): _name(name) { - _mutex = CreateMutex(NULL, FALSE, _name.c_str()); + _mutex = CreateMutexA(NULL, FALSE, _name.c_str()); if (!_mutex) throw SystemException("cannot create named mutex", _name); } diff --git a/Foundation/src/Path_WIN32.cpp b/Foundation/src/Path_WIN32.cpp index 5911beb31..49baf39fc 100644 --- a/Foundation/src/Path_WIN32.cpp +++ b/Foundation/src/Path_WIN32.cpp @@ -1,7 +1,7 @@ // // Path_WIN32.cpp // -// $Id: //poco/Main/Foundation/src/Path_WIN32.cpp#12 $ +// $Id: //poco/Main/Foundation/src/Path_WIN32.cpp#13 $ // // Library: Foundation // Package: Filesystem @@ -45,7 +45,7 @@ namespace Poco { std::string PathImpl::currentImpl() { char buffer[_MAX_PATH]; - DWORD n = GetCurrentDirectory(sizeof(buffer), buffer); + DWORD n = GetCurrentDirectoryA(sizeof(buffer), buffer); if (n > 0 && n < sizeof(buffer)) { std::string result(buffer, n); @@ -71,7 +71,7 @@ std::string PathImpl::homeImpl() std::string PathImpl::tempImpl() { char buffer[_MAX_PATH]; - DWORD n = GetTempPath(sizeof(buffer), buffer); + DWORD n = GetTempPathA(sizeof(buffer), buffer); if (n > 0 && n < sizeof(buffer)) { std::string result(buffer, n); @@ -92,7 +92,7 @@ std::string PathImpl::nullImpl() std::string PathImpl::expandImpl(const std::string& path) { char buffer[_MAX_PATH]; - DWORD n = ExpandEnvironmentStrings(path.c_str(), buffer, sizeof(buffer)); + DWORD n = ExpandEnvironmentStringsA(path.c_str(), buffer, sizeof(buffer)); if (n > 0 && n < sizeof(buffer)) return std::string(buffer, n - 1); else diff --git a/Foundation/src/Process_WIN32.cpp b/Foundation/src/Process_WIN32.cpp index 102c0deb0..b1f8faef8 100644 --- a/Foundation/src/Process_WIN32.cpp +++ b/Foundation/src/Process_WIN32.cpp @@ -1,7 +1,7 @@ // // Process_WIN32.cpp // -// $Id: //poco/Main/Foundation/src/Process_WIN32.cpp#18 $ +// $Id: //poco/Main/Foundation/src/Process_WIN32.cpp#19 $ // // Library: Foundation // Package: Processes @@ -152,7 +152,7 @@ ProcessHandleImpl* ProcessImpl::launchImpl(const std::string& command, const Arg if (errPipe) errPipe->close(Pipe::CLOSE_WRITE); PROCESS_INFORMATION processInfo; - BOOL rc = CreateProcess( + BOOL rc = CreateProcessA( NULL, const_cast(commandLine.c_str()), NULL, diff --git a/Foundation/src/SharedLibrary_WIN32.cpp b/Foundation/src/SharedLibrary_WIN32.cpp index 6a2fdbe05..83af3eb64 100644 --- a/Foundation/src/SharedLibrary_WIN32.cpp +++ b/Foundation/src/SharedLibrary_WIN32.cpp @@ -1,7 +1,7 @@ // // SharedLibrary_WIN32.cpp // -// $Id: //poco/Main/Foundation/src/SharedLibrary_WIN32.cpp#12 $ +// $Id: //poco/Main/Foundation/src/SharedLibrary_WIN32.cpp#13 $ // // Library: Foundation // Package: SharedLibrary @@ -60,7 +60,7 @@ void SharedLibraryImpl::loadImpl(const std::string& path) FastMutex::ScopedLock lock(_mutex); if (_handle) throw LibraryAlreadyLoadedException(_path); - _handle = LoadLibrary(path.c_str()); + _handle = LoadLibraryA(path.c_str()); if (!_handle) throw LibraryLoadException(path); _path = path; } diff --git a/NEWS b/NEWS index 0c6eb1428..aceb07b69 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,39 @@ -Release 1.2.0 (2006-08-29) -========================== +Release 1.3 (2007-05-07) +======================== + +This release contains major improvements and new features. + +Summary of changes: +- HashMap and HashSet classes (Foundation) +- Tuple class template (Foundation) +- SharedMemory class (Foundation) +- FileStream, FileInputStream, FileOutputStream classes that + support Unicode (UTF-8) filenames on Windows (Foundation) +- improvements and bugfixes in the Net library, mostly HTTP +- DynamicAny class (Foundation) +- improvements to NetworkInterface class (Net) +- Condition class, implementing POSIX condition variable-style + thread synchronization (Foundation) +- upgraded to PCRE 7.1 (Foundation) +- improved Unicode/UTF-8 support +- NodeAppender class for faster DOM tree creation (XML) +- Checksum class (Foundation) +- lots of bugfixes and other improvements - please see the + CHANGELOG for details + +Incompatible Changes and Transition Issues: +The HashFunction class template has been changed in an incompatible +way. The member function formerly named hash() is now the function +call operator. If you have defined your own HashFunction classes, +you have to update your code. Sorry for the inconvenience. + +On Windows, POCO now builds with Unicode/UTF-8 support +(POCO_WIN32_UTF8) enabled by default. If you need the previous +behavior, remove the corresponding #define from Poco/Config.h + + +Release 1.2 (2006-08-29) +======================== This release contains major improvements and new features. Summary of changes (please see CHANGELOG for details): @@ -117,4 +151,4 @@ Please refer to the README file for more information and instructions for building the libraries. -- -$Id: //poco/Main/dist/NEWS#27 $ +$Id: //poco/Main/dist/NEWS#28 $ diff --git a/Net/Net_vs71.vcproj b/Net/Net_vs71.vcproj index ba1222d61..59e644ef8 100644 --- a/Net/Net_vs71.vcproj +++ b/Net/Net_vs71.vcproj @@ -148,7 +148,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories=".\include;..\Foundation\include" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;Net_EXPORTS;POCO_STATIC" StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" @@ -201,7 +201,7 @@ OmitFramePointers="TRUE" OptimizeForProcessor="3" AdditionalIncludeDirectories=".\include;..\Foundation\include" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;Net_EXPORTS;POCO_STATIC" GeneratePreprocessedFile="0" KeepComments="FALSE" StringPooling="TRUE" diff --git a/Net/Net_vs80.vcproj b/Net/Net_vs80.vcproj index 18b8bd3de..914ef198b 100644 --- a/Net/Net_vs80.vcproj +++ b/Net/Net_vs80.vcproj @@ -1,7 +1,7 @@ 0) { - int n = SocketImpl::sendBytes(p, length, flags); + int n = SocketImpl::sendBytes(p, remaining, flags); p += n; remaining -= n; } diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs71.sln b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs71.sln index 543e6fe06..ece2e7771 100644 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs71.sln +++ b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs71.sln @@ -11,17 +11,27 @@ EndProject Global GlobalSection(SolutionConfiguration) = preSolution debug_shared = debug_shared + debug_static = debug_static release_shared = release_shared + release_static = release_static EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared.ActiveCfg = debug_shared|Win32 {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared.Build.0 = debug_shared|Win32 + {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static.ActiveCfg = debug_static|Win32 + {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static.Build.0 = debug_static|Win32 {5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared.ActiveCfg = release_shared|Win32 {5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared.Build.0 = release_shared|Win32 + {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static.ActiveCfg = release_static|Win32 + {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static.Build.0 = release_static|Win32 {5B023A89-A469-11DA-8DA6-005056C00008}.debug_shared.ActiveCfg = debug_shared|Win32 {5B023A89-A469-11DA-8DA6-005056C00008}.debug_shared.Build.0 = debug_shared|Win32 + {5B023A89-A469-11DA-8DA6-005056C00008}.debug_static.ActiveCfg = debug_static|Win32 + {5B023A89-A469-11DA-8DA6-005056C00008}.debug_static.Build.0 = debug_static|Win32 {5B023A89-A469-11DA-8DA6-005056C00008}.release_shared.ActiveCfg = release_shared|Win32 {5B023A89-A469-11DA-8DA6-005056C00008}.release_shared.Build.0 = release_shared|Win32 + {5B023A89-A469-11DA-8DA6-005056C00008}.release_static.ActiveCfg = release_static|Win32 + {5B023A89-A469-11DA-8DA6-005056C00008}.release_static.Build.0 = release_static|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs71.vcproj b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs71.vcproj index ee3b2504e..32500d943 100644 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs71.vcproj +++ b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs71.vcproj @@ -138,6 +138,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs80.sln b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs80.sln index 9ef5fc007..fb189ab68 100644 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs80.sln +++ b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs80.sln @@ -11,17 +11,27 @@ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution debug_shared|Win32 = debug_shared|Win32 + debug_static|Win32 = debug_static|Win32 release_shared|Win32 = release_shared|Win32 + release_static|Win32 = release_static|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static|Win32.ActiveCfg = debug_static|Win32 + {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static|Win32.Build.0 = debug_static|Win32 {5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared|Win32.ActiveCfg = release_shared|Win32 {5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared|Win32.Build.0 = release_shared|Win32 + {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static|Win32.ActiveCfg = release_static|Win32 + {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static|Win32.Build.0 = release_static|Win32 {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static|Win32.ActiveCfg = debug_static|Win32 + {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static|Win32.Build.0 = debug_static|Win32 {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_shared|Win32.ActiveCfg = release_shared|Win32 {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_shared|Win32.Build.0 = release_shared|Win32 + {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static|Win32.ActiveCfg = release_static|Win32 + {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static|Win32.Build.0 = release_static|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs80.vcproj b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs80.vcproj index 6216fc5f6..f1d1969e4 100644 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs80.vcproj +++ b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs80.vcproj @@ -201,6 +201,152 @@ Name="VCPostBuildEventTool" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetSSL_OpenSSL/include/Poco/Net/NetSSL.h b/NetSSL_OpenSSL/include/Poco/Net/NetSSL.h index 33697b27c..314cdcef6 100644 --- a/NetSSL_OpenSSL/include/Poco/Net/NetSSL.h +++ b/NetSSL_OpenSSL/include/Poco/Net/NetSSL.h @@ -1,7 +1,7 @@ // // NetSSL.h // -// $Id: //poco/Main/NetSSL_OpenSSL/include/Poco/Net/NetSSL.h#6 $ +// $Id: //poco/Main/NetSSL_OpenSSL/include/Poco/Net/NetSSL.h#7 $ // // Library: NetSSL_OpenSSL // Package: SSLCore @@ -67,4 +67,26 @@ #endif +// +// Automatically link NetSSL library. +// +#if defined(_MSC_VER) + #if !defined(POCO_NO_AUTOMATIC_LIBS) && !defined(NetSSL_EXPORTS) + #if defined(POCO_DLL) + #if defined(_DEBUG) + #pragma comment(lib, "PocoNetSSLd.lib") + #else + #pragma comment(lib, "PocoNetSSL.lib") + #endif + #else + #if defined(_DEBUG) + #pragma comment(lib, "PocoNetSSLmtd.lib") + #else + #pragma comment(lib, "PocoNetSSLmt.lib") + #endif + #endif + #endif +#endif + + #endif // NetSSL_NetSSL_INCLUDED diff --git a/Util/Util_vs71.vcproj b/Util/Util_vs71.vcproj index 988e5bd14..448234205 100644 --- a/Util/Util_vs71.vcproj +++ b/Util/Util_vs71.vcproj @@ -148,7 +148,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories=".\include;..\Foundation\include;..\XML\include" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;Util_EXPORTS;POCO_STATIC" StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" @@ -201,7 +201,7 @@ OmitFramePointers="TRUE" OptimizeForProcessor="3" AdditionalIncludeDirectories=".\include;..\Foundation\include;..\XML\include" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;Util_EXPORTS;POCO_STATIC" GeneratePreprocessedFile="0" KeepComments="FALSE" StringPooling="TRUE" diff --git a/Util/Util_vs80.vcproj b/Util/Util_vs80.vcproj index d4c370e42..0c4226979 100644 --- a/Util/Util_vs80.vcproj +++ b/Util/Util_vs80.vcproj @@ -1,7 +1,7 @@ 0) appPath = path; else diff --git a/Util/src/WinRegistryKey.cpp b/Util/src/WinRegistryKey.cpp index 6fce9ef9c..9fdb9b8c2 100644 --- a/Util/src/WinRegistryKey.cpp +++ b/Util/src/WinRegistryKey.cpp @@ -1,7 +1,7 @@ // // WinRegistryKey.cpp // -// $Id: //poco/Main/Util/src/WinRegistryKey.cpp#12 $ +// $Id: //poco/Main/Util/src/WinRegistryKey.cpp#13 $ // // Library: Util // Package: Windows @@ -186,9 +186,9 @@ std::string WinRegistryKey::getStringExpand(const std::string& name) RegQueryValueEx(_hKey, name.c_str(), NULL, NULL, (BYTE*) buffer, &size); buffer[size] = 0; char temp; - DWORD expSize = ExpandEnvironmentStrings(buffer, &temp, 1); + DWORD expSize = ExpandEnvironmentStringsA(buffer, &temp, 1); char* expBuffer = new char[expSize]; - ExpandEnvironmentStrings(buffer, expBuffer, expSize); + ExpandEnvironmentStringsA(buffer, expBuffer, expSize); std::string result(expBuffer); delete [] buffer; delete [] expBuffer; diff --git a/XML/XML_vs71.vcproj b/XML/XML_vs71.vcproj index d07d7ce90..73766192f 100644 --- a/XML/XML_vs71.vcproj +++ b/XML/XML_vs71.vcproj @@ -146,7 +146,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories=".\include;..\Foundation\include" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;XML_EXPORTS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H" StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" @@ -199,7 +199,7 @@ OmitFramePointers="TRUE" OptimizeForProcessor="3" AdditionalIncludeDirectories=".\include;..\Foundation\include" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;XML_EXPORTS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H" GeneratePreprocessedFile="0" KeepComments="FALSE" StringPooling="TRUE" diff --git a/XML/XML_vs80.vcproj b/XML/XML_vs80.vcproj index fb119cb9a..926c8f021 100644 --- a/XML/XML_vs80.vcproj +++ b/XML/XML_vs80.vcproj @@ -230,7 +230,7 @@ FavorSizeOrSpeed="1" OmitFramePointers="true" AdditionalIncludeDirectories=".\include;..\Foundation\include" - PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;XML_EXPORTS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H" GeneratePreprocessedFile="0" KeepComments="false" StringPooling="true" @@ -301,7 +301,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories=".\include;..\Foundation\include" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;XML_EXPORTS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H" StringPooling="true" MinimalRebuild="true" BasicRuntimeChecks="3" diff --git a/XML/include/Poco/XML/XML.h b/XML/include/Poco/XML/XML.h index 5d30e881e..7ad09ec00 100644 --- a/XML/include/Poco/XML/XML.h +++ b/XML/include/Poco/XML/XML.h @@ -1,7 +1,7 @@ // // XML.h // -// $Id: //poco/Main/XML/include/Poco/XML/XML.h#2 $ +// $Id: //poco/Main/XML/include/Poco/XML/XML.h#3 $ // // Library: XML // Package: XML @@ -67,4 +67,26 @@ #endif +// +// Automatically link XML library. +// +#if defined(_MSC_VER) + #if !defined(POCO_NO_AUTOMATIC_LIBS) && !defined(XML_EXPORTS) + #if defined(POCO_DLL) + #if defined(_DEBUG) + #pragma comment(lib, "PocoXMLd.lib") + #else + #pragma comment(lib, "PocoXML.lib") + #endif + #else + #if defined(_DEBUG) + #pragma comment(lib, "PocoXMLmtd.lib") + #else + #pragma comment(lib, "PocoXMLmt.lib") + #endif + #endif + #endif +#endif + + #endif // XML_XML_INCLUDED