2008-12-10  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* Repository: STLport release 5.2.1

2008-12-03  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* build: HP-UX/ia64 with aC++ compiler; verified on HP-UX 11.23
	and 11.31 with aC++ A.06.17; [4 of 436 tests, 4 ignored (2 explicit),
	and 4 of 360 tests, 2 ignored]; submitted by Boris Gubenko.

2008-11-27  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* build: EVC9 (Visual Studio 2008) by Johan Andersson.

2008-11-19  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* Repository: STLport release 5.2.0

2008-08-26  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* Repository: branch for STLport 5.2, r3618

2008-07-21  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/type_traits:  decay, conditional, ebable_if added.

2008-07-18  Francois Dumont  <dums@users.sourceforge.net>

	* configure.bat: Specifying the compiler is now mandatory and
	must be first.

2008-07-17  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stdlib.h, cstdlib: Fix errno workaround for gcc MinGW.
	Latest gcc version (4.3.0) includes stdlib.h in cstdlib using
	include_next so skipping workaround in STLport stdlib.h. So errno.h
	must also be included from cstdlib.

2008-07-17  Petr Ovtchenkov  <complement@users.sourceforge.net>

	src/details/fstream_unistd.cpp: fix bug #2001222, opening with
	ios_base::app should rewind write pointer to the end of the file;
	fix treatment of ios_base::ate (it should rewind pointer
	to the end of the file once) and ios_base::app (offset will be set
	to the end of the file prior to each write); references ---
	http://www.open-std.org/Jtc1/sc22/wg21/docs/papers/2008/n2691.pdf
	27.8.1.4; http://www.opengroup.org/onlinepubs/7990989775/xsh/fopen.html;
	http://www.opengroup.org/onlinepubs/7990989775/xsh/open.html

	test/unit/fstream_test.cpp: add sample with fopen as reference point.

2008-07-14  Francois Dumont  <dums@users.sourceforge.net>

	* build/Makefiles/gmake: Build system updated for gcc under Cygwin,
	MinGW. Under Cygwin, with or without -mno-cygwin option, STLport
	is now a full replacement for libstdc++, building an application
	with it do not require -lsupc++ anymore as it is completely
	integrated in STLport. Under MinGW it didn't work resulting in a
	crash when starting an application using STLport so -lsupc++ is
	necessary both when linking STLport _and_ when linking the
	application using it.

2008-07-10  Francois Dumont  <dums@users.sourceforge.net>

	* src/num_put_float.cpp: Use an union based technique to find out
	the sign of floating point values. It will maybe replace use of
	platform specific functions in a future version.

	* src/stdio_streambuf.cpp, test/unit/iostream_test.cpp: Change
	behavior of stdio_istreambuf implementation that now always return 0 on
	showmanyc call. Returning -1 means that reading attempt will
	necessarily fail which is not the case, 0 is prefered as it means that
	we don't know. It is also similar to other std implementations like
	libstdc++.

2008-07-02  Francois Dumont  <dums@users.sourceforge.net>

	* configure.bat: After a very interesting debate the consesus
	is to put configure scripts in root folder.

	* stlport/stl/_string_sum_methods.h: Bug report #2003308,
	compilation error with _STLP_USE_TEMPLATE_EXPRESSION.
	Regression due to remove of POD type support in basic_string
	implementation.

2008-06-26  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_fstream.c: Consider read file failure in
	_M_underflow_aux method to avoid infinite looping on some
	platforms. Thanks Pawel Sikora.
	
2008-06-26  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* build/Makefiles/gmake/unix/rules-install-so.mak: do
	install-headers tags when make install or install-release-shared.

2008-06-24  Francois Dumont  <dums@users.sourceforge.net>

	* build/Makefiles/gmake: Cygwin/MinGW upgrade, now build
	without referencing libstdc++.

	* stlport/stl/_threads.h: Move definition of __stl_atomic_t next
	to definition of atomic operations to guaranty coherency.

2008-06-18  Francois Dumont  <dums@users.sourceforge.net>

	* build: configure.bat moved to build folder. lib/Makefile,
	test/unit/Makefile removed from SVN, now generated by configure
	scripts. Under GNU make use include rather than link to
	reference the right make file, link seems not supported by
	Cygwin/MinGW make. Remove default value of STLPORT_DIR,
	already set in internal make files and moreover the absolute
	path generated in the script leads to trouble under Cygwin/MinGW.

	* src/num_get_float.cpp: Use an union to generate double value
	from 64 bits int to avoid gcc type-punned pointer warning.

2008-06-16  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* build/test/unit/gcc.mak: pass runtime pathes as absolute;
	removed LDSEARCH macro, use LDFLAGS instead;

	* Makefile: clean in test/unit too.

2008-06-13  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_iterator_base.h: Add a funny feature, when
	using both STLport and native STLs it was not possible
	to use std iterators in STLport containers because of the
	missing iterator category that is defined in std:: and
	not in stlport::. So now STLport map std iterator categories
	in stlport ones. Now it is possible to write something like
	that:
	std::string stdstr("std");
	stlport::string stlportstr("stlport and ");
	stlportstr.append(stdstr.begin(), stdstr.end());
	However the other side is not supported except when STLport
	iterators are simply pointers.

2008-06-05  Francois Dumont  <dums@users.sourceforge.net>

	* src/num_get_float.cpp: Remove useless skip of white
	space at begining of buffer in _Stl_string_to_double function.
	__read_float, the function that generate that buffer do not
	put white space at the first place.

	* stlport/stl/_new.h, _range_errors.c: Remove unused
	_STLP_RTTI_BUG macro. Moreover __stl_new was not correctly
	implemented with this macro, there was no check for failed
	allocation.
	
	* test/unit/limits_test.cpp: Remove code supposed to hide
	numeric_limits::max value to MSVC 8 compiler, this code was
	introducing a test regression. If it is producing a warning
	a #pragma warning should be use to hide it.

	* test/unit/num_put_get_test.cpp: Add test showing problem
	with code that used to be in limits test. Those tests will be
	activated for 5.3 to check that there is really nothing wrong
	with it.

2008-06-07  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* configure: don't duplicate options in config.mak, that
	has default values in makefiles.

