Summaries of important changes how ui-utilcpp is used or behaves.
See ChangeLog for more details.

Downloads:
  o Generic: http://sourceforge.net/projects/ui-utilcpp/files//ui-utilcpp
  o Current: http://sourceforge.net/projects/ui-utilcpp/files//ui-utilcpp/stable/ui-utilcpp-1.10.2.tar.gz
================================================================
ui-utilcpp-1.10.2 (stable) (Mon, 09 Jan 2023 09:28:45 +0100):

Patched stable release.

Changes since 1.10.1:

Stephan Sürken (4):
  * [54a6d03] src/tools/UnitTests.cpp: Update deprecated boost
    unit test header
  * [c22f9a9] src/ui-utilcpp/GetOpt.cpp (C++): Replace
    deprecated ``std::mem_fun`` by ``std::mem_fn``
  * [e1fa644] src/ui-utilcpp/Thread.hpp (daemonize): Drop
    wrong/deprecated docs for return value
  * [5dcbddd] configure.ac: Prepare 1.10.2 (9:3:0)
----------------------------------------------------------------
ui-utilcpp-1.10.1 (stable) (Sun, 08 Jan 2023 18:00:56 +0100):

Patched stable release.

This release has been tested to compile with boost 1.81 (no
changes needed).

Changes since 1.10.0:

Stephan Sürken (5):
  * [4af6cc0] .ui-auto.conf: Build for sid+bullseye only.
  * [a1d959d] configure.ac: Incorporate Debian patch "Port from
    deprecated glibc rpcsvc to libtirpc-dev" (thanks to Steve
    Langasek)
  * [adcd672] Doxyfile.in: Update via ``doxygen -u`` to version
    1.9.4 (fixes warnings)
  * [e33d3b3] Doxyfile.in (PAPER_TYPE): Change from unknown
    a4wide to a4 (fixes doxygen warning)
  * [da5b5fb] configure.ac: Prepare 1.10.1 (lib 9:2:0)
----------------------------------------------------------------
ui-utilcpp-1.10.0 (stable) (Wed, 25 Sep 2019 19:27:21 +0200):

Initial stable release. This release mainly makes the code
suitable for newer C++ standards/compilers. It switches from
using 'libcommoncpp2' (unmaintained) to 'ucommon'.

Changes since 1.8.5:

Stephan Sürken (28):
  * [ea624f5] .ui-auto.conf: Update: Build for (sid,) bullseye,
    buster, jessie.
  * [e350c5e] .ui-auto.conf: deb: Use new ui-auto template && rm
    extra appendix config.
  * [965c8e4] .ui-auto.conf: Update Debian git to salsa.
  * [a3c9573] src/ui-utilcpp/*.?pp: Get rid of all exception
    specifiers (deprecated since C++11).
  * [4cbf7f9] ui-utilcpp/Socket.cpp: Fix strncopy size.
  * [3e48df7] tools/UnitTests.cpp: Add md5sum test.
  * [5a044c7] ui-utilcpp/Text.cpp: md5sum: Switch code from cc++
    to ucommon.
  * [adce14b] ui-utilcpp/SMLog.hpp: Switch slog include from
    cc++ to commoncpp (ucommon compat includes).
  * [1a0ef85] ui-utilcpp/Recoder.cpp: b64 encodings: Switch code
    from cc++ to ucommon.
  * [185c7ad] configure.ac: Check and use ucommon libs, not
    commoncpp.
  * [6907522] autotools: Properly rename OST_CXXX2_* vars ->
    UCOMMON_*.
  * [60f1c13] All Makefile.ams: Remove all hardcoded '-Wall'.
  * [38de0ff] configure.ac: Set AM_CPPFLAGS (-I) globally.
  * [cb2fb7b] configure.ac: Use dynamic CXXFLAGS from
    ucommon-config (manually disable hidden visibility for
    libs).
  * [c8a26fd] configure.ac: Get rid of extra
    UI_UTILCPP_CXXFLAGS.
  * [4d489be] configure.ac: Further simplify/centralize flags
    promotion.
  * [cb17029] configure.ac: Update (via autoupdate-2.69).
  * [7e76e22] configure.ac: Prepare 1.10.0 release (keep lib
    main version at 9).
----------------------------------------------------------------
ui-utilcpp-1.8.5 (stable) (Sat, 06 Aug 2016 17:12:38 +0000):

Patched stable release.

Changes since 1.8.4:

Stephan Sürken (4):
  * [4d06b10] auto_ptr compat: To be on the safe side, use
    namespace UI::Util (not UI).
  * [634d630] Add 'ui-utilcpp/auto_ptr_compat.hpp':
    "Reimplementing" auto_ptr compat (fixes include of
    ui-utilcpp/Text.hpp).
  * [9e6e6c6] tools/GetOpt.cpp: Don't print build time in getopt
    example.
  * [3d51d36] configure.ac: Prepare 1.8.5.
----------------------------------------------------------------
ui-utilcpp-1.8.4 (stable) (Fri, 05 Aug 2016 13:59:37 +0000):

Patched stable release.

Changes since 1.8.3:

Stephan Sürken (4):
  * [48cc11e] README: Add note about LFS.
  * [4df1268] Use 'unique_ptr' instead of 'auto_ptr' when using
    C++11 or better.
  * [2392787] .ui-auto.conf: Fix for hellfield using '~SID'
    version appendix.
  * [998aa57] configure.ac: Prepare 1.8.4.
----------------------------------------------------------------
ui-utilcpp-1.8.3 (stable) (Sun Jul 20 10:49:35 UTC 2014):

Patched stable release.

Changes:

Stephan Sürken (7):
  * [f55307a] README: Update, add a short desc for all sets.
  * [d9bdbfd] src/tools/Cap.cpp: Improve code to avoid warning
    with '-D_FORTIFY_SOURCE=2'.
  * [eb0c5b6] configure.ac: Add AC_SYS_LARGEFILE (adds large FS
    support for FsInfo).
  * [d21d847] .ui-auto.conf: Fix Debian VC location (connect
    with packaging on alioth).
  * [991eed6] UnitTests: Don't run test that requires a running
    HTTPD on localhost:80 by default.
  * [eeb3738] .ui-auto.conf: Debian connector: Clean up, and add
    alternative.
  * [581d5ae] configure.ac: Prepare 1.8.3.

----------------------------------------------------------------
ui-utilcpp-1.8.2 (stable) (Mon Jul  7 13:29:27 UTC 2014):

Initial open source release.

Stephan Sürken (7):
  * [1094251] .ui-auto.conf: Adapt for move to SF.
  * [0246ad8] Switch license to LGPLv3, and update README.
  * [f229d6c] Doxyfile.in: Update to doxygen-1.8.7.
  * [679ebde] Add proper .gitignore.
  * [e86b463] Makefile.am: Add '.gitignore' to dist
  * [df464be] PosixRegex::runMatch: Bugfix: Use correct pmatch
    index (0 not 1); fixes begin,end values in Match.
  * [d114366] configure.ac: Prepare 1.8.2.
----------------------------------------------------------------
ui-utilcpp-1.8.1 (stable) (Tue May  7 12:33:00 UTC 2013):

Bugfix release. Fixes Socket::getId() to be more failsafe.

srken (4):
  * [cec83b3] argl: Never commit release tarballs.
  * [95ee948] .ui-auto.conf: Update stable branch to new stable
    Debian branch.
  * [d9ac711] Socket::getId: Catch std::exception, not
    Exception (this method should never fail/raise Exception).
    (cherry picked from commit
    6267022c2165bb5fe9c0b2f914617a044d5bf7d6)
  * [45f2d7e] * configure.ac: Prepare 1.8.1
----------------------------------------------------------------
ui-utilcpp-1.8.0 (stable) (Mon May  7 16:35:09 UTC 2012):

New major stable release; this main changes are support for IPv6
for the socket library and the "cache code" removal (which has
travelled to ui-apache-support).

Note: The socket library changes inflicted library ABI-Changes
so that a backport to the stable branch was not feasable. The
new library main version is "9".

It also includes some other minor cumulated and windows related
changes:

ewetzel (1):
  * [9d6d48b] WSAStartup and WSACleanup added

slinder (2):
  * [0a9408e] fixed: yet another quota issue; forgot to divide
    by blocksize, so the value was to big for unsigned long
  * [6e64072] fixed: removed exceptions that were thrown in
    Windows build; that led to unsalvagable db files

srken (21):
  * [282988a] .ui-auto.conf: Update to build for sid/squeeze by
    default.
  * [f7af1ed] configure.ac: Update to a new developemnt version
    to avoid confusion.
  * [b1e6a30] Move docroot cache helpers to apache2 common
    code.
  * [2c2be8d] Move docroot cache helpers to apache2 common
    code.
  * [90bbd0e] Removing helper and container ("Nico Cache") from
    build system (now in apache 2 common code).
  * [bb1ea3e] Add source lines of code estimation.
  * [062d74d] Sys: Add system wrappers for ::getaddrinfo and
    ::getnameinfo.
  * [2ac2ff7] Sockets: Support IPv6 for class INetSocket.
  * [2cab04d] svn-ignore: Add *-cap tool utility.
  * [43a897d] INetSocket: Disable default copy constructor.
  * [2874025] c++: Fix last three compiler warnings.
  * [bc9341f] Remove helper tools for already removed code:
    ContainerUnitTests, HelperUnitTests.
  * [7a11ec4] Doxygen: Update config to 1.7.6.1.
  * [2a38892] Doxygen: Eliminate new warning with Caps.?pp.
  * [144022e] Remove all vc-proprietary $Id$ tags from source.
  * [37c898e] ui-auto: Add Eduard && Patrick to release notify
    (for the Win port).
  * [9cc86a9] Prepare stable release 1.8.0 (library main
    version 9).
  * [3d3f8d4] Prepare release notes for 1.8.0
  * [b648f02] .ui-auto.conf: Update to new svn URL (TECITO
    1544i).
  * [793cf6c] .ui-auto.conf: Only build for squeeze.
  * [031f6e6] Revert ".ui-auto.conf: Only build for squeeze."
----------------------------------------------------------------
ui-utilcpp-1.6.0 (stable) (Fri Sep 17 14:07:36 UTC 2010):

New major release; this mainly adds support for linux
capabilities and windows quota.

Simon Linder (7):
      fixed: make compilable for Win32     removed: some compiler warnings
      Lots of clean up.
      Disabled another warning.
      fixed: Win2k8 support
      SL     added: Quota for W2k8
      SL:     fixed: Quota/W2k8
      fixed: quota
      fixed: UID was 1000 which it cannot be (always 0 for Windows)

Stephan Sürken (37):
      RealTime: When normalizing negative values, silently set to 0 instead of throwing exception
      Code cleanup: Fix possible warnings (envp not used).
      Changing prefix "_" for POSIX calls back to non-prefixed.
      Half reverting/fixing change for a a VC++ warning
      Sys: Add getgrnam(3) c++ wrapper.
      QuotaInfo: Fix class variable order which leads to gcc compile errors with -pedantic.
      Fix ignore (used old "sp" prefix).
      Sys: Add wrapper support for prctl (linux only).
      Sys: Add C++ system wrappers for (nearly) all libcap library calls (linux only)
      Add new header/class "Cap": Abstraction class for posix capabilities.
      Capabilities: Add scope capabilities helper class CapScope.
      Capabilities: Compatibility for libcap1 (Debian etch).
      Capabilties: Add example program.
      typo fix in dox docs.
      docs: Fix some doxygen warnings.
      * Socket: Add shutdown() method.
      * Connection: Add simpleHttpRequest method.
      src/ui-utilcpp/Sys.cpp: Add support for setfsuid and setfsgid linux calls.
      src/ui-utilcpp/GetOpt: Add support for default argument values.
      * src/ui-utilcpp/Sys: Fix three exception error strings.
      * src/ui-utilcpp/GetOpt: Doxygen fix.
      * src/ui-utilcpp/Sys.hpp: chown: default 2nd arg to -1.
      * src/ui-utilcpp/Sys.cpp: Add support for "pseudo" calls getfsuid() and getfsgid().
      * src/ui-utilcpp/Sys: getfsuid(): Workaround: Unlike described in the man page, result may be -1 sometimes; use geteuid() then.
      * configure.ac: Add --enable-libproc: Optionally use libproc.
      * src/ui-utilcpp/Sys: getfsuid must be implemented the hard way, parsing procfs.
      * src/ui-utilcpp/Sys: getfsgid must be implemented the hard way, parsing procfs.
      * src/ui-utilcpp/Sys.cpp: Cosmetic: Adapt exception texts for ui-utilcpp wording.
      * src/ui-utilcpp/Sys.cpp: setfsuid: Fix check for error using new getfsuid|gid methods.
      * src/ui-utilcpp/Sys: Fix throws to use ui-utilcpp convention.
      * src/ui-utilcpp/Sys.cpp: Fix: Should not use ERRNO here.
      * src/ui-utilcpp/Sys: Add support for linux' gettid(), and use that as default for 'fsuid' calls.
      * src/ui-utilcpp/Sys: getenv(3): Fix: On error, throw (don't return null pointer).
      fix revapx.
      add NEWS entry for Simon's uid bug fix.
----------------------------------------------------------------
ui-utilcpp-1.5.0 (unstable) (UNRELEASED):

Bug fixes:
  * Windows: UID was 1000 which it cannot be (always 0 for
    Windows) (Simon).
----------------------------------------------------------------------
ui-utilcpp-1.4.0 (stable) (Fri Mar 27 10:36:04 UTC 2009):

This is a new stable version, updating to boost1.35 and some new
features. Old code is compatible, but needs to be recompiled; SO
main version dumped to 5 (stable).

Changes since 1.3.3:

  * QuotaInfo:
    - Add method for quota via rpc (for nfs).
    - Add new class FS (dev+fstype instead of dev only) to
      construct QuotaInfo (API extension, old code using
      QuotaInfo is compatible but need to be recompiled).
    - Add helper function file2fs to generate an FS (dev+fstype)
      from any file on that fs.
    - New class FQuotaInfo that uses the above tool
      automatically.
    - Change internal code so that methods tried depend on fs
      type.
  * Update tar format to tar-pax.
----------------------------------------------------------------------
ui-utilcpp-1.3.3 (unstable) (Mon Jan 19 15:09:34 UTC 2009):

  * Release with ui-auto from svn (adds man page for ui-utilcpp-version).
  * Fix some g++ warnings only showing when compiling with -O2:
    - PosixRegexx: Subclass not initialized.
    - ContainerUnitTests: Uninitialized variable.
----------------------------------------------------------------------
ui-utilcpp-1.3.2 (unstable) (Mon Dec  1 16:36:08 UTC 2008):

  * Added documentation for cache_map and the functions in Helper namespace
  * Added a unit test for the functions in Helper namespace
  * modified Helper::to_time_t to return 0 if its given ptime value is special
  * CmdLine: Fix a g++ warning (use std::string::size_type).
  * Update doxygen config for doxygen 1.5.6 (fixing some warnings).
----------------------------------------------------------------------
ui-utilcpp-1.3.1 (unstable) (Do 25. Sep 11:43:12 UTC 2008):

  * Fixed atime setting with calls using iterator ranges 
  * Set library version to 4:0:0
----------------------------------------------------------------------
ui-utilcpp-1.3.0 (unstable) (Di 23. Sep 16:11:00 UTC 2008):

  * Introduced namespaces "Container" and "Helper"
  * Added hash container Container::cache_map which is particular useful for cache entries
  * Added several boost-related helper hunctions in helper/Boost.hpp 
  * Bug fix: Http::Connection: Protect constructors against exceptions
    (potential missing data/fd removal on failing connects).
----------------------------------------------------------------------
ui-utilcpp-1.2.0 (stable) (Thu Jun 19 10:38:02 UTC 2008):

Stable release 1.2; library main version dumped to 3 (stable).

  * sp2ui: Fix: Also update macros SP_THROW to UI_THROW.
----------------------------------------------------------------------
ui-utilcpp-1.1.40 (unstable) (Tue Jan  8 16:36:22 UTC 2008):

  * boost test: Boost 34 deprecated some parts of API; updated to
    a variant that works for both, 33 and 34.
  * Tested against upcoming g++-3.4 and fixed all compile errors and
    warnings.
  * README/AUTHORS updates:
    - SP->UI fixes.
    - Temp. 1.2 todo section: remove hints to very old (fixed) bugs
    - mv old SPRelease explanation to ui-auto.
----------------------------------------------------------------------
ui-utilcpp-1.1.39 (unstable) (Mon Jan  7 16:48:56 UTC 2008):

Initial "ui" release:
  * Update to ui-auto.
  * Update _all_ "sp" prefixes to "ui" (macro names, file names, C++ namespaces).
  * Add tool ui-utilcpp-sp2ui to automatically update projects using us.

Other changes:
  * iconvctl() support (sloppy) for non-linux systems (using GNU libiconv).
----------------------------------------------------------------------
sp-utilcpp-1.1.38 (unstable) (Fri Oct 19 13:01:20 UTC 2007):

  * Http::HeaderField: Bugfix: Allow empty header field values when parsing line.
----------------------------------------------------------------------
sp-utilcpp-1.1.37 (unstable) (Thu Aug 23 16:40:11 UTC 2007):

  * Recoder: rfc2047 encoder: Fix possible segfaults due to typo; add
    unit test for the segfault case.
----------------------------------------------------------------------
sp-utilcpp-1.1.36 (unstable) (Wed Jul 11 15:28:12 UTC 2007):

  * Recoder: Add "idn-email" (any-string w/ emails to string w/
    IDN-encoded EMail domains) converter.
----------------------------------------------------------------------
sp-utilcpp-1.1.35 (unstable) (Mon Jul  9 15:41:11 UTC 2007):

  * Recoder: Add rfc2047 (Q-MIME) converter.
  * Add dependency to "libidn" (for IDNA recode facility).
  * Recoder: Add rfc3490 (International Domain Names, IDN) converter.
----------------------------------------------------------------------
sp-utilcpp-1.1.34 (unstable) (Mon Mar 12 13:52:30 UTC 2007):

  * Initial etch-based release (automake 1.10, sp-auto 103).
  * New Sys-Macros: getpwnam.
  * New Sys-Macros: confstr,getconf (POSIX system configuration variables).
  * CmdLine.cpp: Using 320 chars (was 160) to read lines from scripts;
    this should be enough for any decent script.
----------------------------------------------------------------------
sp-utilcpp-1.1.33 (unstable) (Wed Jan 31 15:33:59 UTC 2007):

  * Text.?pp: Switch to use boost's random to produce pseudo random
    alpha-numeric keys.
  * [win32] Remove "DiskInfo as quota method" hack from QuotaInfo.
  * New "FsInfo" class (fs usage).
  * New Sys-Macro: statvfs.
  * Having the SP_PROG_CXX c++ checker (rules out g++-2.95): Removed
    all gcc 2.95 compat code.
----------------------------------------------------------------------
sp-utilcpp-1.1.32 (unstable) (Fri Nov  3 13:40:56 UTC 2006):

This release contains updates for sp-auto 0.2 only.
----------------------------------------------------------------------
sp-utilcpp-1.1.31 (unstable) (Wed Sep  6 12:45:30 UTC 2006):

  * Text: Some convenience stream operators.
----------------------------------------------------------------------
sp-utilcpp-1.1.30 (unstable) (Fri Aug 18 14:10:16 UTC 2006):

  * Add Http::Connection::getConnId() convenience method.
----------------------------------------------------------------------
sp-utilcpp-1.1.29 (unstable) (Thu Aug 17 08:43:42 UTC 2006):

  * Add "isToken()" for already existing StrVecs (speedup).
  * Fix: Use "const ref" for join() method.
----------------------------------------------------------------------
sp-utilcpp-1.1.28 (unstable) (Fri Jul 21 08:49:20 UTC 2006):

I did it again release

  * added a perl like join method for strings
----------------------------------------------------------------------
sp-utilcpp-1.1.27 (unstable) (Tue Jul  4 11:04:47 UTC 2006):

  * New text tool: str2ascii.
  * Http fix: Force pure ASCII values for any Headerfield.
----------------------------------------------------------------------
sp-utilcpp-1.1.26 (unstable) (Wed Jun  7 17:05:12 UTC 2006):

"Jaber Al-Ahmad Al-Jaber Al-Sabah" weird Lama release.

  * Obsolete tool "misc" removed.
  * Bugfix File: Remove a number of now-obsolete exception specifications.
	* New Sys-Macros: mkdir,rmdir.
  * A number of cleanups && stabilisation in exception support code:
    - Remove unused macros: SP_THROW_SP, SP_THROW_ERRNO_E.
    - Sys::Exception: Making it non "Code" exception again (getErrNo() is
      already available in all exceptions were aplicable).
    - Set default errNo to 0=Success (was global errno); this means
      exceptions not dealing w/ "errnos" always have getErrNo()==Success
      instead of "random", which is more reasonable.
    - SP_THROW_ERRNO, SP_THROW_CODE_ERRNO: Catching global errno early
      in these two macros to avoid the possibility that code in
      argument evaluation tampers w/ the value.
    - Adding initial exception unit tests.
    - Doc: Little exception HOWTO.
  * "Shortcuts.hpp" fix: Make sure all namespaces are defined.
  * PIDFile fix: Use chmod on file, defaults to "rw-r--r--".
----------------------------------------------------------------------
sp-utilcpp-1.1.25 (unstable) (Thu May 18 16:05:12 UTC 2006):

Sam Peckinpah's Flue Season release.

  * QuotaInfo: Adapt method order to real world: "linux v2", "linux xfs", "linux v1".
  * QuotaInfo: Fix bug due to wrong struct comment in "linux version 2".
  * QuotaInfo: Clean up quota methods "linux version 1" and "linux version 2".
  * QuotaInfo: Use "effective uid" as default (was: real uid).
  * Remove support for non-standard g++-2.95 code. Mark g++-2.95
    compatibilty helper functions deprecated.
  * Replace Sys:Exception by a CodeException (thus having errno
    transported up in exception object).
  * Add "Shortcuts.hpp" helper include.
  * Doc updates:
    - Obsolete && unmaintained docs removed: doc/ANNOUNCE+DEVELOPERS+MainPage.doc.
    - Sys docs and other doxygen docs updates.
----------------------------------------------------------------------
sp-utilcpp-1.1.24 (unstable) (Wed May 10 12:21:51 UTC 2006):

The Haunted World of Edward D. Wood, Jrelease.

  * Bugfix: UnixSocket: Protect sun_path C-string from being undefined
    when constructed via fd -- as it might be used in getId().
  * Fix all doxygen warnings (needs doxygen >= 1.4.6 [in bpo for debian sarge]).
----------------------------------------------------------------------
sp-utilcpp-1.1.23 (unstable) (Wed May 10 06:44:05 UTC 2006):

Dharmsamrat Paramhans Swami Madhavananda's atomic Reissack release.

  * Sys-macros support for resource limits.
----------------------------------------------------------------------
sp-utilcpp-1.1.22 (unstable) (Fri Apr  7 15:24:25 UTC 2006):

"Mad Jens" race car simulation release.

  * More Sys-macros around uid.
----------------------------------------------------------------------
sp-utilcpp-1.1.21 (unstable) (Thu Apr  6 12:11:00 UTC 2006):

Maria Gorokhovskaya's "moistured barrel" release.

  * Two more unrecommended cerr uses fixed (from nightly tests).
  * RealTimeScope: No default stream on destructor (fixes cerr usage).
  * Recoder: Also add run(char,size) convenience method.
----------------------------------------------------------------------
sp-utilcpp-1.1.20 (unstable) (Wed Apr  5 14:12:15 UTC 2006):

Sun Myung Moon's "world's largest point release".

  * Recoder changes && fixes:
    - Renaming all factory calls from "run" to "make", so nobody has
      excuses any more ;).
    - librecode: Fix deletion order.
    - librecode: Fix: Move "task" into the factory level
      (i.e. Converter::make()) as this obviously can't be thread-safe.
    - Adding Recoder::run(char const *) for convenience.
  * "Sys::"-Update completed.
    - System/library calls added to Sys:
      sleep(3), realpath(3), seteuid(2), setegid(2), quotactl(2),
      malloc(2), calloc(2), free(2), [fl]stat(2), getenv(2),
      open[m](2), read(2), write(2), fcntl(2), flock(2), getpguid(2),
      chown(2), fcntl(2), socket(2), getpeername(2), getsockname(2),
      setsockopt(2), recv(2), send(2), listen(2), bind(2), connect(2),
      select(2), socketpair(2), iconv_open(3), iconv_close(3),
      gettimeofday(2), settimeofday(2).
    - This triggered a bunch of updates (mostly less code) throughout
      the code. Some user-visible changes:
      - Rm obsolete FileDescriptor::read/write wrappers (now in Sys).
      - Renaming FileDescriptor::stdRead/stdWrite virtuals to read/write.
      - Exception: Rm SP_THROW_CODE_ERRNO_E macro: No longer needed w/ Sys.
      - File/Socket: Code cleanup; now-obsolete (by Sys::, we now catch
        down to throw matching the abstraction) exception codes removed:
        CloseErr_, SocketErr_, HostnameErr_, PathErr_, ReuseaddrErr_,
        SetuidErr_, PermErr_.
    - This also brings down the number of WIN32 ifdefs (from about 59
      to 35 in non-Sys code); more is possible, only obvious "should work"
      cases updated.
----------------------------------------------------------------------
sp-utilcpp-1.1.19 (unstable) (Thu Mar 30 15:13:51 UTC 2006):

"Hector Abhayavardhana"'s librecode sucks release.

  * New RecoderCache singleton to cache recoders (speed improvments &&
    workaround against librecode memory leaks).
  * REMOVING PROPOSED OBSOLETE: AtomicMutex, NaiveCloneThread (also
    purges --enable-linux-atomic configure option).
----------------------------------------------------------------------
sp-utilcpp-1.1.18 (unstable) (Thu Mar 23 17:34:03 UTC 2006):

Sys-omat, cleanup && bugfixing "Stirling Silliphant" release.

  * New Sys.?pp: Long-due "errno exception" drop-in replacements for
    system(2) and library(3) calls.
  * Partial updates for the above in Thread, File (not finished).
  * Thread: New fd2DevNull() helper tool.
  * Thread: Harden "daemonize" to reopen std fd's 0,1,2 to protect
    against library xyz reading from/writing to fds.
  * PROPOSED OBSOLETE: AtomicMutex, NaiveCloneThread. Will
    be removed on next release unless there are vetos.
----------------------------------------------------------------------
sp-utilcpp-1.1.17 (unstable) (Wed Mar 22 14:01:42 UTC 2006):

Sid-able "Zsa Zsa Gabor" release.

  * File: New little helper class "AutoRemoveFile".
  * Separate File.?pp into File.?pp + Socket.?pp (confusing, too much code).
  * Text: Remove tool function "sha1sum" as this is not used, unavaible
    for win32 and code is missing in newer libcommoncpp2 upstreams
    (see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=352122).
  * --disable-linux-atomic -> --enable-linux-atomic: Opt-in, as this
    is non-standard.
----------------------------------------------------------------------
sp-utilcpp-1.1.16 (unstable) (Tue Feb 28 13:35:04 UTC 2006):

  * QuotaInfo: Fix compile for newer systems (e.g. Debian Etch) using
    _LINUX_QUOTA_VERSION = 2 for 2.6 style quota in quota.h.
  * File: New "SocketPair" abstraction (helps writing tests for
    protocols).
  * File: PIDFile: Check for pid file existence. Default is now to
    throw if found (was: overwrite silently).
----------------------------------------------------------------------
sp-utilcpp-1.1.15 (unstable) (Fri Feb 17 09:49:10 UTC 2006):

  * Time: Add ScopeRealTime class (easy latency logging for scopes).
  * Http::URL: addParam() support; generate URL().
----------------------------------------------------------------------
sp-utilcpp-1.1.14 (unstable) (Thu Feb  9 21:18:01 UTC 2006):

  * Http: Update Exception for debug support; use SP_THROW for all
    exceptions.
  * Http: Add Http.hpp for convenience: Include all http headers.
  * Http: New class URL: Parse HTTP URLs (rfc 2616, 3.2.2).
  * Http: New class URLGet: Simple HTTP GET impl. based on given HTTP
    URL.
  * Http: StatusLine: Allow status lines w/o "reason" text.
  * Bugfix strerror(errNum): Actually use errNum arg, not errno.
  * Exception: Updated Exception base class internals; new errno
    macros "*_E" to give errNo explicitely.
  * Bugfix File: Fixes w/ new *_E macros where appropriate (fixes
    wrong errno messages in some circumstances).
----------------------------------------------------------------------
sp-utilcpp-1.1.13 (unstable) (Tue Jan 31 18:00:47 UTC 2006):

  * File: New tools: getenv(), PIDFile class, guessConfFile.
----------------------------------------------------------------------
sp-utilcpp-1.1.12 (unstable) (Wed Jan 25 18:15:36 UTC 2006):

  * Text: strerror(int) now defaults to strerror(int=error).
  * Text: Separate "PosixRegex" into own header to avoid include wars.
  * Text: New tool strVec2Str.
  * _More_ socket id fixes:
    - Fix possible random c-string w/ getPeerId/UnixSockets.
    - Enable ids when not connected/bound.
    - Remove obsolete UnixSocket::getPath().
----------------------------------------------------------------------
sp-utilcpp-1.1.11 (unstable) (Thu Jan  5 17:08:26 UTC 2006):

  * Sockets::getId() should now finally work reliably. Honest.
  * Sockets:bind/connect/listen: Now all return *this for convenience.
  * Sockets:bind(): Now virtual like connect() for convenience.
  * UnixSocket:unixBind/bind(): Default for "silent unlink" now "true".
----------------------------------------------------------------------
sp-utilcpp-1.1.10 (unstable) (Wed Jan  4 15:27:32 UTC 2006):

  * UnixSocket:bind(): Silent unlink support for destructor.
  * UnixSockets: getId(): Fix broken unix path (socklen).
  * INetSockets: getId(): Fix broken port (ntoh).
----------------------------------------------------------------------
sp-utilcpp-1.1.9 (unstable) (Fri Dec 30 15:22:31 UTC 2005):

  * SetCookie/SetCookies: Const/add(key) -> Const/add(key, value="") for convenience.
  * SetCookie: Support for defaults on composition (expires, path, domain).
  * Text: New tool functions md5sum, sha1sum; update build system to
    use CommonCPP "--stdlibs" (includes ccext2 w/ digests).
  * Cookie/SetCookie: Add prefix support for cookie names.
  * Text: Replacing some strange/possibly dangerous usage of string
    constructor w/ explicit resize().
----------------------------------------------------------------------
sp-utilcpp-1.1.8 (unstable) (Tue Dec 20 17:18:51 UTC 2005):

  * Add Util::strerror (wrapper for ::strerror(3)); replacing all calls.
  * Add --disable-strerror (to fix known strange segfaults on static
    compilations running under wrong libc).
----------------------------------------------------------------------
sp-utilcpp-1.1.7 (unstable) (Mon Dec 19 13:15:17 UTC 2005):

  * Bugfix: SetCookie value parsing.
  * Bugfix: URLEncode: Encode non-ASCII characters.
  * Text.hpp: Add StrVec, StrList, StrMap convenience shortcuts.
  * Fixing ccgnu2/pthread library dependency.
----------------------------------------------------------------------
sp-utilcpp-1.1.6 (unstable) (Fri Dec  2 16:39:31 UTC 2005):

  * Cookies/SetCookies: Good (tm) interface updates/enhancements (required for shop).
  * Partly RFC 2616 (HTTP 1.1) implementation: header, cookie, connection.
  * Text: New tool function "getlineCRLF" (std::getline trashing trailing CR).
  * Text: New tool function "strtoks" (like strtok, but allowing multiple one-char delims).
  * Text: "EmptyString_" static helper.
  * File: Socket implementation: Fix up getId() to generically use
    getsockname(); Add getPeerId() using getpeername().
----------------------------------------------------------------------
sp-utilcpp-1.1.5 (unstable) (Fri Jun 17 15:18:03 UTC 2005):

  * Update to sp-auto >= 0.1.1 (fixes cruft-leftover-bug in tarball).
----------------------------------------------------------------------
sp-utilcpp-1.1.4 (unstable) (Fri Jun 17 12:04:01 UTC 2005):

  - First release using "sp-auto" as meta-maintainer tool.
  - Doxygen docs update, most warnings fixed.
  - Recoder updates:
     - librecode converter: Using task level to allow sloppy converting.
     - Add general "sloppy" tag for Recoder objects (active for converters
       that support it - i.e., currently librecode only).
     - Adding first unit test to test (some) convertions.
     - Improving recoder test tool: Input charset guessing, sloppy support.
     - Implementing proper converter exception handling; exception error
       texts much improved; errno support where applicable.
     - Move more control up to Converter father class.
     - Fixing all todos/bugs notes.
  - Adding libboost unit test skeleton.
  - Fixed memory leak in Recoder.[ch]pp
  - "g++-3.4 -pedantic"able (nightly test now lethal).
  - Add CharsetMagic: Heuristics to guess char encodings (from file).
----------------------------------------------------------------------
sp-utilcpp-1.1.3 (Tue Feb 15 15:17:14 UTC 2005):

This is the unstable relase series 1.1.x. DON'T USE THIS for any
PRODUCTION code. Purpose of this release is to provide an easy way to
TEST it and ideally report bugs.

  - Corrections so it (mostly) works with "g++-3.4 -pedantic".
  - streambuf binary data bug fixed.
  - File.cpp: Added proper error handling for stdRead/stdWrite.
  - New little helpers: freeAnySeqContainer, strdup, CStrArray.
  - QuotaInfo: Support for kernel 2.6 interface (version 1 and version 2).
  - Dropping library diversification. Simplify autotools.
  - Complete rewrite of Recoder, new Converter+Conversions setup.
  - +asciiCAPS +isToken text utilities.
  - +eato,etos: Converter tools with error handling.
  - Helper class CFileStream, helper method copyFile.
  - SMLog[Mono]: Support for logging to clog. Support for 4 extra
    debug levels. Giving severity levels as human readable
    3-char-prefix. Making LOG_ADD postfix.
  - Text, File: Much better exception error descriptions.
  - tos,ato: Add support for arbitrary stream modifier (converting
    from/to std::hex etc). Removing explicit str2str converter.
----------------------------------------------------------------------
sp-utilcpp-1.1.2 (Mon Aug 30 12:31:33 UTC 2004):

This is the unstable relase series 1.1.x. DON'T USE THIS for any
PRODUCTION code. Purpose of this release is to provide an easy way to
TEST it and ideally report bugs.

  - Fix: auto_abstract -> auto_base, removing abstract destructor,
    adding set() method.
  - Adding some upgrade notes to README.
  - Merging .strap_run/.strap_dev into ".strap_dev [runonly|ggcenv]".
    - Use ./configure to produce that file. It can now be sourced
      properly (no need for backticks).
    - Default bevaviour now is to taint autotool-supported variables
      only. This should always work if your project using this library
      alos uses autotools.
    - "gccenv" sets the gcc environment variables as before. autotools
      test may fail unexpectedly.
  - Protecting all enum values from preprocessor by naming convention
    ("CatDog_" like for constant class variables).
  - Update to automake 1.9, using "tar-ustar < 155" as archive
    format. This fixes both, the "filename too long" and the "make dist
    keeps silent" bug. Warn about libtool <1.5.8 in strap_auto.
  - Moving SPRelease/SPUpload to src/tools.
----------------------------------------------------------------------
sp-utilcpp-1.1.1 (Fri Aug 13 13:14:32 UTC 2004):

This is the unstable relase series 1.1.x. DON'T USE THIS for any
PRODUCTION code. Purpose of this release is to provide an easy way to
TEST it and ideally report bugs.

  * Added Dominik's proposed setup for library checking (in templates
    see http://volvic.schlund.de/pipermail/abteilung/2003-July/000315.html ),
    albeit with these signifcant changes:
    - Don't use a unsigned int as assembled version number. It's not
      portable (to M$ compilers, for example), as STDC does not guarantee
      unsigned int to be 4 bytes. Instead, seperate functions/variables/defines
      for each version part (major,minor,patch) are provided.
    - Don't use libtools (IF:REV:AGE) version schema for checking. Instead, this
      is recomputed to the real (system) version numbers. This also fixes an order
      error that is still in templates.
    - A check macro is added to protect against header/library implementation
      mismatch at run time.
    - Not using acinclude.m4 (not recommended), using recommende m4 directory setup
      instead (see automake docs).
    - The needed library macros are "extending aclocal" as recommended in the automake
      docs. I.e., you don't use the macros by copying to your project, but by installing
      sp-utilcpp, which will automatically (depending on how you install it, you might
      still need to extend the global aclocal dirlist) extend the sclocal macro path.
      Libraries that don't need sp-utilcpp otherwise should still copy these macros,
      though. The macros are in "m4/sp-lib.m4".
    For the time being, I recommend to copy the setup from sp-utilcpp, not templates.
  * src/examples renamed to src/tools.
  * DESTDIR support for local install targets.
  * Adding checks for librecode, doxygen, xfs headers.
  * Adding mass string replace utility functions "strrpl".
----------------------------------------------------------------------
sp-utilcpp-1.1.0 (Mon May 24 13:40:55 UTC 2004):

This is the unstable relase series 1.1.x. DON'T USE THIS for any
PRODUCTION code. Purpose of this release is to provide an easy way to
TEST it and ideally report bugs.

  * Removed class CVector. STDC++-2003 defines std::vector to have
    memory in one chunk.
  * Removed file CSLog. Obsolete.
 	* Removed file Regexx. Obsolete. Never worked.
 	* Removed file SPUtil.hpp. This was compat for unstable versions < 1.0.
 	* Removed class GCCFDStream (class using gcc extensions). With 3.4,
    new changes. Too silly to maintain this with even more ifdefs.
 	* Removed class Random: Seemed strange enough to me.
  * New template classes: auto_abstract
                      auto_cvec   auto_free
    Handle (memory pointers) and freeing of memory that does not work
    with standard delete (auto_ptr).
 	* Removed class ArrDelAdapter: Use auto_cvec.
 	* Removed class NullOStream: I don't think we need this.
  * Update to CommonCPP2 (SMLog macros only).
  * Some updates for "g++-3.4 -pedantic" (one internal and some external
    problems left).
  * More straighforward directory layout, putting all C++-Source under
    src/: sp-utilcpp (the library) and examples (Example applications).
  * New Header & libary Layout:

     Exception
     Time
     Text                libsp-utilcpp-cppsys
     File               Run time dependencies on
     Thread            STDC, STDC++ and system only.
     GetOpt
     Misc
     ...
  
     CmdLine                   Specials
     Recode            Extra run time dependencies, header
     SMLog*                   only, etc..
     ...
  * Imported from tincas: Recode, C++ wrapper for GNU librecode
    (class, file, special library).
    - Updates to support any conversion in a efficient fashion, not just
      string->string via copy.
    - Imporved error/exception handling.
  * Imported from tincas: QuotaInfo (class, file, cppsys).
  * Imported from tincas: strtok, RealPath, istream2Vector (Text, cppsys).
    - strtok: Update to support string delimiters (Thorsten).
	* Update to new exception scheme:
    - SP::Exception: S+P father exception class (at least when u use us).
      In short: std::exception interface, handling for an error
      description and a debug information string. Special support for
      errno handling provided.
    - SP:.Util::Excpetion derived from SP::Exception.
    - SP::Util::CodeException: SP::Util::Exception template adding the simple facility to add an
      (arbitrary) error code to SP::Util::Exception.
    => Anything in namespace SP::Util does
      now throw SP::Util::Exception only (usual exceptions apply for
      indirect throws; ideally, these are catched down internally and
      encapsulated).
    - Updated all classes to have a subclass "Exception". Classes that used to throw
      enums are now throwing "CodeException<ErrorCode>", with ErrorCode being the old
      enum-type exceptions, and the subclass "Exception" being a typedef to that.
    - 4 basic macros provided to provide for automatic file name and line no debugging.

    => An "Exception" for every context, enabling diversed or generic
    catches, automatic errno errors and file name/line no debugging.

    Read more about that in the doxygen docs.

  * Code/style review of all files:
    - Generic class variable naming convention ("_myName").
    - Some const correctness correctiotions (note: correct last word).
    - Removing all "one line scopes".
    - Complete doxygen documentation, no warnings with 1.3.7.
----------------------------------------------------------------------
sp-utilcpp-1.0.20040430 (Fri Apr 30 12:18:24 UTC 2004):

Patch release:

  * Bugfix for GetOpt(Markus): Buggy use of char instead of int. This
    produced problems on a (at least) powerpc arch.
----------------------------------------------------------------------
sp-utilcpp-1.0.20030812:

Convenience fix release:
  - Removing hardcoded "-Werror" from Makefile.ams.
  - Fixes to make it compile with gcc's "-pedantic-error".
    Note0: The "default value" template for "long long" (there is no "long long") is removed.
    Note1: Variable length c-arrays replaced by std::string resp. std::vector; this should work
    fine on almost all implementations, but STDC++ does not ensure memory management is in one
    chunk. In unstable, there is now "CVector" as replacement to safely and portably replace
    variable length arrays where the data must be guaranteed to be in one chunk.
  - Changes to make it pass rc tests "cppstyle_nonrefconst.log", "cppstyle_namespace_none.log".
----------------------------------------------------------------------
sp-utilcpp-1.0.20030807:

	Bugfix release. Braindead linking problem occuring with
libtool-1.4.3 only (needs extra -lpthread) fixed.
----------------------------------------------------------------------
sp-utilcpp-1.0.20030801:

  Bugfix release: Make it work with g++-3.3.
----------------------------------------------------------------------
sp-utilcpp-1.0.20030318:

  This is the very first stable release of sp-utilcpp.

  There has been busy development from the last (unstable)
  release. Some important new features:

  * A number of small tools/utilities for every day use (URL, daemonize, ...)
  * A (complete, yet very simple) alternate framework for Linux multithreading.
  * A alternate framework for file descriptor handling, POSIX and BSD file locking,
    TCP and Unix sockets, and a general stream[buf] template for all file descriptor
    based classes.
  * RealTimeStamp: Encapsulation of BSD's gettimeofday(2); can be used to
    measure latency in realtime (precision of 10^-6 seconds).
----------------------------------------------------------------------
sp-utilcpp-0.1.20021120: unstable

	* Significant Source Code updates:
	- Header file dependencies moved back to the header files directly.
	- Completely compilable with GCC 3.X.
	- Completely documented (i.e., doxygen does no longer produce warnings).

	* New:
	- PosixRegex: Wrapper class for POSIX.2 regex functions. Allows s.th.
	like "if (PosixRegex("ABC.*").run("ABC-Pflaster")) ...". I never could
	make proper use of the old "Regex" class, hence this rewrite.

	* New from "dvdb" project:
	- "SMLogMono": Analogous to "SMLog", this provides a infrastructure for
	logging in a non-multithreaded environment (not using Common C++).
	- "NaiveCloneThread": Simple ("naive") thread implementation based
	on Linux clone(2); also added a mutex class (AtomicMutex), a guard class
	(MutexLock) and a pseudo thread class using fork(2) (ForkThread).
	Motivation: "NaiveCloneThread" under Linux can be useful if you need real
	multithreading, but for some reason you cannot use "pthreads".
	- "CmdLine": Simple command line abstraction; automatically shows help
	on commands, handles errors, can set variables, does simple variable
	expansion. This was created for use in "dvdb-tool", but may be of
	more common use.

	* New from "tincas" project:
	- "Conversion": New class "Conversion" added, with currently
	two tool function to convert from decimal to any base.
	- "SP::Util::daemonize(...)": Should be used whenever a program needs to
	go into background.

	* SPRelease: now uses "cvs edit" before trying to edit files for those
	who use that cvs feature; does no longer add release tarballs into CVS
	(this should be done manually if needed).
----------------------------------------------------------------------
sp-utilcpp-0.1.20020916: unstable

	* Now completely diversified: "Toolbox" is seperated into "ToolboxCPP" (code
	depends on STDC++ only, without templates), "ToolboxSTL" (code depends on STDC++
	only, with templates) and "ToolboxSys" (code may depend on STDC++ plus system
	code (POSIX, Linux, BSD, ...). This thoroughly solves the compile time (header
	includes) dependency problems.
	 A compatability header "Toolbox" ist still provided, but should not be used.
	* Libraries are build for all segments of the library, where each library now
	has its real and exact dependencies. This thoroughly solves the run time
	dependency problems.
	 A compatability library containing all code is still provided, but should not
	be used.
	* Header includes are now suffixed "hpp", as required by "templates".
	 Compatability headers are included for all former (not new) header files.
	* Includes a number of small fixes in documentation, examples, and SPRelease.
----------------------------------------------------------------------
sp-utilcpp-0.1.20020912:

	* The "SPRelease" script now supports "AC_INIT"-based ("modern", automake1.6)
	"configure.ac"s and projects that use manual "ChangeLog"s.
	* Using Include-Scheme as indicated in "templates" - i.e., all includes from
	header files are removed, and the synopsis for these files is updated in the
	documentation. NOTE: This moves responsibility for including all neccessary
	files completely to the *.cpp files, so existing source might need some update.
	* GetOpt convenience imrovements: new method wrongUsage(), method printUsage()
	now has an optional title argument.
----------------------------------------------------------------------
sp-utilcpp-0.1.20020902: unstable

	* Following improved Styleguides for shared libraries (cmp. http://manwe.schlund.de/~absurd/spprojects/).
	I.e. all unneeded library dependencies are removed, CSLog support is removed from proper library and added
	into an alternative library with postfix "-global".
	This enables us to use sp-utilcpp without having dependencies on all libraries sp-utilcpp itself
	uses. Thus, for example, sp-utilcpp can now be used directly together with dvdb/libpth.
	["libccgnu" itself has global variables, and, as sideeffect, always needs pthread, which means that the
	binary will execute pthread initializations, which will conflict with (at least) "libpth") ].
----------------------------------------------------------------------
sp-utilcpp-0.1.20020830: unstable

	* Now compiling with "-pthread", which make this library compatible for use in
	program using pthreads (i.e. tincas).
	* SPRelease slightly improved -- it now automates snapshot tarball versions.
	* More general cleanup and improvements in documentation/automake/autoconf/libtool.
----------------------------------------------------------------------
sp-utilcpp-0.1.20020822: unstable

	* Changed name; this effects the include path, the library and the
	project name.  The change was necessary because of some part of
	CVS doesn't work whith paths including "+".  So, explicitly:
	 Project name     = "sp-utilcpp"
	 include synopsis = "#include <sp-utilcpp/*.h>"
	 library name     = "libsp-utilcpp"
	* Added new class "URL" which is related to URL specific
	functionality.
----------------------------------------------------------------------