2008-06-06  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* configure: put it on common place for ./configure;

	* build/Makefiles/gmake/targetdirs.mak: use $(DESTDIR)
	as in common practice (change root of installation, but
	don't change run paths);

	* build: by default use make for gcc;

	* Makefile: top makefile for common project task;

	* build/Makefiles/gmake/depend.mak: fix options for ctags
	and etags;

	* configure, build/Makefiles/gmake/top.mak: take into account
	extra flags for linker.

2008-06-05  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_function_adaptors.h: Fix instantiation of
	unary_function and binary_function as base type of _Mem_fun0_ref,
	_Mem_fun1_ref, _Const_mem_fun0_ref, _Const_mem_fun1_ref,
	_Void_mem_fun0_ref, _Void_mem_fun1_ref, _Void_const_mem_fun0_ref,
	_Void_const_mem_fun1_ref. Those classes are use as a workaround for
	compiler missing class partial template specialization or that don't
	support return of void. Instantiation is now done without reference
	qualifier as specified by the Standard and as done in the
	implementation used when workaround is not necessary.

2008-06-03  Francois Dumont  <dums@users.sourceforge.net>

	* src/ios.cpp, stlport/stl/_complex.c, _ios.c, _ios.h, _ios_base.h,
	_istream.c, _num_get.c, _num_put.c: Remove invalid cached facet
	pointers in ios_base class. This class can be used in a char or
	wchar_t instantiation context making cast to ctype<char> or
	ctype<wchar_t> invalid resulting in an application crashed. The
	only safe access to facet instances from a ios_base instance is through
	the use_facet<Facet>(getloc()) function. Only _M_cached_ctype has been
	kept in basic_ios class even if small bench hasn't show real
	enhancement compared to using use_facet. 

	* stlport/stl/_time_facets.c: In addition to above modifications
	time_get implementation has been simplified as localized info are
	now stored as wchar_t for wide char instantiation. We do not need
	to use ctype.widen method anymore.

	* test/unit/time_facets_test.cpp: Add test for time_get wchar_t
	instantiation.

	* test/unit/cppunit/cppunit_mini.h: Fix report of ignored/explicit
	tests.

2008-05-27  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_alloc.h: Code simplification, clean up null
	pointer checks as allocators should never return it but rather
	throw a bad_alloc exception.

2008-05-27  Francois Dumont  <dums@users.sourceforge.net>

	* test/unit/cppunit/cppunit_mini.h, file_reporter.h: Fix
	counting of failed test, won't report more failures than tests
	anymore. Now also report explicit tests.

2008-05-15  Francois Dumont  <dums@users.sourceforge.net>

	* src/allocators.cpp, locale_catalog.cpp, num_put_float.cpp:
	Use static method returning static instance to mutex rather than
	direct access to a static mutex instance to control initialization
	order of static variables thanks Peter Hrenka report.

2008-04-26  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_function.h, type_traits.h: Adoption of Defect Report 109
	Missing binders for non-const sequence elements.

	* test/unit/bind_test.cpp: Test for DR above.

2008-05-11  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/stl/_string.c: from formal (ISO/IEC 14882:2003) point of view 
	string s; string::size_type p = s.find( "", 0, 0 ); should return 0 in p,
	i.e. position out-of-bound of string; people near Standard commete has
	opinion that Standard correct in this point and not require clarification
	(opposite to my opinion); even if it looks like bogus behavior for me,
	it fixed to conform standard; see bugreport #1872656;

	* test/unit/string_test.cpp: test for issue above.

2008-05-10  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/stl/_istream.c, stlport/stl/_ostream.h: ISO/IEC 14882:2003
	(and 1998 too) assume change as get as put positions with
	seekg and seekp (27.6.1.3, par 38; 27.6.2.4 par 2), but this
	contradict to common practice and proposed draft N2588
	(27.6.1.3, par 41; 27.6.2.5, par 4); now STLport implement
	(i.e. change present behavior) the draft's point of view;
	this reflect patch #1650657 by Jan Echternach;
	
	* test/unit/sstream_test.cpp: test for issue above.

2008-04-26  Francois Dumont  <dums@users.sourceforge.net>

	* Patches #1940126, #1941267, #1941814 from Johan Andersson for evc8
	Pocket PC support and build of tests without warnings.

2008-04-24  Francois Dumont  <dums@users.sourceforge.net>

	* Patch 1937823 from Johan Andersson to add Microsoft Visual
	Studio 2008 support.

	* stlport/stl/_algobase.h: Patch 1935497 from Andrey Semashev to
	apply a common optimization in STLport algos for random access
	iterators to fill and fill_n algos.

2008-04-23  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* src/num_put.cpp: remove ambiguity of char to int conversion
	(comparison with integers, check for negative value); remove
	ambiguity with postfix increment in index in conditional
	expression.

2008-04-22  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* build/Makefiles/gmake/gcc.mak, build/lib/configure: take
	into account CFLAGS, EXTRA_CFLAGS, because of C compiler in use too.

2008-04-17  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_string.h: Remove support for non POD type in basic_string
	implementation.

2008-04-08  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* build/Makefiles/gmake/lib/gcc.mak: try to create $(PRE_OUTPUT_DIR) before
	run lipo; impact only MacOS;

	* build/Makefiles/gmake/sysid.mak: uname -m on MacOS return
	power-macintosh, but identify architechture as ppc.

2008-03-28  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/assert.h: Bug #1894882: Apply a technique similar to the
	one used in errno.h to detect when assert has been defined before
	including assert.h.

2008-03-21  Francois Dumont  <dums@users.sourceforge.net>

	* Patch 1876529 from Johan Andersson to add support for VS 2005
	bundled Pocket PC 2003 SDK.

2008-03-18  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/stl/_string.c: derived from patch #1914475, wrong
	replace for selfreferencing string; thanks Farid Zaripov;

	* test/unit/string_test.cpp: test for problem above.

2008-03-17  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_stdexcept_base.h, _stdexcept_base.c,
	type_manips.h, src/num_put_float.cpp,
	test/unit/num_put_get_test.cpp: Borland patch from Eric Sanford.
	No need for a __Named_exception workaround anymore. Force
	floating point control word when testing special floating point
	operations. Change implementation _Copyable and add a workaround
	to correctly render long double max value that is consider as
	equal to double max value.

2008-03-10  Francois Dumont  <dums@users.sourceforge.net>

	* build/Makefiles: Normalization of --with-static-rtl and
	--with-dynamic-rtl extended to configure script for Borland
	and DMC compilers.

2008-03-08  Francois Dumont  <dums@users.sourceforge.net>

	* test/unit/cppunit/cppunit_mini.h: New mini cppunit framework
	feature, the explicit tests that have to be explicitly tested
	thanks to the -t option to run.

	* test/unit/unordered_test.cpp: benchmark1 and benchmark2 tests
	are now explicit.

	* stlport/stl/_stdexcept_base.h, _stdexcept_base.c:
	__Named_exception that contains dynamically allocated memory
	require a copy constructor and assignment operator. Thanks bug
	report #1908626 from Ilya Dogadaev.

	* build/Makefiles: Normalized some configure options:
	--without-thread, --without-rtti, --with-lib-motif. 

2008-03-06  Francois Dumont  <dums@users.sourceforge.net>

	* Fix rtti management:
	 - no rtti support do not imply no type_info struct definition.
	 - #error message in typeinfo to signal missing rtti support
	has been removed.
	 - locale implementation do not use typeid anymore to enhance
	runtime_error message thrown by combine message when we cannot
	find the combined facet. It was introducing an annoying dependency
	making use of the lib without rtti support impossible.

2008-03-05  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_range_errors.h: Signal function responsible
	for throwing excepions as not returning to the DMC compiler.

2008-03-03  Francois Dumont  <dums@users.sourceforge.net>

	* build/Makefiles/gmake: Eric Sanford patch to make generation
	of debug symbols optional when using Borland compiler to build
	unit tests.

	* stlport/stl/config: Normalization of verbose mode used to get
	feedback about build context when using STLport.
	_STLP_VERBOSE_AUTO_LINK has been renamed in _STLP_VERBOSE and
	report additional information like rtti, exception support,
	mono/multi threaded, static/dynamic library.

	* stlport/stl/_check_config.h: Unused, removed.

	* stlport/typeinfo: Report use of this header when there is no
	RTTI support, only when we can detect it of course.

2008-02-29  Francois Dumont  <dums@users.sourceforge.net>

	* build/Makefiles/gmake: Several modif for Digital Mars support.

	* stlport/stl/_function_base.h: Hide protected constructor not
	supported by Borland compiler.

	* stlport/stl/config/_bc.h: Now detect Rtti support.

2008-02-28  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* build/Makefiles/gmake/gcc.mak: use more convenient option
	-dumpversion to detect compiler's revision; check that
	-fuse-cxa-atexit really required; remove -fident option;

	* build/Makefiles/gmake/targetdirs.mak: take into account DESTDIR;

	* build/lib/configure: write DESTDIR as prefix for installation pathes;

	* stlport/type_traits:  type traits, close to JTC1/SC22/WG21
	C++ 0x working draft
	[http://www.open-std.org/Jtc1/sc22/wg21/docs/papers/2008/n2521.pdf]

2008-02-26  Francois Dumont  <dums@users.sourceforge.net>

	* Rationalization in detection of real localization implementation.
	_STLP_REAL_LOCALE_IMPLEMENTED removed, the whole detection mecanism
	is now in c_locale.h/c_locale.c and is based on API specific macros.
	For the moment real localization is used for windows platforms
	(_STLP_WIN32 except Windows CE) and when Glibc 2.2 or newer with
	GNU extensions (_GNU_SOURCE) is detected.

2008-02-25  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/type_traits.h: Generalize technique used by Borland
	compiler to detect pointer types const or volatile qualified and
	avoid trivial copy in this case.

	* Eric Sanford patch for Borland compiler for Linux.

2008-02-22  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/c_locale.h, src/c_locale.h,
	c_locale_win32/c_locale_win32.c, c_wlocale_win32.c: Major code
	simplification. Definition of _Locale_UPPER, _Locale_LOWER, etc...
	used to be platform dependant requiring a lot of macro checks and
	additionnaly exposing STLport to wrong definitions. When for
	instance _Locale_PRINT was defined as
	_Locale_UPPER|_Locale_LOWER|..., marking a character as printable
	was also making it a upper and lower character!
	In fact those masks have to be platform specific only when
	STLport directly expose platform masks which is only the case when
	using GlibC. So now those mask are hard coded in STLport using
	values defined in the C++ Standard 22.2.1. Under Windows the
	localisation implementation has been adapted to map Win32 mask values
	to the STLport ones. A number of now useless workaround has been
	removed.

	* src/c_locale_dummy/c_locale_dummy.c, ctype.cpp,
	test/unit/ctype_facets_test.cpp: Removed the hard coded table of
	character types that was duplicating the one in src/ctype.cpp. Now
	a table is build during library initialisation using C functions
	isspace, isalpha... Doing so and adding a test in
	LocaleTest::ctype_by_name will show if STLport and the C runtime
	agree on character classification.

2008-02-20  Francois Dumont  <dums@users.sourceforge.net>

	* src/allocators.cpp: Change management of _S_heap_size, now bit
	translation is done on the value used to increment it rather than
	when using _S_heap_size. Thanks to this modif, when _S_heap_size is only a 32
	bits value it won't roll before 16Go has been allocated. Thanks to
	an additional unsigned cast the effect won't be notice before 32 Go
	are allocated.

2008-02-19  Francois Dumont  <dums@users.sourceforge.net>

	* src/c_locale_dummy/c_locale_dummy.c: Fix implementation of
	_WLocale_toupper/_WLocale_tolower, call to respectively
	towupper/towlower was inverted.

	* src/allocators.cpp: __stlp_chunk_malloc/__stlp_chunck_free
	renamed respectively in __stlp_new_chunk/__stlp_delete_chunck as
	those functions behavior are closer to the new operator behavior
	rather than to malloc. __stlp_new_chunk implementation fixed, it
	was using _STLP_CHECK_NULL_ALLOC reserved to check allocations
	performed through new operator. Fix code to correctly take into account
	bad_alloc exceptions.

2008-02-18  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_algobase.h: Removed namespace specification on
	swap invocation in iter_swap implemenation because it was breaking
	template function resolution for gcc. Whether this is a gcc bug
	or simply correct Standard C++ is not clear yet so namespace has
	been removed independant of compiler in use.

	* stlport/stl/_alloc.h, _new.h, src/locale.cpp, locale_impl.cp:
	Generalize use of _STLP_THROW_BAD_ALLOC macro to throw the
	bad_alloc exception. Definition of this macro is now in _new.h
	header.

	* stlport/stl/_valarray.h: Use __stl_new rather than malloc to get
	exception management without additional code. It also gives users
	a Standard way to detect memory starvation through the new handler.

2008-02-16  Francois Dumont  <dums@users.sourceforge.net>

	* Removed anachronous and unmaintained raw SGI allocator mode.

2008-02-15  Francois Dumont  <dums@users.sourceforge.net>

	* src/details/fstream_win32io.cpp: Fix wrong use of Win32 API.
	SetFilePointer do not take SEEK_CUR macro but FILE_CURRENT.

	* src/allocators.cpp, stlport/stl/_alloc.h, _alloc_old.h,
	_construct.h, _new.h, _pthread_alloc.h, _rope.h, config/_evc.h,
	features.h: Code cleanup; __THROW_BAD_ALLOC normalized in
	_STLP_THROW_BAD_ALLOC; _STLP_NEW, _STLP_PLACEMENT_NEW and
	_STLP_BROKEN_BAD_ALLOC_CLASS macros removed.

2008-02-14  Francois Dumont  <dums@users.sourceforge.net>

	* src/c_locale_glibc/c_locale_glibc2.c: Manualy handle the "C" locale
	to guaranty consistency with the default "C" facet implementations in
	the lib.

	* * test/unit/time_facets_test.cpp, num_facets_test.cpp,
	monetary_facets_test.cpp, ctype_facets_test.cpp: Enhance tests by using
	a third way of generating locale instance from names.

2008-02-13  Francois Dumont  <dums@users.sourceforge.net>

	* src/fstream_impl.h, details/fstream_win32io.cpp,
	fstream_unitstd.cpp, fstream_stdio.cpp, stdio_streambuf.cpp: __stdin_size
	function revomed making fstream_impl.h useless.

2008-02-12  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/type_manips.h, type_traits.h: Borland patch from Eric
	Sanford to fix regressions introduced with recent modifications of
	some helper struct used to detect potential optimizations.

	* config/_bc.h, features.h: New configuration, Borland do not support
	following syntax: 
	typename std::iterator_traits<>::value_type. It breaks on association
	of typename keyword with namespace specification. As Borland do not
	require typename keyword in this case it is now possible avoid it
	thanks to the _STLP_NO_TYPENAME_BEFORE_NAMESPACE macro.

	* stlport/stl/_limits.c: Borland, like gcc 4, prefer additional brackets
	in initialization of struct associated to computation of numeric limits
	values.

2008-02-01  Francois Dumont  <dums@users.sourceforge.net>

	* General code review to look for Standard or internal functions
	called with namespace scope in order to avoid ambiguous calls
	when compiler implement Argument Dependant Lookup. See ListTest::adl
	test case to see what it means.

	* stlport/stl/config/features.h: _STLP_PRIV now contains full
	namespace path starting at global namespace that is to say
	::stlport::priv:: when private namespace is in use and ::stlport::
	when it is not. Idem for _STLP_TR1 that now contains ::stlport::tr1::.

	* stlport/stl/debug/_string.h: Call to std::distance removed to avoid
	reading input iterators before reading their contents. Now all
	basic_string::assign methods invalidate all iterators like other
	containers.

	* stlport/stl/_iterator_base.h: Remove implementation of __value_type
	__distance_type and __iterator_category when compiler support partial
	template specialization. In this case we directly use iterator_traits,
	we do not need those functions. Removed special __distance implementations
	use in an anachronous implementation of distance taking an initial value
	to start counting. Now this function use __distance functions already
	used by the std::distance function. The MSVC _Distance function is also
	considered as anachronous.

2008-01-31  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_string.h, test/unit/string_test.cpp: Add swap
	implementation when there is no support for template function
	partial ordering.

2008-01-30  Francois Dumont  <dums@users.sourceforge.net>

	* src/fstream_impl.h, details/fstream_stdio.cpp, fstream_unistd.cpp,
	fstream_win32io.cpp, stdio_streambuf.h, stdio_streambuf.cpp: Hide
	__is_regular_file only used in fsteam implementation specific files.
	Rename __file_size in __stdin_size as this function is only used
	to get stdin FILE* size. Under Win32 this function now always returns
	0 as it looks like Windows do not consider FILE* as allowing
	position operations. Move platform specific code from stdio_streambuf
	implementation to associated fstream_*.cpp file.

2008-01-29  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* build/test/unit/gcc.mak: option for run-time path to libstlport
	on HP-UX;

	* build/Makefiles/gmake/hp-ux/targetsys.mak: HP-UX IA64 use so
	as shared object extention, while PA-RISC use sl;

	* build/Makefiles/gmake/gcc.mak: use -fno-reorder-blocks for PA-RISC;

	* src/cxa.c: use cxa_atexit fix similar to trick on Solaris and FreeBSD;

	* src/num_get_float.cpp: stdint.h on HP-UX;

	* stlport/wctype.h, stlport/stl/_cwctype.h: HP-UX has problems with
	wchars; changes suggested by KBac.

2008-01-28  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/config/_cygwin.h: Cygwin do not define _STLP_USE_GLIBC
	anymore, platform API is closer to a Standard C lib than to the Gnu
	lib C.

2008-01-26  Francois Dumont  <dums@users.sourceforge.net>

	* src/fstream_stdio.cpp, fstream_win32io.cpp, fstream_unistd.cpp:
	Removed unused uint64.h include and definition of ULL macro.

	* src/uin64.h: Removed, _compound_int class defined in it is simply
	not used anymore.

	* src/_stdio_file.h: Major cleanup, only _FILE_fd is still in use.

	* src/locale.cpp, locale_impl.cpp, build/lib/Makefile.inc: Restore
	independency between those 2 translation units, code duplication is
	very limited. This is a 1st step to make build of STLport easier by
	having all sources in src folder buildable.

	* src/locale_impl.h, locale_impl.cpp: _copy_Locale_impl removed,
	only use to create initial global locale that can simply reference
	classic locale incrementing its reference counter by one.

	* stlport/stl/_locale.h: Fix locale implementation when MSVC6 workaround
	is used. The base class _NoMem_loc do not have to have a virtual
	destructor, it only need a protected one. Moreover fix constructor
	taking an other locale instance and a facet instance, _M_impl was
	not released before being assigned resulting in a memory leak.
	
	* src/fstream_stdio.cpp, fstream_unistd.cpp, fstream_win32io.cpp:
	Moved to details sub-folder. Now building STLport means build all
	.cpp, .c and optionnaly .rc files from src folder.

2008-01-22  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* build/test/unit/gcc.mak: check confguration and set
	ALL_TAGS before inclusion top.mak, to correctly set
	targets for 'all'.

2008-01-21  Francois Dumont  <dums@users.sourceforge.net>

	* build/test/unit/icl.mak: Add /fp:strict option to build unit tests
	as we need strict floating point number operations respect to have
	numeric limits to work correctly.

	* stlport/stl/config/_intel.h: Looks like ICL since version 9 support
	static constant correctly.

	* stlport/stl/config/features.h, src/c_locale_win32/c_locale_win32.c:
	New macro _STLP_MARK_PARAMETER_AS_UNUSED to offer a compiler specific
	way of marking parameters as unused. Default behavior is to cast the
	parameter to void*.

	* src/c_locale_win32/c_wlocale_win32.c: Fix _WLocale_strxfrm function
	implementation thanks Kai Khcyt. Despite taking a pointer to wchar_t*
	LCMapStringW writes bytes to it.

	* build/Makefiles/gmake/bcc.mak, lib/bcc.mak, app/bcc.mak, stlport/cerrno,
	errno.h, stl/type_manips.h, type_traits.h: Borland patch from Eric
	Sanford to build Borland libs with GNU make build system.

2008-01-18  Francois Dumont  <dums@users.sourceforge.net>

	* test/unit/locale_test.cpp, ctype_facets_test.cpp,
	money_facets_test.cpp, num_facets_test.cpp, time_facets_test.cpp:
	test_supported_locale function do not have to be template, might
	avoid ICL wring code generation.

	* stlport/stl/_function_base.h: Based on an idea from Herb Sutter in
	his excellent book "Exceptional C++ Style", derived class destructor
	should be protected non virtual or public virtual. unary_function
	and binary_function struct are intended to be derived but they
	are not polymorphic so destructor should be protected non virtual.
	According the book it is even not breaking library Standard conformity
	in doing so. What is sure is that it will help users detect bad
	code.

2008-01-17  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/debug/_list.h: Remove use of std::distance in STL
	safe mode, it is invalid for pure input iterators. Now assign
	invalidate all iterators which make the code simpler.

	* Remove the difficult to implement and maintain _AreSameUnCVTypes,
	doing so has a number of impact on the lib:
	- Remove usage of it in debug/_string.h and debug/_deque.h, we
	rather use function specialization to detect self reference. In string
	implementation it is almost impossible to detect self referencing in
	insert and assign method even with use of _AreSameUnCVTypes, so
	we systematically creation an intermediate string instance.
	- Creation of _AreCopyable helper class to detect when it is safe
	to do a memcpy or memmove between 2 types. This class returns false
	when any type is volatile qualified or when trying to copy to a const
	qualified type.
	- Creation of _AreSameTypes only really implemented thanks to partial
	template specialization, only used in _IsOkToSwap struct.

	* test/unit/copy_test.cpp: Add test showing bug 1806558.
	
2008-01-17  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* build/lib/configure: Don't override COMPILER_NAME, if already
	defined;

	* stlport/stl/config/_prolog.h: remove suspicious comments.

2008-01-15  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/stl/config/_hpux.h: define _POSIX_C_SOURCE 199506;
	suggested by KBac, patch #1869229.

2008-01-14  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_string.h, _string.c: Restore code to support non-POD
	types in basic_string implementation as specified in basic_string
	comments.

	* stlport/stl/_limits.c: Use double numeric limits for long double
	when sizeof(double) == sizeof(long double).

	* stlport/stl/debug/_debug.h, _deque.h, _list.h, _vector.h: Prefer to
	use overloading of member method to activate additional check of
	23.1.1 table 67 Standard conformity rather than using metaprogrammng
	technique.

2008-01-12  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* build/Makefiles/gmake/lib/gcc.mak: gcc 3.3 has useful
	libsupc++, but some builds not; prefer normal situation,
	not marginal; see record 2007-10-10;

	* build/Makefiles/gmake/gcc.mak: fix reference to _FORCE_CXX macro;

	* build/Makefiles/gmake/CC.mak: ditto;

	* build/Makefiles/gmake/aCC.mak: ditto;

	* build/lib/configure: keep compiler and default compiler --- gcc
	is most common defualt and plans to switch to default makefile.

2008-01-11  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_limits.c: Adapt long double numeric limits for
	Intel C++ compiler 9 for Windows.

	* test/unit/cppunit/test_main.cpp: Add command usage output when
	option is not recognise.

	* build/lib/configure: Remove specification of COMPILER_NAME default
	value gcc. COMPILER_NAME is already set in all root make scripts like
	gcc.mak, aCC.mak, dmc.mak ... Doing so forces users to specify their
	compiler family using configure script which is redundant.

2008-01-10  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_prolog.h: Remove code duplication by including
	_cprolog.h.

	* stlport/errno.h, cerrno: Move import of errno from errno.h to
	cerrno.

	* src/ctype.cpp, facets_byname.cpp, time_facets.cpp,
	test/unit/codecvt_test.cpp: Several small modifications to make
	Intel C++ compiler happier. Mostly avoid warnings and use
	unary_function to avoid some typedef.

2008-01-09  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_uninitialized.h: Fix implementation of
	__uninitialized_copy_copy in order to make the function exception
	safe. Detected thanks to the EH test suite.

2008-01-08  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_ios_base.h: _S_was_synced renamed in _S_is_synced
	because it reflects what the sync state is and not what it was.

	* src/iostream.cpp: Use auto_ptr to avoid use of the catch(...)
	blocks. Changed management of the _STLP_REDIRECT_STDSTREAMS macro.
	cout, cerr and clog streams are not ofstream anymore but classic
	ostream instances, only streambuf is a filebuf when the macro is
	defined. Improve _S_initialize robustness to exceptions, now
	exceptions like bad_alloc are not silently eaten. _S_initialize
	guaranty that on exception, Standard streams will be valid, it do
	not offer however strong guaranty, global state might still have
	been modified. Idem for sync_with_stdio. Moreover this method is
	now Standard compliant, it returns the new sync state and not the
	old one.

2008-01-07  Francois Dumont  <dums@users.sourceforge.net>

	* src/c_locale_dummy/c_locale_dummy.c: Upgrade to take into account
	recent localization Api modifications.

2008-01-04  Francois Dumont  <dums@users.sourceforge.net>

	* src/fstream_win32.cpp: Change detection of regular file, only reject
	handlers identified as folders.

	* stlport/stl/_codecvt.h: Add assertion to check buffer ranges pass to
	the codecvt facet.

	* src/fstream.cpp, stlport/stl/_fstream.c: Complete bug #1854345 fix,
	get buffer was not reset at the right place.

	* stlport/stl/_fstream.h, _fstream.c: Several modifications in the
	seekoff method:
	- Remove limitation of positioning to binary file stream, setting
	position in a text file stream is not a problem.
	- Fix mbstate_t instance returned in the file_pos instance when
	getting position in a file stream with variable encoding.
	- Move all the sanity check code to the debug mode.

2008-01-02  Francois Dumont  <dums@users.sourceforge.net>

	* test/unit/fstream_test.cpp: Change FstreamTest::seek test to reveal
	bug #1854345.

	* src/fstream.cpp: #1854345 bug fixed.

2008-01-01  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_time_facets.h, _time_facets.c, src/time_facet.cpp,
	c_locale_glibc/c_locale_glibc2.c: Restore GlibC++ support after
	2007-12-27 modifications.

2007-12-29  Francois Dumont  <dums@users.sourceforge.net>

	* Borland patch from Eric Sanford mainly to enable move constructor.

	* stlport/stl/_string_base.h, _string.h, _string.c,
	_string_sum_methods.h: Attempt to make string implementation more
	clear: _M_allocated renamed in _M_start_of_storage,
	_M_Buffers._M_dynamic_buffer renamed in _M_Buffers._M_end_of_storage,
	_M_end_block renamed in _M_end_of_storage too. To respect current
	naming convention _capacity has been renamed in _M_capacity and
	_rest in _M_rest.

	* stlport/stl/_string_workaround.h: Updated to take into account recent
	modification in string data model.
	
	* etc/autoexp.dat: Updated to take into account string data model
	modifications, new model is really simpler to map to.

2007-12-27  Francois Dumont  <dums@users.sourceforge.net>

	* src/c_locale.h, c_locale_dummy/c_locale_dummy.c,
	c_locale_glibc/c_locale_glibc.c, c_locale_glibc2.c,
	c_locale_win32/c_locale_win32.c, facets_byname.cpp, time_facets.cpp,
	stlport/stl/_codecvt.h, _ctype.h, _numpunct.h, _time_facets.c,
	_time_facets.h: Major internal localization API modification. Add
	several _WLocale_* functions to allow native support of access to
	wide char representation of localization information. The time facet
	support has been the most impacted. GlibC based implementation
	still have to be updated.

2007-12-23  Francois Dumont  <dums@users.sourceforge.net>

	* build/Makefiles/nmake/evc8.mak, targets.mak, src/_stdio_file.h,
	fstream_win32io.cpp, iostream.cpp, locale_catalog.cpp: Patch from
	Johan Anderson for Evc 3/4/8 to:
	- fix the opening console issue on this platform.
	- add EVC8 SH4 support.

	* test/unit: Add CPPUNIT_FAIL macro to force failure without
	using a constant conditional expression. Many tests updated to
	use this new macro.

	* stlport/stl/config/_evc.h, debug/_debug.h, _debug.c: Patch
	from Michael Fink to allow _STLP_DEBUG mode when using WCE ARM
	platform.

2007-12-20  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_monetary.c: Remove test of existing space at end of
	stream when last pattern field is none because on ouput stream
	space are only added optionaly. Small code duplication removed.

	* build/lib/configure.bat, evc.mak, msvc.mak, test/unit/evc.mak,
	msvc.mak: Config file moved to Makefiles/nmake folder. Add
	--without-stlport option to build unit tests without STLport.

	* test/unit/money_facets_test.cpp: Add validation that moneypunct
	"C" facet is identical to the one contained in locale::classic().

	* src/c_locale_dummy/c_locale_dummy.c,
	c_locale_win32/c_locale_win32.c, facets_byname.cpp: Fix to have
	moneypunct by name facet build from "C" similar to locale::classic()
	one. Now default format in _Init_monetary_formats is the C++ default
	one.

2007-12-20  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* test/unit/fstream_test.cpp: test for seek, inspired by Soren
	(stsoe, #1854345); report not confirmed.

2007-12-17  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_limits.c: Add brackets on union initialization for gcc
	starting with version 4.

2007-12-17  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/stl/config/_linux.h: if not explicitly specified another,
	use threads.

2007-12-14  Francois Dumont  <dums@users.sourceforge.net>

	* src/c_locale_win32/c_locale_win32.c: Fix implementation of
	_Locale_mbtowc and _Locale_wctomb functions. Reveal limitation of
	the MultiByteToWideChar function that cannot be used to implement
	more complicated encodings that have a real shift state like the
	JIS one. Add support for UTF7 and UTF8 encodings.

	* test/unit/codecvt_test.cpp: New test case to check support for
	2 encodings, the Windows specific code page 936 and the UTF8 one.
	Those tests are coming from chinese test samples proposed by Victor
	Xie.

2007-12-14  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/stl/_string_base.h, stlport/stl/_string.h, stlport/stl/_string.c:
	experimental string buffer---start of buffer in _M_allocated._M_data now,
	end of buffer either end of local short buffer, or stored in pointer
	within local short buffer; this potentially reduce amount of pointer
	arithmetic; prefer Traits::assign to uninitialized fill, it more
	optimized for POD types, such as chars [experimental too].

2007-12-13  Francois Dumont  <dums@users.sourceforge.net>

	* src/c_locale.h, c_locale_dummy/c_locale_dummy.c,
	c_locale_glibc/c_locale_glibc.c, c_locale_glibc2.c,
	c_locale_win32/c_locale_win32.c: Remove unused _Locale_wctob and
	_Locale_btowc localization API functions.

2007-12-13  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* build/test/unit/gcc.mak, test/unit/...: allow build unit tests
	with libstdc++, without STLport; useful for reference and comparison.

2007-12-12  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* build/Makefiles/gmake/unix/rules-install-so.mak, build/lib/gcc.mak:
	install-headers usable; it use user-defined macro HEADERS_BASE
	[catalog and all files, keeping	directory structure] and HEADERS
	[for single files]; target catalog is INSTALL_HDR_DIR, by default
	it is ${BASE_INSTALL_DIR}/include.

2007-12-07  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/stl/_uninitialized.h: comment unused parameter;

	* stlport/stl/_limits.c: 64-bits systems may has [and really has]
	size of long double 16, not 12; but IEEE 854 still in force, and
	only 10 bytes of long double taken into account. This should fix
	limits<long double> on 64-bits systems. Thanks joebishop
	[aka Denis Cheremisov] for granted access to 64-bit linux.

2007-12-05  Francois Dumont  <dums@users.sourceforge.net>

	* src/c_locale_glibc/c_locale_glibc2.c: Fix a one byte memory overrun
	when passing a very locale name.

	* src/c_locale_win32/c_locale_win32.c: Simplified Win32 localization
	code. Remove useless calls to strcpy. Remove useless call to the
	__Extract_locale_name once in the _Locale_*_create functions as
	name has already been extracted at this moment.

2007-12-05  Francois Dumont  <dums@users.sourceforge.net>

	* src/c_locale_glibc/c_locale_glibc2.c: Removed many checks useless
	as the C functions are called in a well defined and safe context. Also
	remove useless strcpy calls when it is safe to return the internal
	string.

2007-12-04  Francois Dumont  <dums@users.sourceforge.net>

	* Add the _Locale_codecvt localization data structure for 2 purposes:
	- in the win32 implementation it simplify _Locale_ctype data structure.
	- in the glibc implementation it helps making clear that this
	implementation do not support the codecvt facet for the moment.

2007-12-03  Francois Dumont  <dums@users.sourceforge.net>

	* src/fstream_win32io.cpp: Fix management of Ctrl-Z when reading
	text file stream thanks Hector Chu patch.

2007-11-30  Francois Dumont  <dums@users.sourceforge.net>

	* src/acquire_release.h, facets_byname.cpp, locale.cpp,
	locale_impl.cpp, locale_impl.h, messages.cpp, time_facets.cpp:
	Localization code modification, now locale instances will adopt
	a normalized name rather than the name used to create them. This
	way identical locale instances will compare equals even if created
	from name aliases like 'french' and 'fr_FR'. Moreover default
	locale built from an empty string won't have an empty name.

	* test/unit/locale_test.cpp, ctype_facets_test.cpp,
	money_facets_test.cpp, num_facets_test.cpp, time_facets_test.cpp:
	Enhance localization tests, add test of default locale when possible.
	Add test for the locale instances built from a mix of the
	locale::classic instance and a named category.
	
2007-11-27  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_ios_base.h, _ios.c: Add qualification on the cached
	ctype and numpunct facets, we can keep them as const pointers.
	Moreover, prefer to use the use_facet function rather than _M_get_facet
	to access those instances to avoid direct reference to the facet::id
	static instance.

	* Some evolution in the localization code:
	- Hide _Locale_name_hint in internal implementation, facets *_byname
	constructor are now respecting the C++ Standard signature.
	- numpunct facet: Remove unused _M_grouping field, move hard coded
	values of the "C" facet in the sources. Only the numpunct_byname<wchar_t>
	keeps internal wstring representation of true and false names.
	- time facets: Use the non template time_base class for initialization
	of the _Time_Info instance, it is more coherent with other facets
	implementations. Many functions like __acquire_time and __release_time
	are now hidden in the library.

2007-11-26  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/char_traits.h, _stdexcept_base.c: Borland patch
	from Eric Sanford, add a missing header and change
	__Named_exception implementation because of a Borland compiler
	bug.

	* src/c_locale_win32/c_locale_win32.c: Add LANG_INVARIANT
	definition when SDK are missing it.

2007-11-24  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_monetary.h: Add missing explicit keyword on
	money_get and money_put constructors.

	* stlport/stl/_numpunct.h: Removed friend relation between
	numpunct and num_get, looks like it is useless with current
	implementation.

	* stlport/stl/config/stl_mycomp.h, features.h, _watcom.h, _sunprocc.h,
	_mwerks.h, _msvc.h, _ibm.h, _dec_vms.h, _dec.h, _as400.h: Removed
	_STLP_NO_FRIEND_TEMPLATES, _STLP_FRIEND_TEMPLATES macros unused
	since fix above regarding numpunct/num_get friend relation.

	* test/unit/collate_facets_test.cpp: Fix "C" facet by name test,
	Standard do not define any special behavior for the "C" transform
	method so transformed result should simply follow the normal transform
	behavior.

	* src/locale_impl.cpp: Removed useless holes in locale facets table.
	Now the table contains 26 non null entries rather than 38 entries with
	some begin null.

2007-11-23  Francois Dumont  <dums@users.sourceforge.net>

	* src/locale.cpp, locale_impl.h, locale_impl.cpp: Some small
	modifications to limit necessary friend class _Locale_impl
	declaration in several facet classes.  Moreover, num_get, num_put,
	money_get, money_put facets that do not depend on any name are
	not allocated anymore in the functions responsible for generating
	facets for a given category.

	* stlport/stl/_codecvt.h, _collate.h, _ctype.h, _messages_facets.h,
	_monetary.h, _num_get.h, _num_put.h, _numpunct.h, _time_facets.h:
	Removed many useless friend class _Locale_impl declarations.

2007-11-23  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* build/lib/configure: make configuration suitable for installation
	procedure and package building.

2007-11-22  Francois Dumont  <dums@users.sourceforge.net>

	* src/c_locale_dummy/c_locale_dummy.c: Now implements the "C" locale
	to respect the C++ Standard.

	* test/unit/collate_facets_test.cpp: Fix test checking that collate
	facet build from the "C" name behave like the one coming from the
	locale::classic() locale.

	* src/c_locale.h, locale.cpp, c_locale_glibc/c_locale_glibc.c,
	c_locale_glic2.c, c_locale_win32/c_locale_win32.c, locale.cpp: Removed
	_Locale_compose_name from the STLport internal localization API.
	Composition of locale names will now be the responsibility of STLport
	itself and not of the platform localization implementations one.

2007-11-20  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_iterator_base.h, _ptrs_specialize.h: Avoid inclusion
	of _ptrs_specialize.h while still in stlport namespace scope thanks
	Christof Meerwald report.

2007-11-17  Francois Dumont  <dums@users.sourceforge.net>

	* _STLP_STATIC_MEMBER_DECLSPEC workaround removed. Thanks to
	_GetFacetId other workaround it should now be useless. There
	are still some tests to confirm especially testing the
	gcc visibility feature.

2007-11-16  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_fstream.c: Fix implementation of
	basic_filebuf<_CharT, _Traits>::_M_underflow_aux() to take
	into consideration already read external buffer even if
	reading from file failed. Thanks Hector Chu report and patch.

	* test/unit/codecvt_test.cpp: New test for problem above,
	CodecvtTest::imbue_while_reading thanks Hector Chu.

	* test/unit/fstream_test.cpp: Remove useless
	FstreamTest::special_encoding test replaced by new test in
	CodecvtTest. Fix FstreamTest::custom_facet test that is now using
	a specialization of codecvt rather than a class inheriting from
	codecvt.

2007-11-14  Francois Dumont  <dums@users.sourceforge.net>

	* src/c_locale_win32/c_locale_win32.c: Fix to support creation
	of locale facet from the 'C' name.

	* test/unit/collate_facets_test.cpp, locale_test.cpp,
	money_facets_test.cpp, num_facets_test.cpp, time_facets_test.cpp:
	Add test to check build from names "" or "C", on platform without
	real localization support, "" should result in "C". Also check
	for some facets that the one build from "C" name is similar to
	the one taken from locale::classic() locale.

2007-11-12  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* test/unit/fstream_test.cpp: testcase for bug #1830513;
	__read_unbuffered wrongly process valid streamsize 0;
	[was derived from original report of Anton Samokhvalov and Oleg Obolenskiy]

	* stlport/stl/_istream.c: fix for bug #1830513 above;
	check boundary condition in the beginning of loop.

2007-11-09  Francois Dumont  <dums@users.sourceforge.net>

	* build/Makefiles/gmake: Add missing cygming folder comming
	from task branch, required for Cygwin/MinGW builds.

	* stlport/stl/_bvector.h, _deque.h, _hashtable.h, _list.h,
	_rope.h, _slist.h, _string_base.h, _tree.h, _vector.h: Removed
	useless instantiation of _Alloc_traits to define nested
	allocator_type in several containers. STLport users will simply
	have to correctly instantiate containers when they specify
	the allocator to use.

2007-10-30  Francois Dumont  <dums@users.sourceforge.net>

	* etc/autoexp.dat: New file containing description of STLport
	data structures in the Visual Studio C++ debugger language.

2007-10-21  Francois Dumont  <dums@users.sourceforge.net>

	* Merged with STLPORT_5_1 up to revision 3229.

2007-10-20  Francois Dumont  <dums@users.sourceforge.net>

	* _STLP_NO_MBSTATE_T removed, STLport cannot really live without
	any mbstate_t definition. Moreover we were already defining our own
	definition when _STLP_NO_MBSTATE_T is defined, we now simply generalize
	this behavior. So definition of _STLP_NO_MBSTATE_T has been replaced
	with _STLP_NO_NATIVE_MBSTATE_T.

2007-10-14  Francois Dumont  <dums@users.sourceforge.net>

	* src/bitset.cpp: Add const qualifier on static arrays used in
	bitset implementation. Thanks a Andrey Semachev remark.

2007-10-12  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_hash_map.h, _hash_set.h, _unordered_set.h,
	_unordered_map.h: Because of the hashtable data model, number
	of bucket should not be to high compare to the number of
	elements. For this reason, default constructor of all hash
	containers is now passing 0 as the initial size rather than 100.

	* stlport/stl/_hashtable.h, _hashtable.c: For the same reason exposed
	above, the hashtable number of buckets is decrease when removing
	elements from the container. All is done in the newly introduce
	_M_reduce method that should be called each time elements are
	removed.

	* test/unit/unordered_test.cpp: Two new test in UnorderedTest test
	fixture, benchmark1 and benchmark2. Those tests are rather, as indicated
	by their name, bench to compare performance of hashed containers.
	It can be used with the -m unit test console option that display
	timing of tests. For instance, thanks to the reduction policy exposed
	above, benchmark1 is running 20 times faster while benchmark2 is
	almost identical.

	* stlport/stl/_hashtable.h: Container might now be rehash when user
	modified max load factor in order to respect
	load_factor() <= max_load_factor() rule. hashtable::resize fixed,
	according SGI doc it should behave as Standard unordered_*::rehash that
	is to say it gives number of buckets and not number of elements.

	* stlport/stl/_hashtable.c: Fix Code warrior workaround that was only
	showing a limited number of prime numbers.

2007-10-10  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* build/Makefiles: merge r2883:3223 from tasks/STLport-Makefiles;
	revision of build system, from 'complement' project, adopted for
	STLport requirements; support build of static lib and build unit
	tests with this lib; gmake-specific files moved into gmake catalog;
	top.mak (gmake-specific) moved into gmake catalog; add include
	option for boost's headers, if STLP_BUILD_BOOST_PATH defined;
	config.mak has make-dependent features, so it moved to gmake or
	nmake catalog; settings from gmake/windows/sysid.mak should
	be present in common gmake/sysid.mak file; gcc 3.3 has bad or
	absent libsupc++, at least in debian; don't use -lstlport, when
	build it; removed windows platform support that used to represent
	the environment given by the cmd shell with MinGW additional commands
	i.e. MinGW require not only gmake, but other POSIX file utils too;
	install target by default install to /usr/local/lib on POSIX-like
	platforms; added distclean target; added install-headers target;

	* build/test/unit: top.mak (gmake-specific) moved into gmake catalog;

	* build/test/unit/gcc.mak: see just build stlport libs, not
	installation path [default install path is /usr/local/lib on POSIX-like
	platforms].

2007-10-07  Francois Dumont  <dums@users.sourceforge.net>

	* 5.1.4 released, trunk merged with STLPORT_5_1 branch up to
	revision 3221.

2007-10-04  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_codecvt.h, _fstream.c, src/codecvt.cpp: Fix non
	Standard conformity in codecvt::length and associated
	codecvt::do_length methods. Those methods was taking const reference
	to mbstate_t but the Standard specify that it must be a simple
	reference.

	* src/facets_byname.cpp: Add a real implementation of
	codecvt<wchar_t, char, mbstate_t>::do_length based on the
	_Locale_mbtowc locale API function.

	* test/unit/codecvt_test.cpp: Add a test for codecvt::length.

	* test/unit/fstream_test.cpp: Add a test that indirectly test
	codecvt facet and integration of it in the basic_filebuf
	implementation.
	
2007-10-02  Francois Dumont  <dums@users.sourceforge.net>

	* test/unit/deque_test.cpp, hash_test.cpp, list_test.cpp, map_test.cpp,
	set_test.cpp, slist_test.cpp, unordered_test.cpp, vector_test.cpp:
	Allow test on incomplete types even when pointer specialization is
	activated as long as partial template specialization is supported.

	* stlport/stl/_fstream.c, src/facets_byname.cpp,
	test/unit/codecvt_test.cpp:
	Fixed codecvt_byname<wchar_t, char, mbstate_t>::do_in and do_out
	methods. They now both correctly take into account to_end pointer.
	Thanks Vistor (finalvistory) report on sourceforge Developer forum.

2007-09-28  Francois Dumont  <dums@users.sourceforge.net>

	* src/num_put_float.cpp: Modification in _Stl_ecvtR and _Stl_fcvtR
	long double overloads, if value can be converted to double without
	precision loss we can rely on the double overload. Moreover _Stl_fcvtR
	has been fixed.

	* stlport/stl/pointer/_tools.h: Use class partial specialization to
	enhance usability of the container pointer specialization feature.
	Thanks to it, container can be instanciated with incomplete types.
	Modification based on bug report 1799048 from Andrey Semashev.

	* trunk merged with STLPORT_5_1 up to revision 3211.

2007-09-27  Francois Dumont  <dums@users.sourceforge.net>

	* src: Modification in the internal localization API.
	_Locale_errno removed, now an int pointer is passed to all
	_Locale_*_create and all _Locale_extract_*_name functions so
	that they can return an error code. This method avoid multithreaded
	issues.

	* src/locale_catalog.cpp: Modification in __acquire_category
	function. If create_obj return null, the null pointer is not
	stored anymore in cached as creation failure reason might be
	temporary like in case of memory starvation.

	* stlport/stl/_locale.h: Error reporting enhancement. In combine
	method we use a typeid call to report the unknown facet type. In other
	situation we report both the facet category being built and the name
	used to build it.

	* test/unit/locale_test.cpp, collate_facets_test.cpp,
	messages_facet_test.cpp, money_facets_test.cpp, num_facets_test.cpp,
	time_facets_test.cpp: Add checks for construction of facets from
	very long facet name.

2007-09-27  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* test/unit/find_test.cpp: array initialization missed.

2007-09-19  Francois Dumont  <dums@users.sourceforge.net>

	* trunk merged with STLPORT_5_1 up to revision 3193.

2007-09-11  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/stl/_algobase.c: keep check for symmetry in
	lexicographical compare---algorithm assume symmetry comparator;
	remove check for symmetrical comparator in search and find,
	due to double checks not better then single (the same check
	done in algorithm, and algorithm not require symmetrical
	comparator);

	* stlport/stl/debug/_hashtable.h: idem;

	* stlport/stl/debug/_tree.h: idem;

	* stlport/stl/debug/_debug.h: __symetrical_strict_weak_call
	and __symetrical_equal_call not used anyware.

2007-09-10  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_algo.c: Add check for symetrical functor
	in max_element and min_element algo.

	* stlport/stl/_algobase.c: Restore symetrical functor checks.
	Sometimes simply because the algo was already considering the
	functor as symetrical as in lexicographical_compare. Sometimes
	using specific helpers functions (see below).

	* stlport/stl/debug/_debug.h: Add __symetrical_strict_weak_call
	and __symetrical_equal_call helper functions to check for
	symetric functors only when invocating the symetrical functor
	is valid that is to say when both parameters are of the same
	type.

	* stlport/stl/debug/_hashtable.h: Make use of 
	__symetrical_equal_call to check that equivalence functor used
	in hashtable instanciation is correctly implemented.

	* stlport/stl/debug/_tree.h: Make use of
	__symetrical_strict_weak_call to check that functor predicate
	use in tree instanciation is correctly implemented.

2007-09-10  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/stl/_string.c: fix bugs in string rfind, find_last_of,
	find_last_not_of [bug #1788700, position 0 was wrongly excluded];

	* test/unit/string_test.cpp: test for problems above. Thanks
	to Bred Bored for bug report and initial test.

2007-09-09  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* test/unit/rope_test.cpp, stlport/stl/_rope.h: test for
	bug #1788615 [bug during copy of rope's iterator] and fix;
	suggested by John Maddock.

2007-09-07  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* test/unit/alg_test.cpp: add #include <string>, required for
	comparator symmetry test;

	* test/unit/string_test.cpp: test for bug in find_last_of,
	bug #1788700, submitted by Bred Bored.

2007-09-05  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/stl/_algobase.c: symmetry not required for
	comparator in case of two different sequences comparison or
	searching; symmetrical comparator just may not exist;

	* stlport/stl/debug/_hashtable.h: symmetry not required for
	comparator in hashtable in case of containers extention;
	symmetrical comparator just may not exist;

	* test/unit/alg_test.cpp: test for problem above, thanks
	Oleg Obolenskiy.

2007-09-03  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* src/dll_main.cpp, stlport/stl/debug/_debug.c: removed
	macro _STLP_STATIC_TEMPLATE_DATA, __PUT_STATIC_DATA_MEMBERS_HERE,
	_STLP_NO_STATIC_TEMPLATE_DATA; only few old compilers
	require this and are good enough to work with STL;

	* test/eh/test_rope.cpp, stlport/stl/_num_get.c: idem;

	* stlport/stl/_time_facets.c, stlport/stl/_codecvt.h: idem;

	* stlport/stl/_monetary.c, stlport/stl/_num_put.c: idem;

	* stlport/stl/_rope.c, stlport/stl/_rope.h: idem;

	* stlport/stl/config/user_config.h: idem;

	* stlport/stl/config/stl_mycomp.h: idem;

	* stlport/stl/config/_gcc.h: idem;

	* stlport/stl/_threads.c: idem.

2007-09-02  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_algobase.c: Small optimization, add an
	intermediate __eq function to detect when both iterator types
	are identicals. Thanks Jim Xochellis idear.

	* stlport/stl/_threads.h, _threads.c: Fully apply modification
	of _S_nsec_sleep implementation for Win32 platforms contained
	in bug report 1720635 from Taras Overchuck. It is an optimization
	of the spin lock mutex specifically targetting the multiprocessor
	platforms.

2007-08-29  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_algobase.c, _string.c: Some modification in
	__find_first_of_aux2 implementation to reduce number of iterator
	dereferencements.

2007-08-26  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/config/user_config.h, host.h: Moved administrative
	_STLP_USE_UNIX_IO, _STLP_USE_STDIO_IO, _STLP_USE_WIN32_IO
	macros to host.h.

	* Merged with STLPORT_5_1 branch up to revision 3151.

2007-08-23  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/stl/debug/_vector.h: only random access iterators
	allow operations 'less-then' and distance; for bidirectional
	iterators removed usage of 'less-then', and for others
	[like forward and input iterators] removed as usage of 'less-then'
	as distance; thanks Oleg Obolenskiy for bug report;

	* test/unit/ioiter_test.cpp: test for problem above.

2007-08-18  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/config/host.h: Removed _STLP_NO_CYGWIN macro
	unused since we are using include_next.

2007-08-16  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/config/_gcc.h: Avoid conflict in link model, gcc
	visibility for many platforms or dllimport/dllexport for
	Cygwin/MinGW.

	* build/Makefiles/gmake/gcc.mak: Looks like Cygwin/MinGW won't
	support visibility for the moment.

2007-08-15  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/stl/char_traits.h, src/fstream_unistd.cpp: use 64-bits
	file operations calls, if available on system; streamoff is
	always off64_t, if _LARGEFILE_SOURCE or _LARGEFILE64_SOURCE
	defined, i.e. if 64-bits file operations present;

	* src/fstream_stdio.cpp, src/stdio_streambuf.cpp: ditto;

	* stlport/stl/config/user_config.h: add _STLP_USE_DEFAULT_FILE_OFFSET,
	force use off_t for streamoff and appropriate file operations calls;
	note, that this may lead to problems, for example if _FILE_OFFSET_BITS
	defined as 64 somewhere in user's code;

	* test/unit/fstream_test.cpp: test 64 bits type for filesize and
	file offset.

2007-08-13  Francois Dumont  <dums@users.sourceforge.net>

	* test/unit/memory_test.cpp: MSVC6 do not support this test,
	ignored.

	* stlport/stl/_string.h: Internal _String_reserve_t moved to
	private namespace.

	* stlport/stl/_algobase.c, _string.c, char_traits.h: Adoption of
	the find_first_of trick below in string::find_first_of, find_last_of,
	find_first_not_of and find_last_not_of.

2007-08-12  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_algo.h, _algobase.h, _algobase.c: find_first_of
	algorithm enhancement based on the Jim Xochellis analysis that you
	can find here:
	http://www.codeproject.com/vcpp/stl/find_first_of.asp.

	* test/unit/alg_test.cpp: Add several tests to challenge the above
	enhancement.

2007-08-08  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/config/feature.h: Removed useless workaround, there
	is no more platform using Win32 threading API and missing bool
	type.

	* src/num_put_float.cpp, num_get_float.cpp: Fixes for DMC, DMC has
	real long double so it now uses ieee854_long_double Glibc type. DMC
	do not use anymore the sprintf workaround to write floating point
	numbers.

	* stlport/stl/_auto_ptr.h, test/unit/memory_test.cpp: Fix auto_ptr
	implementation, removed a useless const_cast and change a reinterpret_cast
	in static_cast. Add support for instanciation with the volatile qualifier.
	Thanks Ulrich Eckhardt report.

2007-08-03  Francois Dumont  <dums@users.sourceforge.net>

	* src/c_locale_win32/c_locale_win32.c: Fix some static buffer size
	to always have a free place for the trailing zero.

	* test/unit/locale_test.cpp: Add a test when passing a very long name
	as the LC_CTYPE facet name to the locale constructor.

	* src/system_api.h, system_api.c, build/lib/Makefile.inc,
	src/num_put_float.cpp: Removed system_api workaround to access
	isinfinite, isnan, isinf C functions used with gcc under Hp unix.
	Now __format_nan_or_inf has an implementation entirely based on
	numeric_limits values that avoids access to platform functions.

2007-07-30  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_facets_fwd.h, _num_put.h, _num_get.h, _monetary.h,
	_time_facets.h, _locale.h: Fix _GetFacetId workaround for compilers
	like gcc since 3.4 that consider only the context at point on template
	definition and not at the point of instantiation when resolving
	_GetFacetId calls in has_facet or use_facets template functions.

2007-07-20  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_mbstate_t.h: We have to define mbstate_t ourself
	on platforms having mbstate_t in cwchar when we want to only use
	C headers.

2007-07-22  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* src/fstream_unistd.cpp: force use lseek64/mmap64 for HP-UX,
	if _LARGEFILE64_SOURCE defined; thanks for Michael Klein.

2007-07-20  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/config/_gcc.h, stl_mycomp.h: Removed unused
	_STLP_WEAK_ATTRIBUTE macro.

	* stlport/stl/config/_msvc.h, _intel.h, _gcc.h, features.h: Some
	cleanup concerning _STLP_STATIC_TEMPLATE_DATA macro.

2007-07-18  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_num_put.h: Removed __string_to_float declarations only
	used in a num_get context.

	* src/num_get_float.cpp:
	- Import Glibc ieee854_long_double union for compilers having a real
	long double type but no runtime support to correctly generate it. This
	union is used by gcc under Cygwin and MinGW and by Borland compiler.
	- _Stl_string_to_long_double removed, it was so similar to
	_Stl_string_to_double that everything is done with this function now.
	- Removed check on exponent value while parsing it from buffer, check is
	only done when combining this value with the digits read.

	* src/num_get_float.cpp:
	- Generalize synchronization code arround the ecvt/fcvt functions when
	the platform do not grant reentrant functions.
	- In __format_float_scientific, removed useless rz temporary variable, removed
	limitation in the number of appended trailing zeros.
	- In __format_float_fixed, removed limitation of number of trailing zeros
	added after decimal point, it is only limited by precision.
	- __format_float: Code to detect infinity or NaN has been moved before call
	to platform specific ecvt/fcvt functions. Thanks to this modification, this
	function is not template anymore.
	- Add _Stl_ecvt/_Stl_fcvt emulation functions when platform do not grant
	the necessary ecvt/fcvt functions for long double. Emulation is based on
	sprintf function using 'L' modifier.
	- In __write_floatT function, fix size of static buffer used by _Stl_ecvt/fcvt
	functions. Fix number of digits in calls to _Stl_fcvt/ecvt in both modes,
	fixed or scientific.

	* test/unit/num_put_get_test.cpp: Add some tests, somes with a really high
	precision that show problem with static buffer size.

2007-07-17  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/stl/_algo.c, stlport/stl/_algobase.c: search, the __tmp and
	__p1 iterators always point at the same position, hence one of them
	is redundant;

	* stlport/stl/_algobase.c: in the main-loop of search there are two
	successive while-loops doing exactly the same thing; one of them is
	redundant and, since it is inside the main-loop, it slows down
	the algorithm significantly;

	* stlport/stl/_algo.c, stlport/stl/_algobase.c: in the search the main-loop 
	condition "while (__first1 != __last1)" is always true and consequently
	redundant; this is because the initial adn in-loop conditions virtually
	act as guards and will never let the main-loop condition to fail; since
	this condition is evaluated in every main-loop iteration, its removal
	will also improve the performance of the algorithm; thanks for
	Jim Xochellis for this suggestions.

2007-07-15  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* src/strstream.cpp: "get end" pointer should be initialized
	to the "begin of get + N" in obsolete strstream; bug #1536503,
	thanks for Jean-Eric Cuendet;

	* test/unit/strstream_buffer_read_test.cpp, build/test/unit/Makefile.inc:
	test for bug above; [submitted by Jean-Eric Cuendet].

2007-07-05  Francois Dumont  <dums@users.sourceforge.net>

	* build/Makefiles/nmake/vc8.mak: Removed _CRT_SECURE_NO_DEPRECATE
	when building STLport. Not secured version of functions _ecvt and
	_fcvt functions used for floating point numbers output are not
	reentrant.

2007-07-04  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* src/num_get_float.cpp: reorder code, one condition go away.

2007-07-03  Francois Dumont  <dums@users.sourceforge.net>

	* src/num_put_float.cpp: _Stl_ecvtR, _Stl_fcvtR, _Stl_qecvtR,
	_Stl_qfcvtR functions, pass buffer size as a parameter when the
	platform functions need it rather than duplicating the size
	definition. This modification has been applied to the DECC platforms
	and when the GLibC is in use.
	Removed useless islong __format_float_scientific parameter. Removed
	useless x __format_float_fixed parameter, islong parameter
	replaced with direct specification of the maxfsig value.
	In __format_float function, first attempt in detection of NaN or
	infinity is done thanks to the std::numeric_limits and compiler
	support, _Stl_is_nan_or_inf do not correctly handled long double
	values. long double values larger than max double values were always
	displayed as Inf.

	* src/num_get_float.cpp: Removed useless null buffer checks in
	_Stl_atod functions, we know how this function is called. Replaced
	some hard coded constant with numeric_limits values. Add check that
	there is less than 64 digits before hiding hidden bits in vv.i64, for
	long double it was generating wrong long double value.

	* test/unit/num_put_get_test.cpp: Add numerous tests to check both
	long double input and output.

2007-06-29  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/memory: more forward declarations; fix typo;

	* stlport/functional: more tricks to compile with boost
	and tr1;

	* test/unit/boost_check.cpp: problems trace; set 1 in
	appropriate places to check presence of problem, but only
	use one case at a time.

2007-06-28  Francois Dumont  <dums@users.sourceforge.net>

	* src/locale.cpp, locale_impl.h, stlport/stl/_locale.h,
	config/features.h: Runtime check system do not fully use the
	MSVC6 workaround anymore, it only use the locale workaround,
	not the basic_string one.

	* src/string.cpp: Fix wrong explicit instanciation.

	* test/unit/cppunit/cppunit_mini.h, file_reporter.h: Fix 
	computation of test failure when both CPPUNIT_CHECK and
	CPPUNIT_ASSERT are used.

2007-06-28  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/stl/boost_type_traits.h: reread boost/config.h
	to force usage of stlport in boost and force read essential
	macros from boost/config/suffix.hpp; this is because boost
	included within stlport from one side, and stlport included
	within boost from another side; this make sense with
	_STLP_USE_BOOST_SUPPORT defined in user_config.h;
	checked for boost 1.34;

	* test/unit/boost_check.cpp, build/test/unit/Makefile.inc:
	test for problem above; this simulate problem when boost's
	header was included before any stlport's one;

	* stlport/stl/config/features.h: remove definition of
	BOOST_STDLIB_CONFIG, due to it unconditionally defined
	in boost.

	* stlport/memory: forward declarations for boost required,
	by the same reasons as described above.

2007-06-24  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/stl/_function.h, stlport/functional: fix import
	of boost::shared_ptr---moved from _function.h to functional;
	import mem_fn, bind, bad_function_call, function, swap from
	boost to std::tr1.

2007-06-23  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_string.h, _string_workaround.h: Some fix for gcc
	that is now expose to the VC6 workaround because of the runtime
	check mechanism under MinGW.

2007-06-21  Francois Dumont  <dums@users.sourceforge.net>

	* test/unit/cstring_test.cpp, limits_test.cpp: Small modif to avoid
	MSVC compiler warning in release build.

	* stlport/stl/_cwchar.h: Replace a _STLP_MSVC check with a _STLP_MSVC_LIB
	check as WCHAR_MIN and WCHAR_MAX macros definition depends on library
	and not on compiler.

2007-06-20  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/memory: import shared_ptr from boost to std::tr1 namespace,
	if no _STLP_NO_EXTENSIONS and present _STLP_USE_BOOST_SUPPORT;
	see ISO/IEC DTR 19768,
	http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf

	* test/unit/shared_ptr_test.cpp: test for shared_ptr.

2007-06-19  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/debug/_debug.h, _debug.c: Replace __in_range with
	stlp_in_range, __in_range is a macro in the Windows Vista PSDK.

	* src/locale.cpp, stlport_prefix.h, warning_disable.h,
	stlport/stl/_locale.h, _string.h, config/features.h: Fix some
	regression introduce with the improvment of the runtime compatibility
	check mecanism.

	* src/c_locale_glibc/c_locale_glibc2.c: Fix implementation of
	_Locale_strcmp and _Locale_strwcmp functions.

	* stlport/stl/_limits.c: Change technique used to generate NaN or
	infinity floating point numbers. No more reinterpret_cast of a buffer,
	we now use an union based technique. gcc prefer this cleaner method
	especially in release mode.

	* test/unit/limits_test.cpp: Small test modification as gcc was still
	performing some weird optimization in release mode resulting in
	unexpected behavior.

2007-06-19  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/stl/_function.h: import reference_wrapper from boost to
	std::tr1 namespace, if no _STLP_NO_EXTENSIONS and present
	_STLP_USE_BOOST_SUPPORT; see ISO/IEC DTR 19768,
	http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf

	* test/unit/reference_wrapper_test.cpp: test for reference_wrapper.

2007-06-15  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* build/test/unit/Makefile.inc: macro_checks.cpp instead of cwchar.cpp.

2007-06-14  Francois Dumont  <dums@users.sourceforge.net>

	* src/dll_main.cpp, locale.cpp, locale_impl.h, locale_impl.cpp,
	stlport/stl/_locale.h, _rope.h, config/_windows.h, features.h:
	Enhance the runtime compatibility mecanism used to detect build
	inconsistency under Windows. We now use the locale class with the
	VC6 workaround coming with it to force a call to the compatibility
	check function. Inconsistency detection is activated if _DEBUG
	or _STLP_DEBUG is defined. If an inconsistency is detected it is
	reported by the linker thanks to an unresolved symbol
	building_for_up_to_windows95_but_library_built_for_at_least_windows98
	or
	building_for_at_least_windows98_but_library_built_for_up_to_windows95
	that are self describing.

	* test/unit/cwchar.cpp: Renamed in macro_checks.cpp, add many tests for
	all C Standard macros like CHAR_MIN, CHAR_MAX, INT_MIN, INT_MAX...

	* stlport/stl/_cwchar.h: Add MSVC compilers before Visual Studio 2005
	as not defining WCHAR_MAX correctly.

2007-06-11  Francois Dumont  <dums@users.sourceforge.net>

	* src/lock_free_list.h: Fix check of _WIN32_WINNT rather than _WIN32_WINDOWS.

	* stlport/stl/_threads.c: In the Win32 implementation, add a call to
	the SwitchToThread function to potentially avoid a costly call to
	Sleep(1) that can take more time than expected. If SwitchToThread fail
	we call Sleep(1) again. Based on Taras Overchuk bug report 1720635.

2007-06-11  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* src/fstream.cpp: integration file; code clean, three implementations
	sublimated, unix-emulation approach removed; this is reorganization
	changeset, functionality was not changed;
	
	* src/fstream_win32io.cpp: win32io-based implementation of _Filebuf_base,
	i.e. based on Windows calls CreateFile/CloseHandle/ReadFile/WriteFile +
	CreateFileMapping, MapViewOfFile;

	* src/fstream_unistd.cpp: unistdio-based implementation of _Filebuf_base,
	based on unistd open/close/read/write + mmap;

	* src/fstream_stdio.cpp: stdio-based implementation of _Filebuf_base,
	based on stdio fopen/flose/fread/fwrite;

	* stlport/stl/_fstream.h: detect of _Filebuf_base implementation moved
	into stlport/stl/config files;

	* stlport/stl/config/*.h: iostreams underline technique depends upon
	OE or user's preferences;

	* stlport/stl/config/features.h: some system-specific macro moved to
	system- or compiler-specific files;

	* stlport/stl/_rope.h: rewritten suspicion code, functionality not changed.

2007-06-08  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_complex.h: Clean unused _STLP_NO_COMPLEX_SPECIALIZATIONS
	macro and code coming with it.

	* build/lib/configure, configure.bat: Removed --windows95 option, it is
	useless now that STLport includes windows.h when building the libraries.

	* build/Makefiles/gmake/bcc.mak, dmc.mak, gcc.mak, nmake/vc-common.mak:
	Removed references to Windows 95 build, if STLport users want to target
	a specific Windows OS they will only have to use --extra-cxxflags to
	give WINVER, _WIN32_WINDOWS or _WIN32_WINNT values.

2007-06-05  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/config/features.h: Removed unused _STLP_LDOUBLE_* macros giving
	real long double size.

	* stlport/stl/_limits.h, _limits.c: Major code upgrade, now computation
	of infinity and NaN is done thanks to some code extracted from the boost
	library (www.boost.org). This code is more portable as it adapts to compiler
	representation of float, double and long double and do not require many
	compiler macro checks. Additionaly STLport numeric_limits now handle real
	denorm_min values.

	* test/unit/limit_test.cpp: Add many test on dernomalized float and
	some other values of numeric_limits.

	* stlport/stl/config/_cray.h, _gcc.h, _msvc.h, stl_mycomp.h: Removed
	_STLP_NO_IEC559_SUPPORT macro, meaning was not clear and impact was
	localized to the _limits.h file so use of a global macro was rather
	useless.

2007-05-29  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_num_get_.c: Small refactoring, all num_get::do_get for
	float, double and long double are now calling the same __do_get_float
	function. Moreover, when __read_float failed, __sring_to_float is not
	called anymore.

2007-05-28  Francois Dumont  <dums@users.sourceforge.net>

	* test/unit/limits_test.cpp: Add test checking that numeric_limits
	min is really min and max really max.

	* src/allocators.cpp, locales.cpp, stlport/stl/_threads.h,
	config/_windows.h: Fix detection of Windows OS having limited
	implementation of Interlocked[Increment,Decrement] Win32 API
	functions. _STLP_WIN95 macro has been rename _STLP_WIN95_LIKE
	as it do not only signal Windows 95 build context but also former
	OS versions.

2007-05-22  Francois Dumont  <dums@users.sourceforge.net>

	* src/c_locale_win32/c_locale_win32.c: gcc MinGW has no thread
	locale storage intrisinc support so for this compiler, locale
	creation failure will always be reported with runtime_error
	exception.

	* stlport/stl/config/_msvc.h: Configuration fix, check that _STLP_MSVC
	is defined before activating MSVC6 workaround
	(_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND macro).

2007-05-21  Francois Dumont  <dums@users.sourceforge.net>

	* src/c_locale.h, locale.cpp, locale_impl.cpp,
	c_locale_dummy/c_locale_dummy.c, c_locale_win32/c_locale_win32.c,
	c_locale_glic/c_locale_glibc.c, c_locale_glibc2.c: Add a _Locale_errno
	function to the small localization framework in order to report more
	accurate locale creation failure. For the moment there are 3 possible
	failure reasons, no more memory, unsupported locale, no platform support.
	In case of memory starvation, we throw a bad_alloc exception.

2007-05-19  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_valarray.h, _valarray.c: Add many assertion checks to
	track potential undefined behaviors mostly regarding invalid argument
	size.

2007-05-17  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_prolog.h: Hide _debug.h when including C standard
	headers. Some platforms (Win32) include C headers in an 'extern "C"'
	scope that do not accept templates exposed in _debug.h.

2007-05-16  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/config/_auto_link.h, build/Makefiles/gmake/cygming/lib.mak,
	build/Makefiles/nmake/lib/macro.mak: Removed version information
	from static libs name for consistency among all supported compilers/
	platform.

2007-05-15  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_range_errors.c, _stdexcept_base.c: New files
	containing codes that used to be duplicated in dll_main.cpp.

	* src/dll_main.cpp: Include _range_errors.c and _stdexcept_base.c
	when necessary.

	* stlport/stl/_stdexcept_base.h, _stdexcept_base.c: __Names_exception
	do not truncate anymore exception message when longer than internal
	static buffer, a dynamic buffer is allocated through malloc in this
	case. I haven't use __iostring class in this case as it would
	have introduce a cyclic dependency between classes.

2007-05-11  Francois Dumont  <dums@users.sourceforge.net>

	* src/c_locale.h, c_locale_glibc/c_locale_glibc2.c: Some fixes to
	avoid gcc warnings when compiled with -Wall -Wmissing_prototypes.

	* stlport/stl/_num_put.c: Fix a cast to avoid a signed/unsigned
	comparison warning.

	* c_locale_glibc/c_locale_glibc2.c: Use __locale_t __names field
	rather than __locales to access to category names. Thanks to this
	modification we do not need the Glib internal locale_data struct
	definition anymore.

	* test/unit/fstream_test.cpp: Port the FstreamTest::null_stream for
	unixes platforms that use /dev/null, the test is not ignored anymore.

	* src/fstream.cpp: Under Windows, check that the file we are
	opening is a real file before trying to truncate it or move to
	the end. Allow use of special file like "NUL" with C++ fstream.

2007-05-10  Francois Dumont  <dums@users.sourceforge.net>

	* src/stdio_streambuf.cpp: Add checks of error codes returned
	by ftell and fseek functions in stdio_istreambuf::showmanyc
	Windows CE special implementation.

	* test/unit/fstream_test.cpp: Add new test case to check file streams
	built from platform dependent null pipe (NUL under Windows, /dev/null
	under unixes). Ignored for the moment.

2007-05-04  Francois Dumont  <dums@users.sourceforge.net>

	* src/locale.cpp, allocators.cpp, stlport/stl/_threads.h,
	config/_windows.h: Change macro checks to detect Windows 95 platform.
	Windows 95 and NT4 has both WINVER == 0x0400 but only Windows 95 has
	limitation impacting STLport code. Distinction between both platforms
	is done thanks to the _WIN32_WINNT macro only defined for NT4. New
	_STLP_WIN95 macro signals Windows 95 platform, it replaces
	_STLP_WIN32_VERSION. Thanks Jan Echternach patch 1707963.

	* src/c_locale_win32/c_locale_win32.c: Remove all code concerning the
	messages facet, Windows platform do not support it.

	* src/fstream.cpp: Fix use of fseek in _Filebuf_base::_M_seek in
	_STLP_USE_STDIO_IO mode. fseek do not return the position in file
	but a boolean value indicating if call has succeeded or not, and
	call to ftell to get file position. Thanks Marco Jez bug report
	1704843. I have also integrated a number of small fixes to use
	_STLP_USE_STDIO_IO mode under MSVC or GCC MinGW, it shouldn't be
	really nececarry but it costs nothing and help testing this mode.

2007-05-03  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_numpunct.h, _time_facets.h, _ctype.h, _monetary.h,
	_messages_facets.h: Remove friend _Locale_extract_hint function
	declaration replace by the more simple friend class
	_Locale_impl expression.

	* src/locale_impl.cpp: Change implementation of
	_Locale_impl::insert_*_facets methods. Now only facets used internally
	for iostreams implementation are considered as mandatory when
	instanciating a locale from a name. Other facets like collate or
	messages won't generate a runtime_error exception if the platform is
	not able to grant an implementation. This will make STLport more
	flexible in regards of platform possibilities.

	* stlport/stl/_messages_facets.h, src/facets_byname.cpp, messages.cpp:
	Simplification of the messages facet implementation. _Messages class
	has no virtual method anymore, _Messages_Impl has been removed. Now
	messages class implementation is a dummy implementation that do not
	allow access to platform messages, real messages implementation is
	available thanks to the messages_byname class.

	* stlport/stl/_time_facets.h: _Locale_time instance is not kept
	anymore in the facet implementation, it is only used on construction
	to initiliaze _Time_Info struct instance.

2007-05-02  Francois Dumont  <dums@users.sourceforge.net>

	* test/unit/codecvt_test.cpp: Fixed comparison with char_traits::eof
	to use eq_int_type in order to be compatible with platform having
	a default unsigned char built-in type. Thanks Marco Jez report.

2007-04-19  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_valarray.h: Integrate C++ Standard defect 253
	signaling that slice_array, gslice_array, mask_array and
	indirect_array copy constructor cannot be private.

	* test/unit/valarray_test.cpp: Add compilation test to check that
	valarray operator[] taking a slice, gslice, valarray<bool> and
	valarray<size_t> can be called.

2007-04-16  Francois Dumont  <dums@users.sourceforge.net>

	* src/locale.cpp: Simplified locale::_M_throw_runtime_error
	implementation using std::string rather than C string functions.
	Also change exception message generation to make failure reason
	more obvious.

	* src/facets_byname.cpp: As, according Standard, *_byname facet
	constructor should behave as locale constructor taking a name
	STLport now throws a runtime_error instance when building
	a facet from a null name.

	* src/messages.cpp: Now contains all classes implementation involved
	in messages facet support.

	* stlport/stl/_messages_facets.h, src/messages_facets.h, messages.cpp:
	Simplification of the messages facet implementation. Major modification
	is that the C messages facet has now only one representation which is
	the one given by the _Message class. There used to be an other one
	based on _Messages_impl class using __acquire_messages("C").

	* src/messages_facets.h: Internal classes _Messages and _Messages_impl
	are not exported anymore.

	* test/unit/locale_test.cpp: Facet tests has been moved to facet
	category test files.

	* test/unit/collate_facets_test.cpp, ctype_facets_test.cpp,
	messages_facets_test.cpp, money_facets_test.cpp, num_facets_test.cpp,
	time_facets_test.cpp, build/test/unit/Makefile.inc: New test cases for
	each facet category.

	* stlport/stl/config/features.h: Define _STLP_NO_TYPEINFO when _STLP_NO_RTTI
	is defined.

2007-04-15  Francois Dumont  <dums@users.sourceforge.net>

	* src/dll_main.cpp: Removed useless _Atomic_swap_struct export
	that has already been removed from _threads.h and that was generating
	compilation error with MSVC 2005.

2007-04-10  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/pointers/_deque.h, _list.h, _set.h, _slist.h:
	Eric Sanford DMC patch to allow pointer specialization feature.

	* test/unit/map_test.cpp, set_test.cpp, slist_test.cpp,
	unordered_test.cpp: Remove DMC check hiding pointer specialization
	tests.

	* build/Makefiles/gmake/dmc.mak, app/dmc.mak: Additional fixes from
	Eric Sanford.

2007-04-09  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_pair.h, _vector.h, config/_bc.h: Borland patch
	from Eric Sanford, remove move semantic for free compiler.

	* test/unit/mvctor_test.h: Eric Sanford patch to restore 2 tests
	that has been lost in a previous test modification,
	movable_declaration_assoc and movable_declaration_hash.

	* test/unit/mvctor_traits_test.cpp: Add some _STLP_NO_MOVE_SEMANTIC
	checks when using __move_traits.

2007-04-05  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/config/_gcc.h: Removed undef of _STLP_NEW_PLATFORM_SDK,
	under MinGW, MinGW can use a new SDK and not the one coming with
	MinGW.

	* Merged with STLPORT_5_1 branch up to revision 2994.

2007-04-05  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* src/ctype.cpp: move declaration from loop;

	* stlport/stl/debug/_debug.c: stl/_cstdlib.h already included;

	* stlport/stl/_cprolog.h: prolog for C headers can't include
	files with C++ constructions;

	* stlport/*.h: C headers use prolog that don't include C++
	constructions;

	* test/unit/stldbg_include.cpp, build/test/unit/Makefile.inc:
	test for problem with inclusion C++ constructions from
	C header.

2007-04-04  Francois Dumont  <dums@users.sourceforge.net>

	* build/lib/configure.bat: Change advise command to build
	STLport after configuration, it is now 'clean all' rather
	than default build command.

2007-03-22  Francois Dumont  <dums@users.sourceforge.net>

	* src/c_locale_dummy/c_locale_dummy.c: Fixed dummy definition
	for a number of localization functions that are now type safe.

2007-03-20  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_prolog.h, config/features.h, debug/_debug.h:
	Normalize the way STLport debug mode macros are defined. All
	debug macro definition are now coming from _debug.h and not
	anymore partially from features.h. _debug.h is now included from
	_prolog.h after all configuration has been completed.

	* stlport/stl/_alloc.h, _iterator_base.h, _valarray.h: Removed
	_debug.h references now fully integrated in STLport configuration
	phase.

	* stlport/stl/config/_windows.h: Add some Windows macro before
	inclusion of windows.h when building library to limit Windows
	pollution (NOMINMAX, STRICT). Moreover add definition of
	_STLP_OUTERMOST_HEADER_ID macro before windows.h inclusion to
	avoid indirect include of STLport stuff throught C Standard headers
	included in windows.h as at this moment STLport is not yet completely
	configured.

	* stlport/stl/config/_evc.h: Removed unjustified macro definition to
	limit inclusion from windows.h, it is a user decision not an STLport one.

	* build/Makefiles/nmake/vc8.mak: Fix definition of DEFS in this file
	to keep current DEFS value that might exist if configure --extra-cxxflag
	option has been used.

	* src/allocators.cpp: Add _STLP_NEW_PLATFORM_SDK macro check to
	perform necessary const_cast in _STLP_ATOMIC_ADD macro definition.

2007-03-17  Francois Dumont  <dums@users.sourceforge.net>

	* build/Makefiles/gmake/bcc.mak, dmc.mak, gcc.mak, nmake/vc-common.mak:
	Add WINVER definition when building libraries to signal required OS
	compatibility, per default it is Windows 98 and later ones.

	* build/lib/configure, configure.bat: Add new configuration option
	--windows95 to signal that we want Windows 95 compatibility.

	* stlport/stl/_threads.h, config/_windows.h, src/allocators.cpp:
	Move _STLP_ATOMIC_ADD macro definition in source files where it is
	used.

	* stlport/stl/config/_windows.h:
	  - When building the libraries we always include windows.h, when using
	the library we always use own function declaration to avoid windows.h
	inclusion.
	  - InterlockedExchangeAdd is not declared anymore.
	  - InterlockedExchangePointer is only used when detecting 64 bits
	    platform thanks to the _WIN64 macro, otherwise InterlockedExchange
	    is used.

2007-03-15  Francois Dumont  <dums@users.sourceforge.net>

	* build/Makefiles/nmake/vc8.mak: Default MSVC 2005 build is now done
	without safe string functions for performance reasons.

	* stlport/stl/_locale.h, _alloc.h, _rope.h: Moved
	_STLP_CHECK_RUNTIME_COMPATIBILITY_AT_LINK_TIME invocation where problem
	might happen which is in the rope implementation for current use. A future
	use will need to guess where this function has to be invoked.

	* stlport/stl/config/feature.h: Fixed _STLP_USE_NO_IOSTREAMS check to undef
	_STLP_CHECK_RUNTIME_COMPATIBILITY_AT_LINK_TIME macro.

	* stlport/stl/config/_windows.h: For performance reason
	_STLP_CHECK_RUNTIME_COMPATIBILITY_AT_LINK_TIME system is only used in debug
	mode (detected thanks to _DEBUG macro).

2007-03-13  Francois Dumont  <dums@users.sourceforge.net>

	* Merged with STLPORT_5_1 branch revision 2963.

	* src/locale_catalog.cpp: Use C cast for C struct like _Locale_ctype,
	it makes Borland compiler happier.

	* stlport/stl/_string.h: Made inheritance relation between basic_string
	and _String_base class public for DMC.

	* src/dll_main.cpp, stlport/stl/config/features.h,
	stlport/stl/_locale.h, _alloc.h: Add a new mecanism to detect library
	build/use inconsisteny at link time.
	_STLP_CHECK_RUNTIME_COMPATIBILITY_AT_LINK_TIME macro contains a
	function name declared in features.h and defined in dll_main.cpp.
	This function name depends on the build context. If, when using the
	library, this macro contains an other function name because of a
	different configuration context an unresolved symbol will appear at
	link time showing the missing function symbol. Function name should
	be chosen carefully to make problem as explicit as possible. For the
	moment function is called in arbitrary places, in std::use_facet
	function and std::allocator constructor. 

	* stlport/stl/config/_windows.h: Use
	_STLP_CHECK_RUNTIME_COMPATIBILITY_AT_LINK_TIME macro to detect
	inconsistency when building STLport for Windows 95 and using it
	in Windows XP or opposite. Depending on targetted platform,
	_Refcount_Base has a different sizeof which lead to undefined
	behavior at runtime if we do not use this trick.

2007-03-13  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* test/unit/string_test.cpp: add test for trivial compare with plain
	char array;

	* test/unit/exception_test.cpp: add test for what().

2007-03-10  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/config/_windows.h: Major modification, when building
	STLport libs windows.h or afx.h, when _STLP_USE_MFC is defined, is
	systematically included in order to detect the SDK version used to
	the libraries. _windows.h is now the only place is the library where
	windows.h is included.

	* src/dll_main.cpp, fstream.cpp, lock_free_slist.h,
	c_locale_win32/c_locale_win32.c: Removed references to windows.h now
	included from _windows.h.

	* stlport/stl/_istream.c: Add parenthesis on a use_facet call to make
	VC6 happy when building the library.

	* test/unit: Disable tests checking instanciation and use of
	containers with an incomplete type when pointer specialization is
	enable.

	* stlport/stl/config/user_config.h: Add comment about limitation
	of pointer specialization.

	* stlport/stl/_string.h, _string_workaround.h: Now that _STLP_DEBUG
	mode do not use inheritance anymore, use private rather than
	protected members in basic_string implementation. Only exception
	is when using VC6 workaround, this is what _STLP_PRIVATE macro is
	for.

	* src/allocators.cpp, stlport/stl/config/features.h: Removed
	unjustified _STLP_PRIVATE macro.

2007-03-09  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/stl/config/_msvc.h: use MS's safe string functions only
	if _CRT_SECURE_NO_DEPRECATE not defined (see bug #1674974).
	Thanks Bronek Kozicki.

2007-03-08  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* src/num_get_float.cpp: experimental support of correct input
	of long doubles on Linuxes.

	* test/unit/num_put_get_test.cpp: test for correct input of float,
	double and long double, including values out of type range.

	* stlport/stl/config/_linux.h: mark that Alpha, PowerPC,
	32-bit SPARC, 32-bit MIPS, ARM, SH4 has no long double.

2007-03-05  Francois Dumont  <dums@users.sourceforge.net>

	* Synchronization with STLPORT_5_1 branch revision 2945.

2007-02-19  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl: swap workaround review, now when swap implementation
	detect that a STLport class is being swapped it calls the
	_M_swap_workaround member method. We do not use the swap method
	anymore because the way the workaround is implemented would have
	forces us to add a swap method to queue, priority_queue and stack
	containers that do not have a swap method according the C++ Standard.

2007-02-15  Francois Dumont  <dums@users.sourceforge.net>

	* Synchronization with STLPORT_5_1 branch up to revision 2918.

2007-02-13  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/config/features.h, _msvc.h, stl_mycomp.h: Removed
	_STLP_USING_NAMESPACE_BUG macro config. STLport private namespace
	is now always nested in stlport one. Makes namespace management
	easier.

	* stlport/stl/_algobase.h: Restore workaround for compilers
	not supporting template function partial ordering feature, was
	resulting in regression for a number of compilers, VC6, Borlands.
	A template class like _SwapImplemented do not have to be specialized
	to be useful, this class is used to detect types having a swap
	method. Detection is based on the class being flagged as STLport
	class thanks to the __stlport_class inheritance.

	* test/unit/swap_test.cpp: Add macro checks to ignore test for
	compilers we know not being able to support it.

2007-02-12  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/config/features.h: Add necessary macro to work
	with tr1 namespace of the C++ technical report.

	* stlport/stl/_unordered_set.h, _unordered_map.h: Put unordered
	containers in tr1 namespace.

	* test/unit/unordered_test.cpp, mvctor_test.cpp,
	mvctor_declaration_test.cpp: Add necessary using directive
	to access tr1 namespace.

2007-02-12  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* Repository: revert back r2908;

	* test/unit/swap_test.cpp: test that swap( a, b ) has specialization
	a.swap( b ), when required;

	* stlport/stl/_algobase.h: _SwapImplemented useless, because it never
	specialized elsewhere---remove swap specialization here, use instead
	swap specialization from _relops_cont.h, when required.

2007-02-07  Francois Dumont  <dums@users.sourceforge.net>

	* locale_impl.cpp, monetary.cpp, num_get.cpp, num_put.cpp,
	time_facets.cpp: Moved all _GetFacetId implementations in
	the same translation unit as the one where id are initialized.

2007-02-05  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_alloc.h, allocators.cpp: Moved _ALIGN and
	_ALIGN_SHIFT constant definition in source file where it is used
	_MAX_BYTES is used in deque implementation. Moreover those
	constant value now depends on sizeof(void*) to avoid preprocessor
	check like _WIN64.

	* stlport/stl/_vector.h, _vector.c: Moved __type_traits
	instanciations in methods that need it in order to be able to
	access nested types like iterator even if type used to instanciate
	the vector is not yet completely defined.

	* stlport/stl/_deque.h, _deque.c: Removed useless __type_traits
	instanciations. For the same reason than above, __buffer_size
	constant has been replaced by a function computing deque buffer
	size at runtime.

	* stlport/stl/_hashtable.h, _hashtable.c: For the same reason than
	above, hashtable do not contains anymore an instance of the _ExK type
	which is used to extract the key part from a value instance. This
	instance was not returned in any method of the hashtable type. An
	unused constructor taking an instance of this type has been removed.

	* test/unit/vector_test.cpp, deque_test.cpp, list_test.cpp,
	slist_test.cpp, map_test.cpp, set_test.cpp, hash_test.cpp,
	unordered_test.cpp: Add compilation tests to check that the container
	iterator nested type is accessible  even if type used to instanciate
	the container is not yet completely defined.

2007-02-02  Francois Dumont  <dums@users.sourceforge.net>

	* src/c_locale.h: Add type information for the following functions
	of the localization support API:
	  - _Locale_*_create
	  - _Locale_*_destroy
	  - _Locale_*_name
	Also add some variable name to make associated documentation more
	explicit.

	* src/c_locale_win32/c_locale_win32.c,
	src/c_locale_glibc/c_locale_glibc.c, c_locale_glibc2.c: Adapted to
	conform to new localization API functions prototypes. Adaptation
	in glibc before 2.2 has been updated but compilation hasn't been
	completed because of the lack of the glibc required version.

	* src/locale_catalog.cpp: Now wrapper functions are used to
	offer a homogeneous prototype to type safe localization API
	functions.

2007-02-02  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* test/unit/hash_test.cpp: add test for hash_multimap, equivalent
	keys problem on some data sets [this is regression test, suggested
	by tef for 5.0.2, bug report #1606308].

2007-01-29  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/stl/debug/_deque.h: typename required.

	* test/unit/sstream_test.cpp: test for seekp added.

2007-01-28  Francois Dumont  <dums@users.sourceforge.net>

	* build/Makefiles/gmake: Borland patch from Eric Sanford to install
	.tds file for Borland debugger.

	* trunk synchronized with STLPORT_5_1 branch up to revision 2895.

	* stlport/stl/_threads.h: Changed way of including headers for
	_STLP_UITHREADS platform. We now include internal STLport headers
	rather than Standard ones. It was especially important for Sun
	Studio compiler that natively include Standard headers only once.

2007-01-25  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* src/facets_byname.cpp: we search within scope, specified by mask,
	so _Locale_wchar_ctype return can't be beyond of this mask.

	* src/c_locale_glibc/c_locale_glibc2.c: _Locale_wchar_ctype
	implemented.

	* test/unit/locale_test.cpp: test for ctype facet for wchar_t added.

2007-01-23  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_locale.h: Introduction of the _GetFacetId function
	to isolate access to facet id instance in one place. It guaranty that
	the facet id instances initialized in _Stl_loc_assign_ids function
	are the same as the ones used by streams to format output. Many compilers
	have problem with template class static variable and duplicate them
	arround the different shared library depending on STLport.

	* stlport/stl/_monetary.h, _num_get.h, _num_put.h, _time_facets.h:
	Add _GetFacetId overloads for money_get, money_put, num_get, num_put,
	time_get, time_put facets that are exposed as template facets. Other
	facets are fully specialized template classes whose id should be
	correctly handle by compilers like for any static variable in a non
	template class.

	* src/monetary.cpp, num_get.cpp, num_put.cpp, time_facets.cpp: Add
	_GetFacetId implementation.

	* stlport/stl/_collate.h: Use _GetFacetId in __locale_do_operator_call
	implementation, not required but more consistent.

	* stlport/stl/_monetary.c, _num_put.c, _num_get.c, _time_facets.c,
	src/locale_impl.cpp: Removed now useless gcc Cygwin or MinGW and
	Borland workarounds.

	* test/unit/locale_test.cpp: Removed facet_id test case, facet id
	indexes are STLport internal stuff that shouldn't be part of a unit
	test. Wrong facet id management will be shown by other tests. Moreover
	this test was failing for compilers duplicating template class
	static instances.

2007-01-20  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_cmath.h, _cstdlib.h, config/_watcom.h: Small
	evolution for Open Watcom support.

	* Synchronization of trunk from STLPORT_5_1 branch from revision
	2750 to revision 2871.

	* stlport/stl/config/features.h, _gcc.h, _intel.h, _msvc.h, _sgi.h:
	Major exception policy modification, _STLP_NOTHROW default value
	is now throw() when exception support is activated. Compilers not
	supporting is should define this macro as empty. Configuration files
	of compilers already managing this feature have been updated.

2007-01-19  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/stl/config/host.h: define one of __SunOS_5_x macro
	for gcc (during installation?) on Solaris; note, that Solaris
	system may has patch with MATH_F and MATH_L functions.

	* stlport/stl/config/_solaris.h: reminder for __SunOS_5_x
	macro definition for gcc; turn on/off MATH_F/MATH_L functions
	present: see beacon that depends upon Solaris version and patch present,
	as defined by SunPro compilers or in host.h. Thanks to Graham Reed.

	* stlport/stl/config/_sunprocc.h: if use new-c-headers, SunPro
	include iso/stdlib_iso.h instead of stdlib.h; note, that this exclude
	usage of long double, long long, etc. functions, even when ones present
	in OS. Thanks to Graham Reed. Bugreport 1630943.

2007-01-18  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_num_put.c: Add cast to avoid gcc warning.

	* stlport/stl/_pair.h, _construct.h: Add _STLP_NO_MOVE_SEMANTIC
	before inclusion of _move_construct_fwk.h.

	* stlport/stl/_istream.c: Removed useless cast to num_get facet.

	* src/system_api.c: Move macro check to at least include math.h
	in order to avoid an empty translation unit which can generate
	compilation warning.

2007-01-17  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/stl/_cmath.h: move hypot in global namespace for SunSoft;
	suggested by Graham Reed.

2007-01-15  Francois Dumont  <dums@users.sourceforge.net>

	* test/unit/locale_test.cpp: Upgrade Russian currency abbreviation
	'RUR' to 'RUB'. Thanks Tiziano Muller, bug report 1634886.

	* test/unit/cstring_test.cpp: Fix test to avoid some gcc warnings.

	* stlport/stl/config/_gcc.h: Add _STLP_NOTHROW definition for
	this compiler for C++ Standard compliancy. It might also help the
	compiler not to emit false warning about potential use of
	uninitialized variable (-Wall mode).

	* build/lib/Makefile.inc, src/system_api.h, system_api.c: New source
	file used for platform exposing some features only to C compiler. for
	the moment used under Hp Unix for GNU compiler access to platform
	isfinite, isnan and isinf functions.

	* src/num_put_float.cpp: Replace a lot of unofficial Hp Unix specific
	code to access functions isfinite, isinf or isnan. Replaced by
	system_api.h.

	* build/Makefiles/gmake/hp-ux/sys.mak: Looks like install command
	on this platform is rather exotic, use cp instead.

2007-01-14  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/config/_system.h: Add __SUNPRO_C macro check to
	detect Sun Pro C compiler. Thanks Graham Reed bug report 1630916.

	* stlport/stl/_cstdlib.h: Add __SUNPRO_CC macro check before
	defining abs(long) and div(long, long) as Sun pro already
	defined them. Thanks Graham Reed bug report 1630972.

2007-01-07  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl: Add _STLP_NO_MOVE_SEMANTIC macro checks to
	completely hide move semantic framework when not necessary.

2007-01-05  Francois Dumont  <dums@users.sourceforge.net>

	* test/unit/bitset_test.cpp: Check _STLP_NON_TYPE_TMPL_PARAM_BUG
	macro before doing tests that depends on it.

	* stlport/stl/_list.h: Add assertion to signal potential stack
	overflow in recurssive calls to list::insert and list::splice thanks
	Aleksey Sanin idear.

	* build/Makefiles/gmake/lib/gcc.mak: Removed obsolete -C ld option
	on Hp Unix platform.

	* stlport/stl/_mbstate_t.h: Attempt to fix STLport config for compilers
	coming with a native lib defining mbstate_t only for C++ compilers.
	For those compilers native mbstate_t definition won't be used for
	the moment, STLport simply grant a dummy definition in C. Test
	under Hp Unix has shown that it works.

2006-12-29  Francois Dumont  <dums@users.sourceforge.net>

	* src/iostream.cpp, stlport/stdio.h, stl/_cstdio.h: Eric Sanford
	patch to move a Borland workaround from cstdio to stdio.h.

	* stlport/stl/debug: Generalize _STLP_NO_MOVE_SEMANTIC check
	to hide move constructors like already done in non debug
	implementation.

	* stlport/stl/config/_msvc.h: Restore move semantic for MSVC6. AFAIR
	only MSVC .Net 2002 had problem with it.

	* test/unit/strstream_test.cpp: Made the tests for _STLP_LONG_LONG
	a little bit more portable.

2006-12-20  Francois Dumont  <dums@users.sourceforge.net>

	* test/unit/strstream_test.cpp: New test case for sourceforge
	bug report 1615554. Not confirm for the moment.

	* test/unit/math_aux.h, mvctor_test.h, string_test.cpp: Fixes
	to correctly take into account _STLP_USE_NAMESPACES.

2006-12-19  Francois Dumont  <dums@users.sourceforge.net>

	* test/unit/bvector_test.cpp: Fix macro check for namespace
	support.

	* test/unit/num_put_get_test.cpp: disable warning about float
	overflow for MSVC.

2006-12-17  Francois Dumont  <dums@users.sourceforge.net>

	* test/unit: One more cleanup for compilers not supporting the
	namespace feature. This time we avoid namespace specification when
	doing template specialisation of Standard functor like less or
	allocator.

2006-12-15  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/config/_dm.h, test/unit/map_test.cpp: Eric Sanford
	patch for DMC.

2006-12-13  Francois Dumont  <dums@users.sourceforge.net>

	* test/unit/test_main.cpp: Clean up use of namespace feature.

	* test/unit: Clean up use of std namespace or ignore tests if
	necessary.

2006-12-13  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport, src: Orphan code removed [Symantec without maintainance a long time;
	gcc prior 2.95 and 2.96 can't work with current code in any case;
	NetWare unsupported too]

2006-12-13  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/config/feature.h: Fix and generalize the mutable
	workaround for compilers missing this feature. Replace
	_STLP_ASSIGN_MUTABLE with _STLP_MUTABLE macro that is more flexible
	as not limited to assignment.

	* stlport/stl/_istreambuf_iterator.h, _stream_iterator.h, _string_sum.h:
	Use _STLP_MUTABLE rather than manually handle _STLP_NEED_MUTABLE macro.

	* stlport/stl/_sstream.h: Removed useless mutable qualifier for
	basic_stringbuf _M_str member.

	* test/unit/bind_test.cpp: Use STLport mutable workaround.

	* src/message_facets.h, facets_byname.cpp: Limit use of the mutable
	qualified to one member in _Message_Impl class and use _STLP_MUTABLE
	in class implementation.

2006-12-11  Francois Dumont  <dums@users.sourceforge.net>

	* test/unit/mvctor_test.cpp: Split in 2 other translation unit
	mvctor_declaration_test.cpp and mvctor_traits_test.cpp without
	impacting number of test case. It helps DMC to perform a correct
	link.

	* stlport/stl/type_manips.h: Check _STLP_DONT_USE_PRIV_NAMESPACE before
	importing __true_type and __false_type in private namespace.

	* stlport/stl/config/_dec.h, _apcc.h: Removed references to unused
	_STLP_HAS_NO_NEW_IOSTREAMS macro.

2006-12-11  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* src/fstream.cpp, stlport/stl/_fstream.h: non-template friend function
	of template class isn't good idea. Fixed.

2006-12-09  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_range_errors.h: To complete 2006-12-04 modification
	fix inclusion to access to string definition. In normal mode we include
	stlport/stl/_string.h rather than string header. There is a special case
	however if cumulating _STLP_NO_IOSTREAMS, _STLP_DONT_REDEFINE_STD and
	_STLP_WHOLE_NATIVE_STD then functions defined in _range_errors.h will
	throw exception from std namespace rather than from stlport.

	* stlport/stl/config/user_config.h: Documented above modification.

	* stlport/stl/config/features.h: Modify _STLP_VENDOR_STD definition. This
	internal macro do not have to use __std_alias, within STLport code std is
	not a macro and can be used as the vendor namespace.

2006-12-07  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_algobase.c, config/features.h: Removed unused
	_STLP_MPW_EXTRA_CONST macro.

	* stlport/stl/config/_watcom.h, _dm.h, feature.h: Add new 
	_STLP_NO_CONST_IN_PAIR macro config to avoid instanciation of
	pair with a const qualified type. _STLP_CONST is defined based
	on _STLP_NO_CONST_IN_PAIR.

	* stlport/stl/_map.h, _hash_map.h, _unordered_map.h: Add use of
	_STLP_CONST.

	* stlport/stl/_num_put.c: Introduce __do_put_bool function containing
	all codes to render bool values. We do not use anymore
	__copy_integer_and_fill function that was difficult to instanciate for
	Open Watcom compiler. Moreover this function was not really adapted for
	being use in this context, code duplication is very limitated and
	absolute number of lines of code hasn't been modified.

	* stlport/stl/_fstream.h, src/fstream.cpp: Removed useless declaration
	of template specialization for _Noconv_input _Noconv_output and _Underflow.
	_Underflow template specialization now use a function __Underflow_doit
	to avoid the complex syntax of the implementation of a member method of
	a template class specialization in fstream.cpp.

	* src/message_facets.h: Add missing allocator parameter in hash_map
	instanciation, required for compiler lacking default template parameters
	support.

	* src/num_get_float.cpp: Add unsigned 64 bits support for Open Watcom.

	* stlport/stl/_cmath.h, _cstdlib.h: Signal that Open Watcom has already
	all math functions C++ overloads in global namespace.
	
	* Cleanup of all workarounds for MSVC before version 6.

	* build/Makefiles/gmake/gcc.mak: Hide -fvisibility option for windows as
	in this context we are not able to correctly detect gcc version in use. 

	* stlport/stl/_fstream.h: Reorder member variables in _Filebuf_base
	to avoid gcc warning.

2006-12-06  Francois Dumont  <dums@users.sourceforge.net>

	* STLport 5.1.0 released based on STLPORT_5_1 branch revision 2750.

	* Merge STLPORT_5_1 branch from revision 2711 to 2749.

	* stlport/stl/config/_hpux.h: Specify that Hp Unix is a unix platform
	_STLP_UNIX. This platform was already recognise as a unix platform
	but it is more clear to put it in Hp Unix configuration file.

	* src/num_put_float.cpp: Limit Hp Unix workaround to access isfinite
	isnan and some other system functions to the gcc compiler, aCC has
	natively access to it. Tests done by Boris Gubenko.

2006-12-04  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/fstream, iomanip, ios, iosfwd, iostream, istream, locale,
	ostream, sstream, streambuf, strstream: Allow use of iostream headers
	even when _STLP_NO_IOSTREAMS is defined if using _STLP_WHOLE_NATIVE_STD.

2006-12-02  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_string.c: Use find_end algo rather than internal
	__find_end function, find_end contains workaround for limited
	compilers.

	* stlport/stl/_algo.c: Avoid a useless default value for last
	parameter of __stable_partition_aux_aux function.

	* src/num_put.cpp: In __insert_grouping_aux, use template parameter
	Str to get iterator definition rather than getting definition from
	basic_string.

	* stlport/stl/_num_get.c, _num_put.c: Complete basic_string
	definition for compiler not supporting default template parameters.

	* stlport/cmath, cstdio, typeinfo: Modified to be reentrant once.

	* stlport/stl/_alloc.h, _bvector.h, _construct.h, _deque.h,
	_hash_map.h, _hash_set.h, _hashtable.h, _list.h, _map.h, _pair.h,
	_queue.h, _rope.h, _set.h, _slist.h, _stack.h, _string.h,
	_string_base.h, _string_workaround.h, _tree.h, _unordered_map.h,
	_unordered_set.h, _vector.h: Now _STLP_NO_MOVE_SEMANTIC hide all
	calls to _AsMoveSource function. 

2006-11-30  Francois Dumont  <dums@users.sourceforge.net>

	* test/unit/stack_allocator.h: Fixed StackAllocator implementation
	for Borland and DMC that required a workaround.

	* stlport/stl/config/_gcc.h: Starting with gcc 4, use visibility
	feature.

	* build/Makefiles/gmake/gcc.mak: Starting with gcc 4, add
	-fvisibility=hidden compilation option.

2006-11-28  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_alloc.h: Avoid explicit instanciation of template
	function _AsMoveSource. Replace internal allocator::allocate function
	with _M_allocate to avoid use of overloading.

	* stlport/utility: Fix header reentrancy.

	* stlport/stl/_ptrs_specialize.h: Fixed instanciation of
	__type_traits_aux.

2006-11-25  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/climits, iosfwd, mem.h, string.h, typeinfo.h, wchar.h,
	stl/char_traits:
	Eric Sanford patch to complete use of include_next with Borland
	compilers.

	* stlport/using/cstring: Fix macro check for Borland compiler.

	* test/unit/locale_test.cpp: Add test for Borland _fpclass.

	* src/num_put_float.cpp: Fix potential error in _Stl_is_neg_nan
	for Borland compiler after 0x581.

2006-11-24  Francois Dumont  <dums@users.sourceforge.net>

	* Eric Sanford patch for DMC compiler, allow access to associative
	containers extension.

	* stlport/typeinfo.h, exception: Workaround for DMC that force
	inclusion of typeinfo.h at the begining of all translation units.

2006-11-23  Francois Dumont  <dums@users.sourceforge.net>

	* test/unit/cstring_test.cpp: New test case to check import of all
	C functions from string.h in STLport namespace.

	* stlport/using/cstring: Fix import of strcmp and strcpy for Borland.

2006-11-20  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/iosfwd, stl/type_manips.h, config/_bc.h, pointers/_tools.h:
	Patch from Eric Sanford to remove useless Borland workaround for
	pointer specialisation and use include_next feature for versions after
	0x580.

2006-11-20  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* src/monetary.cpp: template header not allowed in member definition
	of explicitly specialized class

2006-11-19  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_ios_base.h: Replace wrong external utility inclusion
	with internal _pair.h header.

2006-11-17  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/config/features.h: Modification of the static constant
	workaround implementation to use something similar to the boost
	workaround. _STLP_STATIC_CONST_INIT_BUG macro change definition of
	newly introduce _STLP_STATIC_CONSTANT macro which use an enum or a
	real static const variable. Moreover the new
	_STLP_NO_STATIC_CONST_DEFINITION will hide static constant definition
	when defined.

	* src/ctype.cpp, ios.cpp, locale.cpp: Add check for
	_STLP_NO_STATIC_CONST_DEFITION.

	* src/monetary.cpp: Add intl static constant definitions.

	* stlport/stl/_ctype.h, _ios_base.h, _limits.h, _monetary.h: Use
	_STLP_STATIC_CONSTANT.

	* stlport/stl/_limits.h: Limits a workaround for long long and unsigned
	long long types that used to be applied for gcc after 2.96 up to version
	3.0.

	* stlport/stl/_limits.c: Clean all static constant values duplicated from
	_limits.h that was not used in this file. Add static constant definition
	necessary for long long and unsigned long long types for gcc between 2.96
	and 3.0 (see above).

	* stlport/stl/debug/_string.h: Removed npos static constant definition
	that is only necessary in stlport/stl/_string.c.

	* stlport/stl/config/_msvc.h: Use real static constant starting with
	VS .Net 2003 (_MSC_VER >= 1310).

	* test/unit/limits_test.cpp: Modified test to reveal potentially missing
	static constant definitions.

2006-11-13  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/config/stl_confix.h: Add some STLport config options based
	on EDG version information using boost common_edg.hpp content.

	* stlport/stl/: Patch from Eric Sanford for Borland compiler. Allow
	associative container extension (member methods) and use of pointer
	specialization.

2006-11-07  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/config/_hpacc.h, stl_confix.h: Thanks to additional info
	from Boris Gubenko STLport now check __EDG_VERSION__ to detect EDG based
	compilers. It use this macro to activate include_next feature. Moreover
	a workaround has been added for aCC6 that was not defining __EDG_VERSION__
	as expected. _hpacc.h has also been cleaned of obsolete config.

2006-11-07  Francois Dumont  <dums@users.sourceforge.net>

	* stlport: All C++ Standard headers are now using the same schema. If
	included from outside (_STLP_OUTERMOST_HEADER_ID not defined) it first
	included internal header (in stl folder) and then, if _STLP_WHOLE_NATIVE
	is defined, include the equivalent native Standard header. If included
	from inside, simply forward to native header include. This schema has
	several advantages:
	- Less dependancy on native library headers interdependancy.
	- Less code included as STLport code is only exposed if headers are
	included from the outside.
	- Restore _STLP_WHOLE_NATIVE_STD configuration (tested with gcc, msvc, bcc)
	The condition for this schema to work is that STLport never include Standard
	headers internaly when it wants to access some STLport code.

	* stlport/stl/_iomanip.h: New file containing all STLport code that used
	to be in stlport/iomanip.

	* stlport/stl/_complex.h, _rope.h, _stream_iterator.h, _string_fwd.h: Use
	stl/_iomanip.h rather than iomanip.

	* stlport/stl/_rope.c: Use stl/_ostream.h and stl/_istream.h rather than
	iostream.

	* stlport/stl/config/_kai.h, _msvc.h, feature.h: _STLP_MINIMUM_IMPORT_STD
	macro removed, it was only used in vector header to avoid include of
	native vector header even when _STLP_IMPORT_VENDOR_STD was defined. MSVC6
	used to define it but removing it hasn't make compilation failed when
	importing all native std stuff. Looks like it was a workaround necessary
	when STLport was not as clean as it is now or for the former wrapper mode
	that has been removed.

	* stlport/stl/config/features.h: Add a #error to signal that
	_STLP_WHOLE_NATIVE_STD and _STLP_NO_OWN_NAMESPACE are incompatible
	options.

	* stlport/stl/config/stl_confix.h

2006-11-05  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_sstream.h, _sstream.c: Add 2 helper functions _S_start and
	_S_finish to hide complexity of code required to have read access to the
	aggregated string instance internal buffer. Those 2 functions help keeping
	basic_stringbuf implementation simple without requiring a friend
	declaration in basic_string class and use of inheritance in _STLP_DEBUG
	mode between the debug string and the non debug one.

	* stlport/stl/_string.h, debug/_string.h, _string_sum_methods.h: Removed
	friend declaration and inheritance (see above). This also avoids to restore
	some workarounds that used to be necessary when _STLP_DEBUG mode was using
	inheritance in all the debug containers.

2006-11-04  Francois Dumont  <dums@users.sourceforge.net>

	* src/num_put_float.cpp: According C Standard number of digits in the
	exponent part of scientific output should be at least 2, C99 even says
	that we shouldn't add zeros if there are more than 3 significant digits.

	* test/unit/complete_digits.h: Modified according to above rules.

2006-11-02  Francois Dumont  <dums@users.sourceforge.net>

	* Repository: Merged STLPORT_5_1_RC3 tag changes up to r2771 into the trunk.
	Now trunk is really in sync with STLPORT_5_1 branch.

	* etc/ChangeLog: Now contains only trunk modif, 5.1 changes are in
	ChangeLog-5.1.

2006-11-02  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* Repository: merged from 5.1 branch.

2006-11-01  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_stdexcept_base.h: Patch from Uli to simplify
	__Named_Exception implementation.

2006-10-31  Francois Dumont  <dums@users.sourceforge.net>

	* build/test/unit/Makefile.inc: Restore STLport version information that
	had mysteriously disappeared in a previous modification.

	* stlport/stl/_num_put.c: Disable warning for MSVC that signal problem in
	cast from pointer to unsigned long.

	* src/num_put_float.cpp: Fix buffer overflow introduce by a previous
	modification. Now STLport appends '0' so that floating point scientific
	output has a constant size. MAXESIZ renamed in MAXEDIGITS to make macro
	signification more obvious.

	* test/unit/complete_digits.h: New file containing the function giving
	platform dependant number of digits in STLport scientific output of
	floating point types.

	* test/unit/num_put_get_test.cpp, locale_test.cpp: Adapt tests to latest
	STLport modifications.

2006-10-30  Francois Dumont  <dums@users.sourceforge.net>

	* stlport/stl/_stlport_version.h: Upgrade STLport version information
	to reflect built libraries.

2006-10-24  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/stl/config/host.h, _linux.h: force usage malloc_alloc as default
	allocator on systems with glibc 2.3.x and later	due to better performance.

	* stlport/stl/_alloc.h: remove _STLP_MALLOC_USABLE_SIZE dependant
	code---not really used.
	
	* stlport/stl/_alloc.c: remove recalculation of __n [Francois was right];
	remove _STLP_MALLOC_USABLE_SIZE dependant code---not really used.

	* src/allocators.cpp: remove additional __malloc_alloc_impl class---not
	required; add mutex lock for custom __malloc_alloc oom handler change/use
	[in multi-threaded environment].

2006-10-16  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/stl/c_locale.h, _mbstate_t.h, src/c_locale.h, c_locale.c:
	merge changes from STLPORT_5_1 branch, see 2006-10-12 [Francois Dumont];
	may be problems on Solaris, and FreeBSD---more check required.

2006-10-13  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* Repository: merge changes [not all] 2006-10-12 from STLPORT_5_1 branch

2006-10-12  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* Repository: merge changes from STLPORT_5_1 branch (records
	from 2006-10-06 to 2006-10-04).

	* stlport/stl/_alloc.c: Hmm, looks like deallocation size in
	2006-10-06 is wrong.

	* stlport/stl/_num_put.c: print pointer as in fix width form, and
	with base 0x, independent, zero pointer or not.

	* test/unit/num_put_get_test.cpp: test for issue above.

	* test/unit/string_test.cpp: test for overloaded operators
	and temporary string; inspired by problems with some compilers.

	* stlport/stl/_mbstate_t.h: revert back changes from STLPORT_5_1 branch;
	mbstate_t couple with wchar closely, and sometimes has compex and implicit
	dependance; include wchar.h first required! 

2006-09-12  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* test/unit/string_test.cpp: add test for bug report #1541499,
	problem not detected; looks like gcc 4.1.1 can compile te_tmp test
	correctly [sum operations under class derived from string, with
	_STLP_USE_TEMPLATE_EXPRESSION].

2006-09-08  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* stlport/stl/_sstream.h, _sstream.c: remove double buffering
	on write only underlying string as buffer. Use knowlege about
	string implementation, this should improve performance, and,
	at least simplify code and avoid logic that already present in
	string implementation.

	* stlport/stl/_string_base.h: basic_streambuf is friend, to access
	to internal function (access to storage pointers).

	* stlport/stl/debug/_string.h, _string_sum_methods.h: change usage
	of 'non-debug string', from 'use of' relation to 'inherit' releation.
	Useful for access basic_streambuf to string storage in _STLP_DEBUG
	mode too.
		
	* test/unit/sstream_test.cpp: test for tellp call; change test
	with inited ostringstream in accordance with another Standard
	treatment.
	
	* stlport/stl/_streambuf.h: remove ancient code, that can't
	work with present code in any case.

	* src/c_locale.c: ditto

	* build/lib/Makefile.inc: bump minor version (5.2.0)

2006-07-27  Francois Dumont  <dums@users.sourceforge.net>

	* stlport: Adopt include_next GNU extension for the following reasons:
	- Standard headers do not have to be categorised anymore to be
	included, we could have a wrong include order if headers are not
	correctly categorized.
	- Package builder can use any folder structure they want for gcc,
	STLport won't have to be customized anymore.
	- Make STLport usable with other library that also use the shadow
	header trick to modify native headers content.

	* stlport/stl/config/_gcc.h: Add definition of _STLP_HAS_INCLUDE_NEXT
	macro to signal that this compiler preprocessor support include_next.
	Removed all definition of native headers path that are now useless.

2006-03-27  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* src/num_put_float.cpp: use buffers that at least longer
	than maximal double [or long double] exponent, so avoid
	potential vulnerabilities; this allow to read really long
	fix-float numbers [with lost of significant digits, of course].

	* test/unit/floatio_test.cpp: add test for issue above

2006-03-23  Petr Ovtchenkov  <complement@users.sourceforge.net>

	* src/cxa.c: remove wrong exclusion of lock for Solaris.
